LoginSignup
0
1

More than 1 year has passed since last update.

業務でよく見るbashコマンド一覧

Last updated at Posted at 2022-03-15

コマンド一覧

そこまで利用する機会がなかったが最近触れることが多くなってきたため、
利用するものを適宜まとめてみた。

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

テキストファイルの行数/ 単語数/ 文字数を数えるコマンド。

余談

使っていて疑問に思ったこと

オプション指定時の-と--の違い

こちらの記事を参照。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1