UNIXコマンド

※ドットインストール準拠

 

ファイル操作
pwd ― 現在のディレクトリを表示する
 パスの表記は二種類 ― 相対指定(cd unix_lessons等現在の位置から相対的にディレクトリを示す)
― 絶対指定(/home/vagrant/unix_lessons等一つのディレクトリを絶対的に指定する)
・cd (チェンジディレクトリ) ― フォルダの階層移動を行う
・clear / Ctrl+L ― 表示されているコマンドを消す
・cd .. ― ひとつ上の階層へ移動する
・cd - ― 直前の階層へ移動する
・cd ― homeディレクトリへ移動する
・mkdir ― ディレクトリ作成
・ls ― 現階層のリストを表示する
・mkdir -p ― ディレクトリ作成の際、親ディレクトリが存在しない場合は同時に作成する
・mv ― ファイル移動を行う
・rmdir ― ディレクトリの削除(中身が存在する場合エラー)
・rm -r ― ディレクトリの削除を再帰的に行う(中身が存在する場合すべて削除)
・cat ― ファイル内容を表示する
・less ― ファイル内容を表示する(内容が長い場合)
・cp ― ファイルのコピー
・mv ― ファイルの移動(同階層に移動する場合、ファイル名の変更)
・rm ― ファイルの削除

bushの便利機能
・タブ補完
 ・最低限の入力後タブキーで補完入力される
 ・候補が複数存在する場合はタブキー連打で次候補へ
 ・タブキー二回押下で候補の表示
・Ctrl+C ― 現在実行しているコマンドを終了する
・矢印上キーで直前に使用したコマンドを順番に表示する
・Ctrl+R ― コマンドの検索(myaの入力で直前に実行したcd myappが呼び出される)
 ・再度Ctrl+Rで次候補
 ・終了する場合はEscもしくはCtrl+C

コマンド履歴の活用
history ― 実行したコマンドの履歴を表示する
・!履歴番号 ― historyで表示した履歴番号と同じものを実行
・!! ― 直前に実行したコマンドを実行する
・!-2 ― 後ろの数字分前のコマンドを実行する
・!$ ― 直前のコマンドの引数で実行する
・!pw ― 直前に実行したpwから始まるコマンドを実行する
 ・!pw:p ― 最後に:pをつけることで実行せずにコマンドを表示する

コマンドについて調べる
・--help ― コマンドの後につけることによって、コマンドのヘルプを見る
・man ― コマンドの前につけることでヘルプより詳しいマニュアルを見る
 ・内部的にはlessが実行しているため、スペースで次ページたEscで終了ができる
 ・/検索文字列 ― less内で検索を実行する
  ・文字列検索中nで次検索文字列、Shift+Nで前検索文字列
  ・man終了はqキー

VIM
・vi ファイル名 ― 実行時はコマンドモードでファイルを開く
 ・i ― インサートモード、ファイルの編集を実行する
 ・:w ― 編集を保存する
 ・:q ― vimを終了する
 ・:q! ― 編集を保存しないで終了する

シンボリックリンク
・ln -s ― ln -s パス 代替名でパスを代替名で指示することができる
・ls -l ― リンクの詳細を表示する
・unlink ― シンボリックリンクを削除する

ユーザ、グループの確認
・etc/passwd ― (cat)ユーザ情報の表示
・etc/group ― (cat)グループ情報の表示
・groups ― 自分が所属しているグループを表示する

パーミッション
-rwxrw-r--. 1 root root 22 4月 3 01:16 2018 index.php
・最初の文字列は三文字ずつに振り分けられる
 ・rwx ― ユーザの権限
 ・rw- ― グループの権限
 ・r-- ― その他の権限
  ・r ― 書き込み可
  ・w ― 読み取り可
  ・x     ― 実行可
・chmod ― 権限の付与、削除を実行するコマンド
 ・chmod g+x index.php ― グループに対して実行権限を付与する
 ・chmod go+x index.php ― グループとその他に対して実行権限を付与する
 ・chmod a-x index.php ― すべてに対して実行権限を削除する
・最初の文字列を数字で表記する方法
 ・r ― 二の二乗で4
・w ― 二の一乗で2
 ・x ― 二の零乗で1
  ・rwx ― 4+2+1で7
  ・rw- ― 4+2+0で6
  ・r-- ― 4+0+0で4
・chmod
 ・chmod 774 index.php ― rwxrwxr--(グループに書き込み権限を付与する)
 ・chmod 664 index.php ― rw-rw-r--(ユーザの実行権限を削除する)

コマンドの作成
・type コマンド名 ― コマンドが存在するか確認する
・vi コマンド名 ― vimでコマンドを作成する

・コマンドを実行するにはパスを指定しないといけない
 ・echo $PATH ― コマンドをどこから検索しているかを見る
 ・printenv ― すべての環境変数を見る
 ・export ― 環境変数を変更する
  ・export PATH=/home/vagrant/unix_lessons/muapp:$PATH ― 現在設定しているパスの先頭に新しく追加する
  ・which コマンド名 ― 実行しようとしているコマンドがどこから呼び出されているか

管理ユーザになる
・su -l(su -) ― 管理ユーザとしてログインする(パスワードの入力)
・sudo ― このコマンドを管理者として実行するコマンド(sudoを可能にする設定必要)

ユーザを変更する
・chown vagrant:vagrant messages ― messagesのユーザ、グループをrootからvagrantに変更する

テキストを操作するコマンド
・wc ― 行数、単語数、バイト数、ファイル名を表示
 ・wc -l ― 行数、ファイル名を表示
・head ― テキストの先頭から10行(デフォルト)表示する
 ・head -3 ― テキストの先頭から3行表示する
・tail ― テキストの末尾から10行表示する
 ・tail -3 ― テキストの末尾から3行表示する
grep "文字列" ― 文字列が含まれた行を表示する

リダイレクション、パイプ
・echo "date" > ファイル名 ― echo "date"で実行した結果をファイルに書き込む
・echo "free" >> ファイル名 ― echo "free"で実行した結果をファイルの末尾に書き込む
bash < cmd.txt ― ファイルの内容を取り込ませる(dateもfreeもbushコマンド)
・bush < cmd.txt > result.txt ― 実行結果をresult.txtにリダイレクションする
・ls -l /etc | grep "php" ― etcフォルダの中のphpを含むファイルのみリストする
・ls -l /etc | grep "php" | wc -l ― etcフォルダの中のphpを含むファイルのリストの行数を表示する

ワイルドカード
・* ― 複数文字を表すワイルドカード
・? ― 1文字を表すワイルドカード

検索
・find 対象フォルダ -name "検索文字列" ― 検索文字列を含むファイルを対象フォルダから検索する
・find 対象フォルダ -name "検索文字列" -type f ― 検索文字列を含むファイルを対象フォルダから検索する(ファイルタイプのみ)
・find 対象フォルダ -name "検索文字列" -type f -exec wc -l {} + - find実行結果を{}内に入れてコマンドを実行する
・find 対象フォルダ -name "検索文字列" -type f | xargs wc -l - find実行結果を後ろの子コマンドにパイプする

バッシュ展開
・{} - {}内を展開して実行する
 ・echo {a,b,c} - 実行結果はa b c
 ・echo {1..10} - 実行結果は1 2 3 4 5 6 7 8 9 10
 ・echo {1..10}{a..g} - 実行結果は1a 1b 1c 1d 1e 1f 1g 2a 2b …
・&& - 前後のコマンドを同時に実行する