Linuxパスフォルダへのパスを指定する方法。 Linuxの環境変数。 非bashシェルに関する注意
Linuxの環境変数は、シェルによって定義され、実行時にプログラムによって使用される特別な変数です。 これらは、システムとユーザーが定義できます。 Linuxシステム環境変数はシステム定義であり、システムレベルのプログラムによって使用されます。
たとえば、PWDコマンドは、システム変数を使用して古い作業ディレクトリを保持します。 ユーザー環境変数は、現在のシェルに対して、一時的または永続的にユーザーによって設定されます。 シェル変数の追加と削除の概念全体は、複数のファイル、コマンド、およびさまざまなシェルを中心に展開されます。
より広義には、環境変数には次の3つのタイプがあります。
1.ローカル環境変数
これらの変数は、現在のセッションに対してのみ定義されます。 リモートアクセスであろうとターミナルエミュレータであろうと、セッションが終了すると、それらは取り返しのつかないほど消去されます。 これらはどのファイルにも保存されませんが、特別なコマンドを使用して作成および削除されます。
2.カスタムシェル変数
Linuxのこれらのシェル変数はユーザー固有であり、ローカル端末でログインするか、リモートで接続するたびにロードされます。 このような変数は通常、構成ファイル(.bashrc、.bash_profile、.bash_login、.profile、またはユーザーのディレクトリにあるその他のファイル)に保存されます。
3.システム環境変数
これらの変数は、すべてのユーザーがシステム全体で利用できます。 これらは、システムの起動時に、システム構成ファイル/ etc / environment、/ etc / profile、/ etc / profile.d //etc/bash.bashrcからロードされます。
Linux環境変数構成ファイル
ここでは、システム全体または特定のユーザーの環境変数を設定するために使用される、上記のさまざまな構成ファイルについて簡単に説明します。
.bashrc
これはユーザー固有の変数ファイルです。 ユーザーがターミナルセッションを作成するたびに、つまり新しいターミナルを開くたびにロードされます。 このファイルで作成されたすべての環境変数は、新しいターミナルセッションが開始されるたびに有効になります。
.bash_profile
これらの変数は、ユーザーがSSH経由でリモート接続するたびに有効になります。 このファイルが欠落している場合、システムは.bash_loginまたは.profileを探します。
/など/環境
このファイルは、システムレベルで環境変数を作成、編集、および削除するためのものです。 このファイルで作成された環境変数は、システム全体、各ユーザー、およびリモート接続されている場合でも使用できます。
/etc/bash.bashrc
システムbashrc。 このファイルは、ユーザーが新しいターミナルセッションを作成するたびに、ユーザーごとに実行されます。 これはローカルユーザーに対してのみ機能し、インターネット経由で接続されている場合、そのような変数は表示されません。
/ etc /プロフィール
システムファイルプロファイル。 このファイルのすべての変数は、リモートでログインしている場合にのみ、システム上のすべてのユーザーが使用できます。 ただし、ローカルターミナルセッションを作成するとき、つまりターミナルを開くだけの場合は使用できません。
これらのファイルを使用して作成されたすべてのLinux環境変数は、そこから削除するだけで削除できます。 変更するたびに、ログアウトしてログインするか、次のコマンドを実行する必要があります。
ソースファイル名
Linuxでのユーザーおよびシステム環境変数の追加
少し理論がわかったところで、練習に取り掛かりましょう。 Linuxのローカル環境変数は、次のコマンドで作成できます。
var \u003d value
$ export var \u003d value
これらの変数は、現在のターミナルセッションでのみ使用できます。
環境変数を削除するには、いくつかのコマンドを使用できます。
1.envの使用
デフォルトでは、envを使用して、設定されているすべての環境変数を表示できます。 ただし、-iオプションを使用すると、すべてのシェル変数を一時的に削除し、変数なしでコマンドを実行できます。
env –iコマンド
Varは、このコマンドに渡す変数です。
このコマンドは、環境変数をまったく使用せずにシェルを起動します。
このような環境を開始した後、変数は使用できなくなりますが、終了するとすべてが元の場所に戻ります。
2.未設定の使用
これは、Linux環境変数を削除するもう1つの方法です。 Unsetは、現在のセッションが終了するまで、変数を名前で削除します。
未設定のvariable_name
3.変数の値を「」に設定します
これは、Linuxで環境変数を削除する最も簡単な方法です。変数を空の値に設定することにより、現在のセッションが終了するまで変数を削除します。
注:これらのメソッドを使用すると、システム変数またはユーザー変数の値を変更できますが、それらは現在のセッションにのみ関連します。
ユーザーおよびシステム環境変数の作成
このセクションでは、現在のセッションだけでなく、再起動後も効果が持続するように、システム変数とユーザー変数を設定および削除する方法について説明します。
1.Linuxでローカル変数をインストールおよび削除します
ローカルVAR変数を作成して任意の値に設定してから、設定を解除して、削除されていることを確認しましょう。
VAR1 \u003d "損失"
$エコー$ VAR1
$ unset VAR1
$エコー$ VAR1
変数を作成する別の方法は、exportコマンドを使用することです。 空の値を割り当てて削除しましょう:
export VAR \u003d "Losst"
$エコー$ VAR
$ VAR \u003d
$エコー$ VAR
次に、変数VAR2を作成して、値を指定します。 次に、env -iを実行して、すべてのローカル変数を一時的に削除します。 変数なしでシェルを起動します。 exitに入ると、すべての変数が復元されます。
VAR2 \u003d "損失"
$エコー$ VAR2
$ env -i bash
$エコー$ VAR2
カスタム変数の設定と削除
exportコマンドを追加して、ホームディレクトリの.bashrcファイルを編集し、目的の変数をエクスポートします。 次に、sourceコマンドを実行して変更を適用します。 たとえば、CD変数を作成してみましょう。
次のような行を追加します(o、次に貼り付け、次にEscおよび:wq):
エクスポートCD \u003d "これは失われた家です"
現在、構成を更新する必要があります。
ソース.bashrc
$エコー$ CD
この変数を削除するには、.bashrcから変数を削除するだけです。
次に、.bash_profileを使用して環境変数を追加しましょう。 この変数は、ご存知のとおり、リモートログインでのみ使用できます。
vi .bash_profile
行を追加します:
export VAR2 \u003d "これは失われた家です"
そして、これらのコマンドを実行して変更を適用し、変数の追加を確認します。
ソース.bash_profile
$エコー$ VAR2
ローカルターミナルセッションを作成したため、変数は使用できません。ssh経由で接続します。
ssh [メール保護]
$エコー$ VAR2
この環境変数は、前の場合と同じ方法でファイルから削除することで削除できます。
コメント: これらの変数は常に使用できますが、すべてのユーザーが使用できるわけではありません。
システム環境変数の設定と削除
/etc/bash.profileに追加して、リモートセッションを除くすべてのターミナルセッションですべてのユーザーが使用できる変数を作成しましょう。
vi /etc/bash.profile
export VAR \u003d "これはシステム全体の変数です"
次に、更新します。
ソース/etc/bash.bashrc
これで、この変数はすべてのユーザー、すべての端末で使用できます。
エコー$ VAR
$ sudo su
$エコー$ VAR
$ su-
$エコー$ VAR
このマシンにリモートで接続するすべてのユーザーが環境変数を使用できるようにする場合は、/ etc /プロファイルファイルを編集します。
export VAR1 \u003d "これはリモートセッションのみのシステム全体の変数です"
構成を更新し、変数の可用性を確認します。リモートでのみ使用可能になります。
ソース/など/プロファイル
$エコー$ VAR1
Linuxで環境変数を追加して、リモートセッションとローカルセッションの両方で使用できるようにする必要がある場合は、/ etc / environmentにエクスポートします。
vi /など/環境
export VAR12 \u003d "私はどこでも利用できます"
チェックします:
ソース/など/環境
$エコー$ VAR12
$ sudo su
$エコー$ VAR12
$出口
$ ssh localhost
$エコー$ VAR12
新しいパスをPATH環境変数のどこに追加する必要があるのか\u200b\u200b疑問に思っています。 これは(たとえば).bashrcを編集することで実現できることは知っていますが、これを行う方法は明確ではありません。
したがって:
エクスポートパス\u003d〜/ opt / bin:$ PATH
PATH \u003d $ PATHのエクスポート:〜/ opt / bin
11件の返信
シンプルな素材
PATH \u003d $ PATH:〜/ opt / bin PATH \u003d〜/ opt / bin:$ PATH〜/ opt / binを最後に追加する(複数のディレクトリに同じ名前のプログラムがある場合に他のすべてのディレクトリを検索する)か、最初に(他のすべてのディレクトリの前に検索する)かによって異なります。
複数のエントリを同時に追加できます。 PATH \u003d $ PATH:〜/ opt / bin:〜/ opt / node / binまたは順序の変更は問題ありません。
変数がすでに環境内にある場合は、エクスポートする必要はありません。変数の値への変更は環境に反映されます。PATHはほとんど常に環境内にあります。 すべてのUNIXシステムは、非常に早い段階でインストールします(通常、実際には最初のプロセスで)。
PATHが多くの異なるコンポーネントによって生成されている場合、エントリが重複する可能性があります。 コマンドであるUnixによって検出されるホームディレクトリへのパスを追加する方法を参照してください。 重複を回避するか削除するには、awkコマンドを使用して重複する$ PATHエントリを削除します。
置く場所
〜/ .bash_rcはどのプログラムでも読み取ることができず、〜/ .bashrcはインタラクティブなbashインスタンスの構成ファイルであることに注意してください。 〜/ .bashrcで環境変数を定義する必要はありません。 PATHなどの環境変数を定義する適切な場所は〜/ .profile(または、bash以外のシェルが気に入らない場合は〜/ .bash_profile)です。 2つの違いは何ですか?どちらを使用する必要がありますか?を参照してください。
非bashシェルに関する注意
bash、ksh、zshでは、exportは特別な構文であり、PATH \u003d〜/ opt / bin:$ PATHとexportPATH \u003d〜/ opt / bin:$ PATHの両方が正しいことを行います。 ダッシュ(多くのシステムでは/ bin / sh)などの他のBourne / POSIXシェルでは、エクスポートは通常のコマンドとして解析されます。これは、2つの違いを意味します。
- 〜は、割り当てを除いて、単語の先頭でのみ解析されます(コマンドを必要とするUnixによって検出されるホームディレクトリへのパスを追加する方法を参照してください。;
- $ PATHにスペースまたは\\ [*?が含まれている場合、PATHの外側の二重引用符は壊れます。 ..。
したがって、ダッシュなどのシェルでは、export PATH \u003d〜/ opt / bin:$ PATHは、PATHをリテラル文字列〜/ opt / bin /:に設定し、その後に最初の場所までのPATH値を設定します。 PATH \u003d〜/ opt / bin:$ PATH(単純な割り当て)は引用符を必要とせず、すべてを正しく実行します。 ポータブルスクリプトでexportを使用する場合は、export PATH \u003d "$ HOME / opt / bin:$ PATH"またはPATH \u003d〜/ opt / bin:$ PATH export PATH(またはPATH \u003d $ HOME / opt)を記述する必要があります。 / bin:$ PATH export PATHは、export var \u003d valueを受け入れず、チルダ拡張を行わないBourneシェルの場合でも移植性があります。
¹これはBourneシェルには当てはまりませんでした(実際のBourneシェルのように、最新のPOSIXスタイルのシェルではありません)が、最近このような古いシェルに出くわすことはほとんどありません。 サブ\u003e
とにかく機能しますが、同じことはしません。PATHアイテムは左から右にチェックされます。 最初の例では、〜/ opt / bin内の実行可能ファイルが、たとえば/ usr / bin内にインストールされている実行可能ファイルよりも優先されます。これは、必要な場合とそうでない場合があります。
特に、セキュリティの観点から、パスを前面に追加するのは危険です。誰かがあなたの〜/ opt / binへの書き込みアクセスを取得できる場合、たとえば、代わりに/を使用する別のlsを配置する可能性があるためです。気付かないうちにbin / ls。 ここで、ssh、ブラウザ、または選択について同じことを想像してください...(同じパスに3回入れてください。)
質問2について混乱しています(無関係の問題に関連していたため、質問から削除されたため):
異なる行にパスを追加する効率的な方法は何ですか? 私はもともとこれがトリックをするかもしれないと思っていました:
Export PATH \u003d $ PATH:〜/ opt / bin export PATH \u003d $ PATH:〜/ opt / node / bin
しかし、これは、2番目の割り当てが〜/ opt / node / binだけでなく、以前に割り当てられたPATHも追加するためではありません。
これは可能な回避策です:
エクスポートPATH \u003d $ PATH:〜/ opt / bin:〜/ opt / node / bin
しかし、読みやすくするために、1つのパスに1つの割り当てを設定したいと思います。
あなたが言うなら
パス\u003d〜/ opt / bin
これは すべてこれはあなたのPATHにあります。 PATHは単なる環境変数であり、PATHに追加する場合は、必要なコンテンツで変数を再構築する必要があります。 つまり、質問2の例として挙げたのは、質問の要点を完全に見逃していなければ、まさにあなたがやりたいことです。
コードで両方のフォームを使用しています。 作業しているすべてのマシンにインストールする汎用プロファイルがあり、欠落している可能性のあるディレクトリに対応するために次のようになっています。
Export PATH \u003d / opt / bin:/ usr / local / bin:/ usr / contrib / bin:/ bin:/ usr / bin:/ usr / sbin:/ usr / bin / X11#bindirのパスにオプションのアイテムを追加$ HOME / local / bin $ HOME / bin; if [-d $ bindir]; 次にPATH \u003d $ PATH:$(bindir)fi完了
Linuxは、$ PATH環境変数を使用して実行可能検索パスを定義します。 ディレクトリ/データ/ myscriptsを$ PATH環境変数の先頭に追加するには、次を使用します。
PATH \u003d / data / myscripts:$ PATH
このディレクトリをパスの最後に追加するには、次のコマンドを使用します。
PATH \u003d $ PATH:/ data / myscripts
ただし、スクリプト内で環境変数を設定すると、この変更はスクリプト内でのみ有効になるため、前の変更では不十分です。 この制限は2つの方法で制限されます。
- スクリプト内で環境変数をエクスポートすると、スクリプトによって呼び出されるすべてのプログラム内で有効になります。 これは、スクリプトを呼び出したプログラムでは効果がないことに注意してください。
- スクリプトの呼び出し元が呼び出しではなくインクルードによってそうする場合、スクリプト内の環境への変更は呼び出し元で有効になります。 この包含は、dotコマンドまたは元のコマンドを使用して実行できます。
$ HOME /myscript.shソース$ HOME / myscript.sh
インクルージョンには、基本的に「呼び出し可能」スクリプトが「呼び出し」スクリプトに含まれます。 これは、Cの#includeに似ています。したがって、スクリプトまたは呼び出しプログラム内で効率的です。 しかしもちろん、これは呼び出し元によって呼び出されるプログラムやスクリプトには効率的ではありません。 一連の呼び出しまで有効にするには、exportコマンドで環境変数の設定に従う必要があります。
例として、bashシェルプログラムには、.bash_profileファイルの内容が含まれています。 したがって、.bash_profileに次の2行を入力します。
PATH \u003d $ PATH:/ data / myscripts export PATH
これらの2行のコードをbashプログラムに効果的に配置します。 したがって、bashでは、$ PATH変数に$ HOME / myscript.shが含まれ、exportステートメントのため、bashによって呼び出されるプログラムはすべて$ PATH変数が変更されます。 また、bashプロンプトから実行するプログラムはすべてbashによって呼び出されるため、新しいパスはbashプロンプトから実行するすべてのものに対して有効です。
つまり、パスに新しいディレクトリを追加するには、シェルに含まれているスクリプトの$ PATH環境変数にディレクトリを追加または追加する必要があり、$ PATH環境変数をエクスポートする必要があります。
しばらくの間、pathaddとpathrmの2つの関数を保持してきました。これらは、重複を気にせずにパスにアイテムを追加するのに役立ちます。
pathaddは、1つのpath引数とオプションのafter引数を取り、追加された場合はPATHに追加し、そうでない場合は追加します。
いずれの場合でも、パスを追加する場合は、パスに既に存在するものをすべてオーバーライドする必要があるため、デフォルトで追加することをお勧めします。
Pathadd()(newelement \u003d $(1%/)if [-d "$ 1"] &&!Echo $ PATH | grep -E -q "(^ | :) $ newelement($ | :)"; then if [ "$ 2" \u003d "after"]; then PATH \u003d "$ PATH:$ newelement" else PATH \u003d "$ newelement:$ PATH" fi fi)pathrm()(PATH \u003d "$(echo $ PATH | sed -e" s; \\(^ \\ |:\\)$(1%/)\\(:\\ | \\ $ \\); \\ 1 \\ 2; g "-e" s; ^:\\ |:$ ;; g "-e "s; ::;:; g") ")
PATH環境を変更したいスクリプトにそれらを配置すれば、これで実行できます。
Pathadd "/ foo / bar" pathadd "/ baz / bat"エクスポート後PATH
パスがすでに存在する場合は、パスを追加しないことが保証されています。 / baz / batを最初に開始したい場合。
Pathrm "/ baz / bat" pathadd "/ baz / bat" export PATH
パスがすでにパス上にある場合は、パスを2倍にすることなくフォアグラウンドに移動できるようになりました。
防弾追加/準備方法
追加と追加の選択には、多くの考慮事項があります。 それらの多くは他の回答でカバーされているので、ここでは繰り返しません。
重要な点は、システムスクリプトがこれを使用しない場合でも(なぜだろうか)* 1、PATH環境変数にパス($ HOME / binなど)を追加する防弾方法です
PATH \u003d "$(PATH:+ $(PATH):) $ HOME / bin"
追加する(PATH \u003d "$ PATH:$ HOME / bin"の代わりに)そして
PATH \u003d "$ HOME / bin $(PATH:+:$(PATH))"
追加する(PATH \u003d "$ HOME / bin:$ PATH"の代わりに)
これにより、$ PATHが最初は空の場合に、誤った先頭/末尾のコロンが回避されます。これは、望ましくない副作用を引き起こす可能性があり、見つけるのが難しい悪夢になる可能性があります(この回答は、awk-wayのケースに簡単に対処します)。
$(パラメータ:+ワード)パラメータがnullまたは未設定の場合、何も置き換えられません。それ以外の場合、単語が置き換えられます。
したがって、$(PATH:+ $(PATH):)は次のように展開されます:1)PATHがnullまたは未設定の場合は何もありません。2)$(PATH):PATHが設定されている場合。
注意..。 これはbash用です。
* 1 devtoolset-6 / enableのようなスクリプトが実際にこれを使用していることがわかりました。$ cat / opt / rh / devtoolset-6 / enable#一般的な環境変数export PATH \u003d / opt / rh / devtoolset-6 / root / usr / bin $(PATH:+:$(PATH))..。
他のディストリビューションについて話すことはできませんが、Ubuntuにはファイル、/ etc /環境があります。これは、すべてのユーザーのデフォルトの検索パスです。 私のコンピュータは私だけが使用しているので、スクリプトに一時的に追加する場合を除いて、パスに必要なディレクトリを配置します。
私の場合(Mac OS X 10.9.5の場合)、パス名(/ mypathnameなど)を/ etc / pathsファイルに追加すると非常にうまくいきました。
編集前にエコー$ PATHが返されます。
/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin
/ etc /パスを編集してシェルを再起動した後、$ PATH変数が/ pathnameとともに追加されます。 実際、echo $ PATHは次を返します。
/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ mypathname
/ mypathnameが$ PATH変数に追加されたのです。
オペレーティングシステムは通常、環境変数を使用してグローバル設定を定義したり、プログラムの動作を制御したりします。 Path変数は環境変数の1つであり、知らないうちに常に使用されます。 変数は、実行可能ファイルが配置されているディレクトリのリストを格納します。
ステップ
- 1
echo $ PATHと入力して、現在のパスを見つけます。 以下に示すように、ディレクトリリストが開きます(例)。
- [メール保護]:〜$ echo $ PATH / home / uzair / bin:/ usr / local / sbin:/ usr / local / bin:/ usr / bin:/ bin:/ usr / games
- 注:ディレクトリはコロンで区切られます。
- 2
一時的に追加:/ sbinおよび:/ usr / sbin:次のコマンドを入力して現在のパスに移動します。
- [メール保護]:〜$ export PATH \u003d $ PATH:/ sbin /:/ usr / sbin /
- 3
PATH変数が変更されたことを確認するには、次のコマンドを入力します。
- [メール保護]:〜$ echo $ PATH / home / uzair / bin:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games
- 行った変更は一時的なものであり、システムを再起動するとキャンセルされることに注意してください。
- 4 一時変数を持つプログラムが正しく機能しているかどうかを確認します。
- 5 PATHを永続的に変更するには、同じ行を〜/ .bashrcファイルに追加します
警告
- PATH変数を変更すると、オペレーティングシステムの動作が不安定になる可能性があります。 この変数は、実行可能ファイルを見つけるために使用されます。 変数が正しく構成されていないと、プログラムが誤動作するか、まったく機能しなくなります。 〜/ .bashrcに変更を書き込む前に、一時変数プログラムが正しく機能していることを常に確認してください。
それは何ですか? コマンドラインで入力するコマンドの多くは、ファイルシステムから外部プログラムをロードする必要があります。 たとえば、mkdirやwcなどのコマンドは、実際には/ binフォルダーにあります。
Bashシェルが認識しない命令を入力すると、Bashシェルはそれをプログラムとして実行しようとし、その名前のプログラムが見つからない場合はエラーを返します。 これは、これまで見てきた基本的なコマンドだけでなく、コマンドラインから任意のプログラムを実行できるためです。
しかし、それがファイルシステムに存在する場合、Linuxはどのプログラムをどのディレクトリから実行するかをどのように認識しますか? OSは、システム環境変数を使用して、不明なコマンドを受信したときに検索するフォルダーのサブセットを指定します。 この変数はPATHと呼ばれ、次のechoコマンドで表示できます($文字が必要です)。
エコー$パス
このコマンドの出力は、コロンで区切られた次の7つの絶対フォルダーパスのようになります。
/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games
不明なコマンドを入力するたびに、Linuxは環境変数で指定された各フォルダーを指定された順序で調べ、同じ名前のプログラムを見つけようとします。 プログラムが見つかると、起動します。 それ以外の場合は、エラーメッセージが表示されます。 しかし、あなたがあなたの最愛の銀の指輪を贈り物として買うならば、それは間違いではありません。 シルバーはどんな女性にも飾られます!
これらの7つのフォルダーを使用すると、を含むオペレーティングシステムのすべての主要なプログラムに簡単にアクセスできます。 これらの7つのフォルダー以外のプログラムは、コマンドラインで名前を入力するだけでは起動できません。
たとえば、日記ユーティリティをインターネットからホームフォルダにダウンロードしたとします。 コマンドラインで名前を入力すると、システムパスに含まれていないフォルダーにあるため、エラーメッセージが表示されます。 このプログラムを実行するには、次の行を入力します(〜記号はホームフォルダの省略形であることに注意してください)。
指定したパス以外のフォルダに保存した場合、ユーティリティを実行するには絶対パスとファイル名を入力する必要があります。
もちろん、ほとんどの主流アプリケーションはインストール中に指定されたパスのどこかにプログラム実行可能ファイルを配置するため、日記はインストールを必要としない単純なスタンドアロンプ\u200b\u200bログラムであると想定されています。 これがそのようなものです 環境変数PATH、あなたの健康にそれを使用してください!
ご存知のように、ユーザーがシステムにログオンすると、シェルの特別なインスタンスであるログインシェルが起動されます。 ログインシェルとしての起動時 bash 次のファイルを探します。
- / etc /プロフィール
- 〜/ .bash_profile
- 〜/ .bash_login
- 〜/ .profile
(この順序で)そしてそれらに含まれるコマンドを実行します。 もし bash インタラクティブモードでコマンドラインから再実行され(つまり、単一のコマンドを実行しない)、〜/ .bashrcファイルが検索され、そこに含まれるコマンドが実行されます。 ただし、Mandrakeディストリビューションでは、ログインシェルに対しても〜/ .bashrcファイルが呼び出され、システム全体の/ etc / bashrcファイルもそこから呼び出されます。 ご覧のとおり、ここにはオプションがあります。
しかし、これらのスクリプトを呼び出すシーケンスが何であれ、ユーザーセッションごとに、いわゆる「ユーザー環境」または環境が作成されます。これは、値が設定された変数のセットです。 これらの値は、一部のプログラムやユーティリティによって読み取られ、それらの値に従って、特定の状況でシステムの動作が変化します。
ファイル/ etc / profileおよび/ etc / bashrcは、ユーザー環境のシステム全体の設定を定義し、リストされている残りのファイルは、特定のユーザーの個々の環境を定義します。 デフォルト値を変更する個々の設定ファイルの比較的小さな追加または修正は、システムをはるかに快適にすることができます(ご存知のように、味は議論しないでください、そしてデフォルト設定を決定した人々があなたを推測した可能性は低いです環境設定)。 それでは、主なユーザー環境変数と、それらを自分で変更する方法を簡単に見てみましょう。
まず、デフォルトの環境変数を確認します。 私たちが言ったように 宗派。 5.6 、これはコマンドで実行できます セットする (および同様のコマンド タイプセット)または 環境..。 個々の変数に割り当てられた値は、コマンドを使用して表示できます エコー$名前どこ 名前 -変数名。
コマンドで表示されるすべての変数のうち セットする、通常はPS1プロンプトとPATH検索パスを変更します。 これらの変数の値を変更する方法については、 宗派。 5.6 ..。 何らかの理由でこのセクションを見逃した場合は、今すぐチェックしてください。 したがって、これらの変数に新しい値を設定するスクリプトを決定するだけです。 PATH変数の例を使用してこの質問を考えてみましょう。
PATH変数は、/ etc / profile(すべてのユーザーに共通のパス)とユーザースクリプトの1つ(たとえば、〜/ .bash_profile)の2つのスクリプトで生成されます。ユーザーは、以前に生成されたリストにパスを自由に追加できます。 。 〜/ bashrcでは、2番目、3番目などのシェルインスタンスを開始するたびに後者が再起動されるため、これを行わないでください。 PATH変数にパスを追加するには、選択したスクリプトに次の行を入力します(この例では、パス/ホーム/ユーザー/ビンがリストに追加されます)。
パス\u003d $パス:/ホーム/ユーザー/ビン
最後にコロンがないことに注意してください。 また、ディレクトリは、PATH変数にリストされている順序で目的のファイルを検索することに注意してください。
MS-DOSとは異なり、Linuxは現在のディレクトリで実行可能ファイルを検索しません。 したがって、現在のディレクトリで検索を実行する場合は、このディレクトリもPATH変数に追加する必要があります(名前が1つのピリオドで構成されていることを思い出してください)。 ただし、セキュリティの観点から、現在のディレクトリを検索パスのリストに追加することは許可されないことに注意してください。攻撃者は、頻繁に使用されるシステムユーティリティの1つにちなんで名付けられた悪意のあるプログラムを、自分が利用できるディレクトリの1つに配置する可能性があるためです。書くことによって。 また、システムユーティリティを実行していると信じてこのプログラムを実行すると、特にスーパーユーザーとして実行した場合に、システムに多くの害を及ぼす可能性があります。
必要に応じて、コマンドにカラー出力を含めることで、わずかに「あなたの人生を飾る」ことができます ls (デフォルトで白黒の場合)。 これを行うには、ファイル/ etc / bashrcを編集し、それに次の行を追加します。
エイリアスls \u003d "ls -F --color"
ちなみに、ターミナルエミュレータウィンドウのMidnight Comma nderを白黒ではなくカラーにしたい場合は、変数を設定します。 COLORTERM:
COLORTERM \u003d; COLORTERMをエクスポートします
V. Kostromin(rus-linux dot netのkos)-8.8。 ユーザーの環境を設定する