【51】【Linux】パスの意味や意外に削除が複雑。また、lsコマンドとcdコマンドの違い
この記事を読むと、シェル変数と環境変数、パスの意味や通し方、パスの削除の仕方を学ぶことができます。
ところで、lsコマンドとcdコマンドの違い分かりますか?
この記事を読むと両者の違いがはっきりと分かるでしょう。
シェル変数と環境変数
定義された変数の確認
echo
echo Linux
シェル変数を定義する
Linux='foobar'
(=との間にスペースが含まれるとエラーになるので注意)
変数の表示
echo $Linux
変数の解除
unset Linux
($を付けなくていい)
変数の確認
環境変数のみの確認
env
環境変数とシェル変数の確認
set
環境変数とシェル変数の違い
シェル変数はシェルが再起動したり、新たに起動したシェルからは参照できない。
永続的に使える変数が環境変数。
exportコマンドでシェル変数を環境変数にする。
FOOBAR='foobar'
export FOOBAR
echo $FOOBAR
unset FOOBAR
環境変数PATHとコマンド
内部コマンドと外部コマンド
コマンドは2種類ある。
内部コマンド
シェル自体に組み込まれているコマンド
外部コマンド
独立したプログラムとして存在するもの
実例:lsとcdコマンドの違い
which ls
/bin/ls
which cd
cd: shell built-in command
lsは/bin/lsとコマンドのパスが表示されたので外部コマンドです。
cdはcd: shell built-in commandと表示されたので内部コマンドです。
外部コマンドの仕組み
外部コマンドはそのコマンドがどこに置かれているのかを、
シェルが環境変数PATHに指定されたディレクトリから順に探していきます。
環境変数PATHにコマンドが置かれたディレクトリを追加することを、パスを通すといいます。
パスの追加方法
PATH=$PATH:/opt/bin
export PATH
注意!
PATH=/opt/bin
としてしまうと、シェルが/opt/binしか参照しなくなるので誤り。
$PATH:/opt/binとすることによって、既存のパスに追加されます。
また、追加したパスはシェル変数ですので、新たに起動すると、前の状態に戻ります。
exportすることによって、永続的に使えます。
パスの削除(結構複雑!!)
バスの削除は意外にややこしかった!
https://qiita.com/ironsand/items/10e28d7589298090ec23
を参考にしました。
.zshrcを編集します。
以下を追記
path_append () { path_remove $1; export PATH="$PATH:$1"; }
path_prepend () { path_remove $1; export PATH="$1:$PATH"; }
path_remove () { export PATH=`echo -n $PATH | awk -v RS=: -v ORS=: '$0 != "'$1'"' | sed 's/:$//'`; }
path_remove /opt/bin
とするとパスが削除されます。
Linuxに関する記事一覧
参考文献
Ping_T
Linux教科書 LinuCレベル1 Version 10.0対応
最後に
私がブログを書く目的は、素晴らしい本や、素晴らしい方々の技術記事を知って頂きたいからです。ぜひ、上記の参考文献を見て下さい。(noteなので広告とかは一切ありません。)
現在、株式会社grabssに行くために最後の悪あがきをしています!!
現在の進行状況
51件目投稿。目標到達!!。
追加目標
20日までに100件目指す!!!(51件目)
よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。