つぶやきテック

日々のつぶやきアウトプット

つぶやきメモーLinuxコマンド篇【随時更新】

sed:テキストファイルをフィルター処理で編集

sedコマンドとは

  • "Stream EDitor"の略です。
  • 指定したファイルをコマンドに従って処理し、標準出力へ出力します。
  • ファイル名を省略した場合は、標準入力からのデータを処理します。

書式:

sed [option]
sed [option] (スクリプトコマンド) (入力ファイル)

sed の主なオプション

オプション 長いオプション 意味
-i --in-place ファイルを直接編集する
-e --expression=(スクリプト) スクリプト(コマンド)を追加する

env:環境変数を一時的に設定しコマンド実行

envコマンドとは

  • 環境変数に特定の値を指定して、後に続くコマンドを実行します。
env (環境変数名)=(値) (コマンド)

envの主なオプション

オプション 長いオプション 意味
-i --ignore-enviroment 環境変数が設定されていない状態でコマンド実行
-u (変数名) --unset=(変数名) 指定した環境変数が設定されていない状態でコマンド実行

curl:手軽にHTTPリクエスト

curlコマンドとは

  • 様々なプロトコルを使用して、データ転送を実行できます。
curl (リクエストURL)

curlの主なオプション

オプション 意味
-X リクエストメソッドの指定
-H ヘッダの変更
-d コンテンツの変更
-v 通信詳細の出力
-f 終了コード変更*1
-o レスポンスボディの出力先のパスを指定
-L リダイレクトを有効にする

使用例:

$ curl -v -H "content-type: application/json" -X POST -d'{"gohann":"suki", "oyatsu":"daisuki"}' http://sample.org/post

*   Trying xxx.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to sample.org (xxx.xxx.xxx.xxx) port xx (xx)
> POST /post HTTP/1.1
> Host: sample.org
> User-Agent: curl/7.64.1
> Accept: */*
> content-type: application/json
> Content-Length: 41
> 
* upload completely sent off: 41 out of 41 bytes
< HTTP/1.1 200 OK
< Date: Mon, 30 Mar 2020 xx:xx:xx GMT
< Content-Type: application/json
< Content-Length: 486
< Connection: keep-alive
< Server: xxxxxxxx/xxxxxxxx
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< 
{
  "args": {}, 
  "data": "{\"gohann\":\"suki\", \"oyatsu\":\"daisuki\"}", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Content-Length": "41", 
    "Content-Type": "application/json", 
    "Host": "sample.org", 
    "User-Agent": "curl/7.64.1", 
    "X-Amzn-Trace-Id": "Root=12345678901234567890"
  }, 
  "json": {
    "gohann": "suki", 
    "oyatsu": "daisuki"
  }, 
  "origin": "xxx.xxx.xxx.xxx", 
  "url": "http://sample.org/post"
}
* Connection #0 to host sample.org left intact
* Closing connection 0

*1:通常、curlはエラーになっても何食わぬ顔で正常終了します(終了コード0)。-fオプションをつけることで、異常終了時に終了コード22で終わるようになります。