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 行で実行できる。