InfraAcademy

InfraAcademy Blog

bash: vi: command not foundというエラーが出た場合の対処方法【viを使えるようにするには?】

| #Linux #Linux初心者
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、

InfraAcademyというインフラ学習サービスを運営しております、ryuと申します。

今回の記事では、bash: vi: command not foundというエラーが出た場合の対処方法について解説します。

Linuxで設定ファイルを編集しようとしてviを実行したのに、command not foundと表示されると困りますよね。

このエラーは、現在の環境でviコマンドを実行できない状態を表しています。この記事では、エラーの意味からLinuxへのインストール方法、Dockerでの対処まで解説します。

bash: vi: command not foundというエラーが出た場合の対処方法

viコマンドを実行した際に、bash: vi: command not foundというエラーが出ることはありませんか?

このエラーの対処方法について解説したいとおもいます。

まず、実際に次のようなコマンドを実行したとします。

vi test.txt

viが使えない環境では、次のようなエラーが表示されます。

bash: vi: command not found

command not foundはLinuxではよく見るエラーです。入力ミスか、必要なプログラムが入っていない可能性があります。

bash: vi: command not foundとはどのような意味?

「bash: vi: command not found」を日本語に訳すと、viコマンドが見つかりませんという意味になります。

つまり、viコマンドを動かすための必要なプログラムが無いということです。Linuxでは、パッケージとしてさまざまなコマンドやソフトウェアを提供しております。デフォルトでコマンドが使えない場合は、パッケージをインストールする必要があります。

ただし、いきなりインストールする前に、本当にviが見つからないのか確認してみましょう。

command -v vi

viが利用できる場合は、次のようにコマンドの場所が表示されます。

/usr/bin/vi

何も表示されない場合は、viを利用できない可能性があります。

似た確認方法としてwhichもあります。

which vi

【関連記事】コマンドがどこにあるのか調べる方法は、whichコマンド、whereisコマンドで調査する方法でも詳しく解説しています。

viコマンドをインストールする方法

viコマンドのインストール

viコマンドのインストールはLinuxのディストリビューションやOSによって異なります。

Debian系のディストリビューションでは、aptパッケージマネージャーを使用してvimをインストールします。

sudo apt update
sudo apt install vim

Red Hat系のディストリビューションでは、dnfまたはyumパッケージマネージャーを使用してvimをインストールします。

sudo dnf install vim

古い環境では、次のようにyumを利用することもあります。

sudo yum install vim

ディストリビューションごとの違いをまとめると、次の通りです。

Linux 主なパッケージ管理 インストール例
Ubuntu apt sudo apt install vim
Debian apt sudo apt install vim
Rocky Linux dnf sudo dnf install vim
AlmaLinux dnf sudo dnf install vim
RHEL dnf sudo dnf install vim

自分がどのLinuxを使っているのか分からない場合は、次のコマンドで確認できます。

cat /etc/os-release

パッケージ管理については、こちらで詳しく解説しています。

・【Linux中級講座】パッケージ管理

viとVimは何が違う?

Vimは、viをベースに機能を拡張したテキストエディターです。環境によってはviを実行するとVimが起動します。

そのため、vimパッケージをインストールすることで、vimだけではなくviとして利用できる環境も多くあります。

基本的なファイル編集であれば、まず次の操作を覚えておけば十分です。

i      編集モードへ移動
Esc    コマンドモードへ戻る
:wq    保存して終了
:q!    保存せず終了

viの操作そのものを確認したい方は、【関連記事】Linuxのviコマンドの使い方を解説も参考にしてください。

viコマンドが使えるか確認する

viコマンドが使えるかどうかの確認

viコマンドのインストールが完了したら、viコマンドが使えるかどうか確認してみましょう。

vi --version

コマンドを実行すると、viのバージョン情報が表示されます。

これで、viコマンドが使えることがわかります。bash: vi: command not foundというエラーは解消されたはずです。

実際にvi test.txtでファイルを開き、iで入力、Esc:wqで保存終了まで試してみましょう。

インストールしてもcommand not foundになる場合

Vimをインストールしたのに、まだcommand not foundが表示される場合もあります。

そのときは、いくつか確認してみましょう。

コマンド名を間違えていないか確認する

まずは入力したコマンドを確認します。

vi

Linuxのコマンドでは、大文字と小文字が区別されます。

また、全角スペースなどが含まれていないかも確認してください。

vimコマンドが利用できるか確認する

環境によってはvimは使えても、viという名前では利用できない場合があります。

次のコマンドを試してみましょう。

command -v vim
vim --version

vimが利用できるのであれば、ファイル編集は次のように行えます。

vim test.txt

PATHも確認する

コマンドがインストールされていても、実行ファイルがPATHに含まれていない場所にあると、コマンド名だけでは実行できません。

PATHは次のように確認できます。

echo $PATH

ただし、通常のパッケージ管理でVimをインストールした場合は、一般的なコマンド検索パスへ配置されます。

まずはcommand -v vicommand -v vimで確認するのがおすすめです。

【関連記事】環境変数について詳しく知りたい方は、exportコマンドの使い方解説!環境変数の設定をしようもご覧ください。

Dockerでbash: vi: command not foundが出る理由

Dockerによくあるエラー

bash: vi: command not foundはDockerによくあるエラーです。

Dockerコンテナには、デフォルトでviコマンドが入っていないからです。しかし、毎度viコマンドをインストールするのは面倒です。

Dockerイメージは、サイズを小さくするため必要最低限のパッケージだけを含むことがあります。

コンテナ内で一時的にVimを使いたい場合は、次のようにインストールできます。

apt-get update
apt-get install -y vim

コンテナを作り直すと手動で追加したVimは消れるため、継続して使うならDockerfileに書いておきます。

DockerfileでVimをインストールする

そのような場合は、Dockerfileでviコマンドをインストールするようにしましょう。以下はubuntuのイメージににvimをインストールする例です。

# ベースイメージとしてUbuntuを使用
FROM ubuntu:latest

# パッケージリストを更新し、vimをインストール
RUN apt-get update && \
    apt-get install -y vim && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# デフォルトのコマンドを設定
CMD ["bash"]

上記のファイル内の、apt-get install -yの-yオプションは、コマンド実行中に現れるすべてのプロンプトに対して自動的に「yes」と応答するためのものです。

apt-get installコマンドを実行すると、インストールの確認を求めるプロンプトが表示されます。

このオプションを使用することで、ユーザーが手動で応答することなく、スクリプトや自動化されたプロセスでパッケージをインストールすることができます。

このようにDockerfile内でviコマンドをインストールしておくと、vi: command not foundが毎回出なくなります。

本番コンテナにVimは必要?

開発中はVimが便利ですが、本番用Dockerイメージには必ずしも必要ありません。不要なパッケージを増やさず、用途に応じて使い分けましょう。

command not foundが出たときの確認手順

vi以外のコマンドでもcommand not foundは発生します。

そのような場合も、今回と同じ考え方で確認できます。

手順 確認内容
1 コマンド名の入力ミスがないか
2 command -vでコマンドが存在するか
3 Linuxのディストリビューションを確認する
4 必要なパッケージをインストールする
5 インストール後に再度コマンドを確認する

command not foundと出たら、Linuxがそのコマンドを見つけられていないと考えましょう。

InfraAcademyでLinuxコマンドを実際に練習する

Linuxのコマンドは、記事を読んで名前だけ覚えるよりも、実際に入力してエラーや実行結果を見る方が身につきやすいです。

InfraAcademyでは、ブラウザ上でLinuxを操作しながら、ファイル・ディレクトリ操作やパッケージ管理などを学習できます。

Linuxを基礎から学習したい方は、Linux入門講座をご覧ください。

Linuxサーバーを扱ううえで必要になるIPアドレスやルーティングなどは、ネットワーク講座で学習できます。

さらにAWS上でLinuxサーバーを扱ってみたい方は、AWS講座もおすすめです。

command not foundのようなエラーも、実際にLinuxを触っていると何度も遭遇します。

そのたびに原因を確認して解決することで、Linuxの仕組みも少しずつ理解できるようになります。

bash: vi: command not foundのまとめ

今回の記事では、bash: vi: command not foundというエラーが出た場合の対処方法について解説しました。

viコマンドをインストールすれば、すぐに解消されることが多いエラーです。

UbuntuやDebian系であれば、次のようにVimをインストールできます。

sudo apt update
sudo apt install vim

Rocky LinuxやAlmaLinux、RHELなどでは、次のように実行できます。

sudo dnf install vim

インストール後は、次のコマンドで確認しましょう。

command -v vi
vi --version

Dockerで毎回同じエラーが出る場合は、必要に応じてDockerfileへVimのインストール処理を追加します。

viコマンドに限らず、コマンドがない場合はcommand not foundというエラーがでます。そのような場合は、入力したコマンド、コマンドの存在、必要なパッケージを順番に確認してみてください。

当ブログでは、このようなITに関する記事を発信しているので興味のある方は引き続きごらんください。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る