Linuxで使えるコマンドまとめ
catコマンド
catコマンドはファイルの内容を表示したり、複数のファイルを連結するコマンド
オプション | 意味 |
---|---|
-n | すべての行に行番号をつける |
-s | 連続した空行を圧縮する |
-b | 空行以外に行番号をつける |
例えば、以下のような.txtファイル(テキストファイルがあったとき)
次のようにすると
sample.txtの内容がそのまま表示される
行数も表示したいなら
これで得られる結果が
これ。
から行に行番号をつけたくないならbオプションを使って
これの結果は以下の通り
複数のファイルを連結したいなら以下のように書ける
上で使ったsample.txtと新たに以下の内容のtest.txtを連結し新たにIT.txtというファイルを作りたいとき
このようにする
標準入出力のリダイレクション
タイトルだけ見たらなんじゃこりゃ!!ってなりそうだけど、実は結構簡単
そもそも標準入出力とは標準入力がキーボードから入力されることで、標準出力が画面に表示すること
<
この記号は標準入力をキーボードからファイルに切り替えるもの
もっと簡単に言うなら、「キーボードから入力された情報じゃなくて、ファイルの内容を使うよ」というもの
例えば以下のようなtxtファイルがあったとき
電卓みたいに計算してくれる「bc」コマンドを以下のように使うと
結果が「10」と表示される
ちなみに標準入出力のリダイレクションを使わないで書く以下のようにbcコマンドを一度呼び出して計算式を入力することと同じ
ただキーボードから入力された情報を使うか
ファイルの内容を使用するかの違い
>
こっちは標準出力のリダイレクションですごく簡単
ざっくり言えば「結果を表示しないで、別のファイルの内容にするよ」というもの
ちなみに>>にするとファイルの最後に表示結果を連結するので
さっきやったsample.txtとtest.txtの連結は以下のようにも出来る
この方法だとIT.txtというファイルを作らなくてもファイルを連結できる
<,>
リダイレクションを両方使い、標準入出力を一行で切り替えることもできる
それは以下のような形式をとる
これを踏まえてbcコマンドと数式が入っているnumber.txt、その結果をresult.txtとして出力する方法は以下のようになる
実はこんな便利なこともできる
ls
lsコマンドは現在いる場所にあるファイルやディレクトリを表示してくれるもの
オプション | 意味 |
---|---|
-l | 名前以外の詳しいデータも表示する |
-a | ファイル名の先頭が.のものも表示する |
-t | 最終更新が新しい順に表示します |
-R | サブディレクトリの下のすべてのファイルを表示する |
これらを使った例を示すと
これでファイル名とディレクトリ名を表示できたbash
ls
これで設定ファイルも表示できる
実はコマンドを組み合わせることもできて-aと-Rを組み合わせてすべてのファイルを表示するのは以下のようにする
このように複数のオプションを組み合せることもできる
cp
cpコマンドはファイルをコピーするコマンド
以下のような形式をとる
オプション | 意味 |
---|---|
-i | コピー先のファイルがすでに存在する場合上書きするか確認する |
-R | 再帰的(全部)にディレクトリの下のファイルをコピーする |
これでcatの時使ったsample.txtをsample2.txtとしてコピーする
たったこれだけ
mv
mvはファイルをコピーではなく移動させるコマンド
以下の形式を取る
ちなみに名前の変更もできる
オプションはcpで紹介した-iが有効、それ以外にも存在するが省略
さっき使ったtest.txtをホームディレクトリ直下のディレクトリに移動させるなら
となる
ちなみにtest.txtの名前をtest2.txtにするなら以下のようになる
rm
rmコマンドはファイルやディレクトリを削除するコマンド
オプション | 意味 |
---|---|
-r | ディレクトリをまるごと削除するときに指定 |
test.txtファイルを削除したいなら
となり、ディレクトリを削除したいときは
となる
rmdir
このコマンドはほとんどrmコマンドと大差無いがrmdirを使う場合消したいディレクトリが空である必要がある
mkdir
これはディレクトリを作成するコマンド
例えばsampleというディレクトリを作るなら
となる。またスペースで区切ることで複数のファイルを作成できる
みたいに
cd
このコマンドはカレントディレクトリを移動するときに使う
例えばカレントディレクトリの直下にあるsampleというディレクトリに移動したい場合は
となる
このコマンドにはもっと色々操作方法があってこれはぜひ覚えたい
操作 | 意味 |
---|---|
cd | ホームディレクトリに移動 |
cd 移動したいディレクトリ | 移動したいディレクトリに移動 |
cd .. | 一つディレクトリを戻る |
ps
プロセス状態を表示するコマンド
使用メモリ率やプロセスID、CPU利用率が表示される
kill
指定したプロセスIDのプロセスを終了させるコマンド
grep
このコマンドについては長くなるので、ここを参照
sort
ソートコマンドは、そのままの意味で入力ファイルの並び替えを行う
オプション | 意味 |
---|---|
-r | 逆順に並べる |
-n | 数値を昇順にして並べる |
-f | 大文字小文字区別なく並べる |
-k | フィールドの場所(何列目か)を指定する |
例えば以下の内容のテストの点数と名前が含まれているstudent.txtが存在した時に
点数順にソートするなら
出力は以下のようになる
-rオプションを使うと
以下のようになる
また二列目にある名前順に並べたいなら以下のようになる
結果は以下のようになる
head
このコマンドはファイルの上から10行を表示する機能をもつ
また-nオプションをつけてスペース区切りで数値を入れることでその数の分だけ行を表示する
これで上から3行目まで表示できる
つまりこう画面にでる
tail
このコマンドはheadと真逆のことをする。つまりファイルの最後の行から10行表示する。
これも-nオプションとスペース区切りで数値を渡すことで任意の行数だけ最後の行から表示できる
これで最後から2行目までを表示する
つまりこう画面にでる
パイプ
パイプとは|←これのことでl(エル)ではなく¥のキーをshiftキーと共に押したときに出るヤツ
これはすごく便利でパイプの前にあるコマンドの標準出力をパイプの後にくるコマンドの標準入力として渡せる
こんなクソみたいな説明じゃわかりにくいので実例を踏まえて
これやると以下のような表示がでる
こうなるに至った過程をざっくり説明してみる
以下(´・ω・`)をcatコマンド、(・。・をパイプ、(*´∀`)をheadコマンドとする
(´・ω・`)「sample.txtに行数つけて表示するぜぇ!!」
(・。・「ちょっとheadに横流しするわ」
(*´∀`)「それを上から三行だけ表示っ!!」
みたいなかんじです
これは大して覚えなくてもいいけど知ってたら便利
pwd
これはカレントディレクトリの場所を最初っから表示してくれるやつ
man
これはオンラインマニュアルを表示してくれるやつ
でも大抵、[コマンド名] --helpのほうが便利