Bashエイリアスなしでは生きられません

0 Comments

Bashエイリアスは、Bashコマンドを新しいもので補完またはオーバーライドする方法です。 Bashエイリアスは、ユーザーがPOSIX端末での経験を簡単にカスタマイズできるようにします。 それらはしばしば$HOME/で定義されます。bashrcまたは$HOME/bash_aliases($HOME/によってロードされなければなりません。バッシュルーク)。

ほとんどのディストリビューショ新しいユーザーアカウントのbashrcファイル。 これらは、Bashエイリアスの構文を示すための単純なものです。

alias ls="ls -F"
alias ll="ls -lh"

すべてのディストリビューションに事前に設定されたエイリアスが付属しているわけではありません。, エイリアスを手動で追加する場合は、それらを現在のBashセッションにロードする必要があります。

$ source ~/.bashrc

そうでなければ、端末を閉じて再度開いて、設定ファイルを再読み込みできます。Bash初期化スクリプトで定義されたこれらのエイリアスを使用すると、llと入力してls-lの結果を取得し、lsと入力すると、普通の古いlsの出力ではなく、

これらのエイリアスは素晴らしいですが、可能なことの表面を傷つけるだけです。 ここでは、一度それらを試してみると、なしでは生きられないトップ10のBashエイリアスがあります。,

最初にセットアップ

開始する前に、~/というファイルを作成します。bash_aliases:

$ touch ~/.bash_aliases

次に、このコードが~/に表示されていることを確認してください。bashrc file:

if ; then
source $HOME/.bash_aliases
fi

この記事のエイリアスを自分で試したい場合は、yourに入力してください。bash_aliasesファイルを作成し、それらをソース-/でBashセッションにロードします。bashrcコマンド。,

ファイルサイズでソート

GNOMEのNautilus、MacOSのFinder、WindowsのExplorerなどのGUIファイルマネージャでコンピューティングライフを始めた場合、おそらくファイルのリストをサイズでソートすることに慣れているでしょう。 あなたは端末でもそれを行うことができますが、それは正確に簡潔ではありません。

GNUシステムの設定にこのエイリアスを追加します。

alias lt="ls --human-readable --size -1 -S --classify"

このエイリアスは、ltを各項目のサイズを表示するlsコマンドに置き換え、ファイルの種類を示す表記法で単一の列にサイズでソートします。,

alias lt="du -sh * | sort -h"

このバージョンの結果は少し異なります:

$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache

実際、Linuxでも、lsを使用するとディレクトリとシンボリックリンクのサイズが0であるため、このコマンドは便利です。あなたが実際に欲しい情報ではありません。 それはあなたの選択です。

このエイリアスのアイデアのためのBrad Alexanderに感謝します。

マウントされたドライブのみを表示

マウントコマンドは非常に簡単でした。, ただ一つのコマンドで、あなたのコンピュータ上のすべてのマウントされたファイルシステムのリストを得ることができ、それは頻繁にワークステーション これは、ほとんどのコンピュータは、それよりも多くのUSBポートを持っていないので、結果が管理しやすかったので、三、四以上のエントリを見るために印象的,

この問題を解決するには、次のようなエイリアスを試してみてください。

alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"

このエイリアスはawkを使用してmount by columnの出力を解析し、出力をおそらく探しているもの(ファイルシステムではなくハードドライブがマウントされているもの)に減らします。

macosでは、mountコマンドは非常に冗長な出力を提供しないため、エイリアスはやり過ぎになる可能性があります。, しかし、簡潔なレポートを好む場合は、次のようにしてください。

alias mnt="mount | grep -E ^/dev | column -t"

結果:

grep履歴でコマンドを見つける

ターミナルで何かをする方法を考え出し、学んだことを決して忘れないことを約束します。 その後、時間が経つと、あなたは完全にあなたがしたことを忘れてしまった。

あなたのBashの履歴を検索することは、誰もが時々行わなければならないことです。, 検索しているものを正確に知っている場合は、Ctrl+Rを使用して履歴を逆検索できますが、検索したい正確なコマンドを覚えていないことがありま

ここでは、そのタスクを少し簡単にするためのエイリアスです:

alias gh="history|grep"

ここでは、それを使用する方法の例です:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

変更時刻で並べ替え

毎週月曜日に起こります:仕事に着き、コンピュータに座り、ターミナルを開き、先週の金曜日にやっていたことを忘れてしまったことがわかります。, 必要なのは、最近変更されたファイルを一覧表示するためのエイリアスです。

lsコマンドを使用して、中断した場所を見つけるのに役立つエイリアスを作成できます。

alias left="ls -t -1"

出力は単純ですが、必要に応じて–longオプションで拡張することができます。,

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

Count files

ディレクトリにあるファイルの数を知る必要がある場合、ソリューションはUNIXコマンド構築の最も古典的な例の一つです。lsコマンドでファイルをリストし、その出力を-1オプションで一つの列だけに制御し、その出力をwc(word count)コマンドにパイプして、単一のファイルの行数をカウントします。

この輝かしいモノにはUNIXの理念できるユーザーが自分のものを用いた小型のシステム。, このコマンドの組み合わせは、たまたま一日に数回行う場合にも入力することが多く、-Rオプションを使用せずにディレクトリのディレクトリに対して正確には機能しません。

代わりに、このエイリアスはプロセスを簡単にします。

alias count="find . -type f | wc -l"

これはディレクトリを無視してファイルをカウントしますが、ディレクトリの内容は プロジェクトフォルダに二つのディレクトリがあり、それぞれに二つのファイルが含まれている場合、エイリアスはプロジェクト全体に四つのファ,

$ ls
foo bar
$ count
4

Python仮想環境を作成します

Pythonでコーディングしますか?

あなたはPythonでたくさんコードを書いていますか?

そうすれば、Python仮想環境を作成するには、少なくとも53のキーストロークが必要であることがわかります。
それは49あまりにも多くですが、それはveとvaという二つの新しいエイリアスで簡単に回避されます:

alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"

veを実行すると、python3の通常の仮想環境ファイルシステムを含むvenvという新しいディレクトリが作成されます。, Vaエイリアスは、現在のシェルで環境をアクティブにします。

$ cd my-project
$ ve
$ va
(venv) $

コピープログレスバーを追加します

誰もがプログレスバーを楽し それでも、深いダウン、我々はすべてそれらをしたいようです。 UNIX cpコマンドにはプログレスバーはありませんが、冗長化のための-vオプションがあります。 それはかなり良いハックですが、あなたが一つの大きなファイルをコピーしているとき、それはとてもうまく動作しませんし、ファイルのどのくらいの,

pvコマンドはコピー中に進行状況バーを提供しますが、デフォルトのアプリケーションとしては一般的ではありません。 一方、rsyncコマンドは、利用可能なほぼすべてのPOSIXシステムのデフォルトインストールに含まれており、リモートおよびローカルの両方でファイルをコピーする最も賢い方法の一つとして広く認識されています。

いっそのこと、それは組み込みの進行状況バーを持っています。,

alias cpv="rsync -ah --info=progress2"

このエイリアスを使用することは、cpコマンドを使用することと同じです。

$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

このコマンドを使用する興味深い副作用は、rsyncがcpが必要とする-rフラグなしでファイルとディレクトリの両方をコピーすることです。

ファイル削除事故から身を守る

rmコマンドを使用するべきではありません。 Rmマニュアルにもそう書かれています:

警告:’rm’を使用してファイルを削除すると、通常はそのファイルの内容を回復できます。, 内容が偽りなく回復不可能であるというより多くの保証がほしいと思ったら、’細断処理’の使用を考慮しなさい。

ファイルを削除する場合は、デスクトップを使用するときと同じように、ファイルをゴミ箱に移動する必要があります。

POSIXは、ゴミ箱はファイルシステム内のアクセス可能な実際の場所であるため、これを簡単にします。 FreeDesktopでは、ゴミ箱は~/にあります。ローカル/共有/ゴミ箱、MacOSでは-/です。,ゴミ箱が、いずれにしても、それはあなたが永遠にそれらを消去する準備ができているまで、あなたが見えないほしいファイルを配置するだけのディ

この単純なエイリアスは、端末からファイルをゴミ箱に投げ込む方法を提供します。

alias tcn="mv --force -t ~/.local/share/Trash "

このエイリアスは、あまり知られていないmvフラグを使用して、移動したいファイルを最後の引数として指定し、そのファイルを最初にリストするための通常の要件を無視して指定することができます。, これで、新しいコマンドを使用してファイルやフォルダをシステムのゴミ箱に移動できます。

$ ls
foo bar
$ tcn foo
$ ls
bar

ファイルは”なくなりました”が、冷たい汗でまだ必要であることに気づくまで。 その時点で、あなたはあなたのシステムのゴミ箱からファイルを救出することができます;途中でBashとmvの開発者をヒントにしてください。

メモ:FreeDesktopに準拠した、より堅牢なTrashコマンドが必要な場合は、Trashyを参照してください。

Gitワークフローを簡素化

誰もが独自のワークフローを持っていますが、通常は何があっても反復的なタスクがあります。, 定期的にGitを使って作業する場合、おそらくあなた自身がかなり頻繁に繰り返しているシーケンスがあります。 たぶん、あなた自身がマスターブランチに戻って、日中に何度も何度も最新の変更を引っ張って見つけるか、あるいはあなた自身がタグを作成し、リモートにそれらをプッシュして見つけるか、それは完全に何か他のものです。

どんなGit呪文を入力するのに疲れたとしても、Bashエイリアスで痛みを和らげることができるかもしれません。, 主にフックに引数を渡す能力のおかげで、GitはBashで不思議な偉業を実行する必要がなくなる豊富な内省的なコマンドセットを持っています。

たとえば、Bashでは、プロジェクトのトップレベルディレクトリ(Bashに関する限り、コンピュータの絶対トップレベルはルートディレクトリであるため、完全に任, Git hooksを勉強すれば、Bashが何も知らないあらゆる種類の情報を見つけることができますが、その情報をBashエイリアスで活用することができます。,P>

alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"

この種のエイリアスは、決して普遍的に有用なエイリアスではありませんが、比較的単純なエイリアスが、面倒なナビゲーション、コマンド、プロンプトを待っている多くの面倒なナビゲーション、コマンド、プロンプトをどのように排除することができるかを示しています。

より単純で、おそらくより普遍的なaliasは、Gitプロジェクトのトップレベルに戻ります。, この別名ではないでがんプロジェクトに取り組んでいるプロジェクト以下となり、”時”をクリックします。 実際のホームに行くのと同じくらい簡単に”ホーム”に行くことができます。

alias cg="cd `git rev-parse --show-toplevel`"

コマンドcgは、あなたが降りたディレクトリ構造の深さに関係なく、あなたのGitプロジェクトのトップに移動します。,

ディレクトリを変更し、同時に内容を表示します

それはかつて(伝えられるところでは)私たちはlsに続いてcdを入力するオタクによって費やされたエネルギーを利用することにより、惑星のエネルギー問題の多くを解決することができることを主要な科学者によって提案されました。
一般的にディレクトリを変更するとき、あなたは衝動や周りに何があるかを確認する必要があるので、それは一般的なパターンです。

しかし、あなたのコンピュータのディレクトリツリーを”歩く”ことは、開始と停止のプロセスである必要はありません。

これはまったくエイリアスではないので、不正行為ですが、Bash関数を探索するのは素晴らしい言い訳です。, エイリアスは素早い置換には最適ですが、Bashではローカル関数を追加できます。bashrcファイル(またはロードする別の関数ファイル。bashrc、あなたの別名ファイルを行うのと同じように)。

物事をモジュール化するには、~/という新しいファイルを作成します。bash_functionsとその後、あなたを持っています.,bashrcはそれをロードします。

if ; then
source $HOME/.bash_functions
fi

関数ファイルに次のコードを追加します。

関数をBashセッションにロードしてから試してみてください。

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads

$ pwd
/home/seth

関数はエイリアスよりもはるかに柔軟性がありますが、その柔軟性により、コードが理にかなって期待どおりに動作するようにする責任があります。 エイリアスは単純であることを意図しているので、それらを簡単に保つが、便利です。 Bashの動作を大幅に変更するには、PATH内の場所に保存されている関数またはカスタムシェルスクリプトを使用します。,

記録のために、cdとlsシーケンスをエイリアスとして実装するための巧妙なハックがいくつかあるので、あなたが十分に忍耐強ければ、空は謙虚なエイリアスを使用しても限界です。

エイリアシングと機能を開始


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です