はじめに
Linux/Mac には数多くの種類のコマンドがありますが、どんなコマンドがあってどういったことができるかは把握しづらいと思います。 そこで私が最近使った便利なコマンドをまとめました。 使用イメージがつきやすいよう、各コマンドには実行例を載せてあります。
この記事を読んで「こんなコマンドがあるのか!」や、「こういう使い方もあるのか!」など新しい発見があれば幸いです。
コマンド紹介
コマンド定期実行
指定した間隔毎にコマンドを実行
while true; do ; 実行コマンド; sleep 実行間隔; done;
もしくは
bash
watch -n 実行間隔 実行コマンド
例: 一秒ごとに hoge と表示
bash
while true; do ; echo hoge; sleep 1; done;
watch -n 0.1 echo 'hoge'
CSR ファイル確認
CSR ファイルの中身を確認
openssl req -text -noout -in CSR ファイル
Web アクセス
ヘッダのみ表示
curl -I URL
ヘッダを指定しつつ POST
curl -i -X POST -H "ヘッダ名:ヘッダ値" -d 'データ' URL
SSH トンネル
直接接続できない Web サーバ等に接続する場合。 踏み台を経由しローカルポートから Web サーバ IP アドレスの Web サーバポートに通信ができるようにする。
ssh -NL ローカルポート:Web サーバ IP アドレス:Web サーバポート 踏み台(SSH)IP アドレス
ヒアドキュメント
コピペしたテキストをエディタを介さず直接ファイルにする。
- 区切り文字はコピペ分に含まれない単語であれば何でも良い(_EOF_とした方が無難)
- コピペしたテキストが変数展開されないようにするためには、区切り文字をシングルクォートする
- 例では> ファイル名だが、>> ファイル名(追記)もできるし、パイプを使って他のコマンドに内容渡すこともできる
cat << 区切り文字 > ファイル名 コピペしたテキスト コピペしたテキスト コピペしたテキスト 区切り文字
awk
列を抜き出す
例: 2列目だけ
$ cat << __EOF__ | awk '{print $2}' 1 hoge 2 hage __EOF__
以下出力
hoge hage
sort
列を並び替える
例: 3列目を昇順ソート
$ cat << __EOF__ | sort -k 3 1 hoge 300 2 hage 100 __EOF__
以下出力
2 hage 100 1 hoge 300
find
ファイルを検索 よく下記用途に使います
- ファイル名で検索
bash find 検索パス -name ファイル名
例: hoge というファイルを/Users/ttakahashi/以下で検索bash find /Users/ttakahashi/ -name hoge
- 編集日時で検索
bash find 検索パス -mtime 日
例: 1日前までに変更されたファイルを/Users/ttakahashi/以下で検索bash find /Users/ttakahashi/ -mtime 1
- パイプを使って検索したファイルに対して操作
bash find 検索パス -type ファイルタイプ | 実行コマンド
例: /Users/ttakahashi/以下のファイルに対して、 DEL という行を削除
find /Users/ttakahashi/ -type f | xargs sed -i '/DEL/d'
名前解決
ドメインから IP を調べる
dig +short ドメイン名
ドメイン所有者情報
ドメインの所有者情報を調べる
whois gaprot.jp
ディレクトリ/ファイルサイズ
ディレクトリ/ファイルサイズを調べる
- 指定ディレクトリ/ファイルの合計サイズを表示
bash du -sh ディレクトリパス
- 指定ディレクトリ/ファイル毎の合計サイズを表示
bash du -sh ディレクトリパス/*
ファイルの先頭を表示
ファイルの先頭から指定行数分だけ表示
head -n 行数 ファイル名
ファイルの末尾を表示
ファイル末尾から指定行数分だけ表示
tail -n 行数 ファイル名
単語数や行数などを表示
行数を表示
wc -l ファイル名
パスワード付き zip を作成
zip -er zip ファイル名.zip zip 化ディレクター・ファイル
ディレクトリツリー表示
tree -N ディレクトリパス
ファイルのハッシュを表示
ファイルのハッシュを表示 (ファイルの比較に使える)
md5sum ファイル名
※ Mac の場合は md5コマンド
Web サーバ
Docker を使って Apache を動かす ドキュメントルートはカレントディレクトリを使う
docker run -it --rm -p 80:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
※特定の設定を使用したい場合は、次のオプションを追加
-v "$PWD"/httpd.conf:/usr/local/apache2/conf/httpd.conf
おわりに
いかがでしたでしょうか。 コマンドを使いこなせるようになれば、ちょっとした集計やデータの確認が捗るようになります。 便利そうだなと思ったコマンドがあれば是非覚えて使ってみてください。