これら 3 つの単純な bash 変数は、Linux ターミナル セッションにブックマークと戻るボタンを追加します。
これら 3 つの Bash 機能により、ターミナルがファイル ブラウザに近いものになり、場所が保存され、簡単に戻ることができ、どこにいたのかの完全な履歴が表示されます。いずれもプラグイン、エイリアス フレームワーク、または新しいシェルを必要としません。
ブックマーク システム: CDPATH
どこからでもプロジェクトフォルダーにジャンプ
ほとんどの人が治療しています cd ルートから始まる絶対パスと、どこからでも始まる相対パスの 2 種類のパスのみを理解するコマンドです。 CDPATH 3 番目のオプションを追加します。これはコロンで区切られたディレクトリのリストを保持するシェル変数であり、次のように入力すると cd スラッシュ、ドット、または 2 つのドットで始まらない名前が後に続くと、Bash は中止する前に、そのリスト内の各ディレクトリに一致するサブフォルダーがあるかどうかをチェックします。
仕事を続けていると言う ~/projects そしてあなたのメモは ~/Documents/writing。追加 CDPATH=.:~/projects:~/Documents/writing あなたへ ~/.bashrc タイピングを意味します cd website まっすぐにあなたを連れて行きます ~/projects/website というフォルダーがない限り、システム上の任意の場所から website 現在のディレクトリにあります。
先頭のドットが重要です。これにより、Bash に対して最初に現在のディレクトリを確認するように指示され、通常の相対ナビゲーションが期待どおりに動作し続けます。リストの先頭に空のエントリを指定しても同じことを行いますが、ドットの方が読みやすくなっています。
Bash が名前を解決するとき CDPATH 現在のディレクトリではなく、そのディレクトリに到達したフル パスが出力されます。ローカル フォルダではなくブックマークが使用されたことがわかるため、この小さな確認は役に立ちます。
ただし、次の点に注意してください。変数を次のように設定します。 ~/.bashrc エクスポートせずに。輸出された CDPATH スクリプトによって継承され、実行されるスクリプト cd build ブックマークしたディレクトリの 1 つに build フォルダ。
これを対話型シェルのローカルに保つことで、そのクラスのバグ全体を回避できます。 bash-completion パッケージと組み合わせると、 CDPATHタブ補完では、ブックマークした場所のフォルダーも提案されるため、正確な名前を覚えておく必要はほとんどありません。
戻るボタン:cd –
最新の 2 つのディレクトリを切り替えます
ディレクトリを変更するたびに、Bash は、直前にいた場所を という変数に静かに記録します。 OLDPWD。ランニング cd - その変数を読み取り、その変数に戻ります。これは実質的には次の略語です cd "$OLDPWD" このため、コマンドは実行後にパスをエコーします。
これを非常に便利にする動作は、切り替えられることです。前のディレクトリに戻ると、Bash が更新されます OLDPWD 先ほど出た場所を指さします。ランニング cd - 2 回目ではまた元に戻ります。そのため、ソース ディレクトリとログ フォルダー、または以下の構成ディレクトリなど、2 つの場所間を行き来する非常に一般的なパターンに最適です。 /etc そして実際に編集しているプロジェクト。どちらのパスも複数回入力する必要はありません。
なぜなら OLDPWD は通常の変数ですが、外部で使用することもできます。 cd。先ほど残したディレクトリにファイルをコピーするのは、次のように簡単です。 cp report.txt "$OLDPWD"、その内容をリストすると機能します ls "$OLDPWD"。 Bash にはチルダのショートカットも用意されています。 ~-、同じ値に展開され、いくつかのキーストロークが節約されます。 cp report.txt ~- 同じ仕事をします。
制限は設計に組み込まれています。 cd - 履歴ではなく、前の場所を 1 つだけ記憶します。ホームフォルダーからプロジェクトに移動し、さらにサブフォルダーに移動した場合は、次のコマンドを実行します。 cd -を実行すると、ホーム フォルダーではなくプロジェクトに戻り、再度実行するとサブフォルダーに戻るだけです。素早い前後の作業が必要な場合は、まさにそれが必要です。ファイル システム内のパスに再訪したいストップが 3 つ以上含まれると、それは適切なツールではなくなり、そこでディレクトリ スタックが登場します。
ナビゲーション履歴スタック: Pushd と Popd
どこにいたのかを完全に記録しておきます
さて、先ほど述べた最後の制限に対処しましょう。どこ cd - 一つの場所を覚えていて、 pushd そして popd 好きなだけ覚えておいてください。 Bash はディレクトリ スタックと呼ばれるリストを管理しており、 DIRSTACK 配列変数に追加したり、配列変数から削除したりするコマンドが 2 つあります。ランニング pushd /var/log そのディレクトリに変更してスタックの一番上に置きますが、元のディレクトリはその下に残ります。ランニング popd 一番上のエントリを削除し、その下のエントリに戻ります。
これにより、本当のバックトラッキングが可能になります。プロジェクト フォルダー、システム ディレクトリ、およびバックアップ ドライブを通過し、パスを 1 つも再入力せずに、逆の順序で元に戻すことができます。各操作の後、両方のコマンドで現在のスタックが出力されるため、現在どこにいるかを追跡するのに役立ちます。その出力にノイズが含まれる場合は、それを /dev/null それを黙らせます。
の dirs コマンドはオンデマンドでスタックを表示し、 dirs -v 数値インデックスを使用して各エントリをリストします。これらのインデックスにより、より強力な機能が利用できるようになります。ランニング pushd +2 スタックを回転させると、3 番目のエントリが先頭に来てそのエントリに変更され、段階的に巻き戻すのではなく、保存された任意の場所に直接ジャンプできます。チルダ展開はスタックも理解するので、 ~1 は 2 番目のエントリを指します。これは次のようなコマンドを意味します。 cp file.txt ~2 スタックされたディレクトリを移動せずにターゲットにすることができます。ランニング pushd 引数を指定しないと、上位 2 つのエントリが交換され、次のように動作します。 cd -。
スタックがその目的を果たしたとき、 dirs -c それをクリアします。さらに進んで別名を付ける人もいます cd に pushd したがって、すべての動きが自動的に記録されますが、扱いにくいスタックがすぐに構築される傾向があります。使用する pushd 意図的に、必ず戻ってくることがわかっている場所では、通常はより効果的に機能します。
組み込みの Bash ツールによるスマートなターミナル ナビゲーション
CDPATH お気に入りの場所を保存し、 cd - 迅速なラウンドトリップを処理し、ディレクトリスタックは必要なときに完全な証跡を保持します。これらを組み合わせると、ほぼすべてのナビゲーション パターンがカバーされ、それぞれの使用を開始するまでに数秒かかります。
関連情報は以下のリンクからご確認いただけます
関連記事
- 今週末 (3 月 27 ~ 29 日) に観るべきオスカー賞受賞の Netflix 映画 5 本
- 30 分以内で大笑いできる 5 つの Netflix コメディ番組
- Amazon のビッグスプリングセール中に 50 ドル以下のベストテクノロジーセールが登場