自分が良く使ったり、たまにしか使わなくてうろ覚えだったりするコマンドのメモです。
Bashを対象に書いているので、他のシェルでは使い方が違う場合があります。
詳しい使い方はmanコマンドで確認してください。
# コマンドに別名をつける(別名の削除はunalias) alias 別名=コマンド # lsと入力するとls -aFCを実行する alias ls='ls -aFC'
# 第1項目の数と値を数の多い順に出力する cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn # CSVの第3項目の数を合計する cat data.csv | awk -F',' 'BEGIN{sum=0}{sum+=$3}END{print sum}'
# ファイルの本体部分を出力(ディレクトリ部分はdirname) basename ファイルパス # ファイルの本体部分を出力(拡張子部分を除く) basename ファイルパス 拡張子
# テキストファイルを表示 cat ファイル
# ディレクトリの移動 cd ディレクトリ # ホームディレクトリに移動 cd # 一つ前のディレクトリに移動 cd - # スクリプトファイルのディレクトリに移動(シェルスクリプト内で使用する) cd $(dirname $0)
# サービス一覧を表示する chkconfig --list # サービスを自動起動するようにする chkconfig サービス名 on
# ファイルのパーミッションを変更する chmod パーミッション ファイルパス
# ファイルの所有者を変更する chown ユーザー名 ファイルパス # ファイルの所有者とグループを変更する chown ユーザー名:グループ名 ファイルパス # ディレクトリとその配下のファイルとディレクトリの所有者とグループを変更する chown -R ユーザー名:グループ名 ディレクトリ名
# ファイルのコピー(移動はmv) cp コピー元 コピー先 # 上書き確認しながらファイルのコピー cp -i コピー元 コピー先 # ファイルの情報(所有者・更新時刻など)を維持しながらファイルのコピー cp -p コピー元 コピー先 # ディレクトリのコピー cp -R コピー元 コピー先
# ファイル内容を表示する curl URL # ファイルをダウンロードして保存する curl -O URL # ファイルをダウンロードしてファイルパスを指定して保存する curl -o ファイルパス URL # リダイレクト先のファイルをダウンロードして保存する curl -L -O URL # プロキシを指定する curl -x proxy.example.com:8080 URL
# 現在日時を表示 date # 書式指定して表示 date '+%Y-%m-%d %H:%M:%S' # エポック秒を表示 date '+%s' # 指定日時のエポック秒を表示 date -d '2009-02-14 08:31:30' '+%s' # エポック秒を指定して書式指定して表示 date -d @1234567890 '+%Y-%m-%d %H:%M:%S' # 1日前を表示 date --date '1 day ago'
# ディスクの空き容量表示 df
# ファイルの差分表示 diff ファイル1 ファイル2 # 空白の数の違いを無視して比較 diff -b ファイル1 ファイル2 # 空白を無視して比較 diff -w ファイル1 ファイル2 # 空行を無視して比較 diff -B ファイル1 ファイル2 # 大文字小文字を無視して比較 diff -i ファイル1 ファイル2 # 行末のCRを無視して比較 diff --strip-trailing-cr ファイル1 ファイル2
# ファイルのディレクトリ部分を出力(本体部分はbasename) dirname ファイルパス
# カレントディレクトリの使用量表示 du -sh # 配下のディレクトリとファイルの使用量をキロバイト単位で大きい順に表示 du -sk * | sort -rn # 配下のディレクトリの使用量をキロバイト単位で大きい順に表示 du -k --max-depth=1 | sort -rn
# 文字列を出力 echo 文字列 # 最後に改行を付けずに文字列を出力 echo -n 文字列
# 環境変数を表示 env
# 環境変数の設定 export 変数名=値 # 環境変数の削除 export -n 変数名 # 日本語ロケールを設定する export LANG=ja_JP.UTF-8
# 計算結果を出力 expr 1 + 2 + 3 # 計算結果を変数に代入 ANS=$(expr 1 + 2 + 3) # 計算結果を変数に代入 ANS=`expr 1 + 2 + 3`
# SELinuxの状態を確認する getenforce
# ユーザーをグループに追加する gpasswd -a ユーザー名 グループ名 # ユーザーをグループから削除する gpasswd -d ユーザー名 グループ名
# 検索文字列が含まれる行を表示する grep 検索文字列 ファイルパス # 大文字・小文字を無視して、検索文字列が含まれる行を表示する grep -i 検索文字列 ファイルパス # 検索文字列が含まれない行を表示する grep -v 検索文字列 ファイルパス # 検索文字列が含まれる行の行数を表示する grep -c 検索文字列 ファイルパス # 検索文字列が含まれる行を行番号付きで表示する grep -n 検索文字列 ファイルパス # 検索文字列が含まれるファイルのファイル名を表示する find . -name '*.html' | xargs grep -l 検索文字列 # 検索文字列が含まれないファイルのファイル名を表示する find . -name '*.html' | xargs grep -L 検索文字列 # UTF-8のBOM付きのファイルのファイル名を表示する grep -rl $'\xEF\xBB\xBF' .
# MD5形式のパスワードハッシュを表示 grub-crypt --md5 # SHA-256形式のパスワードハッシュを表示 grub-crypt --sha-256 # SHA-512形式のパスワードハッシュを表示 grub-crypt --sha-512
# ファイルの先頭を表示(末尾はtail) head ファイル # 指定行数分を表示 head -n 行数 ファイル
# コマンド実行履歴を表示 history # コマンド実行回数を表示 history | awk '{print $2}' | sort | uniq -c | sort -rn
# IPアドレスを表示 host ホスト名
# Apacheの基本認証用のパスワードファイルを作成 htpasswd -c パスワードファイル ユーザー名 # ユーザーを追加、更新 htpasswd パスワードファイル ユーザー名 # パスワードをMD5で保存する htpasswd -m パスワードファイル ユーザー名
# シフトJISのファイルをUTF-8に変換 iconv -f SHIFT_JISX0213 -t UTF8 ファイル # エンコーディングの一覧を表示 iconv --list
# IDと所属グループを表示 id # 指定アカウントの情報を表示 id アカウント名
# ネットワークインターフェースの情報を表示 ifconfig
# プロセスの停止(プロセスIDはpsで分かります) kill プロセスID # プロセスの強制停止 kill -9 プロセスID
# アカウントごとの最終ログイン日時を表示 lastlog # 30日以上ログインしていないアカウントの一覧を表示 lastlog -b 30 # 30日以内にログインしたアカウントの一覧を表示 lastlog -t 30
# テキストファイルを1画面ずつ表示 less ファイル Shift+Fでtail -fと同等の表示(Ctrl+Cで抜ける) :nで次のファイルを開く :pで前のファイルを開く
# シンボリックリンクを作成 ls -s ターゲット 名前
# ファイルの詳細情報を表示 ls -l # 新しいファイルを下に表示 ls -ltr # ファイルサイズを読みやすく表示 ls -lh
# コマンドのマニュアルを表示 man コマンド # crontabコマンドの第5セクションを表示 man 5 crontab
# ディレクトリーを作成 mkdir ディレクトリー # 複数階層のディレクトリーを作成 mkdir -p ディレクトリー1/ディレクトリー2
# テキストファイルを1画面ずつ表示 more ファイル
# ファイルやディレクトリの移動(コピーはcp) mv 移動元 移動先 # 上書き確認しながら移動 mv -i 移動元 移動先
# プロセス一覧を表示 ps # システム全体のプロセス一覧を表示 ps -ef
# パスワードの変更 passwd # 指定アカウントのパスワード変更 passwd アカウント名
# カレントディレクトリの表示 pwd
# 逆順にして表示(行単位) rev ファイル
# ファイルを削除 rm ファイル # 削除確認しながらファイルを削除 rm -i ファイル # ディレクトリを中のファイルごと確認なしで削除 rm -fr ディレクトリ
# ディレクトリを削除(中にファイルがあると消せない。まとめて消す場合はrm) rmdir ディレクトリ
# SHA1チェックサムの出力 sha1sum ファイルパス
# SSHの秘密鍵・公開鍵の作成 ssh-keygen -t rsa -C コメント
# ファイルパーミッションを8進数で表示 stat -c%a ファイル # ファイルサイズを表示 stat -c%s ファイル # ファイル所有者を表示 stat -c%U ファイル
# root権限でコマンドを実行する sudo コマンド # rootになる(root権限でシェルを実行する) sudo -s # 他のアカウントでシェルを実行する sudo -u アカウント名 -H -s sudo -u アカウント名 -H /bin/bash
# ファイルの末尾を表示(先頭はhead) tail ファイル # 指定行数分を表示 tail -n 行数 ファイル # ファイルの更新を監視して、表示を更新 tail -f ファイル
# ファイルの末尾を表示し、その後の追加行を随時表示 # (tail -fとほぼ同じ。tailfはファイル未更新時のディスクアクセスがない) tailf ファイル
# コマンドの実行時間を計測 time コマンド
# CRを削除する tr -d '\r' < src.txt > dest.txt
# 別名の削除(コマンドに別名をつけるのはalias) unalias 別名
# ファイルの展開(ファイルの圧縮はzip) unzip ファイルパス # ファイルの情報を表示 unzip -Z ファイルパス
# ユーザーを作成する(ユーザーの削除はuserdel) useradd アカウント名 # ログイン不要のユーザーを作成する useradd -M -s /bin/false アカウント名
# ユーザーを削除する userdel アカウント名(ユーザーの作成はuseradd) # ユーザーのホームディレクトリーを一緒に削除する userdel -r アカウント名
# システム起動からの経過時間を表示 uptime
# ファイルを読み取り専用で開く view ファイル
# sudoersファイルを編集する visudo
# コマンドを5秒間隔で実行する watch -n 5 コマンド名 # コマンドを5秒間隔で実行して、変更部分をハイライトする watch -n 5 -d コマンド名
# 行数、単語数、バイト数を表示する wc ファイルパス # 行数を表示する wc -l ファイルパス
# コマンドのパスを表示する which コマンド名 # コマンドのパスをすべて表示する which -a コマンド名
# アカウント名を表示する whoami
# パッケージをインストールする yum install パッケージ名 # 質問にはすべてYESで答える yum -y install パッケージ名 # パッケージの一覧を表示する yum list # 更新可能なパッケージの一覧を表示する yum check-update # パッケージをアンインストールする yum remove パッケージ名
# ファイルを圧縮する(ファイルの展開はunzip) zip data.zip ファイル1 ファイル2 # ディレクトリ内のファイルを圧縮する zip -r data.zip ディレクトリ
# シェルスクリプトの配置ディレクトリを取得する BASE_DIR=$(cd $(dirname $0); pwd)
# LFをCRLFに置換する perl -p -e 's/\n/\r\n/' lf.txt > crlf.txt
# 直前のコマンドを実行する !! # n番目のコマンドを実行する(番号を見るのはhistory) !n # 直前のコマンドのaをbに置換して実行する ^a^b !!:s/a/b/ # n番目のコマンドのaをbに置換して実行する !n:s/a/b/
# 簡易Webサーバー plackup -MPlack::App::Directory -e "Plack::App::Directory->new->to_app" -p 8080