YakstYakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。(日本語訳)コマンドラインで素早い操作ができるのは、優れたエンジニアの資質の一つとも言える。そのためのテクニックを集めた珠玉のコマンド集。目立たないが便利なものさらなるリソース免責事項コマンドラインで流れるように操作ができるということは、軽く見られたり他人から理解されないスキルだとみなされることもあるでしょう。そのスキルは、明らかにかすぐ分かるようかは問わず、エンジニアとしてのあなたの柔軟性や生産性を改善してくれるものです。ここでは、Linuxでコマンドラインを使う上で便利だと思ったメモやTipsの数々を挙げてみます。あるものは基礎的ですが、非常に詳しいもの、洗練されたもの、曖昧なものもあります。このページはそんなに長いものではないですが、ここに書いてあることの全てを使ったり思い出すことができれば、かなり詳しくなれるでしょう。原文はGithub上にあります)。:このガイドは、初心者向けでも経験者向きでもあります。幅広く(書いてあることは全て重要)、かつ明確で(多くのケースに対して具体的な例を付ける)、そして簡潔(他の場所で見つけられるような重要でないことや脱線したことは省く)であることをゴールにしています。各項目は、多くの場面において必須であるか、他の方法に比べて劇的に時間を節約してくれるでしょう。Linux向けに書いています。多くはMacOS(あるいはCygwin)でも使えますが、全部ではありません。インタラクティブなBashを使うことを想定していますが、多くの項目は他のシェルやBashのスクリプトでも使えるでしょう。:1ページ内に収めるために、内容には暗黙的に書かれていることがあります。ここで取りかかりを知ったりコマンドが分かれば、詳細をどこかで調べたりするくらいはできるでしょう。新しいプログラムをインストールするには、apt-get/yum/dnf/pacman/pip/brew(どれか適したもの)を使いましょう。コマンドやオプション、パイプを分解して理解する手助けに、Explainshellを使おう。基本的なBashを学ぼう。bashは結構簡単に理解できるしそんなに長くないので、これで一通りのことは分かる。それ以外のシェルもよいが、Bashは強力だし、常に使用可能であるという利点もある(自分のPCに入れてしまったと言ってzshやfishなどだけを学んでしまうと、既存のサーバを触らなくてはならない時などに制約が出てしまう)。テキストエディタのどれか最低1つに習熟しよう。ターミナル内で適当にものを書くにあたって他に全く代替品がないという点で、理想的にはVim(vi)がよいだろう(通常はEmacsや高機能なIDEや最新のかっこいいエディタをメインに使っていたとしても)。manでセクション番号が分かる。1は「一般的な」コマンド、5はファイルやそのお作法、8は管理についてといった具合)。aproposでmanページを探そう。-dでヘルプが見られることを知ろう。>や<、|を使ったパイプによる入出力のリダイレクションを学ぼう。stdout(標準出力)とstderr(標準エラー出力)を学ぼう。*(または?や{...})を使ったファイルグロブ展開、クォーテーション、ダブルクォート"とシングルクォート'の違いを学ぼう(詳しくはこの後の変数展開の項を参照)。&、ctrl-z、ctrl-c、jobs、fg、bg、killなど、Bashのジョブ管理について詳しくなろう。sshについて知るとともに、ssh-agentやssh-addを使ったパスワードなしの認証の基本について理解しよう。ファイル管理について。ファイルシステム管理については、df、mount、fdisk、mkfs、lsblk。基本的なネットワーク管理について。ipあるいはifconfig、dig。正規表現について詳しく知ろう。grepやegrepの色々なフラグも合わせて。-i、-o、-A、-Bといったオプションは知っておいて損はない。apt-get、yum、dnf、pacman(ディストリビューションによって違う)といったコマンドでパッケージを探したりインストールする方法を学ぼう。Pythonベースのコマンドラインツールをインストールするのに、pipも必要だ(後に出てくるいくつかのコマンドはpipでインストールするのが一番簡単)。日常的に使うものBashでは、引数を補完するのにタブを使い、コマンド履歴から検索するのにctrl-rを使う。Bashでは、最後の単語を削除するのにはctrl-w、行頭まで全て削除するにはctrl-uを使う。単語ごとに移動するにはalt-bまたはalt-f、行末まで削除するにはctrl-k、画面のクリアはctrl-l。readlineを参照。alt-.は前の引数を順番に表示し、alt-*はグロブを展開する。最近実行したコマンドを確認するならhistory。ctrl-rやalt-.で用は足りるだろうが、!$(直前の引数)や!!(直前のコマンド)といった省略形もたくさんある。-途中までコマンドを入力したけれど心変わりした時は、alt-#を打つと行頭に#が挿入され、コメントとして入力される(ctrl-a、#、enterでも同じ)。これは後でコマンド履歴から検索できる。xargs(またはparallel)を使おう。行ごとにいくつのアイテムを実行するか(-L)や、並列度(-P)も制御できる。echoしてみればよい。