Linuxコマンド、シェル、ターミナルの概要
- はじめに
- Linuxコマンド
- コマンドが実行された時のLinux内部の仕組み
- シェルとは
- シェルの種類
- 本著ではbashが強くおすすめされている
- プロンプトとは
- ログインシェルの確認
- 一時的にシェルを切り替えることも出来る
- ターミナルに関するまとめ
- 続く…
- 参考
はじめに
多少実践的にもLinux使えるようになりたいと思い書籍「新しいLinuxの教科書」を読み進めています。
本記事では「新しいLinuxの教科書」で学んだ内容と別途気になって調べた内容や知識も含めアウトプットしていきます。
前回の記事の続きとなっております。
Linuxコマンド
ログイン、ログアウト
以下はログイン、ログアウト関連のコマンド解説です。
コマンド | 解説 |
---|---|
exit | 現在のシェルからログアウトする。 |
logout | 現在のユーザーアカウントからログアウトする。 |
su | 別のユーザーとしてログインする。 |
shutdown -h now | システムをシャットダウンする。-h オプションはハードウェアの電源を切ることを示し、 now は即座にシャットダウンすることを示す。 |
shutdown -r now | システムを再起動する。-r オプションは再起動することを示し、 now は即座に再起動することを示す。 |
基本的にはLinuxでは使い終わったらログアウトすることが推奨されています。
セキュリティの観点と、PCのリソースを余分に消費するためです。
また、shutdownは重い操作のため、メンテナンスやシステム障害のケースでない限りは動かし続けて使用されるのが一般的です。
コマンドが実行された時のLinux内部の仕組み
date
コマンドを実行した例です。
コマンドを実行する部分はLinuxの本体であるLinuxカーネルが行います。
シェルとは
カーネルとユーザーの間で機能するソフトウェアです。
シェルは入力されたコマンドをLinuxカーネルが理解できる形式に変換
し、カーネルに送信
します。カーネルがコマンドを実行した結果をシェルに返し、シェルはそれをユーザーに表示します。
シェルには複数の種類があり、それぞれに独自の機能や特徴があります。代表的なシェルにはBash、Zsh、Ksh、Tcsh
などがあります。
Linuxカーネルとシェルは密接に関連しており、一緒に動作することでLinuxシステムを構成しています。
シェルの種類
いずれもUnixシェルの種類です。
sh (Bourne shell)
Unixオペレーティングシステムで最も古くから存在するシェルの1つで、Bourne shellとも呼ばれます。
POSIX規格に準拠しておりシンプルであるため、組み込みシステムや古いシステムなどリソースが限られた環境での使用に適しています。
bash (Bourne-Again SHell)
GNUプロジェクトによって開発された、Bourne shellの拡張版です。
POSIX規格に準拠しているだけでなく、機能拡張が多数実装されています。
GNU / Linuxシステムでは、標準的なシェルとして使用されることが多く、Mac OS Xなど他のUnix系システムでも利用できます。
zsh (Z shell)
bashに比べて機能が豊富で、高度なカスタマイズが可能なシェルです。
コマンド補完機能が強力で、コマンドの実行を支援する多数の便利な機能が備わっています。
Mac OS Xなど、いくつかのUnix系システムでデフォルトのシェルとして使用されています。
本著ではbashが強くおすすめされている
デメリットはなく、以下のメリットがあると記されていました。
ただ、zshを否定する意味ではなく、zshはさらに高機能な有用なシェル
と書かれていました。
別調べによると、zshとbashはどちらも強力なシェルであり、機能面ではほぼ同じ
です。
ただ、zshはbashと比べて学習コストが高い
というデメリットがあるようです。
bashはデフォルトのシェルとして多くのLinuxディストリビューションに採用されており、広く使われているため、初心者には扱いやすいかもしれません。
プロンプトとは
ターミナルなどで都度表示される”コレ”です
以下のCentOSではyanoがユーザー名
、localhostがホスト名
です。
実行環境によってプロンプトの形式は変わるようです。
ログインシェルの確認
以下のecho $SHELL
コマンドで確認することができます。
MacのターミナルはzshでCentOSはbashのようです。
~/w/goenbako ❯❯❯ echo $SHELL /usr/local/bin/zsh
一時的にシェルを切り替えることも出来る
シェルの名前を叩くだけです。
~/w/goenbako ❯❯❯ bash ✘ 127 The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050. bash-3.2$ date 2023年 4月 4日 火曜日 22時02分55秒 JST bash-3.2$ exit exit ~/w/goenbako ❯❯❯
ターミナルに関するまとめ
ターミナル
ターミナルは、物理的なデバイスであり、ユーザーがCLIを使用してシステムとやりとりするための画面とキーボードを提供します。
現代のOSにおいて、ターミナルエミュレータが広く使用されており、実際の物理的な端末ではなく、仮想的な端末を提供しているため、ターミナルは厳密にいうと今はターミナルエミュレータに成り代わっているため、ソフトウェアを指す場合はターミナルエミュレータと呼ぶのが適切です。
ターミナルエミュレータ
ターミナルをエミュレート(模倣)するソフトウェアで、コマンドラインインタフェース(CLI)を使ってLinuxシステムを操作するために必要です。
ターミナルエミュレータは、ターミナルで使用される多くの機能を模倣し、端末の画面上に文字を表示することができます。
シェルは、ターミナルエミュレータの上で動作するソフトウェアの一種で、コマンドを入力して操作することができます。
続く…
コメント
本記事の内容は以上になります!
書籍の続きのアウトプットも随時更新したいと思います。
プログラミングスクールのご紹介 (卒業生より)
お世話になったプログラミングスクールであるRUNTEQです♪
ご不明な点ありましたらお気軽にコメントか、TwitterのDMでお答えします♪
参考
- 新しいLinuxの教科書 - Chapter02