このページの本文へ

前へ 1 2 3 4 5 次へ

システムの起動・ルートユーザー・シェル

これで解決! Linux 100の疑問―その3

2001年09月06日 05時35分更新

文● Linux magazine編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

Q:lsしても.bash_profile、.bashrc、.bash_logoutが表示されません。

A:標準ではlsコマンドは、先頭に「.」(ドット)のついたファイル(ドットファイル)は表示しません。表示させたいときは、

$ ls -a

として、-a(all)オプションつきで実行します。

Q:.bash_profileを変更したのに、変わっていません。

A:.bash_profileはログイン時に一度しか読み込まれません。変更した設定を有効にしたいなら、

$ source ~/.bash_profile

か、

$ . ~/.bash_profile

として、再度読み込ませることで、変更が有効になります。

Q:bashで変数を設定するときexportを実行するものとしないものがありますが、違いがわかりません。

A:次のように、

変数名=値

として設定する変数は、「シェル変数」と呼ばれる変数の定義法です。これは、複雑なシェルスクリプトを作るときに値の保存に使います。また、組み込み変数と呼ばれるbashが参照する値を設定しておいて、シェルをカスタマイズしたり、シェルの状態を取得したりします。

一方、

export 変数名=値

のように設定する変数は、「環境変数」と呼ばれる変数の定義法です。環境変数は、コマンドの動作環境を構築するためのもので、環境変数だけがサブプロセスにも伝わります。逆にいえば、このことはサブプロセスにも伝えたい変数は環境変数として定義すべきであることを意味します。具体的には、環境変数EDITORなどがそれに当たります。

Q:コマンドラインからの入力はよく間違えます。

A:bashの補完機能を利用することをお勧めします。コマンドライン上で、コマンド名やファイル名などを途中まで入力したあと、TABキーを押せばbashが検索パス上から該当する文字列を補ってくれます。また、lsをksと打ち間違えるようなら、

$ alias ks=ls

とすれば、それ以降はksと打ち間違えても、正しいコマンド(ls)が実行されます。ただし、これはあまりお勧めできる方法ではありません。

Q:コマンドを入力するとき文字列は'と"のどちらで囲めばいいのでしょうか?

A:単なる文字列をコマンドに渡すだけなら、どちらでも構いません。しかし、変数などをコマンドに渡すときに'(シングルクォート)と"(ダブルクォート)では、その挙動は異なります。たとえば、

$ editor=emacs

としておいて

$ echo "I like $editor"

とダブルクォートでくくると、

$ I like emacs

と表示されますが、

$ echo 'I like $editor'

とシングルクォートでくくると、

$ I like $editor

となり、変数は展開されません。

前へ 1 2 3 4 5 次へ

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中