はじめに

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

おわりに

いかがでしたでしょうか。 コマンドを使いこなせるようになれば、ちょっとした集計やデータの確認が捗るようになります。
便利そうだなと思ったコマンドがあれば是非覚えて使ってみてください。