by shigemk2

当面は技術的なことしか書かない

PATHを全部消してしまったとき

Linux初心者のためのブログ:Linuxで bash: $:command not found と表示されてしまう - livedoor Blog(ブログ) 第9回 シェルとコマンド実行|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]

概要

$ echo $PATH
(なにも表示されない)

みたいなことってあるかもしれないし、ないかもしれない。

困ること

多くのコマンドは指定したパスの下で実行されるので、たとえばlsを実行してもパスが通っていない。

まあフルパス指定したら通るんだけど、初見だとすげえギョっとする。

で、パスを通さなくてもフルパスじゃなくても実行できるビルトイン関数exportを利用してリカバーする。

てきとうな実験と解決

[vagrant@vagrant-centos64 ~]$ export PATH
[vagrant@vagrant-centos64 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin
[vagrant@vagrant-centos64 ~]$ export PATH=
[vagrant@vagrant-centos64 ~]$ echo $PATH

[vagrant@vagrant-centos64 ~]$ ls
-bash: ls: No such file or directory
[vagrant@vagrant-centos64 ~]$ which ls
alias ls='ls --color=auto'
[vagrant@vagrant-centos64 ~]$ /usr/bin/ls
-bash: /usr/bin/ls: No such file or directory
[vagrant@vagrant-centos64 ~]$ /bin/ls
[vagrant@vagrant-centos64 ~]$ /bin/ls
[vagrant@vagrant-centos64 ~]$ /bin/ls -alF
total 24
drwx------. 3 vagrant vagrant 4096 Oct 30 12:32 ./
drwxr-xr-x. 3 root    root    4096 Oct 30 12:32 ../
-rw-r--r--. 1 vagrant vagrant   18 Feb 21  2013 .bash_logout
-rw-r--r--. 1 vagrant vagrant  176 Feb 21  2013 .bash_profile
-rw-r--r--. 1 vagrant vagrant  124 Feb 21  2013 .bashrc
drwx------. 2 vagrant vagrant 4096 Oct 30 12:32 .ssh/
[vagrant@vagrant-centos64 ~]$ export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin
[vagrant@vagrant-centos64 ~]$ ls
[vagrant@vagrant-centos64 ~]$ ls -alF
total 24
drwx------. 3 vagrant vagrant 4096 Oct 30 12:32 ./
drwxr-xr-x. 3 root    root    4096 Oct 30 12:32 ../
-rw-r--r--. 1 vagrant vagrant   18 Feb 21  2013 .bash_logout
-rw-r--r--. 1 vagrant vagrant  176 Feb 21  2013 .bash_profile
-rw-r--r--. 1 vagrant vagrant  124 Feb 21  2013 .bashrc
drwx------. 2 vagrant vagrant 4096 Oct 30 12:32 .ssh/