背景

インフラエンジニアは、プロセスのメモリ上で何が起こっているかは実はあまりわからないくていい。それよりも、どうやってプロセスをうまく連携させるか、そういう大局的な視点がどうしても必要になる。 結局プログラムは何かを実現するための道具でしかない。道具を作るのはいいけど、インフラエンジニア版 何がいいたいかというと、道具と道具を組み合わせて何かをするという技を学ぶためには、shellを使えるようにならないとダメだという話だ。 shell芸人になれ。 なんか、すごい人はshellでワンライナーで全部解決していく。マジですごい。

参考文献

1日1問、半年以内に習得シェルワンライナー160本ノック 問題データリポジトリ

jqコマンド

jqこマンdのについて だいぶ使えるのではないか?

$ echo '{"items":[{"item_id":1,"name":"すてきな雑貨","price":2500},{"item_id":2,"name":"格好いい置物","price":4500}]}' \
| jq .
echo '{"items":[{"item_id":1,"name":"すてきな雑貨","price":2500},{"item_id":2,"name":"格好いい置物","price":4500}]}' \
| jq .items

こちらの結果はこうなります。

[
  {
    "item_id": 1,
    "name": "すてきな雑貨",
    "price": 2500
  },
  {
    "item_id": 2,
    "name": "格好いい置物",
    "price": 4500
  }
]

次の例

echo '{"items":[{"item_id":1,"name":"すてきな雑貨","price":2500},{"item_id":2,"name":"格好いい置物","price":4500}]}' \
| jq '.items[].name'

こんな感じで出力されます

"すてきな雑貨"
"格好いい置物"

という感じで、ほうほう、jqなかなか便利ではないか??ということですね。頭に入れておきましょう。

sedコマンド

selectコマンド

trコマンド

文字を置換したり、削除したりできるコマンド こちらをみてみよう 使用例

echo lion | tr lion bear

結果

bear

重複しているとダメらしい、、クソか。 しかしこういう使い方はするって話だ。

hostname | tr -d "\n"

date関数のすごい使い方

$ date "+%F"                      #年月日を出力
2022-02-28

$ date "+%T"                      #時分秒を出力
22:37:49

$ date '+%Y/%m/%d %H:%M:%S'       #年月日と時分秒を出力
2022/02/28 22:40:13

今回はこうやって使われていた。

date -d '1 years' '+%FT%T'