LinuCレベル1 102試験の例題と解説

主題1.06シェルとスクリプト

1.06.1シェル環境のカスタマイズ

このエントリーをはてなブックマークに追加

LinuCレベル1102試験の出題範囲から「1.06.1 シェル環境のカスタマイズ」についての例題を解いてみます。
ここでは、alias設定について確認しておきましょう。


例題

以下は、aliasコマンドの実行結果です。

$ alias ls
alias ls='ls -al'
$ ls
合計 8
drwxrwxr-x  2 user1 user1 4096 10月 18 09:14 .
drwx------ 46 user1 user1 4096 10月 18 09:13 ..
-rw-rw-r--  1 user1 user1    0 10月 18 09:14 test1.txt
-rw-rw-r--  1 user1 user1    0 10月 18 09:14 test2.txt
-rw-rw-r--  1 user1 user1    0 10月 18 09:14 test3.txt

上記のエイリアス設定を解除することなく、一時的にエイリアス設定を無効化を行います。
オプションなしのlsコマンドを実行したい場合の正しい手順を選択してください。

  1. lsコマンドの直前に「#」を付けて実行する
  2. lsコマンドの直前に「\」を付けて実行する
  3. 「unalias ls」コマンドを実行する
  4. lsコマンドの直前に「'」を付けて実行する

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「2.lsコマンドの直前に「\」を付けて実行する」です。

aliasコマンドはコマンドを別名で登録したり、登録されている内容を確認するコマンドです。たとえば、「ping -c 3」に「p」というエイリアスを付けるには以下のように実行します。

$ alias p='ping -c 3'
$ alias p
alias p='ping -c 3'
$ p localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.020 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.026 ms

--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.020/0.022/0.026/0.004 ms

ログインするたびにエイリアスを有効化するためには、ホームディレクトリの.bashrcファイルに記載を行います。

また、以下のように実行することで登録されている設定の一覧を取得することができます。

$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

1.lsコマンドの直前に「#」を付けて実行する
不正解です。

コマンドの直前に「#」を付けて実行するとそのコマンドラインはコメント行とみなされてしまいます。
そのため、コマンドは実行されません。

$ #ls
$

2.lsコマンドの直前に「\」を付けて実行する
正解です。

コマンドの直前に「\」を付けて実行することにより、alias設定を一時的に無効にすることができます。

$ \ls
test1.txt  test2.txt  test3.txt

3.「unalias ls」コマンドを実行する
不正解です。

unaliasコマンドを実行するとエイリアスは完全に解除されてしまいます。

$ unalias ls
$ alias ls
-bash: alias: ls: 見つかりません

4.lsコマンドの直前に「'」を付けて実行する
不正解です。

「'」で囲み実行を行うと文字列の入力中であると解釈され、第2プロンプトが表示されてしまいます。

$ 'ls
>

エイリアス設定の変更を行わないまま、エイリアスを無効化したとき「\」が便利です。


例題作成者

株式会社デージーネット OSS研究室 上野貴博

ページトップへ