そのため、upシェル(OSXまたはUbuntuでのBash、ほとんど)で使用しますが、カーソルの現在の場所の後に必要なものがあることを時々知っています。上記の行で完了している行を持つ方法はありますか?打つupとleft迷惑です。
を除いてtab、他のトリックもクールです。
以下に例を示します(〜quackのリクエストごと):
入力してmkdir /where/the/hell/is/that/thingから、同じディレクトリにcdします。しかし、今ではmeta-bについて知っています:)
そのため、upシェル(OSXまたはUbuntuでのBash、ほとんど)で使用しますが、カーソルの現在の場所の後に必要なものがあることを時々知っています。上記の行で完了している行を持つ方法はありますか?打つupとleft迷惑です。
を除いてtab、他のトリックもクールです。
以下に例を示します(〜quackのリクエストごと):
入力してmkdir /where/the/hell/is/that/thingから、同じディレクトリにcdします。しかし、今ではmeta-bについて知っています:)
回答:
これを試して:
mkdir /where/the/hell/is/that/thing
次にalt+ を押します.
お使いのOSや端末に応じて、次のように入力する必要があるかもしれません escそして、.
alt+ 1+ .を押して、特定の前の引数を選択することもでき ます。
これは!!よりもはるかに優れています。これは、実行しようとしているものを実際に見ることができ、とにかくキーストロークが少なくて済むためです。
編集:厳密にはそれはではmetaないaltので、キーボードのセットアップ方法によっては「windows」キーでも動作する可能性があります。
これはbashの対話型入力メカニズムであるため、システムのman bash、特にReadlineのセクションを読む必要があります。gnu.orgのBashマニュアルには、いくつかのギャップを埋めるのに役立つコマンドライン編集に関する素晴らしいセクションがあります。
デフォルトでは、これらを使用してコマンドライン上を移動できます(ここにいくつかをリストします。完全なリストについてはリンクを参照してください)。
これらを使用して、行からテキストを「kill」(別名「cut」)できます。
したがって、これらを組み合わせて、繰り返したいコマンドラインのチャンクを選択し、強制終了して、次のコマンドの最後に貼り付けることができます。
さて、それをさらに楽しくするために、bashのHistory Expansionを考えてみましょう。これは、ということである!!ということは、ステューダーの答えは言及します。履歴の拡張は、イベント指定子、単語指定子、および修飾子に分類されます。
イベント指定子は次のようになります(完全なリストについてはリンクを参照してください)。
! -履歴置換を開始します!n-bashの履歴リストのn番目のコマンド、いくつかの整数n(ネガでも機能します)!!-先行コマンド。に相当!-1!string- 文字列で始まる最新のコマンド単語指定子は、イベントから特定の部分を選択します。:イベントを単語指定子から分離するために使用します。単語には、行の先頭から始まる0から番号が付けられ、単一のスペースで区切られて現在の行に挿入されます。
$-最後の引数を指定します(たとえば!!:$、最後のコマンドの最後の引数。短縮できます!$)n-指定n番目の単語(例えば!str:2最新のコマンドの第2引数が始まるさSTRを、!!:0あるコマンド最後のコマンドの)
したがって、例をフォローアップするために、最後のコマンドがの場合、mkdir /some/really/long/path実行!!するだけでそのコマンドが再実行されます。しかし、cd代わりにそのパスにしたい:
$ cd !$
ここで、他のコマンドをいくつか実行し、そのパスを再度参照したいとします。それが最後に実行したmkdirコマンドである場合、これを使用してそのパスを繰り返すことができます。
$ tar czf ~/foo.tgz !mkdir:$
bind -pか、bind -P印刷します。これは、bashが使用するものの究極のリファレンスです。
viユーザーの場合は、を入力してシェルをviモードにできますset -o vi。
これで、入力後にコマンドラインであらゆる種類の強力な処理を実行できますEsc + k。
私が最も使用するものがありEsc+K、その後/のスラッシュは、コマンドラインの履歴を検索するために使用されます後に入力した任意のテキスト。
たとえばEsc + k /smbclient
、最後に入力したsmbclientコマンドが表示されます。あなたは、標準的なviのキーを使用して、すべての検索をスクロール(することができますjし、k上下のためのが、私は最高だと思うし、上下矢印あまりにも動作します)。
ここでさらに助けてください。また、そのリンクには、探しているものよりも多くの組み込みのbash項目があります。
乾杯、Stu。
!!最後のコマンドを表すwhich を使用できます:
%テスト % エコー !! >テスト
!!は同義語ですfor !-1:gnu.org/software/bash/manual/bashref.html#Event-Designators
私は最近、このreadlineチートシートが非常に役立つことを発見しました。私が知らなかった多くのこと。+が!$見つかるまでずっと使っていましたが、今ではずっと使っています。:)Alt.