株式会社リゾーム 技術部 システム開発 第1グループの岩﨑です。 「Linux標準教科書」読書会の第3回レポートです。第2回目のレポートはこちらになります。
読書会の題材
前回に引き続きLinux標準教科書を題材としています。
3回目レポート
今回は4章「正規表現とパイプ」で、参加者は6名でした。
それぞれの感想・意見交換
リダイレクト
- 使う機会がなかったから忘れてた
- こういうのがあるくらいの認識で、実際に使ったことはなかった
- catコマンドとリダイレクトで内容を直接書き込んでファイルを作成できることは知らなかった
- catで自由なファイル作成を出来る事は初めて知ったが、viエディタでいいかなー
- catでファイル指定せずにいきなりリダイレクトすると、自由な内容でファイルを作れるのは知らなかった
- shellで適当なファイルを丸ごと書き換えたいときに便利かもしれない
- 適当な文字列を入れたファイルを作りたい時とかに使う
- $ echo test > test.txt
- zshrcにパスを追加する時によく使う
- viエディタが使えない環境だとcatコマンドとリダイレクトでファイルの編集をしたりする
- DBにデータを流すときに使う
標準エラー出力
- 標準出力と標準エラー出力をリダイレクトできることをそもそも知らなかった
- エラー内容をファイルに出力はやった事がなかった
- リダイレクトで標準出力か標準エラー出力どちらをファイルに出力させるか指定できるのは知らなかった
- 標準出力と標準エラー出力を同じリダイレクト先を指定したりするのはまあまあややこしい気がする
- 標準出力を捨てる場合、/dev/null にリダイレクトしたりする
- シェルスクリプトでログ取る時とかに便利そう
パイプ
- 初めて知った
- あまり使ってない
- 実行中のプロセスを表示してkillする時によく使う
- $ ps aux | grep プロセス名
- パイプ前のコマンドをパイプ後の標準入力とする
- grepコマンドと組み合わせて使うことが一番多いかな
- 複数行に渡るコマンドの実行結果やgrepで絞り込んだ結果をパイプでつなげて、lessで表示させたりする
- ワンライナーで書きたい時に使ったりする
- Docker, Github Action, CIを触ってると使うと思う
- 本番環境で調査したりする時に使う
grepコマンド
- パイプと同じく初めて知った
- 確かにデスクトップ環境が無い場合にはこういったコマンドがあると助かりそうなイメージが浮かぶ…
- grepはパイプとの組み合わせの代表的なコマンド
- 卒業研究で使った
正規表現
- 業務でもたまに使うことがあるが、毎回忘れていてそのたび調べている
- 正規表現あたりの記法は覚えづらく使うたびに調べている
- そこまで使う機会がないから使うときに軽く調べたりする
- &や?などの記号を変換する処理で使ったりする
- URLで使えない文字、記号の変換など
- [^abc] は abc 以外の文字を持っていればマッチ
- "defg" => match
- "abcd" => match ←これがマッチしないと勘違いしがち
- "abc" => unmach
- 否定先読みができないっぽいので「~を含まない行」みたいなのを探すときに苦労しそうだなと思った
- 一括で置換したい時とか、なにかとよく使うので、覚えておくといろいろ便利
- ログから抽出する際に使う
- Userエージェントからブラウザを確認する際に使う
まとめ
本章では実務でどういった使い方をするかを中心に意見交換ができたかと思います。 私自身Linuxを触った経験がほぼないため、本章で学んだパイプやgrepコマンドについてぼんやりとしたイメージしか持っていませんでしたが、意見交換を通じて具体的な使用方法などを理解することができました。 また正規表現はプログラムを記述するときにも活用できるため、気を付けるべきところ等をしっかりと整理して次の章に進みたいと思います。
次回は第5章「基本的なコマンド 2」です。