1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Linux基礎(シェル環境のカスタマイズと仕様)

Posted at

bashのエイリアス機能

bashシェルでは、エイリアスを利用することでコマンドの別名を定義したり、コマンドとそのオプションをまとめて一つの新しいコマンドとして実行できる。エイリアス機能を使用するためにaliasコマンドを使用。

alias 別名="コマンド"

# llと入力するだけで「ls -l」を実行できるようエイリアスを作成
$ alias ll="ls -l"

# llを実行
$ ll
total 1000
-rw-r--r--    1 root  staff    1021  9  5 23:14 README.md
-rw-r--r--    1 root  staff    3577  9  5 23:14 angular.json
-rw-r--r--    1 root  staff     429  9  5 23:14 browserslist
drwxr-xr-x    5 root  staff     160  9  5 23:14 e2e
-rw-r--r--    1 root  staff    1016  9  5 23:14 karma.conf.js
drwxr-xr-x  790 root  staff   25280  9 20 22:46 node_modules
-rw-r--r--    1 root  staff  473349  9 20 22:46 package-lock.json
-rw-r--r--    1 root  staff    1321  9 20 22:46 package.json
drwxr-xr-x   11 root  staff     352  9  5 23:14 src
-rw-r--r--    1 root  staff     270  9  5 23:14 tsconfig.app.json
-rw-r--r--    1 root  staff     543  9  5 23:14 tsconfig.json
-rw-r--r--    1 root  staff     270  9  5 23:14 tsconfig.spec.json
-rw-r--r--    1 root  staff    1988  9  5 23:14 tslint.json

エイリアスの設定を削除するためには、unaliasコマンドを使用する。
unalias 別名

$ unalias ll

bashのシェル関数

bashシェル上で利用できる独自の関数を定義するには、functionコマンドを使用する
function シェル関数名(){コマンド;}

# llという名前のシェル関数を定義して、ls -ltr | more コマンドが実行されるように設定
$ function ll(){ ls -ltr | more; }

シェル関数の設定を削除するためには、unsetコマンドを使用する。
unset シェル関数

$ unset ll

※単純なコマンドの組み合わせの場合、aliasを利用するが、より複雑な処理をする場合はfunctionコマンドを利用する。

bashのシェルオプション

setコマンドでオプションを指定することでシェルの様々なオプション機能をオン、オフにできる。setコマンド構文において、-oとすればオプションが有効になり、+oとすればオプションが無効になる。

set [-o][+o] オプション

オプション 説明
allexport 作成または変更した変数を自動的にエクスポート
emacs emacsのようなキーバインドにする
vi viのようなキーバインドにする
ignoreeof Ctrl+Dのキー入力でログアウトしないようにする
noclobber 既存ファイルへの上書き出力(リダイレクト)を禁止する
noglob メタキャラクタを使用したファイル名の展開を無効化する
# 既存ファイルへの上書き出力( リダイレクト )を禁止する設定
$ set -o noclobber

$ echo 11111 > test.txt
# bash: test.txt: cannot overwrite existing file ← 上書き不可のメッセージが出力

# メタキャラクタを使用したファイル名の展開を無効化する設定
$ set -o noglob

$ ls *.txt
# ls: *.txt: No such file or directory ← メタキャラクタの * が無効であり、*.txt ファイルは存在しないと出力されている

bashの設定ファイル

シェル起動時と終了時に「環境変数、エイリアス、シェル関数」などの定義を自動的に行うための設定ファイルが存在する。bashの設定ファイルには、以下のようなファイルがある。

ファイル 説明
/etc/profile ログイン時に実行される。(全ユーザが参照する設定ファイル)
~/.bash_profile ログイン時に実行される
~/.bash_login ~/.bash_profileがない場合に、ログイン時に実行される
~/.profile ~/.bash_profile, ~/.bash_loginが存在しない場合にログイン時に実行される
~/.bashrc bash起動時に実行される
~/.bash_logout ログアウト時に実行される

/etcディレクトリ以下の設定ファイルは全ユーザに適用され、ホームディレクトリ以下の設定ファイルは、ユーザごとに適用される。以上から、全てのユーザで共通に使用する環境変数を設定するためには/etc/profileに設定する。ユーザ別に環境変数を設定する場合は~/.bash_profileファイルに設定する。

システムにログインする場合の設定ファイルの実行順夫は以下。

スクリーンショット 2019-10-03 16.49.51.png

設定ファイルのサンプル例
スクリーンショット 2019-10-03 16.51.17.png

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?