BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

実際に使用する7つのBash履歴ショートカット

Bash履歴ショートカットのほとんどのガイドには、利用可能なすべてのショートカットが網羅的にリストされています。それに関する問題は、私が一度ショートカットを使用し、それから私がすべての可能性を試したときに釉薬をかけることでした。それから私は仕事の日に移り、それらを完全に忘れて、有名な !!だけを残しました Bashを最初に使い始めたときに学んだトリック。

そのため、それらのほとんどはメモリにコミットされていませんでした。

この記事では、私が実際に使用するショートカットの概要を説明します。 毎日。これは私の本の内容の一部に基づいています。Bashを難しい方法で学ぶ; (詳細については、プレビューを読むことができます)。

私がこれらのショートカットを使用しているのを見ると、「そこで何をしましたか!」とよく聞かれます。必要な労力や知性は最小限ですが、実際にそれらを学ぶには、1週間毎日1つ使用してから、次の1つに移動することをお勧めします。節約する時間は長期的には重要になるため、時間をかけてそれらを手に入れる価値があります。

1。 「最後の引数」の1つ:!$

この記事からショートカットを1つだけ取る場合は、これにします。最後のコマンドの最後の引数を行に置き換えます。

このシナリオを検討してください:

$ mv /path/to/wrongfile /some/other/place
mv: cannot stat '/path/to/wrongfile': No such file or directory

ああ、私は間違ったファイルを入れました コマンドのファイル名。 rightfileを置くべきだった 代わりに。

最後のコマンドを再入力して、間違ったファイルを完全にrightfileに置き換えることもできます。代わりに、次のように入力できます:

$ mv /path/to/rightfile !$
mv /path/to/rightfile /some/other/place

コマンドは機能します。

ショートカットを使用してBashで同じことを実現する方法は他にもありますが、最後のコマンドの最後の引数を再利用するこのトリックは、私が最もよく使用する方法です。

2。 「n 引数"1:!:2

このようなことをしたことがありますか?

$ tar -cvf afolder afolder.tar
tar: failed to open

他の多くの人と同じように、私は tarへの議論を得る (および ln )私が認めたいよりも頻繁に間違っています。

実際に使用する7つのBash履歴ショートカット

このような引数を混同すると、次のように実行できます。

$ !:0 !:1 !:3 !:2
tar -cvf afolder.tar afolder

そしてあなたの評判は保存されます。

最後のコマンドの項目はゼロインデックスであり、!:の後の番号に置き換えることができます 。

もちろん、これを使用して、すべてではなく、最後のコマンドの特定の引数を再利用することもできます。

3。 「すべての議論」の1つ:!:1-$

次のようなコマンドを実行するとします。

$ grep '(ping|pong)' afile

引数は正しいです。ただし、 pingと一致させたい またはポン ファイルにありますが、 grepを使用しました egrepではなく 。

egrepと入力し始めます 、しかし私は他の引数を再入力したくありません。だから私は!:1 $を使うことができます 2番目のコマンド(インデックスがゼロであることを忘れないでください)から最後のコマンド( $ で表される)までの前のコマンドへのすべての引数を要求するショートカット サイン)。

$ egrep !:1-$
egrep '(ping|pong)' afile
ping

1- $を選択する必要はありません; 1-2のようなサブセットを選択できます または3-9 (前のコマンドでその数の引数があった場合)

4。 「最後だがn "1つ:!-2:$

上記のショートカットは、最後のコマンドを修正する方法をすぐに知っている場合に最適ですが、多くの場合、にコマンドを実行します。 元のコマンド。これは、最後のコマンドが参照したいコマンドではなくなったことを意味します。

たとえば、 mvを使用します 以前の例、 lsで間違いをフォローアップした場合 フォルダの内容を確認します:

$ mv /path/to/wrongfile /some/other/place
mv: cannot stat '/path/to/wrongfile': No such file or directory
$ ls /path/to/
rightfile

!$を使用できなくなりました ショートカット。

このような場合、- nを挿入できます : n の後に履歴に戻るコマンドの数です) 古いコマンドから最後の引数を取得するには:

$ mv /path/to/rightfile !-2:$
mv /path/to/rightfile /some/other/place

繰り返しになりますが、一度習得すると、それが必要になる頻度に驚かれるかもしれません。

5。 「フォルダを取得」の1つ:!$:h

これは一見するとあまり有望ではないように見えますが、私は毎日何十回も使用しています。

次のようなコマンドを実行するとします。

$ tar -cvf system.tar /etc/system
 tar: /etc/system: Cannot stat: No such file or directory
 tar: Error exit delayed from previous errors.

私が最初にやりたいことは、 / etcに行くことです。 そこに何があるかを確認し、私が間違ったことを解決するためのフォルダ。

私はこれを一気に行うことができます:

$ cd !$:h
cd /etc

これは次のように述べています。「最後のコマンドの最後の引数を取得します( / etc / system )最後のファイル名コンポーネントを削除し、 / etcのみを残します 。"

6。 「現在の行」:!#:1

何年もの間、私は時々、現在の行の引数を参照してから、最終的にそれを調べて学習できるかどうか疑問に思いました。ずっと前にやったらいいのに。私は最も一般的にバックアップファイルを作成するためにそれを使用します:

$ cp /path/to/some/file !#:1.bak
cp /path/to/some/file /path/to/some/file.bak

しかし、一度指で触れると、それは…

の非常に迅速な代替手段になる可能性があります

7。 「検索して置換」するもの:!!:gs

これは、参照されているコマンドを検索し、最初の2つの /にあるものを置き換えます 次の2つにある文字。

私のであることを世界に伝えたいとしましょう キーが機能せず、 fを出力します 代わりに:

$ echo my f key doef not work
my f key doef not work

それから、私はちょうど fを打っていたことに気づきます 偶然の鍵。すべてのfを置き換える sとs es、入力できます:

$ !!:gs/f /s /
echo my s key does not work
my s key does not work

単一の文字でのみ機能するわけではありません。単語や文章を置き換えることもできます:

$ !!:gs/does/did/
echo my s key did not work
my s key did not work
テストしてください

これらのショートカットを組み合わせる方法を示すために、これらの足の爪の切り抜きが何を出力するかを理解できますか?

$ ping !#:0:gs/i/o
$ vi /tmp/!:0.txt
$ ls !$:h
$ cd !-2:h
$ touch !$!-3:$ !! !$.txt
$ cat !:1-$

結論

Bashは、日常のコマンドラインユーザーにとってエレガントなショートカットのソースになります。学ぶべき何千ものヒントやコツがありますが、これらは私が頻繁に使用する私のお気に入りです。

Bashが教えてくれることすべてをさらに深く掘り下げたい場合は、私の本を手に取ってください。Bashを難しい方法で学ぶ または、私のオンラインコースであるMastertheBashシェルをチェックしてください。

この記事は元々IanのブログZwischenzugs.comに投稿されており、許可を得て再利用されています。


  1. 知っておくべき便利なLinuxコマンドラインBashショートカット

    この記事では、Linuxユーザーに役立つBashコマンドラインショートカットをいくつか紹介します。これらのショートカットを使用すると、以前に実行したコマンドへのアクセスと実行、エディターのオープン、コマンドラインでのテキストの編集/削除/変更、カーソルの移動、コマンドでのプロセスの制御などの特定のアクティビティを簡単かつ迅速に実行できます。行。 この記事は、Linuxの初心者がコマンドラインの基本を理解するのに大いに役立ちますが、中級のスキルを持っている人や上級ユーザーも実際に役立つと思うかもしれません。次のように、カテゴリに従ってbashキーボードショートカットをグループ化します。 エディ

  2. VPN は安全に使用できますか?必要な理由

    特にHTTPサーバーでWebサイトを使用している場合や、デバイスを公共のWifiに接続している場合は特に、Webサーフィンは危険な取引と見なされることがあります.これらの安全でない接続により、ブラウジングの詳細、保存されたパスワードまたは資格情報、およびその他のプライベート ユーザーの詳細が公開される可能性があります。 誰かがあなたのブラウザ セッションやその他のオンライン アクティビティを盗聴するのを防ぐために、VPN (仮想プライベート ネットワーク) を利用できます。 VPN の機能を簡単に説明すると、VPN はネットワークの IP アドレスを隠したり隠したりするために使用され、サイト