GNU/Linux >> Linux の 問題 >  >> Linux

Bashシェルのカスタマイズ

Bashシェルは、多くのシステム管理者や開発者が毎日使用するコマンド処理環境です。これは1989年に最初に開発され、Linuxが作成されて以来、多くのディストリビューションのデフォルトのシェルとなっています。ほとんどの場合、Bashまたは「Bourne-againshell」は、コマンドラインを開くたびに内部で作業しているフレームワークです。また、独自のスクリプト言語があり、精神的な訓練を受けた人がそれらを学ぶための膨大な数のユーティリティを誇っています。

なぜシェルをカスタマイズするのですか?

Bashシェルは多くのユーティリティを提供しますが、完璧なシステムではありません。何年にもわたって、コマンドライン愛好家は欠陥を見つけてさまざまなシェルを改善してきましたが、Bashも例外ではありません。 Bashに追加できる機能はたくさんあります。意味のある機能の変更から、個人的な好みに応じて行われるショートカットや美的変更まで、すべてが変更されます。とはいえ、誰もが好みの美学を持っているので、機能の変更に焦点を当てます。

小さく始める

シェルのカスタマイズを開始する最も簡単な方法は、コマンドライン時間のほとんどが費やされている場所を見つけることです。 grepを使用していますか およびnetstat 頻繁? 1時間に数え切れないほどファイルシステムを移動していますか?もしそうなら、どうすればこれらのタスクをより効率的にすることができますか?このサイトのために書いた最初の記事では、AutoHotkeyと呼ばれる自動化スクリプトについて話しました。残念ながら、Windowsでのみ動作します。私はある読者から、Linuxで同じタスクを実行するために使用できるものを見つけるように求められました。その課題に対するきちんとパッケージ化されたソリューションはありませんが、aliasを作成できます。 同じ効果をもたらすためにシェル内で変更されたコマンドの場合。これには少し時間がかかる場合がありますが、エイリアシングについて学び、独自のエイリアシングを作成すると、よりスマートで効率的なシステム管理者になります。

EnableSysadminコミュニティメンバーのRickGreeneは、お気に入りのエイリアスの1つを共有し、sudoを使用してルートシェルに昇格しました。 。

alias root="sudo su - root"

事実上、彼はrootとして機能します ユーザーは、自分のユーザーアカウントのパスワードを使用して、システムでの自分のアクションを追跡します。ここでの推奨される方法は、sudoを使用することです。 この例の優れている点は、アクションの前にコマンドを実行することで、各ユーザーが自分に合ったソリューションを作成できることです。 aliasができます シェル内のほぼすべてのコマンド。今すぐ独自のエイリアスをいくつか作成することをお勧めします。

[Linuxでエイリアスを作成する方法については、以前の記事をご覧ください。 ]

X> f(x)

あなたが数学的に傾いているなら、あなたは私たちがここで話していることをすでに知っています。機能は、教室の悪夢から抜け出し、仕事の生活に取り入れられました。ここでの朗報は、これらは非常に単純で、非常に役立つ可能性があることです。それらは、エイリアシングと本格的なスクリプトの間の架け橋を可能にします。ここでの大きなポイントは、複数のコマンドをチェーンできることです。これらの関数を作成するための構文と実際の使用例を見てみましょう。関数を作成するには、次の構文を使用します。

function_name () {command1; command2;}
#You MUST use a semicolon after each command, including the last. 

これをどのように使用しますか?私がウェブ上で浮かんでいるのを見た最も良い例の1つは、新しいディレクトリを作成し、すぐにそのディレクトリに移動できるようにする関数です。その関数は次のようになります:

mkd () {mkdir -p $1; cd $1;}

ここで、func_testというディレクトリを作成すると mkdを使用する 関数を使用すると、自動的に新しいディレクトリに配置されることがわかります。

# mkd func_test
# pwd
# Home/user/func_test

歴史は繰り返す?必要な場合のみ...

この記事を書く前に、私は寄稿者コミュニティに連絡を取り、彼らのお気に入りのBashの改善についてフィードバックを求めていました。私が受け取ったすべてのフィードバックには共通のテーマがありました。人々はBashのhistoryの方法を変えたいと思っています 動作します。私が見た最も有用な変更の1つは、historyから重複するエントリを削除する機能でした。 。

Opensource.comのSethKenlonは、彼の.bashrcから以下を送信しました。 ファイル。 historyを許可します スペースで始まる重複するエントリやコマンドを無視します。

"export HISTCONTROL=$HISTCONTROL:ignorespace:ignoredups"

Red Hatter Steve Newstedは、ユーザーがBashのhistoryを変更しようとしているStackExchangeのすばらしいスレッドを指摘してくれました。 そのhistoryを持ちながら、彼のマシン上のすべての端末からすべてを覚えておく 上記のマシンのすべての端末からアクセスできます。 suntzuisafterUによる答えの創造性をチェックしてください。 ~/.bashrcに以下を追加するだけです ファイル。

#Avoid duplicates
HISTCONTROL=ignoredups:erasedups  
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend

# After each command, append to the history file and reread it
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"

次のステップ

これで、Bashで利用できる多数の変更、最適化、およびパーソナライズを確認できます。この記事は、シェル内でできることのほんの一部にすぎません。そこに出て、自分で探検してください!お気に入りのBashを追加した場合は、[email protected]のチームに送信してください。読者が利用しているクリエイティブなソリューションのいくつかを見てみたいです!

[Linuxシステム管理の開始についてさらにサポートが必要ですか? RedHatシステム管理コースを受講してください。 ]


Linux
  1. pushdとpopdを使用してBashシェルをナビゲートする

  2. Bashシェルでのクイックディレクトリナビゲーション?

  3. Bashの「評価」コマンド?

  1. .bashrcの目的とそれはどのように機能しますか?

  2. バッシュ‘?

  3. Bashシェルのカスタマイズ:コマンドを太字/色で表示しますか?

  1. `$ _`の意味を理解しますか?

  2. シェル変数の関数?

  3. BASH シェルが Linux で構成ファイルをロードする方法