連載
» 2016年03月02日 05時00分 UPDATE

“応用力”をつけるためのLinux再入門(4):Linuxのシェルとコマンドプロンプトを理解しよう (1/2)

今回のテーマは「シェル」です。リモートでサーバを操作したり、GUIではできない操作をしたり、よく行う処理を自動化したり……と、Linuxではシェルを使う機会がとても多く、また、シェルを使いこなせるようになることで活用の幅が大きく広がります。これから何回かに分けてシェルの使い方を紹介していきます。

[西村めぐみ,@IT]
「“応用力”をつけるためのLinux再入門」のインデックス

連載目次

シェルでコマンドを入力してみよう

 まずは、シェルのおさらいです。本連載第3回で簡単に触れましたが、ユーザーからのコマンド入力を受け取り、実行結果を表示するのが「シェル」です。実際にやってみましょう。

 LinuxをCUI(Character User Interface)ベースで起動しているならば、ログインするとシェルがコマンド入力待ちの状態となります(画面1)。GUI(Graphical User Interface)ベースであれば「端末」あるいは「rxvt」「Xterm」など、「〜term」という名前のアイコンからシェルを起動することができます(画面2)。

画面1 画面1 CUIのログイン画面
画面2 画面2 「端末」アイコンからもシェルを起動できる(CentOS7)

 ここでコマンドを入力して[Enter]キーを押すと、実行結果が表示されます(画面3)。

画面3 画面3 シェルでのコマンド実行例

Linuxで使えるシェルの種類

 Linuxで使えるシェルにはさまざまなものがあり、自分の好きなものを選ぶことができます。主なシェルには以下のものがあります。

  • sh(Bourneシェル、Bシェル)
  • bash
  • csh(Cシェル)
  • tcsh
  • zsh

 「sh(Bourneシェル、Bシェル)」は、この中では最も古くからあるシェルで、UNIX系システムには必ず入っています。現在は、Bシェルを発展させ、より使いやすくしたシェルである「bash(Bourne Again Shell)」が広く使われています。

 「csh(Cシェル)」はバークレイ版UNIXの標準シェルで、C言語と同じような文法のシェルスクリプトを書けることが特徴です。現在は、Cシェルと完全な互換性を持ち、かつ機能が強化された「tcsh」がよく使われています。

 「zsh」はBシェル系ですが、bashやtcshの機能が盛り込まれ、さらに独自の機能も追加された多機能シェルです。

 これらのシェルの中でも、主に使われているのがbashとtcshです。ほとんどのLinuxディストリビューションでは、インストール後にデフォルトでbashが起動するようになっているでしょう。本連載でも、シェルについてはbashを中心にして解説していきます。

 なお、単にコマンドを実行するだけであれば、どのシェルを使ってもほとんど変わりはありません。コマンドとコマンドを組み合わせたり、コマンドの入力を補助したりする機能で違いが出てくることがあります。

現在使っているシェルを確認するには?

 今、自分が使っているシェルが何なのかを確認してみましょう。今回は「ps」コマンドを使って確認します。psコマンドは、現在動作しているプロセスを表示するコマンドです。

 それでは、何もオプションを指定しないで「ps」だけで実行してみましょう。画面4のように「bash」と表示されれば、現在bashが動作していることが分かります。

画面4 画面4 コマンドラインで「ps」コマンドを実行して、動作しているシェルを確認する

別のシェルを試すにはどうする?

 それでは、今度はtcshを起動してみましょう。コマンドラインで「tcsh」と入力すれば起動しますが、シェルの場合は「exec tcsh」と入力します(※)。bashに戻るには、「exec bash」と入力します。

【※】「exec」は“現在のプロセスを新しいプロセスで置き換える”というコマンドです。例えば、bashが動いているところで「exec tcsh」を実行すると、tcshがbashに置き換わって動作します。execなしでシェルを起動した場合は、元のシェルの子プロセスとして別のシェルが起動します。このような起動をした場合は、「exit」で元のシェルに戻ります。プロセスについては今後の本連載で取り上げます。



 ただし、特に設定ファイルが用意されているわけではないので、見た目は何も変わりません。コマンドラインでの入力方法も同じで、psコマンドの結果が変わることが確認できる程度です(画面5)。

画面5 画面5 「exec」コマンドでtcshを起動して、psコマンドで確認する

インストールされているシェルを確認するには?

 インストールされているシェルは、設定ファイルの「/etc/shells」にリストアップされています(※)。「/」はディレクトリを示す際に使う記号で、「/etc/shells」は「/etcという場所にあるshellsというファイル」という意味になります。

【※】「/etc/shells」は、“ログインシェルとして使用できるコマンドの一覧”が記述された設定ファイルです。「ログインシェル」はログインして最初に起動するコマンドなので、この設定ファイルに記述されているものだけが許可されています。「shells」ファイルは一般ユーザーの権限では書き換えることができません。



 「shells」ファイルはテキストファイルなので、例えばデスクトップで「etc」ディレクトリを開いて「shells」をダブルクリックすれば、テキストエディタが起動します(画面6)。

画面6 画面6 「etc」ディレクトリにある「shells」ファイルをダブルクリックして、テキストエディタで開く

 しかし、せっかくコマンドラインを使っているのですから、「cat」コマンドで「/etc/shells」の内容を表示してみましょう。「cat /etc/shells」と入力して[Enter]キーを押します(画面7)。これは、「cat」コマンドを、「/etc/shells」というファイル名を指定して実行する、という意味です。

画面7 画面7 「cat /etc/shells」コマンドでインストールされているシェルを確認する
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。