0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

bash_profile・bashrcを用いた環境変数・エイリアス・関数の定義

Posted at

基本トピック

bash_profile・bashrcの概要

シェル(shell)環境は環境変数やエイリアス、関数などを設定することでカスタマイズすることが可能です。また、この設定をスクリプト形式で保存しておくことでbashにログインする度に同じ環境で作業することが可能になります。この際に用いるのがbash_profileやbashrcです。

ファイル名 説明
/etc/profile ログイン時に実行され、全ユーザから参照される
~/.bash_profile ログイン時に実行される
~/.bashrc bash起動時に実行される

bashの設定にあたっては主に上記のファイルを抑えておくと良いです。ユーザレベルでよく使うのが~/.bash_profile`と~/.bashrcであり、設定を書き込んだ直後にsource`コマンドを用いて読み込む場合もあります。

環境変数とシェル変数

シェルで用いる変数には環境変数とシェル変数があり、それぞれ下記のような特徴を持ちます。

環境変数:	シェル自身とシェルから起動される全てのプロセス(コマンドや別のシェル)で有効となる変数を環境変数という。代表的な環境変数にはコマンドを検索するディレクトリリストを格納する`PATH`やユーザのホームディレクトリのフルパスを表す`HOME`などがある。
シェル変数:	そのシェル内のみで有効となる変数をシェル変数という。シェル変数は`export`コマンドでエクスポートすることによって環境変数となり、他のシェルでも使えるようになる。

たとえばコマンドライン(CLI)でecho $HOMEを実行すると下記のような出力が得られます。

/home/user_name

シェルのオプション

シェルには様々なオプションがあり、setコマンドを用いることでオンとオフを切り替えることができます。実行にあたってはたとえばset -o emacsを実行するとemacsのオプションがオンになり、set +o emacsを実行するとemacsのオプションがオフになります。

オプション名 説明
allexport 作成した変数を自動的にエクスポートする
emacs emacs風のキーバインドにする
ignoreof Ctrl+Dによってログアウトしないようにする
noclobber 出力リダイレクトによる上書きの禁止
noglob メタキャラクタを使ったファイル名展開を無効にする
vi vi風のキーバインドにする

たとえばset -o noglobによってnoglobオプションを有効にするとls *.pyのようなコマンドが全ての.pyファイルではなく*.pyというファイルに対応するようになります。

また、set -oを実行することで全てのオプションを確認することができます。

$ set -o

・実行結果

allexport      	off
braceexpand    	on
emacs          	on
errexit        	off
errtrace       	off
functrace      	off
hashall        	on
histexpand     	on
history        	on
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	on
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	off
onecmd         	off
physical       	off
pipefail       	off
posix          	off
privileged     	off
verbose        	off
vi             	off
xtrace         	off

エイリアス

bashではエイリアス機能を利用することで下記のようなことができるようになります。

・コマンドに別名をつける
・コマンドとオプションをまとめて新しいコマンドのようにする
・一連のコマンドを簡単に呼び出す

エイリアスの設定は下記のようにaliasコマンドを用いることで行えます。

$ ls
sample1.sh  sample2.sh
$ alias ls='ls -l'
$ ls
-rw-rw-r-- 1 user_name user_name  27  mm月   dd hh:mm sample1.sh
-rw-rw-r-- 1 user_name user_name 115  mm月   dd hh:mm sample2.sh
$ unalias ls
sample1.sh  sample2.sh

関数

bashの組み込みコマンドのfunctionコマンドを用いることでbashシェル上で利用できる独自の関数を定義することができます。

$ function lsl() { ls -l; }
$ lsl

・実行結果

-rw-rw-r-- 1 user_name user_name  27  mm月   dd hh:mm sample1.sh
-rw-rw-r-- 1 user_name user_name 115  mm月   dd hh:mm sample2.sh

bash_profile・bashrcファイルの編集

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?