LoginSignup
0
0

More than 1 year has passed since last update.

Linux 制御演算子・シェル変数・環境変数について(自分用メモ

Posted at

制御演算子「&&」は、command1が成功した場合のみcommand2を実行。
「&&」はAND(論理積)を意味する演算子です。以下のように実行すると、command1の実行が失敗するとAND条件が成立しないため、command2は実行されません。command1の実行に成功した場合のみcommand2が実行。

制御演算子「||」は、command1が失敗した場合のみcommand2を実行。
「||」はOR(論理和)を意味する演算子です。command1の実行が成功すればその時点でOR条件が成立するためcommand2は実行されません。command1の実行が失敗した場合はOR条件に従ってcommand2が実行。

●コマンドや設定ファイルのためのオンラインマニュアルページ(manページ)を参照するコマンドはman。

man [オプション] [セクション番号] キーワード

オプション
・-k キーワードに一部一致するコマンドやファイルのmanページを一覧表示(aproposコマンドと同じ)
・-f キーワードに完全一致するコマンドやファイルのmanページを一覧表示(whatisコマンドと同じ)

同じキーワードにmanページが複数用意されている場合(例えばpasswdコマンドと「/etc/passwd」ファイル)は、セクション番号を指定してmanコマンドを実行することで、目的のmanページが参照できます。

●manページのセクション番号は以下の通りです。
・1 ユーザコマンド
・2 システムコール(カーネルが提供する関数)
・3 ライブラリ呼び出し(プログラムファイルに含まれる関数)
・4 特殊ファイル(通常/dev 配下に存在するファイル
・5 ファイルの書式と慣習(例 /etc/passwd)
・6 ゲーム
・7 その他いろいろ(マクロパッケージや慣習を含む)
・8 システム管理コマンド(通常はroot用)
・9 カーネルルーチン[非標準]

例)passwdコマンドのmanページを参照する場合
$ man 1 passwd

例)「/etc/passwd」ファイルのmanページを参照する場合
$ man 5 passwd

なお、セクション番号を指定しないで実行した場合は、セクション番号の小さいほうのマニュアルが表示される

●主なメタキャラクタ(シェルによって特別に解釈される文字)、ディレクトリ関連の特殊記号をまとめたもの。

・* 0文字以上の文字列
・? 任意の1文字
・[] []内のいずれか1文字
・$ 変数
・’ 「’」で囲まれた部分を文字列とみなす
・” 「”」で囲まれた部分を文字列とみなす。ただし「$」「’」「¥」「”」は除く
」で囲まれた文字列(変数の場合は格納されている値)をコマンドと見做し、その実行結果を文字列として返す
・¥ 次の文字(メタキャラクタ)の意味を打ち消して通常の文字として扱う「\」も

●あらかじめ用意されている代表的な環境変数。
・HISTFILE コマンド履歴保存ファイルのパス
・HISTSIZE 現在のシェルでのコマンド履歴の保存数
・HISTFILESIZE コマンド履歴保存ファイルへの履歴保存数
・HOSTNAME ホスト名
・HOME ログインしているユーザのホームディレクトリ
・LANG ロケール(言語設定)
・PATHコマンドやプログラムを検索するディレクトリのリスト
・PWD カレントディレクトリのパス
・USER ログインしているユーザ

●Linuxで使用できる変数には、シェル変数と環境変数があります。

●シェル変数
変数を設定したシェル上でのみ有効な変数。シェル変数は以下のようにして作成することができます。

シェル変数名=値

シェルはパスの指定無しで入力されたコマンド(プログラム)を、環境変数PATHに設定されているディレクトリの中から検索して実行します。これらのディレクトリは「パスが通っている」という言い方をします。
パスが通っているディレクトリにあるコマンドであれば、コマンドの格納されているパスをいちいち指定せずに、コマンド名のみでコマンドを実行することが出来ます。

環境変数PATHには通常、以下のように複数の値(ディレクトリ)が「:」で区切られて設定されています。
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

パスを指定せずにコマンドを入力すると、上記のディレクトリを左から順に、入力されたコマンドと同名のプログラムファイルが探され、存在すればそれが実行されます。

環境変数PATHに値を追加する場合は「export PATH=$PATH:値」のようにして行います。
「$PATH」の部分が、現在設定されている値に変換されますので、そこに値を追加するという事です。

例)環境変数PATHに「/usr/local/test」ディレクトリを追加する場合

$ export PATH=$PATH:/usr/local/test
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/test

●環境変数
変数を設定したシェル上と、そこから起動されるシェルやアプリケーション、コマンドで有効な変数。これは設定が引き継がれる事を意味します。
環境変数はexportコマンドを使用して作成することができます。

export 環境変数=値 

また、exportコマンドはシェル変数(変数を設定したシェル上でのみ有効な変数)を環境変数に変更できます。

export シェル変数名

設定されている変数を一覧で確認するには以下のコマンドを使用。
コマンド
・set 全てのシェル変数と環境変数を表示
・env 全ての環境変数を表示
・printenv 一部、または全ての環境変数を表示

echoコマンドを使用して、個々のシェル変数または環境変数の値を確認することもできます。値を確認したい変数の先頭に「$」をつけたものを引数に指定します。設定されている変数を一覧で確認するには以下のコマンドを使用します。

●すでに設定されている環境変数やシェル変数を削除するコマンドはunset。

unset 変数名

●シェルには様々なオプション機能があります。シェルのオプション機能はsetコマンドで有効・無効を設定します。

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

オプション
・allexport 新規作成・変更した変数を自動的に環境変数とする(エクスポートする
・emacs emacsエディタと同じキーバインドにする
・ignoreeof Ctrl+Dをおしてもログアウトしない設定にする
・noclobber リダイレクト演算子「>」「>&」「<>」で既存のファイルを上書き不可に設定する
・noglob パス名展開を無効に設定する(ワイルドカードによる展開(*や?)が無効になる)
・vi viエディタと同じキーバインドになる

オプションを有効にするには「-o」を指定し、解除するには「+o」を指定します

set」コマンドを引数なしで実行すると、設定済みのシェル変数や環境変数、シェル関数が表示

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