GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでディレクトリをより速くナビゲートする方法

今日は、コマンドラインの生産性のハックについて学びます。ご存知のように、Unixライクなオペレーティングシステムでは、「cd」コマンドを使用してディレクトリのスタック間を移動します。このガイドでは、「cd」コマンドを頻繁に使用せずに、Linuxでディレクトリをより高速にナビゲートする方法を説明します。いろいろな方法がありますが、今は次の5つの方法しか知りません!今後、このタスクを達成するための方法やユーティリティに出くわしたときに、このガイドを更新し続けます。

Linuxでディレクトリをより速くナビゲートするための5つの異なる方法

方法1:「Pushd」、「Popd」、「Dirs」コマンドを使用する

これは、ディレクトリのスタック間を移動するために私が毎日使用する最も頻繁な方法です。 「Pushd」、「Popd」、および「Dirs」コマンドは、ほとんどのLinuxディストリビューションにプリインストールされているため、インストールを気にしないでください。これらのトリオコマンドは、深いディレクトリ構造とスクリプトで作業しているときに非常に役立ちます。詳細については、以下のリンクにあるガイドを確認してください。

  • プッシュ、ポップ、およびDirsコマンドを使用してCLIナビゲーションを高速化する方法

方法2:「bd」ユーティリティを使用する

「bd」ユーティリティを使用すると、「cd ../../」と繰り返し入力しなくても、特定の親ディレクトリにすばやく戻ることができます。あなたのBashで。

BdはDebianエクストラでも利用できます およびUbuntuユニバース リポジトリ。したがって、以下に示すように、Debian、Ubuntu、およびその他のDEBベースのシステムに「apt-get」パッケージマネージャーを使用してインストールできます。

$ sudo apt-get update
$ sudo apt-get install bd

その他のディストリビューションについては、以下のようにインストールできます。

$ sudo wget --no-check-certificate -O /usr/local/bin/bd https://raw.github.com/vigneshwaranr/bd/master/bd
$ sudo chmod +rx /usr/local/bin/bd
$ echo 'alias bd=". bd -si"' >> ~/.bashrc
$ source ~/.bashrc

オートコンプリートを有効にするには、次を実行します:

$ sudo wget -O /etc/bash_completion.d/bd https://raw.github.com/vigneshwaranr/bd/master/bash_completion.d/bd
$ source /etc/bash_completion.d/bd

これで、Bdユーティリティがインストールされました。このツールを使用してディレクトリのスタックをすばやく移動する方法を理解するために、いくつかの例を見てみましょう。

いくつかのディレクトリを作成します。

$ mkdir -p dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10

上記のコマンドは、ディレクトリの階層を作成します。 ディレクトリ構造を確認しましょう コマンドの使用:

$ tree dir1/
dir1/
└── dir2
 └── dir3
 └── dir4
 └── dir5
 └── dir6
 └── dir7
 └── dir8
 └── dir9
 └── dir10

9 directories, 0 files

了解しました。これで10個のディレクトリができました。現在、7番目のディレクトリ(dir7)にいるとしましょう。

$ pwd
/home/sk/dir1/dir2/dir3/dir4/dir5/dir6/dir7

dir3に移動します。通常は次のように入力します:

$ cd /home/sk/dir1/dir2/dir3

右?はい!しかし、それは必要ではありません! dir3に戻るには、次のように入力します。

$ bd dir3

これで、dir3になります。

「bd」ユーティリティを使用してLinuxでディレクトリをより高速にナビゲートする

簡単ですね。オートコンプリートをサポートしているため、ディレクトリの名前の一部を入力し、Tabキーを押すだけで、フルパスをオートコンプリートできます。

特定の親ディレクトリの内容を確認するために、その特定のディレクトリ内にいる必要はありません。代わりに、次のように入力してください:

$ ls `bd dir1`

上記のコマンドは、現在の作業ディレクトリのdir1の内容を表示します。

詳細については、次のGitHubページをご覧ください。

  • bdGitHubリポジトリ

方法3:「アップ」シェルスクリプトを使用する

「Up」はシェルスクリプトであり、親ディレクトリにすばやく移動できます。 Bash、Fish、Zshなどの多くの一般的なシェルでうまく機能します。インストールも非常に簡単です!

Bashに「Up」をインストールするには 、次のコマンドを1つずつ実行します。

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.bashrc

upスクリプトは、「。bashrc」ファイルを介して「up」関数といくつかの完了関数を登録します。

コマンドを使用して変更を更新します:

$ source ~/.bashrc

zsh

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.zshrc

upスクリプトは、「。zshrc」ファイルを介して「up」関数といくつかの完了関数を登録します。

コマンドを使用して変更を更新します:

$ source ~/.zshrc

について :

$ curl --create-dirs -o ~/.config/up/up.fish https://raw.githubusercontent.com/shannonmoeller/up/master/up.fish
$ source ~/.config/up/up.fish

upスクリプトは、「funcsave」を介して「up」関数といくつかの完了関数を登録します。

次に、いくつかの例を見てみましょう。

いくつかのディレクトリを作成しましょう。

$ mkdir -p dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10

あなたが7番目のディレクトリ、つまりdir7にいるとしましょう。

$ pwd
/home/sk/dir1/dir2/dir3/dir4/dir5/dir6/dir7

dir3に移動します。 「cd」コマンドを使用して、次のコマンドを入力することでこれを行うことができます:

$ cd /home/sk/dir1/dir2/dir3

しかし、「up」スクリプトを使用してdir3に戻るのは本当に簡単です:

$ up dir3

それでおしまい。これで、dir3になります。 1つのディレクトリを上に移動するには、次のように入力します。

$ up 1

2つのディレクトリタイプに戻るには:

$ up 2

とても簡単です。フルパスを入力しましたか?いいえ。また、タブ補完もサポートしています。したがって、ディレクトリ名の一部を入力し、タブを押してフルパスを完成させます。

詳細については、GitHubページをご覧ください。

  • UpGitHubリポジトリ

「bd」および「up」ツールは、逆方向、つまり現在の作業ディレクトリの親ディレクトリに戻るのに役立つだけであることに注意してください。あなたは前進することはできません。 dir5からdir10に切り替えたい場合は、できません。代わりに、「cd」コマンドを使用してdir10に切り替える必要があります。これらの2つのユーティリティは、親ディレクトリにすばやく移動するためのものです!

方法4:「ショートカット」ツールを使用する

これは、異なるディレクトリをすばやく簡単に切り替えるためのもう1つの便利な方法です。これはエイリアスにいくぶん似ています 指図。この方法では、頻繁に使用するディレクトリへのショートカットを作成し、ショートカット名を使用して、パスを入力せずにそれぞれのディレクトリに移動します。深いディレクトリ構造とディレクトリのスタックで作業している場合、この方法は時間を大幅に節約します。以下のガイドでどのように機能するかを学ぶことができます。

  • シェルで頻繁に使用されるディレクトリへのショートカットを作成する

方法5:「CDPATH」環境変数を使用する

この方法では、インストールは必要ありません。 CDPATH 環境変数です。 PATHにいくぶん似ています ':'を使用して連結された多くの異なるパスを含む変数 (結腸)。 PATH変数とCDPATH変数の主な違いは、PATH変数はすべてのコマンドで使用できるのに対し、CDPATHは cdでのみ機能することです。 コマンド。

私は次のディレクトリ構造を持っています。

ディレクトリ構造

ご覧のとおり、「ostechnix」という名前の親ディレクトリの下に4つの子ディレクトリがあります。

次に、次のコマンドを使用して、この親ディレクトリをCDPATHに追加します。

$ export CDPATH=~/ostechnix

これで、親ディレクトリのサブディレクトリ(つまり、〜/ ostechnix )に即座にcdできます。 この場合)ファイルシステムのどこからでも。

たとえば、現在私は / var / mail /にいます 場所。

pwdコマンドの出力

〜/ ostechnix / Linux /にCDを挿入するには ディレクトリの場合、以下に示すようにディレクトリのフルパスを使用する必要はありません。

$ cd ~/ostechnix/Linux

代わりに、切り替えたいサブディレクトリの名前を指定してください:

$ cd Linux

自動的に〜/ ostechnix / LinuxにCDされます ディレクトリを即座に。

cdpath環境変数

上記の出力でわかるように、私は「cd」を使用しませんでした。代わりに、「cd」コマンドを使用しました。

CDPATHを使用すると、CDPATH変数で設定された親ディレクトリの1つの子ディレクトリにのみすばやく移動できることに注意してください。ディレクトリのスタック(もちろん、サブディレクトリ内のディレクトリ)をナビゲートするのにはあまり役立ちません。

CDPATH変数の値を見つけるには、次のコマンドを実行します。

$ echo $CDPATH

サンプル出力は次のようになります:

/home/sk/ostechnix

複数の値をCDPATHに設定

PATH変数と同様に、コロン(:)で区切って複数の値(複数のディレクトリ)をCDPATHに設定することもできます。

$ export CDPATH=.:~/ostechnix:/etc:/var:/opt

変更を永続的にする

すでにご存知のように、上記のコマンド(エクスポート)は、次回の再起動までCDPATHの値のみを保持します。 CDPATHの値を永続的に設定するには、それらを〜/ .bashrcに追加するだけです。 または〜/ .bash_profile ファイル。

$ vi ~/.bash_profile

値を追加します:

export CDPATH=.:~/ostechnix:/etc:/var:/opt

ESCを押す キーとタイプ:wq 保存して終了します。

コマンドを使用して変更を適用します:

$ source ~/.bash_profile

CDPATHをクリア

CDPATHの値をクリアするには、 export CDPATH =””を使用します 。または、〜/ .bashrcから行全体を削除するだけです。 または〜/ .bash_profile ファイル。

この記事では、Linuxでディレクトリスタックをより速く簡単にナビゲートするさまざまな方法を学びました。ご覧のとおり、ディレクトリの山をより速く閲覧することはそれほど難しくありません。これらのツールを使用して、「cd../../..」の入力を際限なく停止します。ディレクトリをより速くナビゲートするために試す価値のある他のツールや方法をご存知の場合は、下のコメントセクションでお気軽にお知らせください。確認して、このガイドに追加します。


Linux
  1. Linuxでディレクトリを再帰的に検索および削除する方法

  2. Linuxでディレクトリをループする方法は?

  3. LinuxでCでディレクトリを再帰的にリストする方法は?

  1. Linuxでファイルとディレクトリをコピーする方法

  2. Linuxでディレクトリの名前を変更する方法

  3. Linuxでいくつかのディレクトリに移動します

  1. Linuxでディレクトリを移動する方法

  2. Linuxでファイルを複数のディレクトリにコピーする方法

  3. Linuxでファイルとディレクトリの名前を変更する方法