2019-02-02
(ほぼ)はじめてのUNIXコマンドあれこれ
全部書いてるとキリがないので、「覚えておきたい、けど忘れそう」ということだけメモ。
- cd だけでホームディレクトリに戻れる
- ディレクトリがあればそれもコピー…」という意味。
- cp コマンドの-a オプションは、再帰的かつファイル属性(所有者やタイムスタンプ)もコピーしてくれる。
- cp コマンドと同様の理由で、ディレクトリ以下のファイルを丸ごと削除する場合は rm コマンドに-r オプションをつける。
- less で画面を切り替えて表示できる。
- カレントディレクトリは.(ドット)で表現できる
- ファイルの作成は touch(中身からっぽ)、ファイルの削除は rm
- 動かなくなってプロセスを中止したいときは Ctrl+c(キャンセル)
- Ctrl+r でコマンド履歴を検索できる
- history でコマンド履歴表示、!99 で 99 番のコマンドを実行
- コマンドのヘルプは
コマンド名 --help又はman コマンド名(manual の略) - あるディレクトリもあわせて作成するには mkdir コマンドで-p オプション(parent オプション)を指定する。
ls -aで隠しファイルを含む全てのファイルを表示(all オプション)。ls -lで詳細表示(long format オプション)。最初の 1 文字は、d:シンボリックリンク。続く 9 文字は 3 文字ずつ所有ユーザー(u: user)、所有グループ(g: group)、それ以外のユーザー(o: other)の Permission(アクセス権)を表す。r:read, w:write, x:execute.- パーミッションを数値によって表現することもよくある(詳細は省略)。
- シンボリックリンクというショートカットみたいのがある。
- /etc/passwd とか/etc/group とかにユーザーやグループの情報が入っている。
- 環境変数は export で設定、unset で解除する。ターミナルを閉じても消えないようにするには、~/.bashrc 又は~/.bashprofile に export を記述すれば毎回ターミナルを起動するときに実行してくれる。
which コマンド名でコマンドが定義されている場所を調べることができる。su ユーザー名で異なるユーザーに切り替えることができる(substitute)。ユーザー名を省略するとルートユーザーに切り替わる。-l オプションで substitute user として login しなおす。なお-l の l を省略して-のみとしても同義。- ほとんどの場合はユーザーの切り替えは行わず、
sudo コマンド名として、そのコマンドのみをルートユーザー権限で実行する。 コマンド > ファイル名で、コマンドの実行結果をファイルに上書きする。コマンド >> ファイル名で、コマンドの実行結果をファイルの末尾に追記する。>や>>をリダイレクションという。find 検索基点とするディレクトリ名 -name ファイル名orディレクトリ名で検索できる。タイプを絞り込みたい場合は type オプションをつかう。検索基点とするディレクトリが基点となる。- 標準入力を終えるときは Ctrl+d(めっちゃ重要)
- grep(混同しないで)。
grep 検索正規表現 ファイル名でファイルの中身を検索する。コマンド1 | コマンド2と書くと、あるコマンドの実行結果を次のコマンドに 標準入力として 渡す。これをパイプという。コマンド1 | xargs コマンド2と書くと、あるコマンドの実行結果を次のコマンドに コマンドライン引数として 渡す。(この 2 つの違いがややこしかったが、かなりすっきり理解できた。)コマンド1 && コマンド2で複数のコマンドを 1 行で実行できる。