私の~/.bash_aliasesを公開する

この記事は『CRESCO Advent Calendar 2021』 2日目の記事です。

技研のまつけんです。

UNIX/Linuxでbashを使っている場合、起動時に~/.bashrcが実行されます。そこに

という記述があれば、~/.bash_aliasesが実行されます。今回は、私のそれ (ちょっとした便利ツール的なaliasたち) を紹介します (一部は、既に以前の記事で紹介済みなので、それらについては今回は割愛します)。なお、aliasと一緒にfunctionも記述されていますが、そこは気にせず運用しています。

定番の確認関連

まずは、定番の確認系です。cp/mvは上書きは上書きの確認、rmは削除の確認をするのをデフォルトにし、確認不要のときだけ-fを付けるようにします。

ディレクトリ関連

cdコマンド用です。複数階層を戻りたい場合に便利です。最初のcd.は一見無意味ですが、カレントディレクトリを他のターミナルなどから削除・作り直しされたときに使います。

ちなみに、10階層分までのaliasをループで作る方法もあります。

続いて、ディレクトリ操作です。再帰的に書き込み禁止にしたり、書き込み可能にします。前者は全ユーザの書き込みを禁止(a-w)しますが、後者は所有者だけが対象 (u+w) です。

検索関連

以前の記事でalljpg (.jpgと.jpegを検索) を紹介しましたが、それの応用形です。

必要なら、お好みで| sortを追加するか、allxx | sortで使ってください。また、こちらは検索した上でgrepするものです。qは以前の記事で紹介した「行頭と行末に’を付ける」です。

なお、こちらのfind_by_extを使えば、allmovieはfind_by_ext mov avi mp4 wmvと記述できます。

文字列操作

CSV/TSVファイルなどを「cut -d , -f 列番号」などで処理するときなどに使う文字列操作です。

実行結果:

コンマは18桁まで対応します。小数の先頭のゼロを残すかどうかは好みが分かれるところですね (-e ‘s#^.#0.#’を追加すれば残せます)。

こちらは、スクリーンサイズ (使用中のターミナルのウィンドウの横幅) に合わせてcutするものです。各行が長いテキストファイルなどを狭いウィンドウで見るときに、例えば、cat /etc/passwd | cutscrのように使います。

プロセス操作関連

jupyterのプロセスを纏めて落とすために作りました。

Subversion関連

割とタイプ量が多いので。

Cygwin用

いつも、hostsファイルの場所を忘れてしまうので。

まとめ

以上が、現在の私の.bash_aliasesになります。よろしければ、使ってみてください。今後、アップデートなどがありましたら、また記事にしたいと思います。