Linux ターミナルセッションを毎日のスピードランチャレンジに変えた方法
私はもう何年も Linux を使用していますが、今でも常に新しいことを学び続けています。実行しているタスクに関係なく、それをより速く実行する方法があるようです。そこで私は、自分の端末生活がどれだけ早くなるかを確認するために、これらの速度の向上に焦点を当て始めることにしました。
現在、コマンド時間を測定し、パフォーマンスの向上を確認しているので、日常の Linux の使用はますます効率化しています。その方法は次のとおりです。
コマンドのタイミングを計り始める
タイムシンクを特定することが、タイムシンクを修正するための第一歩です
もちろん、コマンドの時間を計測する最も簡単な方法は、既存の time コマンドを使用することです。これを使用してプログラムの時間を測定できるため、特定のコマンドや作成したスクリプトを最適化したい場合に最適です。
しかし、時間を単純な汎用レポート ツールとして使用するのは扱いにくく、実際に端末を何に使っているのかを簡単に確認する方法が必要でした。 zsh を使用すると、シェルがコマンドを実行する直前に実行される preexec と、プロンプトに戻る直前に実行される precmd の 2 つのイベントにフックできます。
timer_preexec()
timer_precmd() 関連情報は以下のリンクからご確認いただけます
add-zsh-hook preexec timer_preexec
add-zsh-hook precmd timer_precmd
このスクリプトの完全版では、しきい値を超えた場合に time_precmd 内に PROMPT 変数を設定するので、コマンドに一定の時間がかかるたびに通知が届きます。これはこのアプローチの始まりにすぎません。必要に応じて、さらに進んで適切な記録を残すこともできます。
別のアプローチでは、REPORTTIME zsh 環境変数を使用して、すべてのコマンドを自動的に実行します。
export REPORTTIME=0
REPORTTIME を秒数に設定すると、より長い時間がかかるコマンドのみをレポートできます。
日常の端末使用をスピードアップ
多くの場合、何かを行うためのより迅速な方法があります
スピード ランニングの 2 番目の部分は、ショートカットを使用してより速く作業することです。最初は小さな利益のように見えるかもしれませんが、時間が経つにつれてそれらが組み合わされて大きな節約となり、日常のフラストレーションが軽減されます。
上矢印の使用をやめる
コマンドラインで以前のコマンドを再実行したり書き直したりすることに多くの時間を無駄にしています。シェルの履歴機能を使用すると、これが非常に簡単になります。 上 何度か前のコマンドを見つけて、 を押します。 入力 再実行します。または使用します 左、 右、 そして バックスペース 編集してから実行します。もしかしたら、あなたも次のステップに進んでいるかもしれません Ctrl + A 行の先頭にジャンプします。
このような長々とした入力作業のほとんどは不要であることがわかりました。まず、 !$ これは前のコマンドの最後の引数に展開され、次のようなことができるようになります。
mkdir -p my/new/directory
cd !$
これは、実行可能にしたコマンドを実行するときに便利です (ただし、./ プレフィックスが PATH にない場合は必ず指定してください)。
chmod +x foo.sh
./!$
履歴を展開するショートカットは数多くあります。 !! これは前のコマンドに展開されます。
apt install something
# oops, need to be root...
sudo !!
しかし、これらのテクニックが過去のコマンドを書き換える唯一の方法というわけではありません。もう 1 つのアプローチ (そしておそらく私の一番の推奨事項) は、キャレット置換です。
$ cd my/new/directry
cd: no such file or directory
$ ^tr^tor
cd my/new/directory
この構文を使用すると、シェルは前のコマンドを取得し、最初の文字列の最初のインスタンスを 2 番目の文字列で置き換え、結果を再実行します。私は現在、手動の上矢印アプローチの代わりにこのテクニックを採用することを自分に強制しています。修正方法と修正方法を考えることに慣れてきたので、その速度がどれほど速くなったのかに嬉しい驚きを感じています。
最後に、fc コマンドは、まだ使用していないものの中でおそらく最も便利なコマンドです。デフォルトでは、ターミナルエディタで最後のコマンドが開き、終了時にそれが実行されます。コマンドにさらに重要な変更を加えたい場合は、通常、キャレット置換、履歴ショートカット、または手動でカーソルを移動するよりも高速です。
エイリアスと関数を使用する
おそらく、何も考えずに常に実行しているコマンド (およびコマンドのセット) があるでしょう。自動操縦を使用しているため、プロセスは迅速かつ簡単ですが、さらに早くなる可能性もあります。同じ方法でコマンドを何度も実行する場合は、エイリアスを検討してください。
エイリアスは基本的なテキストの置換を提供するため、入力する代わりに ls -lh 長いファイルリストが必要な場合は、代わりに次のようにすることができます。
ll
これを設定するには、おそらく .bashrc などのファイルでエイリアスを定義する必要があります。 alias コマンドを使用し、まだ使用されていない一連の短い文字を選択し、展開されたコマンド全体を定義するだけです。
alias ll='ls -lh'
増加はわずかに見えるかもしれませんが、コマンドが長くなるほど増加します。たとえば、私は ls の代わりに eza を使用するのが好きなので、エイリアスは次のようになります。
alias ll='eza --long --sort=size --reverse'
特にこのエイリアスを毎日何度も使用するので、これにより多くの入力作業が節約されます。
エイリアスがより複雑になり始めた場合は、代わりに単純な関数を定義することを検討してください。関数を使用すると、パラメーターを使用してフローを制御できます。また、関数を独自のシェル スクリプトから呼び出すこともできます。
私が常に定義するようにしている最も便利な関数の 1 つは、次の関数です。
mkd() 公式情報はこちら
まず、この関数の名前が標準の mkdir よりも短いことに注目してください。ディレクトリを作成するたびに、すでに節約ができています。しかし、もっと重要なのは、とにかくディレクトリを作成したら、私が通常行うこと、つまり cd でそのディレクトリに入るということを実行することです。
また、デフォルトで -p オプションを mkdir に送信します。これにより、「mkd docs/finance」内のドキュメントなどの中間ディレクトリが作成されます。
-p を常に使用すると、いくつかの小さな欠点があることに注意することが重要です。たとえば、いくつかの種類のエラーが無視される可能性があります。しかし、真のスピードランナーは、そのようなリスクを気にしません。彼らはできるだけ早くすべてを正しく理解します。
より高速なツールを使用する
コアの Linux ツールセットは安定しており、成熟しており、信頼性がありますが、代替ツールも利用できます。これらの多くは、高速で安全な Rust などのより現代的な言語で書かれています。
より優れたコマンドライン ツールには、セッション管理用の tmux、find/grep の高速な代替手段である fzf および fd、ナビゲーションを cd よりもはるかに効率的にする zoxide などがあります。
自分の限界を知り、それを取り除きましょう!
シェルには、生産性を測定するだけでなく、向上させることもできる強力な機能が数多くあります。タブ補完、バックグラウンド プロセス、コマンド チェーンなどは、ここで触れていないもののほんの一部です。
関連情報は以下のリンクからご確認いただけます
関連記事
- 取り外し可能なスピーカーを備えたこのミッドレンジポータブルプロジェクターが今なら160ドルオフ
- Discordが世界的な年齢認証を遅らせていると発表
- Microsoftは現在、Windows 11に「内蔵」ネットワーク速度テストツールをテスト中