Linuxで使用するシェルを変更する

通常、RedHat系のLinuxでは標準で「bash」シェルが設定されている。

現在使用しているシェルが何かを調べるには、環境変数のSHELLを参照する。

bash以外のシェルを使用するには、以下のようにコマンドラインから直接起動する。

終了するには、exitコマンドを実行する。

シェルを変更するとコマンドラインでの操作形態を変えることができるが、次のように「chsh」コマンドを使用すれば設定ファイル(/etc/passwd)を編集しなくても容易に変更が可能。

尚、使用できるシェルはshellsファイルで確認可能。

 

Linuxでテキストファイルの行数や単語数を調べる

テキストファイルの行数や単語数を調べるには、wcコマンドを使用する。

調査対象のファイル名をオプションなしで指定すると、そのファイルの行数、単語数(空白区切り)、ファイルサイズ(byte数)が表示される。

11(行数)、31(単語数)、201(ファイルサイズ)

wcコマンドの主なオプションは、以下の通り。

オプション機能
-l行数を表示する
-w単語数(空白区切り)を表示する
-cファイルサイズ(byte数)を表示する

wcを使うと、標準出力に表示された行数を数えることもできる。

例えば、ディレクトリに含まれるファイルを検索するfindコマンドと組み合わせれば、あるディレクトリに存在するファイル数をサブディレクトリも含めてカウントできる。

なお、ファイル数だけを調べたいときは、以下のように-type fオプション を付ける。

 

LinuxでBashのプロンプト設定を変更する

プロンプトについて

Linuxの標準シェルであるBashでは、コマンドを入力するコンソールをプロンプトと呼ぶ。

Fedora/RedHatでは、初期状態は以下のような形式となる。

ユーザー名がfoo、ホスト名がbarの場合、以下の通り。

~は、当該ユーザのホームディレクトリの意味。

カレントディレクトリが/var/tmpの場合、以下の通り。

 

プロンプトの確認

プロンプトの設定は、’PS1’というBashのシェル変数(環境変数)によって定義される。

シェル変数の指定内容を確認するには、echoコマンドを利用。

\u … ユーザ名
\h … ホスト名
\W … カレントディレクトリ
\$ … 一般ユーザであれば”$”、rootユーザ(UIDが0)であれば”#”を表示

 

プロンプトの設定変更

プロンプトの表示を変更するには、シェル変数’PS1’を変更する。

プロンプトに表示可能な情報は以下の通り。

指定文字内容
\aベル(ビープ音)をならします(ASCIIのベル文字07)
\d曜日 月 日"の形式の日付
\hホスト名(最初の.までの名前)
\Hホスト名
\n改行
\r復帰
\sシェル名(標準だと"-bash"が表示)
\t時刻 HH:MM:SS 形式(24時間) H = Hour = 時、M = Minutes = 分、S = Seconds = 秒
\T時刻 HH:MM:SS 形式(12時間)
\@時刻 am/pm をつけたもの。Lang=Jaの場合 HH:MM (午前|午後)となる。
\u現在のユーザー名
\vbash のバージョン
\Vbash のバージョン・リリース番号など詳細
\w現在のディレクトリ(フルパス)
\W現在のディレクトリ名
\!コマンドのヒストリー番号
\#コマンドのコマンド番号(ログイン後何回実行したか)
\$UIDが0であれば"#"、それ以外は"$"
\\バックスラッシュ
\[表示されない文字列(エスケープシーケンス/端末制御シーケンス)の開始
\]表示されない文字列(エスケープシーケンス/端末制御シーケンス)の終端

プロンプトにコマンドを指定する場合は、「\$(コマンド)」。

 

プロンプトの設定を固定する

~/.bashrc ファイル(~はホームディレクトリの意味)の末尾にPS1=’~’の記述を追加する。