0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Linux] 特定のPATH, LD_LIBRARY_PATHを削除する

Last updated at Posted at 2022-11-07

背景

Linuxの.bashrcで設定してしまった、特定のPATH, LD_LIBRARY_PATHを削除したいときがある。
unset等を使うことで、削除できるが、ターミナルを切り替えると、PATH, LD_LIBRARY_PATHが復活してしまうため、なんとかならないか、、、

方法

・nanoエディタを開く

sudo nano ~/.bashrc

・.bashrcの末尾に以下を追加
・その後ctrl+o からの enter で保存し、ctrl+x で閉じる。

path_remove ()  { export PATH=`echo -n $PATH | awk -v RS=: -v ORS=: '$0 != "'$1'"' | sed 's/:$//'`; }
lib_path_remove ()  { export LD_LIBRARY_PATH=`echo -n $LD_LIBRARY_PATH | awk -v RS=: -v ORS=: '$0 != "'$1'"' | sed 's/:$//'`; }

・bashrcを有効化

source ~/.bashrc

・以下のようなコマンドで、PATH, LD_LIBRARY_PATHを削除できる。

path_remove /usr/local/cuda-11.4/bin
lib_path_remove /usr/local/cuda-11.4/lib64

・以下のコマンドで、PATH, LD_LIBRARY_PATHを確認できる。

echo $PATH
echo $LD_LIBRARY_PATH

注意

以下を何度も行うと、同じPATH, LD_LIBRARY_PATHが重複して設定されてしまう。

source ~/.bashrc

重複した、PATH, LD_LIBRARY_PATHを自動で削除したい場合は、~/.bashrc末尾に以下を追加しておく。

export PATH=$(printf %s "$PATH" | awk -v RS=: -v ORS=: '!arr[$0]++')
export LD_LIBRARY_PATH=$(printf %s "$LD_LIBRARY_PATH" | awk -v RS=: -v ORS=: '!arr[$0]++')

参考

【51】【Linux】パスの意味や意外に削除が複雑。また、lsコマンドとcdコマンドの違い
$PATHから重複したディレクトリを削除する

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?