[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Successor to CentOS] AlmaLinux OS server construction/migration service

[Successor to CentOS] AlmaLinux OS server construction/migration service

[For WordPress only] Cloud server “Web Speed”

[For WordPress only] Cloud server “Web Speed”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Reservation system development] EDISONE customization development service

[Reservation system development] EDISONE customization development service

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Compatible with over 200 countries] Global eSIM “Beyond SIM”

[Compatible with over 200 countries] Global eSIM “Beyond SIM”

[If you are traveling, business trip, or stationed in China] Chinese SIM service “Choco SIM”

[If you are traveling, business trip, or stationed in China] Chinese SIM service “Choco SIM”

[Global exclusive service] Beyond's MSP in North America and China

[Global exclusive service] Beyond's MSP in North America and China

[YouTube] Beyond official channel “Biyomaru Channel”

[YouTube] Beyond official channel “Biyomaru Channel”

【Linux コマンド】イカしたコマンド【ミニ使用例】

はじめに

こんにちは
システムソリューション部のインフラわっしょいマンです
今回は Linux まわりでのイカしたコマンドの使い方やオプションを紹介するぜ!

「イカした」とは何を指すのか。というところは個人の感覚に大きく左右されますが私 武田の目線から、見かけたら「おっ!やるぅ!ヒュー!」となるやつを簡単にいくつかあげられたらと考えています。

軽く例を挙げるならば

$ ps auxwwf | grep httpd | grep -v "grep”

これはイカしてないかなぁ。
長いよね、ちょっと。

$ ps auxwwf | grep http[d]

やっぱこうでしょ。
ヒュー!
別に短い = イカしてる というわけではないけども

※ ちなみに「イカした」は死語ではないです。
死んでいるのは「イケイケ」とか「バッチグー」とかです

個人的に好きなコマンドの紹介記事ですが息抜き程度にお楽しみください。

systemctl enable --now

これはイカしてます。
systemctl で start と enable を同時にぶち込むことができます。
つまり

$ systemctl start httpd
$ systemctl enable httpd

これをまとめて

$ systemctl enable --now httpd

これで OK です。
ヒュー!サクッと感あって good

ブレース展開でファイルバックアップ

ブレース展開はコマンドではなく bash の機能の一つですがこちらもうまく使えばイカした使い方ができます。
というかイカした使い方の宝庫みたいな機能ですが、1パターンだけ紹介します。

#日付ついたコピー
$ cp test.txt{,_$(date +%Y%m%d)}

# .org のついたコピー
$ cp test.txt{,.org}

このように 文字列A{,文字列B} とするとまず文字列Aが単体で出力され、その後ろに展開された文字列B が出力されます。

ややこしいですが
cp test.txt{,_$(date +%Y%m%d)} は展開されて cp test.txt test.txt_20230114 となります
(執筆日時:2023年1月14日)

コマンドと結果を見比べて、どういう動きか研究して自分だけのイカしたブレース展開してみてください。

lsof を利用したファイル復元

あ、やべえファイル rm しちゃった......
あきらめないで。ワンチャンあるかも。

rm コマンドは inode へのリンクを消すコマンドです。
inode へのリンクが全消失していなければ、つまりそのファイルを開いているプロセスが残っていればワンチャンあります。

下記はデモです。

$ echo "hogehoge" > hoge.txt
$ less hoge.txt

# less プロセス一時停止
Ctrl + z

# 削除
$ rm hoge.txt

# プロセス ID を取得
$ lsof | grep "hoge.txt"
less     92             takeda    4r      REG   8,16        9  1994 /home/takeda/hoge.txt (deleted)

# cp コマンドで復元
$ cp /proc/92/fd/4 ./fuga.txt

# 確認
$ cat fuga.txt
hogehoge

「/proc/{プロセスID}/fd/」から引っ張り出すのがポイントですね。
この場合、「イカしたコマンド」ってどれなんでしょう。

わかりません。
でもピンチを切り抜けるのはイカしていると言えるでしょう?

awk 1

これは中間証明書を結合するときによく使っています。
cat で証明書結合するとき最終行に改行コードが無くて

—–BEGIN CERTIFICATE—–
サーバ証明書ファイルの記述内容
—–END CERTIFICATE—–—–BEGIN CERTIFICATE—–
中間証明書ファイルの記述内容
—–END CERTIFICATE—–

みたいになることはないですか?

awk を使えば簡単です。
下記はデモです

$ cat test.pem
—–BEGIN CERTIFICATE—–
発行されたサーバー証明書ファイルの記述内容
—–END CERTIFICATE—–

$ cat test.ca
—–BEGIN CERTIFICATE—–
中間証明書ファイルの記述内容
—–END CERTIFICATE—–

$ awk 1 test.pem test.ca > test.chain
$ cat test.chain
—–BEGIN CERTIFICATE—–
発行されたサーバー証明書ファイルの記述内容
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
中間証明書ファイルの記述内容
—–END CERTIFICATE—–

イカすぜ!

awk は 「awk ‘パターン {アクション}’」 で表記されます。
そしてアクションが省略された場合、パターンにマッチしたレコードを表示してくれます。
これを利用し、「1 = true」のパターンを渡すことですべての行にマッチさせて、レコード単位(1行単位)で表示させることで、きれいに1行ずつ出力されるというわけです。

SQL インジェクションの例として有名な「WHERE id=‘hoge’ or ‘A’=‘A’」とおんなじ手口です。true を渡すのです。(例えが悪い?)

まとめ

ほんのちょっとでええ
ほんのちょっとイカしたコマンド使えたら、明日からもまた頑張れるやんか

ということで個人的にちょっと流行ったらいいなと思ってるコマンドの使い方をいくつか書いてみました。
そういうのお持ちの方はこっそり教えてください。(もしくは記事を書いてください。読みます。)

ありがとうございました。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
10
読み込み中...
10 票, 平均: 1.00 / 110
1,123
X facebook はてなブックマーク pocket
[2024.6.30 CentOS support ended] CentOS server migration solution

[2024.6.30 CentOS support ended] CentOS server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

The person who wrote this article

About the author

infrastructure wasshoi man

Belongs to the System Solutions Department.
She liked it and studied it every day, and luckily she was picked up by Beyond.
It's been nine years since she started thinking about whether to switch from her glasses to contacts.