目次
2.1 / bin / bash和/ usr / bin / bash
2.2 / bin / sh和/ usr / bin / sh
Shellを学ぶには、まずShellの目的を知る必要があります。この記事では、Shellパーサーを紹介します。
1.パーサーとは何ですか?
Shellは、Linuxオペレーティングシステムのコマンドラインパーサーであり、ユーザーがLinuxカーネルを操作するためのツールです。実際、Shellは、次の図(手作り)に示すように、トランスレーターと同様の役割を果たします。
上の図からわかるように、パーサーの名前がShellであるのには理由があります。オペレーティングシステム全体は、実際には抽象化レイヤーであるレイヤーごとにラップされています。抽象化の度合いが高いほど、簡単になります。プログラミング言語と同じように、アセンブラーは最下部に近く、C言語はアセンブリ言語よりも抽象的であり、Java言語はより抽象的です。
では、誰が最初のUnixシェルを発明したのでしょうか。
Ken Thompsonは、UNIXの最初のバージョンを作成したときにシェルを開発し、Multicsでのシェルの実装をエミュレートしました。
2. Linuxにはどのパーサーがありますか?
Linuxパーサーにはいくつかの種類があります。
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
[root@localhost ~]#
以下に示すように、CentOS7では/ Bin / bashがデフォルトで使用されます。
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# echo $SHELL
/bin/bash
[root@localhost ~]#
2.1 / bin / bash和/ usr / bin / bash
Unixシェルの一種であるBashは、1987年にGNUプロジェクトのためにBrianFoxによって作成されました。最初の公式バージョンは1989年にリリースされました。当初はGNUオペレーティングシステムで使用する予定でしたが、LinuxやMac OS Xv10.4からmacOSMojaveまで、ほとんどのUnixライクなオペレーティングシステムで実行できます。デフォルトとしてシェル、macOS Catalina以降、デフォルトのシェルはzshに置き換えられています。------ウィキペディア
2.2 / bin / sh和/ usr / bin / sh
以下に示すように、/ bin / shと/ usr / bin / shはbashのソフトリンクです。
[root@localhost ~]# ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 9月 24 01:40 /bin/sh -> bash
[root@localhost ~]# ls -l /usr/bin/sh
lrwxrwxrwx. 1 root root 4 9月 24 01:40 /usr/bin/sh -> bash
[root@localhost ~]#
2.3 / bin / tcsh
tcshは、cシェルと下位互換性のあるUnixシェルです。基本的に、コマンド補完、コマンド編集、その他の機能をcシェルに追加します。これは現在、FreeBSDとその拡張ディストリビューションのデフォルトのシェルです。------ウィキペディア
2.4 / bin / csh
Cシェルは一種のUnixシェルであり、BSDシステムでBillJoyによって開発されました。CシェルはUnixの第6版で/ bin / shから生まれ、Bourneシェルの前身でもあります。このシェルの構文はC言語に似ています。Bourneシェルと比較すると、Cシェルにはエイリアスやコマンド履歴などの多くの特別な機能があります。現在、Cシェルは広く使用されておらず、その後継にはTenex Cシェル(tcsh)、Kornシェル(ksh)、GNU Bourne-Againシェル(bash)が含まれています。------ウィキペディア
3、まとめ
シェルは、ユーザーとLinuxカーネルの間の架け橋であり、スクリプトプログラミング言語でもあります。[フォロー]をクリックすると、さらに更新が続きます。シェルは知っておく必要があります。