個人的よく使うLinux系コマンド集

探してないですが、検索してもこういうの出ないなーって。
自分がよく使うものの中で、「初級編」、「中級編」、「上級編」に分けてます。世の中的には上級編は簡単すぎるかもしれません。

「初級編」では、覚えてないとCUI操作が厳しいものについて思い出しながら書きます。
「中級編」では、しってるとちょっとだけ楽に作業できるものについて思い出しながら書きます。
「上級編」では、あんまり使わないけどごくまれに知らないとできないこととかについて書きます。

この文章を読む際の前提知識としては、Linux系コマンドの書き方が読め、実行できることです。基準となる記事はあとで探すか書くかします。

初級編

cd

$ cd Documents
$ cd /usr/bin

カレントディレクトリを移動します。うしろに相対パス絶対パスで移動先を指定します。
指定しないとホームディレクトリへ移動します。あえて指定しない使い方もアリ、ということです。

ls

$ ls
$ ls -a
$ ls -al
$ ls -hF
$ ls -l *.cpp

ディレクトリ内のファイルとかを一覧表示します。引数で絞り込みができます。
オプションが便利なのいっぱいです。

-a
ドットから始まるファイルも表示します。
-l
権限や更新日時など、詳細情報も表示します。
-h
ファイルサイズとかの単位を、読みやすいものにします。
-F
ファイル・ディレクトリ名のうしろに、実行可能なら「*」、ディレクトリなら「/」など、記号を付けてみやすくします。
--color=auto
適度に色づけします。

cp

$ cp src dst
$ cp ~/Downloads/hoge.sh ./newhoge.sh

ファイルコピーです。srcをdstへコピーします。srcをファイル名、dstをフォルダ名にすると、同じ名前でdstで指定したディレクトリにコピーします。

-r
再帰的にディレクトリをコピーします。ディレクトリごとコピーしたいときにはたいてい使います。

mv

$ mv src dst

ファイル移動です。cpと似てます。

rm

$ rm hoge
$ rm -rf hoge

削除です。ごみ箱とかないですので、これで消したら元に戻せないと思ってください。

-r
再帰的に削除します。
-f
力づくで削除します。

ちなみに、一時的に消す目的なら、名前をmvで変えるのがいいです。

$ mv hoge.cpp hoge.cpp.old

cat

$ cat hoge.cpp
$ cat hoge.cpp | more
$ cat hoge.cpp | less

テキストを出力します。たいてい、画面に収まらないほど出力があるので、moreやlessとあわせて使います。

more

catの項で出したように、パイプライン処理でつかうことがほとんどです。出力を画面いっぱいになった時点で一時停止、リターンキーで進めます。戻ることはできません。

less

catの項で出したように、パイプライン処理でつかうことがほとんどです。出力を画面いっぱいになった時点で一時停止、上下カーソルキーはj/kで上下移動できます。hキーでlessの操作ヘルプが出たはずです。

中級編

pushd

$ pushd ~/.vim

基本的にcdと同じ動きします。ただし、移動前のディレクトリをすかっくに保存しておきます。これをpopdで取り出せます。

一時的なディレクトリ移動のときに使うと便利です。

popd

$ popd

pushdでスタックに入れたものをポップします。引数なしです。

grep

$ env | grep SHELL

たとえば上記のコマンドなら、env(環境変数一覧)の出力から、SHELLと入っている行だけ取り出して出力します。検索文字列には正規表現を指定できます。オプションで、大文字小文字の区別などいろいろ指定できます。

wc

$ wc test01.cpp
$ wc *.cpp

引数に指定したファイルの行数、単語数、文字数をカウントしてくれます。複数指定もできます。
標準入力からはできません。
コードの行数を数えるのに便利です。

du

$ du ~

ディスクの使用状況を表示します。ファイルサイズがいっぱい出てくるってことです。
オプションで単位をByte, kByte, MByteなど変更できます。あんまり使わないので覚えてないです。

上級編

find

$ find ~ -name "*.cpp"

引数で検索するディレクトリを指定。オプションで検索対象の条件を指定。

-name "*.cpp"
よく使うオプション。ファイル名がcppで終わるものを探す。

xargs

$ find . -name "*.cpp" | xargs wc

xargsは、後ろにつけたコマンドに、標準入力から受け取ったものを「引数として」渡します。
現在のディレクトリの全てのcppファイルの行数を出力するなどに用います。

現在のディレクトリのみならwcのワイルドカードで十分ですが、Javaなど、ディレクトリ階層が複雑な時にはfindで全て探し出して、そのファイル名をwcの引数へ渡す、といった使い方ができます。

man

$ man find

マニュアルを開きます。lessとだいたい同じ操作で読めます。引数には、詳細を知りたいコマンド名を書きます。

これはかなり基礎的なコマンドですが、マニュアルは大概が英語なので、実際はブラウザなどで調べたほうが速いというのがオチです。だから上級編にいます。
「こういう機能があったけど、オプションのつづりを忘れてしまった」など、そういう場合にはとても役立ちます。あ

Tips:思い出したら書き足すところ

思い出したら書きます。

間違っていたり追記すべきところがあったりする場合はコメントなどをいただけると嬉しいです。