\r\n\r\n
Linuxでbashshellを使っていて良かったですか?それとも、他の選択肢を試したいですか?tsch、fish、KornShell、Z Shellの中から選ぶことができます。しかし、これらの人気のあるLinuxのシェルのうち、どれが一番良いのでしょうか?
通常、アプリケーションを書くときは、人間が理解できるような高級言語で行います。その例として、C、java、C++などがあります。信じられないかもしれませんが、コンピュータはすべてを1として見ています。つまり、よく知られているバイナリコードやマシンコードです。
そして、コンパイラは高級言語を実行ファイルと同じようにバイナリファイルに変換する。このバイナリーは、当該アプリケーションを起動するために実行するファイルです。
さて、これは非常に高度な見方です。コンピュータには翻訳層が必要であることを思い出してください。翻訳層は、あなたが何をするようにとコンピュータがそれをどう理解するかの間のどこかにあります。
シェルはいわゆるインタプリタである。コンパイラと同様に、インタプリタは人間のコードを機械語に翻訳する。違いのひとつは、通訳が1文ずつ行うことです。一方、コンパイラはプログラム全体をスキャンして、すべてを機械語に変換する。
したがって、シェルはオペレーティングシステム(OS)と対話するためのインターフェースです。シェルにコマンドを打ち込むと、そのコマンドを解釈して魔法を実行する役割を担っています。ファイルのコピー、パイプ、ファイルのリストアップなどの操作は、すべてシェルの権限に含まれます。
Linuxのシェルはいくつかありますが、お使いのシステムで利用可能なすべてのシェルを見つけるには、ターミナルを開いて次のように入力します。
cat /etc/shells現在使用しているシェルの種類を調べるには、次のように入力します。
echo $0しかし、あなたは最高のLinuxシェルを使っていますか、何があるか見てみましょう。
Linux ユーザーの間で最も人気のあるシェルです。Bourne-Again-Shell (bash) を抜きにしてシェルを考えることは困難です。bash がデフォルトの gnushell であるように、多くの Linux ディストリビューションには bash がデフォルトのシェルとして入っています。この 1989 年のリリースを背景に、このまた、数十年にわたる健全な発展もありました。
Bashは、以前はbourneshell(sh)として知られており、Unixシェルの元祖の1つであった。shのプログラマーにとって魅力的なのは、スクリプトを全く変更せずに直接bashに移植できることである。
しかし、bashスクリプトを書いたことのある人なら誰でもわかるように、bashにも欠点があるのです!何もできないわけではないのですが、読み書きが特にエレガントであるとは限らないのです。
KornShellは、しばしばkshと呼ばれ、1980年代にベル研究所で生まれたLinuxの代替シェルとして人気があります。 bashとkshの違いはあまりありませんが、どちらもいくつかの小さな利点を持っています。例えばKshには、cd old newというコマンドがあります。もし、/Downloads/foo/bar/one/foobar ディレクトリにいるときに、/Downloads/foo/bar/two/foobar に移動する必要があるなら、単に次のようにタイプしてください。
cd one twokshのベテランは、以下のようなスクリプトの優位性について言及し、その優位性を誇示する。
bashと違って、kshのヘルプはオンラインでは見つけにくいです。kshを使ってみるには、次のように入力します。
sudo apt install kshkshTcshはUnixの初期にさかのぼるが、Cシェル(csh)を改良したもので、以下のような特徴がある。
と入力すると、任意のコマンドを実行することができます! n 表示された履歴の中の対応する番号に置き換えてください。 tcsh works で、次のように入力すると、「履歴」タブが完成します。
!a<TAB>これは、"a "で始まる最後のコマンドまで拡張されます。一方、bashでは、まずコマンドを見るために!a:pと入力し、次に!をクリックして実行します。
tcshを試すには、次のように入力します。
sudo apt install tcshtcshTcsh は FreeBSD などの BSD ベースのシステムのデフォルトのシェルです。tcsh の大きなセールスポイントはそのスクリプト言語で、主に C 言語でプログラムする人には便利です。このため、tcshは小さなCプログラムのプロトタイピングに非常に便利で、ブラケットなどで混乱することがありません。これは、C言語プログラミングとシェルスクリプトを常に切り替えて使用している場合に問題となることがあります。
Linuxのシリアスな雰囲気の中で、fishのチームはプロジェクトにユーモアのセンスを埋め込んでいる。fish("friendly interactive shell")は2005年に開発されたものだが、同社のホームページには「ついに90年代のコマンドラインシェル」というタイトルでフレーズが掲載されている。鮮やかなVGAカラー」を謳うだけでなく、他のシェルの強化も多数あります。
新しくインストールしたソフトのマニュアルページにある構文をオートコンプリート候補に追加する機能です。コマンドラインに慣れ親しむには、fishは良い手始めです。
魚のサンプルを入手するには、次のように入力します。
sudo apt install fishfishzsh は bash と ksh に類似しており、tcsh と同様にこれらの多くの機能を兼ね備えています。
zshのGlobbingはとても便利です。 タイピングができます。
vim /u/l/b/a<TAB>ファイルを開きます。
/usr/local/bin/autoupdate.shデフォルトの設定を使用しない場合、Zsh は初めて使用するときに設定するのに時間がかかることがあります。
sudo apt install zshzshこれらのオプションがオプションであることは素晴らしいことです。その一つひとつに、プログラマーが自分たちのやり方でやりたいと思った、コンピュータの歴史が垣間見えるのです。
これらのシェルの大きな違いは、スクリプトのシンタックスにあります。それぞれのシェルには、他のシェルとは異なるニュアンスがあります。現状では、bashが市場シェアで圧倒しており、助けを求めやすくなっています。bashは単純に最高のオールラウンダーであり、上級者以外のすべてのユーザーに対応しています。
Linuxのシェルを使うことになったら、シェルスクリプトの基本を熟知していることを確認すること。