Linux, コマンド · 1 min read · Nov 12, 2025

Linux コマンドラインナビゲーションのヒントとコツ - パート 1

コマンドラインを Linux で使い始めたばかりの場合、それが OS の最も強力で便利な機能の一つであることを知っておく価値があります。学習曲線は、トピックにどれだけ深く入りたいかによって急である場合もあれば、そうでない場合もあります。しかし、専門知識のレベルに関係なく常に役立つ Linux コマンドラインのヒントやコツがいくつかあります。

この記事シリーズでは、そのようなヒントやコツをいくつか紹介し、コマンドラインの体験をさらに快適にすることを期待しています。

Linux コマンドラインのヒント/コツ

コマンドラインの基本、例えば root とホームディレクトリが何であるか、環境変数とは何か、ディレクトリのナビゲート方法などを知っていると仮定しています。また、ヒントやコツは、関係する概念の「どのように」や「なぜ」とともに提供されることに注意してください(適用可能な場合)。

2 つのディレクトリ間を簡単に切り替える - クイックヒント

コマンドラインで作業していて、2 つのディレクトリ間を何度も切り替える必要があるとします。そして、これらの 2 つのディレクトリは、例えば /home/ と /usr/ の下にそれぞれ完全に異なるブランチにあります。あなたはどうしますか?

最も簡単なオプションは、これらのディレクトリへの完全なパスを入力して切り替えることです。このアプローチ自体には問題はありませんが、非常に時間がかかります。別のオプションは、2 つの別々のターミナルを開いて作業を続けることです。しかし、これも便利ではなく、見た目も優雅ではありません。

この問題には簡単な解決策があることを知って嬉しいでしょう。最初に 2 つのディレクトリ間を手動で切り替え(それぞれのパスを cd コマンドに渡すことによって)、その後の切り替えは cd - コマンドを使用して行うことができます。

例えば:

私は次のディレクトリにいます:

$ pwd  
/home/himanshu/Downloads

そして、/usr/ ブランチの別のディレクトリに切り替えました:

cd /usr/lib/

今、次のコマンドを使用して簡単に行き来できます:

cd -

以下は、cd - コマンドの動作を示すスクリーンショットです。

Linux cd コマンド

ここで言及する価値のある重要なポイントは、これらの間に 3 番目のディレクトリに切り替えた場合、cd コマンドは新しいディレクトリと切り替え元のディレクトリに対して機能するということです。

2 つのディレクトリ間を簡単に切り替える - 関連詳細

cd - コマンドがどのように機能するかを知りたい好奇心旺盛な方々のために、説明します:ご存知の通り、cd コマンドは引数としてパスを必要とします。さて、ハイフン (-) がコマンドに引数として渡されると、その時点で OLDPWD 環境変数が持つ値に置き換えられます。

cd コマンドの説明

これまでに明らかになったように、OLDPWD 環境変数は前の作業ディレクトリのパスを保存します。この説明は cd コマンドの man ページにありますが、残念ながら、システムに事前にインストールされていることは少ないでしょう(少なくとも Ubuntu にはありません)。

しかし、インストールするのは大したことではなく、次のコマンドを実行するだけです:

sudo apt-get install manpages-posix

その後、次のようにします:

man cd

man ページが開くと、次のように明確に記載されています:

- ハイフンがオペランドとして使用される場合、これは次のコマンドと同等である:  
 cd "$OLDPWD" && pwd

言うまでもなく、OLDPWD 変数を設定するのは cd コマンドです。したがって、ディレクトリを変更するたびに、前の作業ディレクトリがこの変数に保存されます。ここで別の重要なポイントに触れます:新しいシェルインスタンスが起動されると(手動またはスクリプトを通じて)、それには「前の作業ディレクトリ」がありません。

これは論理的です。なぜなら、この変数を設定するのは cd コマンドだからです。したがって、少なくとも一度 cd コマンドを実行するまで、OLDPWD 環境変数には値が含まれません。

次に進むと、直感に反するかもしれませんが、cd -cd $OLDPWD コマンドはすべての状況で同じ結果を生み出すわけではありません。具体的には、新しいシェルが起動されたときです。

上記のスクリーンショットから明らかなように、cd - コマンドは OLDPWD 変数が設定されていないと文句を言いましたが、cd $OLDPWD コマンドはエラーを出さず、実際には現在の作業ディレクトリをユーザーのホームディレクトリに変更しました。

これは、OLDPWD 変数が現在設定されていないため、$OLDPWD は空の文字列に過ぎないからです。したがって、cd $OLDPWD コマンドは、単に cd を実行するのと同じです。これはデフォルトでホームディレクトリに移動します。

最後に、cd - コマンドが生成する出力を抑制したい状況に遭遇したこともあります。私が言いたいのは、シェルスクリプトを書くときなど、cd - コマンドが通常のディレクトリパスを出力しないようにしたい場合があるということです。そのような状況では、次のようにコマンドを使用できます:

cd - &>/dev/null

上記のコマンドは、ファイルディスクリプタ 2 (STDERR) とディスクリプタ 1 (STDOUT) の両方を /dev/null にリダイレクトします。これは、コマンドが生成するエラーも抑制されることを意味します。ただし、コマンドの成功または失敗を一般的な $? テクニックを使用して確認することはできます - コマンド echo $? は、エラーがあった場合は ‘1’ を、そうでなければ ‘0’ を出力します。

また、cd - コマンドがエラーの場合に出力を生成することを許容する場合は、代わりに次のコマンドを使用できます:

cd - > /dev/null

このコマンドは、ファイルディスクリプタ 1 (STDOUT) のみを /dev/null にリダイレクトします。

結論

残念ながら、ここでは 1 つのコマンドライン関連のヒントしかカバーできませんでしたが、良いことは cd - コマンドに関する多くの詳細な内容を議論できたことです。ここで議論したすべてを、Linux ボックスのコマンドラインターミナルで徹底的にテストすることをお勧めします。また、コマンドの man ページを確認し、そこに記載されているすべての機能を試してみてください。

問題が発生した場合や疑問がある場合は、下のコメントで共有してください。次のパートをお待ちください。そこで、ここで行ったのと同じ方法で、さらに便利なコマンドライン関連のヒントやコツを議論します。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。