Bashは$ PATHにスクリプトを見つけることができません。

Bashは$ PATHにスクリプトを見つけることができません。

新しいUbuntu 16.04 Minimalシステムのセットアップ中に奇妙な問題が発生しました。を追加した後も少なくとも$HOME/bin$PATHbashroot

何度もログアウトしてコンピュータを再起動したこともありました。パスは/etc/profile.d:のスクリプト行によって設定されますexport PATH="$PATH:$HOME/bin"

root@Pioneer ~ # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/bin
root@Pioneer ~ # ls -la /root/bin
total 36
drwxr-xr-x 2 root root 4096 Feb  6 16:04 .
drwx------ 8 root root 4096 Feb  6 16:03 ..
-rwxr-xr-x 1 root root  174 Jan  5  2017 newuser
-rwxr-xr-x 1 root root  236 Nov  3  2015 own
-rwxr-xr-x 1 root root   87 May  6  2017 re-dns
-rwxr-xr-x 1 root root   57 May 10  2016 re-ftp
-rwxr-xr-x 1 root root   89 Oct 20  2015 re-mail
-rwxr-xr-x 1 root root   42 Oct 19  2015 re-smb
-rwxr-xr-x 1 root root   65 Oct 19  2015 re-web
root@Pioneer ~ # newuser
-bash: newuser: command not found

/root/bin/newuserのように有効ですcd /root/bin && ./newuser

名前の後にスペースはありません。

# ls -lb /root/bin/newuser
-rwxr-xr-x 1 root root 174 Jan 5 2017 newuser

Rootの家は実際には次のとおりです/root

# getent passwd root
getent: root:x:0:0:root:/root:/bin/bash 

答え1

ありがとうテデンヒントを見てみると、を使用してstrace -e stat bash -c "newuser" 2>&1 | grep /root/bin設定ファイルスクリプトの閉じた引用符の前に表示されないキャリッジリターンが挿入され、実際のパスを削除して再/root/bin\r入力したことがわかりました。今動作します。

関連情報