ssh
主にサーバーにログインするために利用する
ssh vagrant@192.168.33.10
ssh -i ~/.ssh/id_rsa vagrant@192.168.33.10
ssh-keygen
秘密鍵と公開鍵のペアを生成するために利用する
# 鍵ペアの生成
ssh-keygen -t rsa
# 秘密鍵から公開鍵を生成
ssh-keygen -lf ~/.ssh/id_rsa
cd
change directoryの頭文字との噂
文字通りディレクトリ移動の際に利用する
cd /
cd /var/www/html
# cdに限らないけど ; で区切れば複数コマンドを続けて実行できる
cd /var/tmp; cd ../
ls
list
指定したパスのファイル一覧を表示する
ls
# パーミッションなどの詳細な情報も一緒に表示
ls -la
# サイズ表記をわかりやすく表示
ls -lah
# 環境によって ~/.bashrc などにショートカットが設定されていたりする
alias ll='ls -l'
find
特定の条件に一致するファイルを検索する
# .htaccessって名前のファイルを検索
find . -type f -name '.htaccess'
# logというディレクトリを除外してerror_logって名前のファイルを検索
find . -type d -name 'log' -prune -o -type f -name 'error_log'
# 配下のファイルのパーミッションをまとめて変更
find . -type f | xargs chmod 0644
mkdir
make directoryじゃないかと予想
文字通りディレクトリを作成する
mkdir hoge
# 2階層以上のディレクトリを一気に作成
mkdir -p hoge/fuga
# 複数のディレクトリを同時に作成
mkdir -p hoge/{fuga,foo}
cp
copyじゃないかと予想
ファイルまたはディレクトリのコピーを行う際に利用
cp src.txt dist.text
# ディレクトリをコピー
cp -r src dist
# パーミッションや所有者などの情報を引き継いでコピー
cp -rp src.txt dist.txt
rm
removeの略だと思われる
文字通り削除するコマンド
'rm /'とかやってみたいけど未だにやったことない
rm del.txt
# ディレクトリの削除
rm -r del
mv
moveじゃないかと予想
ファイルまたはディレクトリの移動に利用
内部的にはcpしてからrmをしていると思われる
名前を変更するときとかにも使う
mv src.txt dist.txt
# ディレクトリを移動
mv -r hoge huga
tree
ファイルツリーの表示を行う
ディレクトリ階層が深い場所とかで全体を俯瞰したいときに利用したり
tree /var/www/html
# 3階層目まで表示
tree -L 3 /var/www/html/
ln
linkかな
シンボリックリンクを作成する
# /var/www/html 配下に sourceという名前で /vargrant/source に対するリンクを貼る
ln -s /vagrant/source /var/www/html/source
# リンクつけなおし
ln -snf /vagrant/source2 /var/www/html/source
# 今いる場所にリンクを貼りたい場合は第2引数は省略化
ln -s /usr/local/bin/composer
sudo
super user doかな
sudoするにはログイン中のユーザーにsudo権限が必要
sudo権限についてはvisudo
コマンドで設定するか/etc/sudoers.d/
配下にユーザーファイルを置く
# rootになる
sudo su -
# apacheユーザーで実行
sudo -u apache php -r 'echo date("Y-m-d H:i:s");'
su
super user? switch user? いいえ、 substitute userです
ログインユーザーを切り替える
su - ec2-user
service
主にCentOS6系やAmazon Linuxでサービスの操作に利用
サブコマンドは起動スクリプト (/etc/rc.d/init.d/配下) に依存するので代表例としてApacheで
# 登録されているサービスの状態を一覧で表示
service --status-all
# サービス開始
sudo service {{ サービス名 }} start
# サービス停止
sudo service {{ サービス名 }} stop
cat
ファイルの中身を表示する
concat(結合する)が由来らしい
cat hoge.txt
# 複数ファイルの中身を繋げて表示
cat hoge.txt foo.txt
less
スクロール可能な状態でファイルの中身を表示する
f(forward)で送る、b(backfward)で戻る、gで先頭、G(Shift + g)で最後へ移動
細かなオプションはh(help)で参照可能
less foo.txt
touch
空ファイルを作成するときに利用
.gitkeepとか作るときに便利
touch logs/.gitkeep
vim (vi)
おなじみエディタツール
visual editorの略らしい
vimに関しては多岐にわたっちゃうので詳しくはまた別記事で
tail
ファイルの最後数行を表示
他のコマンドと組み合わせたりして使うことが多い
ログを見たりするときに使うかも
tail /var/log/httpd/access_log
# 行数を指定して表示
tail -n 100 /var/log/httpd/access_log
# ファイルを開きっぱなしにして表示
tail -f /var/log/httpd/access_log
head
ファイルの最初数行を表示
他のコマンドと組み合わせたりして使うことが多い
# 最終更新順に並べて先頭を表示
ls -lat | head
scp
secure copyの略
ローカルのファイルをリモートへ転送したりその逆もできる
ローカルで編集したファイルや画像ファイルをサーバーにあげたりするときに利用
# ローカルからリモートへ
scp -i ~/.ssh/id_rsa hoge.txt vagrant@192.168.33.10:/tmp/
# リモートからローカルへ
scp -i ~/.ssh/id_rsa vagrant@192.168.33.10:/tmp/hoge.txt .
# ディレクトリをコピー
# ~/.ssh/configに接続設定を記述しておけばサーバー名だけでいける
scp -r foo aws.remote:/tmp/
diff
ファイル間の差分を確認するときに使う
git
みんな大好きバージョン管理ツール
すごくちゃんとまとめているステキな記事があった
ps
プロセス一覧を見たりするときに利用
top
サーバーの負荷状況を確認したりするときに利用する
主にどのプロセスがメモリないしはCPUを喰っているのか、
Load Averageはどのくらいあがっているかなどなど
top
# 抜けるときはq
# コマンドキー一覧はh
xargs
他のコマンドと組み合わせで利用したりする
他のコマンドの出力を1行ずつ処理したいときとか
そのままパイプでつないで渡して引数が多すぎて怒られた場合とかは便利
# 1行ずつ処理
cat id.csv | xargs -L 1 echo
pwd
今いる位置を絶対パスで表示
print working directoryらしい
hirarin-no-MacBook-Pro:hirarin hirarin $ pwd
/Users/hirarin
chmod
change modeかな
パーミッションの変更
記号表記 | オクテット表記 |
---|---|
r | 4 |
w | 2 |
x | 1 |
つまり755
はrwxr-xr-x
になる
chmod 0664 hoge.txt
# ディレクトリ配下のパーミッションを再帰的に変更
chmod -R 0664 hoge/
# 所有ユーザーの権限に読み込みを追加
chmod u+r hoge.txt
# 所有グループから書き込み権限を剥奪
chmod g-w hoge.txt
chown
多分change ownerだと思われる
ファイルの所有者の変更
chown vagrant:vagrant hoge.txt
# ディレクトリ配下のパーミッションを再帰的に変更
chmod -R 0775 hoge/
grep
global search a regular expression and printの略らしい
正規表現に一致する行を検索するときに利用
# foo.txtからhogeを検索
grep 'hoge' foo.txt
# apacheがyumでインストールされているか確認
yum list installed | grep httpd
# 設定ファイルからコメント行を除外して表示
cat /etc/httpd/conf/httpd.conf | grep -v -e '^\s*#' -e '^\s*$'
# ディレクトリ配下を検索
grep -r 'hoge' ./*
# 検索にヒットした前後2行を一緒に表示
grep 'hoge' -B2 -A2 foo.txt