上下の矢印を使用してコマンド履歴をナビゲートできます。
In Matlabなどの一部のIDEでは、何かを入力してから矢印キーを押すと、入力したものから始まる履歴コマンドのみをスクロールします。これは本当に便利ですが、シェル端末では機能しません。
シェル端末で同様の機能を取得する方法はありますか?また、端末の使用効率を向上させるためのその他のヒントはありますか?
コメント
;)
\e[5~
と\e[6~
の代わりに、\e[A
、\e[B
。上下の矢印を使用してコマンド履歴をナビゲートできます。
In Matlabなどの一部のIDEでは、何かを入力してから矢印キーを押すと、入力したものから始まる履歴コマンドのみをスクロールします。これは本当に便利ですが、シェル端末では機能しません。
シェル端末で同様の機能を取得する方法はありますか?また、端末の使用効率を向上させるためのその他のヒントはありますか?
;)
\e[5~
と\e[6~
の代わりに、\e[A
、\e[B
。探しているのは Ctrl です。 R 。
Ctrl R と入力し、必要なコマンドの一部を入力します。 Bashは最初に一致するコマンドを表示します。 Ctrl R と入力し続けると、bashは以前の一致するコマンドを循環します。
履歴を逆方向に検索するには、 Ctrl と入力します。代わりに S 。 ( Ctrl S がそのように機能しない場合は、XON / XOFFフロー制御を無効にする必要がある可能性があります。これを行うには、stty -ixon
。)
これは、man bash
の[検索]に記載されています。
Ctrl-Q
を押して、すでに 最初にフロー制御をオフにして端末をフリーズさせずに、これらを~/.inputrc
に配置します:
"\e[5~": history-search-backward "\e[6~": history-search-forward
これらは Page Up と Page Down は、希望どおりに動作します(一部のディストリビューションでは、既に構成されています)。個人的には、 Ctrl + R kbdよりも便利です。 >またはhistory
。
~/.inputrc
または/etc/inputrc
、または環境変数$INPUTRC
は、bash(シェル)を含む、readlineを使用するすべてのアプリケーションの行編集構成ファイルです。これには、次の2つを含む特定の組み込みの行編集機能があります。bash'の手動ページで、これらのキーワードの1つを検索して詳細を確認します。 \e[5~
/ \e[6~
は、ほとんどのターミナルエミュレータでPage Up / Downキーによって生成されるエスケープシーケンスです。これを表示するには、cat
コマンドを起動し、これらのキーを押します(エスケープバイトは、ターミナルでは^[
として表され、inputrcでは次のように表示されます。 \e
)。echo $INPUTRC
を実行すると、空になります。私は' Ubuntu14.04を使用しています"\e[A": history-search-backward
および"\e[B": history-search-forward
^ r / ^ sの履歴のほかにi -検索:
alt 。は、前のコマンドの最後の「単語」をカーソルに挿入します。それを繰り返して、古いコマンドから最後の単語を取得します。 (ただし、末尾の&
は、バックグラウンドコマンドの最後の単語としてカウントされることに注意してください。
これは、mkdir foo
、cd
alt-dot。上矢印、^ a、alt-d(前方の単語を削除)、cd
よりもさらに高速です。
最後から2番目の単語を取得するには、次を使用します。 esc
-
2
alt+.
(つまりalt+.
にはemacsスタイルの数値引数を使用します。負の値は最後からカウントインし、正の値は最初から順方向にカウントします。)しかし、これは通常、価値があるよりも厄介です。ある時点で、マウスに手を伸ばしてコピー/貼り付けするか、上矢印を押して^ w / ^ yの一部(以下を参照)。
端末が適切に/適切に設定されている場合、ctrl-leftとctrl-rightは単語によって前後に移動します。そうでない場合は、少なくともalt-bとalt-fが同じことを行うことを願っています。
ctrl- /は元に戻します。少しオーバーシュートしたときに元に戻すことができれば、自動リピートを使用して単語をはるかに効率的に削除できます。
コマンドのより強力なミキシング/マッチングは、キルリングを使用することで実現します。 Emacsと同じように。最後のctrl-w / ctrl-u / ctrl-backspace / alt-dを貼り付けるctrl-y。 alt-yは、古いキルされたテキストを循環します。
複数のctrl-wまたは連続したものは、kill-ringエントリで作成します。 2つを削除して、後で1つだけ貼り付ける場合は、左右の矢印などを使用してエントリを分割します。
これらすべてを組み合わせると、
alt+r
を使用して、一部を削除する前の状態に復元します。>
は、履歴の最後に移動し(つまり、ずっと下矢印)、途中のコマンドに戻ります。その他のインタラクティブな使用のヒント:
shopt -s globstar
を有効にして、**/*.c
(現在を含む再帰的)を実行できるようにしますdir)。インタラクティブに使用すると便利な場合もありますが、通常はfind -name "*.c" -exec foo {} +
の方が適しています。
bashスクリプトを作成する場合は、はインタラクティブシェルでも有効になっています。時々 *.!(c|h)
のようなものが終了しないファイルと一致するための用途が見つかるでしょう。 .cまたは.hを使用します。
ls -l
、less
などの好きなエイリアスを見つけますたくさん。 (cp -i
、mv -i
、rm -I
は素晴らしいです。習慣を身につけないでください。選択的なrmを実行するためにそれらに依存する 。GNUrm "s-すべての引数を1回要求します。)
alias m=less
(「もっと」を表すm)。 less
を、、で設定しました。を前/次のファイルにバインドしました(lesskey
)。デフォルトは、自動リピートでは使用できないマルチキー押下シーケンスです。
GNU画面内ですべてを行うのが好きです。番号付きの画面ウィンドウを追跡する方がKonsole(または私が試した他のターミナルエミュレーター)のタブのボートロード。 screen
をまだ知らない場合は、tmuxを学習してください。これは、新しくて無駄が少ないためです。
新しいシェルを開く機能のようなものを取得するには別のシェルと同じcwdで、 cd / pushd / popdのカスタムフックを使用して、cds 8
を実行して何にでもcdできるようにします画面ウィンドウ8のシェルをdirします。これは、画面セッションが1つしかない限り、画面セッション外のシェルでも機能します。
gnome-terminal
で、箱から出してすぐに機能したと思います。関連するオプションは、端末設定、esc-prefix vshigにあります。 hビット、そして多分他のいくつかの設定。それらのいくつかは' sshを介して完全に機能しません。 (たとえば、Ctrlキーを押しながら左/右に矢印キーのエスケープコードを入力すると、5D
が文字通り表示されます) ~/.inputrc
"\e[A": history-search-backward "\e[B": history-search-forward
<に次の行を追加しますp>これはegmontの回答に似ていますが、PageUpとPageDownを使用する代わりに、ArrowUpとArrowDownのエスケープシーケンスを使用します。この方法は、Macで使用する方がはるかに便利です。
私は常に大きな HISTSIZE 値。これにより、より長い履歴リストが保持され、 HISTTIMEFORMAT とタイムスタンプ値が保持されます。コマンドがいつ実行されたかがわかります。
export HISTSIZE=10000 export HISTTIMEFORMAT="%m/%d/%Y %T "
私が通常使用する手段は、
コマンドとgrep
IE:
history | grep <command im looking for>
入力したコマンドの履歴にそのコマンドが含まれている番号が表示されます。次に、次を使用できます。
!<number listed in history command>
そのコマンドをやり直す。
IE:
history | grep history
142 history 143 history | grep lvresize 568 history | grep echo 570 history | grep echo 571 history | grep history
次:!571
繰り返しますhistory | grep history
!
履歴の置換の安全性が低いことを意味していると思います。毎日4つのヒントを使用しました(およびその他) bashターミナルで:
最後のコマンドを実行します: !!
コマンドを実行 N 履歴から: !N
プレフィックス
履歴から: !prefix:p
プレフィックス で始まる最後のコマンドを実行します履歴から: !prefix
If bash
の代わりにzsh
を使用しても問題ありませんが、 oh-mi-zsh を使用できます。そのために。
上向き矢印と下向き矢印を使用してコマンド履歴をナビゲートできます。また、(Mathlabのように)テキストを既に入力している場合も同じナビゲーションが可能です。
edit: Oh-my-zshは、他の多くの機能を含む、開発者向けの大規模なソフトウェアパッケージです。エイリアス、テーマ、プラグイン。これらの追加機能により、配布はキーボードショートカットよりも複雑になります。
https://github.com/robbyrussell/oh-my-zsh
oh-my-zsh
にはたくさんのものが含まれています。必要なのは特定の設定またはアプリだけである場合、この正確な機能はそのディストリビューションに含まれています。次のエイリアスを〜/ .bashrcに追加します
alias h="history | awk """""{$1="";print}""""" |sed "s/^ *//" |grep -v "^h " | sort | uniq | grep"
使用法:h fire
は、 fire を含むコマンドのリストを取得します。またはh ^fire
で fire で始まるコマンドのリストが表示されます。
これは、一連のコマンドを表示する場合に便利です。同時に。
ちなみに、"""""
は醜いですが、一重引用符で一重引用符を避ける他の方法を見つけることができませんでした。
h="history | awk '{\$1=\"\"; print}'
が機能するはずです。あるいは、関数を作成して呼び出します。