開発

Linux「ls: コマンドが見つかりません」の原因と直し方

Linux「ls: コマンドが見つかりません」の原因と直し方


Linuxサーバーでコマンドが実行できない!?

XSERVERにSSHログインした際など、Linuxサーバーを触っていたら lsvi のようなテキストによるコマンドをよく使う。

しかしあるとき以下のエラーが出てコマンドが実行できなくなったことはないだろうか。

bash: ls: コマンドが見つかりません


原因は何なのか。

原因を調べようにも ls さえ実行できないのにどうやって調べれば良いのか。

そこで今回はLinuxの「ls: コマンドが見つかりません」の原因と直し方について解説する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。SEとして浅く広い感じで経験を積んでいるためサーバー周りについてもそこそこ知識がある。

記事を読むメリット

「ls: コマンドが見つかりません」の原因と直し方がわかる


「ls: コマンドが見つかりません」の原因


「ls: コマンドが見つかりません」の原因はPATH(パス)の設定が壊れているから。

PATHの設定が壊れているのでコマンドを入力しても、コマンドの実体があるディレクトリがわからずに「見つかりません」となってしまっている。


じゃあコマンドを絶対パスで打てば実行できるわけ?
コマンドの実体となっているプログラムを削除してなければ実行できるはずですよ


というわけで絶対パスでコマンドを打てば実行できる。

コマンドは環境によりけりだが、XSERVER(エックスサーバー)なら /usr/bin/lsls コマンドを実行できる。



エラーの解決方法


原因はわかったがどのように解決すればよいのか。


まずPATHの設定は ~/.bash_profile もしくは ~/.bash_profile
に書かれている。
(デフォルトのシェルがbashであれば)

なので中身を見て編集する。

編集するには以下のコマンドを実行する。

/usr/bin/vi ~/.bash_profile


筆者が同じエラーに遭遇した際に ~/.bash_profile の中を見たら以下のようになっていた。

原因は赤枠の部分

PATH=$PATH:$HOME/bin
export PATHeval $(/home/xxxx/.linuxbrew/bin/brew shellenv)

ココは本来以下のように export PATHeval の間に改行が入っていなければならない。
(linuxbrewの設定時にミスをしたものと思われる。)

PATH=$PATH:$HOME/bin
export PATH
eval $(/home/xxxx/.linuxbrew/bin/brew shellenv)

なので修正して再度SSH接続をしなおせば、「コマンドが見つかりません」のエラーは解消するはずだ。



まとめ


今回はLinuxの「ls: コマンドが見つかりません」の原因と直し方について解説した。

「コマンドが見つかりません」の原因はPATHの設定が壊れているから

この状態でコマンドを使うには /usr/bin/ls のように絶対パスで指定すれば良い。

エラーを修正するには ~/.bash_profile もしくは ~/.bash_profile/usr/bin/vi で開いてPATH周りの記述を修正してSSH接続しなおすと直る。


WEB系に関わるエンジニアにはLinuxの知識は必須。

GCP、AWS、OracleVM、XSERVER、どれもサーバーはLinuxで動いている。

覚えておいて損は無いだろう。


関連する記事として、もしWordPressブログをXSERVER(エックスサーバー)に移行したいのであれば比較記事や移行記事があるので参考にして欲しい。

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-開発
-, , ,

© 2024 ITips