GNU/Linux >> Linux の 問題 >  >> Linux

Linux環境変数のヒントとコツ

Linuxシステムのシェル環境を強化および標準化するために、環境変数が存在します。システムが設定する標準の環境変数がありますが、独自の環境変数を設定したり、必要に応じてデフォルトの環境変数を変更したりすることもできます。

[無料ダウンロード:高度なLinuxコマンドのチートシート。 ]

envから開始 コマンド

環境変数を確認したい場合は、envを使用してください コマンドを実行し、出力の左端にあるすべて大文字の単語を探します。これらは環境変数であり、それらの値は右側にあります:

 $ env
LS_COLORS=(long output)
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=rhel8t
XDG_SESSION_ID=5
USER=khess
SELINUX_ROLE_REQUESTED=
PWD=/home/khess
HOME=/home/khess
SSH_CLIENT=192.168.1.94 53911 22
SELINUX_LEVEL_REQUESTED= XDG_DATA_DIRS=/home/khess/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_TTY=/dev/pts/1
MAIL=/var/spool/mail/khess
TERM=xterm-256color
SHELL=/bin/bash SELINUX_USE_CURRENT_RANGE=
SHLVL=1
LOGNAME=khess
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
HISTSIZE=1000
LESSOPEN=||/usr/bin/lesspipe.sh %s _=/usr/bin/env 

LS_COLORSの出力を省略しました とても長いので変数です。システムでこのコマンドを試して、完全な出力がどのように表示されるかを確認してください。

多くの環境変数が設定され、/etc/profileからエクスポートされます。 ファイルと/etc/bashrc ファイル。 /etc/profileに行があります 読みます:

 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

すべての新しいアカウントの環境変数に永続的な変更を加えるには、/etc/skel にアクセスしてください .bashrcなどのファイル 、および既存のものを変更するか、新しいものを入力します。新しいユーザーを作成する場合、これらの/etc/skel ファイルは新しいユーザーのホームディレクトリにコピーされます。

シェルレベルの調査(SHLVL

単一の環境変数の値を呼び出すには、SHLVLを使用して次のコマンドを入力します (シェルレベル)例として:

 $ echo $SHLVL 1

この変数は、開いているサブシェルの数に応じて変化します。たとえば、bashと入力します 2回実行してから、もう一度コマンドを発行します:

 $ bash 
$ bash echo $SHLVL 3

シェルレベルが3の場合は、サブシェルが2つあることを意味するため、exitと入力します。 通常のシェルに戻るには2回。

[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]

PATHの操作 変数

PATH 変数には、コマンドとスクリプトを実行するための検索パスが含まれています。 PATHを表示するには 、次のように入力します:

 $ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

PATHを一時的に変更します 次のコマンドを入力して/opt/binを追加します :

 $ PATH=$PATH:/opt/bin
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin

変更は現在のセッションの一時的なものです。 .bashrcに入力されていないため、永続的ではありません ファイル。変更を永続的にするには、コマンドPATH=$PATH:/opt/binを入力します ホームディレクトリの.bashrcに ファイル。

これを行うと、新しいPATHが作成されます。 現在のPATHにディレクトリを追加することで変数 変数、$PATH 。コロン(:PATHを区切ります エントリ。

$USERの解明 、$PWD 、および$LOGNAME

私は自分の善良な自己によって払拭されたと思う理論を持っていました。私の理論では、コマンドはpwd およびwhoami おそらく、シェル変数$PWDの内容を読み取ってエコーしただけです。 および$USER または$LOGNAME 、 それぞれ。驚いたことに、ソースコードを見た後、彼らはそうではありません。たぶん私はそれらを書き直してそれを行う必要があります。作業ディレクトリを表示するために、複数のライブラリと約400行のCコードを追加する理由はありません。 $PWDを読むだけです それを画面にエコーします(stdout)。 whoamiについても同じことが言えます $USERのいずれかを使用 または$LOGNAME

ソースコードを自分で確認したい場合は、GitHubやその他の場所にあります。これらのプログラム(または他のプログラム)がシェル変数を使用していることがわかった場合は、それについて知りたいと思います。確かに、私はCソースコードを読むのがあまり得意ではないので、シェル変数を非常にうまく使用でき、私はそれを知りませんでした。彼らは私が読んだものからは見えず、理解できただけです。

$SHELLの再生 ゲーム

この最後の環境変数の概要では、$SHELLがどのように機能するかを示したいと思います。 変数が便利です。デフォルトのシェル(おそらくBash)にとどまる必要はありません。システムにインストールされている任意のシェルにアクセスして作業できます。システムにインストールされているシェルを確認するには、次のコマンドを使用します。

 $ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash

これらはすべて実際にはBashなので、興奮しないでください。運が良ければ、/bin/tcshのエントリも表示される可能性があります 、/bin/csh/bin/mksh/bin/ksh 、および/bin/rksh

あなたはこれらのシェルのどれでも使うことができます、そしてあなたがそんなに傾いているならば、それぞれで異なったことが起こっていることができます。しかし、あなたがSolaris管理者であり、Kornシェルを使用したいとします。デフォルトのシェルを/bin/kshに変更できます chshを使用する コマンド:

 $ chsh Changing shell for khess. New shell [/bin/bash]: /bin/ksh Password: Shell changed.

ここで、echo $SHELLと入力すると 、応答は/bin/bashになります 、したがって、変更を確認するには、ログアウトしてから再度ログインする必要があります。ログアウトしてログインすると、echo $SHELLに対して別の応答が返されます 。

他のシェルを入力してecho $SHELL すべき 現在のシェルと$SHLVLを報告します 、これにより、シェルの深さを常に把握できます。

独自の環境変数の設定

セッションごとにコマンドラインで独自の変数を設定することも、~/.bashrcに配置して永続的にすることもできます。 ファイル、~/.profile 、またはデフォルトのシェルに使用するスタートアップファイル。コマンドラインで、PATHを変更したときに行ったように、環境変数とその値を入力します。 変数。

まとめ

シェル変数または環境変数は、ユーザー、システム管理者、およびプログラマーに同様に役立ちます。これらは、コマンドラインおよびスクリプトで役立ちます。私は何年にもわたってさまざまな目的でそれらを使用してきました。それらのいくつかはおそらく少し型破りですが、機能し、今でも機能しています。独自に作成するか、システムおよびインストールされたアプリケーションから提供されたものを使用します。 Linuxユーザーエクスペリエンスを本当に豊かにすることができます。

変数とシェルに関する補足として、JSONでプログラミングする人はBourne Shellの使用のみを許可されるべきだと思う人はいますか?話し合います。


Linux
  1. Linuxでの印刷にCUPSを使用するためのヒントとコツ

  2. 知っておく価値のある10の興味深いLinuxコマンドラインの秘訣とヒント

  3. Linux環境変数:LinuxVPSでの読み取りと設定の方法

  1. Linuxコマンドラインナビゲーションのヒント/コツ3-CDPATH環境変数

  2. curlとwgetのヒントとコツ

  3. Linux での環境変数のアクセシビリティ

  1. MySQLコマンドラインのヒントとコツトップ8

  2. Linux.htaccessのヒントとコツ

  3. お気に入りの rsync のヒントとコツ