Linuxコマンドとオプションの由来まとめ

【linuC101-1出題範囲】Linuxコマンドとオプションの由来

お久しぶりです、さるぼぼです。
最近SNSで繋がった趣味友達と夜な夜なゲームをすることが増えました。
これまでオンラインゲームであろうと一人でプレイしていたんですがパーティを組んでプレイするとチームとしてのクオリティが上がるなと痛感しています。
その反面色んな人とパーティーを組むので、コミュニケーションがうまく取れないと、面白くもないし勝てないしで一人でやったほうがマシだな、、
なんて思ったりもしました。
やはりゲーム内だけであっても、コミュニケーション能力が必須なんだなあとぼんやりしました。
そこが上手くいかないと地獄のような空気になるんですよね、、、

そんな地獄の空気の時にはたまに勉強したりしています。
今回はLinuCの勉強をしている際に感じたことをまとめることにしました。

勉強での悩み

Linuxを触ったことがある方ならご存知だと思いますが、Linuxでサーバーをあれこれする際にはコマンドを打って操作します。
構文はコマンドによって様々ですが分かりやすいコマンドだと以下のような感じでしょうか。

<コマンド> <-オプション> [ファイル]

例えばtestというファイルを削除する際は[rm]と呼ばれるコマンドを使います。
構文としては以下でOKです。

rm test

では次のオプションを追加したい場合はどうすればいいでしょうか

  • 削除してもいいか削除前に確認する
  • 何を削除したか削除後に確認する

これらのオプションを追加するには以下のような構文になります。

rm -iv test

この場合オプションは【-iv】の部分です 
i/vにそれぞれ意味があるんです。

このようなオプションがコマンドによって無数に用意されています。
LinuCの試験ではオプションを問われる質問が多く出題されます。

何を感じているかというとLinuxコマンドオプション覚えきれないよ!!
という悩みを感じています、、
そもそもコマンドもいっぱいあるのにそのコマンドごとに無数に意味の違う
オプション覚えるのは厳しい、、、

しかし、ある程度同じ意味のオプションは同じ文字が使われがちであることが分かりました。
そもそも指定する文字には由来になる単語が存在しています今回はよく使われる割にはコマンドの由来とオプションの由来が分かりにくいものををまとめてみることにします

  • 由来が単純なもの(-f = 「ファイルから読み込む」等)は割愛しています。
  • 由来が特にないであろうオプションも記載してあります。
  • 基本的にコマンドマニュアルから由来を確認しています。

基本的なコマンドとその由来

cat: ファイルの内容を簡単に確認する

由来: conCATenate ( つなぐ、連結する )
構文:cat [オプション] ファイル

オプション(語源) 語源の意味 オプション内容
-n(number)数字空行含め全てに行番号付ける
-b(number-nonblank)空白を除いた数空行を除く全てに行番号を付ける

CP:ファイルをコピーする

由来:copy(コピー)
構文:cp コピー元 コピー先

オプション(語源) 語源の意味 オプション内容
-f(orce) 力、強さ同じ名前のファイルがあっても
警告なしで上書きする
-i(interactive)相互に作用する上書きされるファイルが
あれば警告する
-p(preserve)保持するファイルの属性属性を保持したままコピー
-r(recursive)回帰的ディレクトリをコピー

grep:正規表現を使い一致する行を表示する

由来: global regular expression print (全体から正規表現で表示する)
構文: grep [オプション] 検索パターン ファイル

オプション(語源) 語源の意味 オプション内容
-c (count)数えるマッチした行の数のみ表示
-i(ignore case)大文字小文字を区別しない大文字小文字を区別せずに検索して表示
-v(invert match)逆に一致マッチしなかった行を表示
-l (long listing format)長い形式で
表示する
長い形式で表示する
-E( extended regexp )拡張した
正規表現
拡張正規表現を使用できる
-F(fixed-regexp)固定された
正規表現
検索パターンを正規表現ではなく固定文字列として扱う

head:テキストファイルの指定の冒頭行数を表示する

由来:head(頭)
構文:head [オプション]ファイル名

オプション(語源) 語源の意味 オプション内容
-n(lines)指定の行数を表示する
-c (語源不明) 指定のバイト数を表示する

ls:ファイルやディレクトリの情報を表示する

由来: list segments ( 区切の一覧)
構文: ls [オプション]

オプション(語源) 語源の意味 オプション内容
-a (all)全て全てのファイルやディレクトリを表示する
-F (classify)分類する名前の後ろに属性情報を表示する
-h(human-readable)人間が読めるサイズを見やすい表現で表示する
-l (long listing format)長い形式で表示する長い形式で表示する
-r (reverse)逆、反対通常の反対順で表示する
R(rescursive)回帰的ディレクトリも再帰的に表示する

man:Linuxのマニュアルを表示する

由来:manual
構文:man 調べたい語句

オプション(語源) 語源の意味 オプション内容
-k
(key word)
キーワード一部一致すればマニュアルを表示する
-f(full word) (フルワード)完全一致したマニュアルを表示する

mkdir:ディレクトリを作成する

由来:make directory
構文:mkdir [オプション]ディレクトリ

オプション(語源) 語源の意味 オプション内容
-m
(set file mode )
ファイルモードを設定指定のアクセス権でディレクトリを作成
-p(parents) 引数に階層がある場合そのディレクトリも作成する

od:ファイルを8進数やその他の形式でダンプする

由来:octal dump
構文:od [オプション] ファイル

オプション(語源) 語源の意味 オプション内容
-t
(type)
形式出力形式を指定
-o(octal)8進数指定のファイルを8真数で表示
-x(hexadecimal)16進数指定のファイルを16進数で表示

sed:指定のファイルをコマンドに従って処理して表示する

由来:stream editer(編集して流す)
構文:sed [オプション]スクリプトコマンド 入力ファイル

オプション(語源) 語源の意味 オプション内容
-e(expression)表現するスクリプトコマンドを追加する
-s/スクリプトコマンド
(語源不明)
文字列を置換する
-y/スクリプトコマンド
(語源不明)
複数の文字列を置換する

rm : ファイルなどを削除する

由来:remove (取り除く)
構文:rm [オプション] ファイル

オプション(語源) 語源の意味 オプション内容
-r(rescursive)回帰的ディレクトリも削除対象にする
-i(interactive)相互に作用する削除する際に確認する
-f(force)力強さ削除する際にエラーメッセージを表示しない
-v(verbose)言葉数の多い削除したデータの詳細を表示する

touch:ファイルのタイムスタンプを更新したり空のファイルを作る

由来:touch (触る)
構文:touch [オプション] ファイル

オプション(語源) 語源の意味 オプション内容
オプション無し空のファイルを作成する
-t (stamp) [時刻]刻印を押すアクセス時刻と修正時刻を指定時刻へ変更
-a(change only the access time)アクセス時刻のみ変更アクセス時刻を変更
-m(change only the modification time)修正時刻のみ変更修正時刻を変更

tar:アーカイブファイルを展開、作成する

由来: Tape Archieves
(元々は磁気テープにファイルをアーカイブするためのコマンドだったそうです)
構文:tar [オプション]対象アーカイブ名

オプション(語源) 語源の意味 オプション内容
-c(create)創造する新しいアーカイブを作成する
-x (extract) 取り出すアーカイブからファイルを展開
-t(list)一覧アーカイブの内容を一覧表示
-v(verbose) 言葉数の多い処理の詳細を表示

tr:指定の文字列を置換、削除する

由来:translate or delete characters(文字を変換か削除をする)
構文:tr [オプション]文字列1 

オプション(語源) 語源の意味 オプション内容
-d(delete)削除する指定した文字を削除
-s (–squeeze-repeats) 繰り返されてるものを絞る連続している文字列を一つにする

まとめ

今回紹介したのはごく一部のコマンドとオプションなのですがlinuC101-1で出題されるようなコマンドだけであれば、多少まとめられたかなと思います。
今後もなにか記事書いていきますのでよろしくお願いいたします。

作者情報

昔パティシエをしてた記憶があります。
特技は独力引っ越しです。
CCNPを頑張って取りましたがネットワークのことは良く分かりません。