はじめる人のびぎねっと。

プライバシーポリシー

読み物

Linux基礎

シェルとは?

Linuxの中核を担っているのがカーネルですが、もしLinuxにカーネルしかなかったら人間はコンピュータを操ることができません。なぜならば、カーネルは人間との意思の疎通を図る機能を持っていないためです。そこで、カーネルと人間が意思の疎通を図れるよう、通訳の役割を担う存在が必要になります。この役割を担うのが「シェル」です。

テキストログインでログインするとプロンプト($や#など)が現れますが、このときに動いているのがシェルです。ユーザは、プロンプトに続けてコマンドを打ち込むことによってLinuxを操作します。この操作ではユーザーはカーネルと直接会話しているのではありません。

ユーザがコマンドを打ち込んだり、コマンドの実行結果を見たり、という「会話」をしている相手は、カーネルではなく実はシェルと呼ばれるものなのです。シェル:Shell(貝殻)という名前の由来は、「カーネルを包み込んでいる」というように見えるところから来ています。

シェルは、ユーザからのコマンド(命令)を、通訳してカーネルに渡します。カーネルからのメッセージも、シェルで通訳されて出力されます。シェルの役割はそれだけではなく、ユーザに対して便利な機能を提供します。最近のディストリビューションで標準として採用されているシェル「bash」では、たとえば、コマンドプロンプトが表示された状態で上矢印キーを押すと、過去に入力したコマンドが表示される機能(ヒストリ機能)や、ファイル名を途中まで入力してTabキーを押すと、既にあるファイルやディレクトリの名前が自動的に補完される機能(補完機能)が使えます。その他にも、「リダイレクト」や「パイプ」などの便利な機能も使えます。

シェルの種類

シェルにはいくつかの種類があります。最近のLinuxでは、上で紹介したヒストリ機能を備えた「bash」というシェルが標準のシェルとして広く使われています。その他にも、C言語に似たプログラミング機能を備えた「tcsh」や、bashの機能を強化した「zsh」など、色々なシェルがあり、それぞれ個性をもっています。シェルの変更の仕方はとても簡単で、以下のようにプロンプトから、変更したいシェルの名前を入力するだけでOKです。

[taro@beginet taro]$ csh←最初はbashだったのが
[taro@beginet ~]$←cshになる

このように、使いたいシェルがインストールされていれば、簡単にシェルを変更することができますので、いろいろと試して、お気に入りのシェルを探してみてください。

ログインしたときのシェルの変更

お気に入りのシェルが見つかったら、ログインしたときにすぐにそのシェルで作業できるようにしましょう。このようなときには、エディタを使って「/etc/passwd」というファイルを編集します。この作業はroot権限で行います。

/etc/passwdの内容 root:x:0:0:root:/root:/bin/bash
     ・
     ・
taro:x:500:500:taro:/home/taro:/bin/bash
     ・
     ・

/etc/passwdには、一行に一つのユーザの情報が書かれています。一番左がユーザ名、一番右がログインしたときに使用するシェルです。この一番右に書かれている情報を書き換えれば、ログインしたときに使うシェルが変更できます。たとえばtaroでログインしたときにcshを使えるようにするには、上のtaroの行の一番右の部分を

taro:x:500:500:taro:/home/taro:/bin/csh

と書き換えます。これで、taroでログインすると、bashではなくcshが起動するようになります。

このページのTOPへ