(2026/01/07変更:「概要」の「シェル」について、記述を変更
出発点
Linux初心者なので、コマンドをひたすら覚えていけばいいのかなーと思っていましたが、それが正しいのかは分からず。
1on1で上長と相談する機会があったのでLinux勉強についてアドバイスをいただき、Linuxの教科書的な本を一冊読んでみようとなりました。
今回は本の序盤で登場した、シェルとカーネルのやりとりについて勉強したことをまとめてみます。
概要
カーネル
OSの中核となる部分であり、CPUやメモリなどのハードウェアを管理するとともに、
コマンド実行を処理するプロセス管理も行っている
Linuxカーネルは人間にやさしくないため、ユーザとカーネルの間に「コマンドを実行する」や「入出力を指定する」インタフェースを持つソフトウェア(シェル、ターミナルエミュレータ)が必要
シェル
カーネルのインタフェースとなっているソフトウェア
(2026/01/07変更)「カーネルへの命令を実行するコマンド」などを持っているソフトウェア
シェルが文字列の指すコマンドを探し出し、そのコマンドを指定してLinuxカーネルに実行を依頼する
結果を受け取ってターミナルに出力
殻のようにLinuxカーネルを包みこみ動作する
ターミナルエミュレータ
ユーザがコンピュータへ入出力する際に利用する専用のハードウェア
現在のLinuxを利用する際には、ターミナルをソフトウェア化したエミュレータが使われる
ターミナルエミュレータとシェルは全く違うソフトウェアである
あくまで入出力の画面を提供するだけのソフトウェア
やり取りシーケンス
おもったこと
- コマンドを勉強することが、シェルの使い方の理解につながっているのかなあと
- よく
cd ~/workとか打ったりするけど、~が/home/{user}に変換してくれているのはシェルのおかげなんだなあと -
rm *.hogeみたいに、拡張子がhogeであるようなファイルをまとめて削除してくれているのも、シェルが*を変換してくれているのかなあと
チルダ展開
~は、シェルによりユーザのホームディレクトリのパスへと自動的に置き換えられる
パス名展開
ファイル名の一部をパターンで指定することにより、複数のファイルを指定する機能
ワイルドカード展開やファイル名グロブとも呼ばれ、*と?の記号を利用する
よんだほん
SB Creative、新しいLinuxの教科書 第2版
