.bashrcでプロンプト、エイリアスの設定を行います。
この記事では、Ubuntuの.bashrcをピンポイントで説明しています。
本記事の内容
- .bashrcとは?
- プロンプト設定
- エイリアス設定
- EDITOR変数設定
それでは、上記に沿って解説していきます。
.bashrcとは?
.bashrcは、bash起動時に読み込まれるファイルです。
また、bashの起動はログイン時とは限りません。
単純に「bash」と入力して、実行してもbashは起動します。
$ bash
Chromeを例にして、bashの起動を説明します。
Chromeは、次のアイコンをダブルクリックすれば立ち上がります。

立ち上がったブラウザは、次のように表示されています。

「新しいタブ」、これがbashだと考えてみてください。
そして、重要なことはタブを増やせるということです。
「+」をクリックすれば、タブは追加できます。
bashも同じように、追加で起動させることが可能です。
Chromeの立ち上げが、ログインと同じようなモノになりますね。
Chromeの立ち上げと同時にタブが一つ起動しています。
同じように、ログインと同時にbashが一つ起動しています。
そんなbashが起動する毎に、.bashrcも読み込まれることになります。
では、.bashrcには何が記述されているのでしょうか?
- プロンプト設定
- エイリアス設定
- EDITOR変数設定
- その他(bash起動時に実行したいこと)
主に上記のことが、.bashrcに書かれています。
ただし、基本的には.bashrcに環境変数を記述しません。
その意味では、EDITOR変数は例外になるでしょうね。
あと、.bashrcには表示出力のコマンドはNGです。
それが原因でトラブルを起こす可能性があります。
それでは、以下で.bashrcに記述できることを説明していきます。
プロンプト設定
プロンプトは、「$」や「#」のことです。
bashでは、次のような表示でユーザーが判別できます。
$ | 一般ユーザー |
# | スーパーユーザー(root) |
正確には、次のようにユーザー名、ホスト名、カレントディレクトリも表示しています。

プロンプトは、「PS1」という環境変数で表現されています。

プロンプトに設定できる値は、いろいろとあります。
- 表示
- カラー(文字色、背景色)
- 書体
それぞれを下記で説明します。
表示
PS1に設定して表示できる値は、以下(一部抜粋)。
記号 | 内容 |
\h | ホスト名 |
\u | ユーザー名 |
\w | カレントディレクトリ(フルパス) |
\W | カレントディレクトリ |
\t | 時間 (24時制) |
\T | 時間 (12時制) |
\d | 日付 |
\D | 日時 |
\$ | ユーザー区別 |
「現在時間\t-」をPS1の先頭に追加した場合を確認します。

ゴチャゴチャしていますね。
でも、意図したようにプロンプトを変更することができています。
カラー(文字色、背景色)と書体
カラーと書体は同時に説明します。
まとめての方が理解しやすいです。
これらは、ANSIエスケープシーケンスによって設定します。
正直、覚えるような代物ではないです。
見よう見まねで対応すれば、十分でしょう。
まず、次を見てください。

これは、次のANSIエスケープシーケンスにより表現しています。
\[\033[01;34;43m\]現在時間\t-\[\033[00m\]
上記における「01;34;43m」の意味は、下記となります。
01 | 書体 |
34 | 文字色 |
43m | 背景色 |
書体と文字色だけなら、次のように表現します。
背景色がない場合ということです。
\[\033[01;34m\]現在時間\t-\[\033[00m\]
見た目は、次のようになります。

文字色と背景色に設定できる値は、以下。

上の対応表をまとめると、以下となります。
値の範囲 | |
文字色 | 30~37、90~97 |
背景色 | 40~47、100~107 |
数値の前半、後半は明度の強弱らしいです。
あと、書体は以下の値を設定できます。
01 | 太字 |
02 | 細字 |
03 | 斜体 |
04 | 下線 |
以上、プロンプト設定について説明しました。
次は、エイリアス設定を確認します。
エイリアス設定
.bashrcにデフォルトで設定されているエイリアスを確認します。
# enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
上記と同じように、追加したいものがあればエイリアスとして追記するだけです。
よく使うコマンドがあれば、.bashrcに追加しましょう。
試しに「la」を実行します。

.bashrcに設定したエイリアスが、機能していることを確認できます。
以上、エイリアス設定の説明でした。
次は、EDITOR変数の設定を行います。
EDITOR変数設定
EDITOR変数は、環境変数です。
しかし、EDITOR変数は.bashrcで設定します。
同じように、PS1も.bashrcで設定しています。
EDITORもPS1も両方とも、ターミナルに関連する環境変数です。
ターミナルに関連するモノは、.bashrcに設定するということでしょう。
それが例え環境変数であってもということですね。
次の二つのケースを確認しておきます。
- export EDITOR=vi
- export EDITOR=nano
export EDITOR=vi
デフォルトのエディタが、viになります。
次の画面は、「crontab -e」を実行した際の表示です。

export EDITOR=nano
デフォルトのエディタが、nanoになります。
次の画面は、「crontab -e」を実行した際の表示です。

まとめ
個人的には、nanoが好みです。
そのため、デフォルトのエディタはnanoにしておきます。