LinuxまたはMacでよく使うコマンドを中心に紹介します
目次
- 移動・表示・作成・削除(基本)
- ネットワーク
- エディタ
- 障害対応のときとか
- パイプ
- シェル
移動・表示・作成・削除
- cd → 移動。チェンジディレクトリ
- pwd (-P)→ カレントディレクトリのパスを表示
- ls (-la)→ ディレクトリ内のファイル表示
- cat → ファイルの内容を標準出力
- less → ファイルの中身を表示
- echo → 引数で指定した内容を標準出力
- time → コマンドの実行時間を表示
- tail (-f)→ ファイルの末端の10行を表示
- mkdir → ディレクトリ作成
- touch → 空のファイル作成。ファイルを指定するとタイムスタンプが変更される
- mv → ファイルの移動・リネーム
- rm (-r)→ ファイル・ディレクトリの削除
- cp → ファイルのコピー
- man → コマンドのマニュアルを表示
- find → ファイルを検索
- grep → ファイル内の文字列を検索
- diff → ファイルとファイルの差分を表示
- ps aux → 現在実行されているプロセスの表示
- ln -s → シンボリックリンクを作成
- chmod → 実行権限を変更
- chown → 実行ユーザーを変更
ネットワーク
- ssh → リモートサーバーにアクセスするために使う
- whois → ドメイン情報を表示
- dig, nslookup → ドメイン名からIPアドレスを調べる
- curl → CLIからHTTPリクエストを送信
- scp → リモート・ローカルでファイル転送
エディタ
- vi, vim
- emacs(入ってれば)
- nano(殆ど使わないと思うけどDockerで触るかも)
- code(vscode入ってれば)
- atom(atom入ってれば)
emacsとかcodeとかatomとかはLinuxには普通入ってないけど一応載せておいた
障害対応のときとか
- top (-a) → 実行中のプロセスをリアルタイムでcpuやメモリ順にソート
- du, df → ディスク容量確認
すでに出てきたコマンドもよく使う。これらはサーバーに入らなくても表示できるよう、監視を整備しておいたほうが楽
パイプ
|
を使って、コマンドの実行結果を次のコマンドに渡すことができる
例
# ファイルに'foobar'という文字列を追記
$ echo 'foobar' >> buzz.txt
# ファイルの内容を標準出力に出しその内容をgrepすると
# foobarという文字列が結果として出る
$ cat buzz.txt | grep bar
foobar
awk, sed, perlなんかを使うともっと高度ことが出来る(今回は割愛)
シェル
これまで紹介したコマンドをコンピュータ(カーネル)に伝えるためのプログラム
- bash
- zsh
- fish
各々CLIでの操作が便利になるようカスタマイズできる。最近だとfishが良いという噂。
まとめ
- 基本のコマンドは抑えよう
- helpやmanで使い方・便利オプションをチェックしよう
- パイプは積極的に使おう
- 合わせて「UNIXという考え方」という本も読んでおくとベスト
- シェルの設定もやってみよう