0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux】シェル変数、オプションを理解してbashの設定をカスタマイズする

Last updated at Posted at 2024-09-20

はじめに

今回は、Linuxの勉強をする中で、Bashの設定ファイルを編集し、カスタマイズする方法を学んだので、実際にやっていきます!

前提知識

まず、Bashの設定をカスタマイズするために必要な基本的な知識を簡単に説明していきます。

シェル変数

シェル変数とは、Bash内部で使用される変数で、数値や文字列などさまざまな値を設定できます。

シェル変数の設定方法

<変数名>=<値>

注意点

  1. シェル変数を設定する時は、=の左右にスペースを含めてはいけません。スペースがあると、変数名をコマンドとして認識してしまいます。

    <変数名> = <値>   # スペースがあるとエラーになります。
    
  2. 値にスペースを含めたい場合は、' または " で囲む必要があります。

    hoge="foo foo" 
    

シェル変数の参照方法

echo $<変数名>

変数名の前に$を付けることで、その中身を参照できます。

シェル変数の用途

Bashには、特別な意味を持つシェル変数があらかじめ定義されています。これらの変数に値を設定することで、シェルの動作をカスタマイズすることができます。

特別な意味を持つシェル変数

以下は、よく使われる特別なシェル変数の一覧です。

シェル変数名 内容
HISTFILE コマンド履歴が保存されるファイルのパス(通常 ~/.bash_history
HOME ユーザーのホームディレクトリのパス
PWD 現在の作業ディレクトリ
OLDPWD 以前の作業ディレクトリ(cdで移動する前のディレクトリ)
SHELL 現在のシェルのパス(例: /bin/bash
PATH コマンドが検索されるディレクトリのリスト(:で区切られている)
USER 現在ログインしているユーザー名
LOGNAME システムにログインした際のユーザー名
TERM 端末の種類(例: xterm-256color
PS1 プロンプトの表示形式(通常は \u@\h:\w\$ など)
HISTSIZE 保存されるコマンド履歴のエントリ数
HISTFILESIZE コマンド履歴ファイルに保存されるエントリ数の最大値
EDITOR デフォルトのテキストエディタ(例: vimnano
LANG システムのロケール設定(例: en_US.UTF-8
LC_ALL すべてのロケール設定を上書きするロケールの指定
UID 現在のユーザーのユーザーID

PS1 〜プロンプトの設定を保持するシェル変数〜

PS1は、プロンプトの表示を設定するシェル変数です。

PS1="hogepiyo> "

これにより、プロンプトが通常の$からhogepiyo>に変更されます。

特別な意味を持つ記号

プロンプト設定には、特定の情報を表示するための特殊記号が用意されています。以下にいくつか例を挙げます。

記号 説明
\u ユーザー名 user
\h ホスト名(短縮形式) hostname の最初の部分
\w 現在の作業ディレクトリ /home/user
\A 現在時刻(24時間表記、HH:MM形式) 15:42
\$ 権限に応じたプロンプト記号(通常は $、rootユーザーなら # $ または #

実際の設定例

PS1="hogepiyo \A \w \$ "

これにより、プロンプトには時刻と作業ディレクトリ、プロンプト記号が表示されます。

hogepiyo 17:23 ~/Applications $>

本題:bashの設定のカスタマイズを行う

一時的に設定を変更するだけでは、シェルを閉じた後にリセットされてしまいます。プロンプトの表示やオプションの設定などを永続的に保持したい場合は、Bashの設定ファイルに記述する必要があります。

bashの設定ファイルの読み込み順序

Bashの設定ファイルは、以下の順序で読み込まれます。

ログインシェルとして起動した場合

  1. /etc/profile(システム全体の設定)
  2. ~/.bash_profile(各ユーザー個別の設定)
  3. ~/.bashrc(さらに読み込まれる場合が多い)

非ログインシェルとして起動した場合

  1. ~/.bashrc

基本的には~/.bashrcに記述するようです!
ほとんどのディストリビューションではデフォルトでbash_profileの中で./bashrcを読み込む処理が記載されているようですね。

bash設定ファイルの編集手順

1. バックアップを取る

cp ~/.bashrc ~/.bashrc.org

誤って必要な設定を消してしまったりした時のためにバックアップをとっておきましょう!

2. 予備のシェルを開いておく

誤ってシェルを壊した場合に備えて、別のシェルを開いておくとさらに安全です!

3. 設定ファイルを編集する

~/.bashrcに設定を追記します。
今回は、以下のようにしてみました。
各設定の意味はコメントに記載しました。

# プロンプトの設定
PS1='[\u] \w \t \$ '  # ユーザー名、ワークディレクトリ、現在時刻、プロンプト記号を表示

# オプションの設定
shopt -s dotglob      # ドットファイルもlsで表示
shopt -s cdspell      # cdでのスペルミスを訂正
shopt -s histappend   # 履歴を追加
HISTSIZE=10000        # 保存する履歴数
HISTFILESIZE=10000    # 履歴ファイルの保存数

# エイリアスの設定
alias ls='ls -F'
alias la='ls -a'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

4. 設定を反映させる

シェルを再起動するか、以下のコマンドで設定を反映させます。

source ~/.bashrc

まとめ

以上、Bashの設定ファイルを編集してカスタマイズする方法について説明しました。
ちょっとしたことですけど、めちゃくちゃ便利になりますね。
まだまだ知らないオプションとかもたくさんあるので、日々使用する中で、設定を追加していきながら、使いやすくしていきたいです!

参考書籍

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?