日常的に実行する必要のあるコマンドがたくさんありますが、ほとんど変化はありません。
現在、それらすべてを.bash_history
に格納して使用しています CTRL-R それらにアクセスするために、私はより良い方法があるのだろうかと思います。私が探しているもの:
残念ながら、bash_historyは3番目の要求に対してそれほど強くありません。いくつかのcd
とls
を実行すると、履歴ファイルがすぐにいっぱいになります。最近HIST_SIZE
について学び、重複や特定のコマンドを回避するために履歴を設定できることを学びましたが、すべてを設定する前に、それが最善の方法であることを確認したいと思いました。
私は次のreadlineコマンドがとても便利だと思います
history-search-backward,
history-search-forward
(通常のreverse-search-history
、forward-search-history
とは異なることに注意してください。 Ctrl-R、 Ctrl-S)。
これらのコマンドが関連付けられています Ctrl-Up そして Ctrl-Down 次の行を~/.inputrc
に入れます。
"\e[1;5A": history-search-backward
"\e[1;5B": history-search-forward
仕組み:コマンドの最初の数文字を入力し、 Ctrl-Up そのプレフィックスで始まる次の古いコマンドが表示され、もう一度押すと次のコマンドが表示されます。満足したら、コマンドを変更した後、を押します。 Enter 実行します。
別のヒント:コマンドをブックマーク/タグ付けするためにコメントを使用することがあります:
my_command #bookmark
次に:
[ctrl-r]#bookmark
alias
は、このための優れたツールです。
エイリアスを使用すると、入力した場合とまったく同じになるため、非常に柔軟です。たとえば、パイプで使用できます。
alias findfoo="grep 'foo'"
echo 'foo1 \n foo2 \n bar1 \n bar2 \n foo3' | findfoo # Does your custom grep
まだ指定していないフラグを渡すことで、「わずかなバリエーション」を実行できるはずです。
echo 'foo1 \n foo2 \n bar1 \n bar2 \n foo3' | findfoo -v # finds non-matches
範囲は非常に限られていますが、次の2つの拡張プレースホルダーを指摘しておきます。
!!
最後のコマンドのプレースホルダー展開です。コマンドの前にSudo
を付けるのを忘れた場合に役立ちます。
!$
最後のパラメータを繰り返します。 a/very/long/path/name/you/do/not/want/to/type/again
を使用して別のコマンドを繰り返す場合に便利です
頻繁に使用するコマンド用に最小限のシェルスクリプトを作成し、短い名前を付けています。それらはすべて同じ場所に保存され、PATH
に追加されます。
そうすれば、非常に複雑なコマンドへのショートカットアクセスが可能になり、alias
とは異なり、タスクの変更可能な部分をショートカットのコマンドライン引数に変換できます。
。bash_history in Git のコピーを保持しています。これを簡単にするために、
# don't put duplicate lines in the history
# don't save commands which start with a space
HISTCONTROL=ignoredups:erasedups:ignorespace
# append to the history file, don't overwrite it
shopt -s histappend
。bashrc 、および クリーンアップスクリプト の次のコマンド(一般的な使用のために変更)
# Ensure a single space at the end of each line to easier add more parameters
sed -i -e 's/ *$/ /' "~/.bash_history"
sort --unique --output="~/.bash_history" "~/.bash_history"
git gui
に行を追加する前に実行します。履歴ファイルはコマンドごとに変更されるため、その特定のリポジトリを更新するための特別なコマンドも用意しています。
git stash && git pull && git stash pop
ここで歴史を含む他のすべての答えの中で。
私は設定しました
HISTFILESIZE=2024
HISTSIZE=1024
〜/ .bash_profile内
他のコメントに加えて:歴史
別の便利な機能...
歴史の想起を
!first few letters<ESC>Ctrl-E
最初の数文字で始まる最後のコマンドを呼び出します
例えば:
!find<ESC>Ctrl-E
GUIを使用しているかどうか、またはコマンドラインのみを使用しているかどうかについては触れていません。 GUIを使用している場合は、永続的なクリップボードマネージャーの1つを使用して、よく使用されるコマンド、ユーザーID、パスワード、URLなどをコピー/貼り付けできます。
使い方を学ぶ Ctrl-R そして Ctrl-S 履歴で探しているコマンドを簡単に検索でき、重複を無視してbash履歴ファイルのサイトを変更するHISTCONTROL環境変数がすでに見つかりました。
私は通常たくさんします Ctrl-R に続く Ctrl-E ヒットして見つかったコマンドをスキップした場合、いくつかのパラメータを変更します Ctrl-R あまりにも多く、 Ctrl-S 救助へ。
他の人が言ったように、エイリアスはあなたの友達です。もう少し複雑なこと(命令の間にどこかに引数が必要な場合)では、.zshrcで次のような関数を使用します。
function ff() { find . -iname "*$**" }
これはロケートのように機能します(何らかの理由でdbが使用できない場合に使用します)。または
function chuck() { ps aux | grep $1 | tr -s '\t' ' ' | cut -f2 -d' ' | xargs kill $2 }
killallの代わりに。
上記の良い答えに加えて、kdeまたはgnomeに基づくGUIを使用している場合、AutoKeyは非常に役立ちます。
https://code.google.com/p/autokey/
いくつかの文字を入力するか、ホットキーを押すことによってトリガーされるフレーズを作成できます。これらのフレーズは、入力の代わりになるか、入力に追加されます。
また、pythonで記述されたスクリプトをサポートしています。Pythonを知っていれば、ほとんど何でもできます。pythonはまだわかりませんが、すでに知っています。きちんとしたことをするためにいくつかの非常に基本的なスクリプトを取得します。
すべてがキーボードから送信されているように見えるため、キーボード入力を受け入れるすべてのアプリケーション、およびデスクトップ自体で動作します。
これらのオプションをアクティブ化する方法と場所を制御する多くのオプションがあるため、コンソールでのみ機能するものと、別のウィンドウでのみ機能するものを用意できます。また、フレーズをトリガーする文字列を入力するか、OKを入力するまで待機するようにフレーズを設定することもできます。
私は常に最後に使用したコマンドとその出力を保存することを好みます。
script filename
使用に追加 Cntl-R.bash_history
、README ~/develop
ディレクトリgit
/svn
のように長いコマンドを置くため、後で必要になったときにそれらに戻ることができます。同様に、~/install/README
ファイルには、新しいバージョンのLinux/Ubuntuをインストールした後に通常インストールするすべての共通パッケージ名を入れます。つまり、アイデアはすべてのディレクトリ内にREADMEファイル、たとえばビデオ、オーディオなど)を置き、後で知る必要があるかもしれない共通のコマンド/ヒントをそれらに入れることです。