1つのコマンドですべてのLinuxシェルコマンドを一覧表示する方法
実は、Linuxシェルが認識しているすべてのコマンドを一覧表示できるコマンドが存在します。しかし、その存在を知っているユーザーは意外と少ないのが現状です。GNU/LinuxベースのOSのコマンドライン操作において、これほど逆説的な「キャッチ22」は他にないでしょう。とはいえ幸いなことに、シェルが直接教えてくれなくても、このコマンドを習得するのは非常に簡単です。
まず、Ctrl+Alt+Tキーを押してコマンドライン(端末)を開きましょう。Xfce4、KDE、LXDEを使用している場合は、アプリケーションメニューから「システムツール」をクリックし、「端末」を選択します。Ubuntu Unityの場合は、Dashで「Terminal」と検索すればOKです。もちろん、従来型の仮想端末環境からでも同様に操作できます。
方法1:compgenシェル組み込みコマンドでコマンド一覧を表示する
コマンドラインで compgen -c | more と入力すると、実行可能なすべてのコマンドが一覧表示されます。スペースキーを押すたびに、次のページへとスクロールしていきます。このユーティリティは「コマンド」の定義が非常に広いため、単体で入力しても動作しない記号類までリストに含まれる点に注意してください。これらは主に、長いコマンドをつなぎ合わせるために使われるものです。
最新のターミナルエミュレータを使っているなら、画面から流れてしまった出力も上方向にスクロールして後から確認できます。目的のコマンドが見つかったら、qキーを一度押せばすぐにプロンプトに戻れます。なお、compgenはbashの組み込みコマンドなので、AlmquistシェルやCシェルでは使用できない点にご注意ください。
compgenには他にも便利なオプションがいくつか用意されています。ただし、シェル組み込みコマンドのため専用のmanページが存在せず、使い方を調べるのに少し苦労するかもしれません。幸い、各オプションは覚えやすいものばかりです。compgen -a で登録済みの全エイリアスを表示、compgen -b でその他のシェル組み込みコマンドの一覧、compgen -k でキーワードの一覧をそれぞれ取得できます。さらに詳しく知りたい場合は、man builtins と入力してbashシェルのマニュアルページを参照しましょう。
このマニュアルページは、bashが単独で実行できるすべての機能について言及しているため非常に長くなっています。「/compgen」と入力してEnterキーを押すと検索できます。最初の該当箇所だけがハイライトされるので、「/」と入力して再度Enterキーを押すと、compgenプログラムの機能を解説した段落が見つかるはずです。
ちなみに、compgen -c | moreですべてのコマンドを見やすく表示するのと同じように、組み込みコマンドの一覧も compgen -b | more とすることで、出力が画面から流れ落ちるのを防げます。その他のオプションはそれほど大量の出力を生成しないはずです。とはいえ、最新のターミナルエミュレータを使用していれば、出力が画面外に流れたとしても自由にスクロールして確認できます。
方法2:Tabキーのトリックを使う
bashプロンプトでTabキーを2回押すと候補が表示される機能をご存じの方は多いでしょう。コマンドの一部を入力してTabキーを押せば、残りの部分を自動的に補完してくれます。多くのユーザーは、階層の深いディレクトリへの移動や長いファイル名の指定時に、この機能を日常的に活用しているはずです。
そして、ある特定のコマンドを使えば、このトリックでシステム上のすべてのコマンドを表示させることができます。bash --norc と入力してEnterキーを押すと、最も基本的な状態のbashセッションが起動します。これは、多くのディストリビューションが初期状態でこの機能を無効化しているためです。プロンプトがかなり簡素なものに変化したことに気づくでしょう。ここで何も入力せずに、Tabキーを2回押してみてください。
候補をすべて表示するかどうか尋ねられるので、yキーを押します。すると、システム上のすべてのコマンドの一覧が表示されます。目的のコマンドが見つかったらqキーを押してください。これは普段目にするbashの候補リストとまったく同じ仕組みなので、同じ要領で問題なく操作できます。前述のcompgenによるリストと異なり、パイプで何かに渡さなくても自動的にソートされた状態で表示されるのが大きな特徴です。
新しいセッションから抜けたいときは、exitと入力するだけで元のプロンプトに戻れます。
著者について

Kevin Arrows(ケビン・アローズ)
Kevin Arrowsは、10年以上の業界経験を持つベテランの技術専門家です。Microsoft認定テクノロジースペシャリスト(MCTS)の資格を保有し、最新の技術動向を追いかけることに強い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど、幅広い技術分野について数多くの記事を執筆しており、複雑な技術的概念を明確かつ簡潔に説明する能力で同業者から高い評価を得ています。
-
Linuxで.tarファイルを展開する方法:コマンドラインとGUI両対応のステップバイステップガイド
LinuxやFreeBSD、その他のUnix系OSを日常的に扱っていると、「.tar」という拡張子を持つファイルによく出会います。中には「.tar.gz」や「.tar.bz2」のように、さらに別の拡張子が付いていることもあります。意外なことに、経験豊富なユーザーでもコマンドラインからの展開方法を知らないケースがあり、逆にコマンドライン中心で作業してきたユーザーの中には、多くのデスクトップ環境ではGUI操作でも展開できることを知らない人もいます。 技術的に言えば、tarは「tape archive(テープアーカイブ)」の略称で、かつて大型コンピュータ(メインフレーム)で磁気テープへのバックアップ
-
BusyBoxのバージョンとインストール済みアプレットを数分で確認する方法
BusyBoxは、多数の小型Unixユーティリティを1つのバイナリにまとめた便利なマルチコールツールです。軽量Linuxディストリビューションには標準のコマンド群が含まれていないことが多く、そうした環境で特に重宝します。さらに、UbuntuやFedoraのような主要ディストリビューションのユーザーでも、必要なプログラムがインストールされていない場合に活用できます。BusyBox自体を呼び出すだけで、現在のバージョン番号と利用可能なアプレットの一覧を簡単に確認できるのです。作業には仮想端末(ターミナル)を開く必要があります。Ctrl + Alt + Tを同時に押すか、Ubuntu Unity D