コマンド一覧
そこまで利用する機会がなかったが最近触れることが多くなってきたため、
利用するものを適宜まとめてみた。
base64
base64のエンコード/ デコードが可能。
-dをつけるとデコード、なしでエンコード。jwtをデコードするのに使える。
bash
シェルスクリプトファイルを実行するコマンド。ファイルの保存場所を指定する必要あり。
shを代わりに使用することも可能。
例:
$ bash test.sh
オプション | 概要 |
---|---|
-x | スクリプト内で実行されたコマンドおよびそれに利用された変数を表示。 |
-v | スクリプト内に記述されているコマンドがそのまま表示される。-xと違い変数の値は明示されない。 |
-f | -f ファイル名 で利用し、ファイルがあればtrueとなる。 |
curl
データの送受信を様々な通信プロトコルで行えるコマンド
オプション | 概要 |
---|---|
-d | POST メソッドでリクエストを送る。ここで定義したデータを Request Body に入れる。 |
-v | スクリプト内に記述されているコマンドがそのまま表示される。-xと違い変数の値は明示されない。 |
-f | -f ファイル名 で利用し、ファイルがあればtrueとなる。 |
-H | リクエストヘッダーを設定 例: $ curl -H 'hogeKey : hogeValue' localhost:8080/hoge/hoge
|
-X | HTTPメソッドの指定 |
echo
文字列や数値、変数を表示するコマンド。
ファイル出力にも用いることができる。
例1:
$ sample=700
echo $sample
例2:
$ echo "Hello World" >> test.txt
$ cat test.txt
Hello World
※ >> は追記。 > は上書き。
オプション | 概要 |
---|---|
-e | escape文字を有効化する。改行がある場合などはこのオプションが必要。 |
export
シェル変数を環境変数としてエクスポートするのに使う。
オプション | 概要 |
---|---|
-p | エクスポートされている環境変数のリストを表示 |
-n | 指定した環境変数を削除 |
grep
特定のファイルやスクリプトの出力から文字列を抽出するのに用いるコマンド。
例:
$ echo -e "ab\ncd\neftestgh" | grep *test*
eftestgh
オプション | 概要 |
---|---|
-v | 一致しない文字列検索に用いる |
-i | 大文字小文字を区別しない |
-n | マッチした文字列がある行番号を表示 |
-数字 | 指定した数字だけ該当行の前後を表示 |
--color=オプション | 該当部分やファイル名を色付けできる。オプションの部分には以下が指定可能。 never:色なし auto:可能なら色付け always:いつでも色付け |
find
ファイルやディレクトリを検索するコマンド。
例:
$ find /Users/taro/Desktop/* -name test.txt
/Users/taro/Desktop/tmp/test.txt
オプション | 概要 |
---|---|
-name | ファイルやディレクトリ名の一部を利用した検索ができる。 |
-type f | ファイルのみを指定できる |
-type d | ディレクトリのみを指定できる |
-and | 複数の条件を指定してすべてに当てはまるものを検索できる |
-or(-0) | 複数の条件を指定して一部が当てはまるものを検索できる |
-prune | 指定したディレクトリ以下が検索されなくなる。-oオプションを一緒に使うことで、指定したディレクトリ以外のファイルが検索される。 |
-print0 | スペースやタブなどの区切り文字が\0(ヌル文字)に変更される。 |
-exec | 実行結果を他のコマンドに渡す。次のどちらかを使う。 ・find -exec コマンド {} ; ・find -exec コマンド {} +; 前者は結果を一つずつ渡すのに対し、後者は結果をまとめて渡す。前者を使うのであれば実行時間の面でxargsの方が推奨らしい。 |
script
コマンド操作による作業ログを記録することができるコマンド。
記録を終了したいときはexit
コマンドを実行する。
例:sample.logに作業ログを残す
$ script sample.log
sed
文字列の置換/ 抽出/ 削除などのテキスト処理ができるコマンド。
例:AAをBBに置換
$ sed -e "s/AA/BB/"
オプション | 概要 |
---|---|
-i | ファイル名を指定するとそのファイルを読み込んで、結果をそのファイルに上書きできる。 |
-e | -e直後に置換処理や行の削除、選択の処理内容が来ることを意味する。省力も可能でその場合はオプション以外の最初の引数が処理内容とみなされる |
jq
JSONフォーマットのデータから値を抽出/ 集計/ 整形表示できるJSON用のコマンド。
$ echo '{"items":[{"item_id":1,"name":"テスト1"},{"item_id":2,"name":"テスト2"}]}' \
| jq '.items[].name'
"テスト1"
"テスト2"
jq コマンドに-rオプションをつけることでダブルクォーテーションが取り除ける。
オプション | 概要 | 例 |
---|---|---|
-s | すべての入力を配列として読み込み、それに対してフィルタを適用できる。 | |
'.hoge | sort_by(.id)' | 指定した項目でソート | jq '.hoge | sort_by(.id)' |
| @csv | csv形式で出力 | echo '[{"item_id":1,"name":"テスト1"},{"item_id":2,"name":"テスト2"}]' | jq -r '.[] | [.name] | @csv' |
awk
テキストファイルを行単位で処理できる。
csvファイル
リンゴ,バナナ,イチゴ
ブドウ,ライチ,マンゴー
パイン,モモ,ドリアン
例:
$ awk -F ',' '{print $1,$2}' test.csv
リンゴ バナナ
ブドウ ライチ
パイン モモ
eval
コマンド実行文字列を引数で受け取り、その引数をコマンドラインで実行できる。
詳しい用途はこちらを参考。
evalコマンドにはオプションがない。
xargs
前のコマンドの実行結果を次のコマンドの引数として橋渡しできる。
例:
$ find . -name "*.txt" | xargs rm -fv
オプション | 概要 |
---|---|
-0 | 区切り文字をNULL文字 ( \0 ) に変更する。xargsでは改行や空白、タブ文字を区切り文字として扱う |
wc
テキストファイルの行数/ 単語数/ 文字数を数えるコマンド。
余談
使っていて疑問に思ったこと
オプション指定時の-と--の違い
こちらの記事を参照。