ターミナルでファイルを編集する|nano入門とvimの「保存して終了」だけ覚える

echo と >> で、ファイルに1行ずつ書けるようになりました。でも、途中の行を直したいときや、設定ファイルを書き換えたいときは、さすがに不便ですよね。

そこで使うのが、ターミナルの中で動くテキストエディタです。メモ帳のようなものですが、マウスは使わず、キーボードだけで操作します。私が最初に困ったのは、書くことではなく「どうやって閉じるの?」でした。特に vim は、閉じ方がわからなくて、ターミナルごと閉じたことがあります。

この記事では、初心者にやさしい nano の使い方と、いざというときのための vim の「保存して終了」「保存せずに終了」だけを、一緒に練習しましょう。

💡
この記事でわかること
  • nano でファイルを開く・書く・保存する・終了する方法
  • vim に入ってしまったときの「保存して終了(:wq)」と「保存せずに終了(:q!)」
  • ふだん使うエディタ(既定のエディタ)の選び方
🔰
この記事の前提
  • pwd・ls・cd と、パスの書き方がわかる
  • cat でファイルの中身を表示できる

まだの方は「Linuxでファイルの中身を見る|cat・less・head・tailの使い分け【初心者向け】」から読むのがおすすめです。前の記事は「Linuxで困ったときの調べ方|--help・man・Tab補完・historyで迷わない」です。

💡
用語メモ
  • ターミナル:文字を打ってパソコンに指示を出すための画面(アプリ)。いわゆる「黒い画面」です。打った文字を読み取って動かすのは、この中で動いている「シェル」です
  • コミット:Git に、ファイルの変更を記録として残すこと

用語で迷ったら、連載のまとめ記事の「よく出てくる用語ミニ辞典」でも確かめられます。

🆘
今まさに vim から出られない方は、先にこれ
  1. Esc キーを押す(何回押しても大丈夫です)
  2. :q! と打つ(半角のコロン、q、びっくりマーク)
  3. Enter を押す

これで、何も保存せずにターミナルに戻れます。ファイルは開く前のままです。落ち着いたら、続きを読んで「保存して終了」の方法も覚えましょう。


結論:ふだんは nano、vim は「出方」だけ覚える

やりたいこと nano vim
ファイルを開く nano ファイル名 vim ファイル名(入っていなければ vi ファイル名)
文字を書く そのまま打つ i を押してから打つ(最後の行の下に足すなら G → o)
保存する Ctrl + O → Enter Esc → :w → Enter
終了する Ctrl + X Esc → :q → Enter
保存して終了 Ctrl + O → Enter → Ctrl + X Esc → :wq → Enter
保存せずに終了 Ctrl + X → N Esc → :q! → Enter

nano と vim の「保存して終了」の手順比較

準備:練習用のファイルを用意する

練習は ~/linux-practice/edit-test の中で行います。

  • 1
  • 2
  • 3
  • 4
mkdir -p ~/linux-practice/edit-test
cd ~/linux-practice/edit-test
echo "1行目:エディタの練習" > memo.txt
cat memo.txt

🖥️
この記事の出力例について

ここから先の出力例は、Debian 13での実行例です(ユーザー名 kaito・パソコン名 demo のダミー環境)。UbuntuやWSL(=Windows の中で Linux を動かせる、Microsoft のしくみ)では、表示が少し違うことがあります。

(例)

  • 1
1行目:エディタの練習

nano:やさしいエディタ

開く
  • 1
nano memo.txt

Debian 13での実行画面

nano(ナノ)を開くと、画面のいちばん下に操作の一覧が出ています。^ は Ctrl キーのことです。たとえば ^X は「Ctrl を押しながら X」という意味です。今回の Debian 13(nano 8.4)では、次のように表示されました。

(例)

  • 1
  • 2
^G Help       ^O Write Out  ^F Where Is   ^K Cut        ^T Execute    ^C Location   M-U Undo
^X Exit       ^R Read File  ^\ Replace    ^U Paste      ^J Justify    ^/ Go To Line M-E Redo

その上に出ている [ Read 1 line ] は、「1行読み込みました」という意味です。M-U の M は、Alt キーのことです。

💡
nano が見つからないときは

環境によっては、nano が入っていないことがあります。「command not found」と出た場合は、ソフトを入れる apt の記事(この連載の Lv2)で入れ方を扱います。それまでは、この記事の vim の部分だけ試してみてください。

書く

nano は、開いたらそのまま文字を打てます。矢印キーで1行目の最後まで動いて Enter を押し、2行目を書いてみましょう。

  • 1
2行目:nanoで書きました

保存する:Ctrl + O → Enter

Ctrl + O を押すと、画面の下に Write to File: memo.txt(memo.txt という名前で書き込みます)と、保存するファイル名がたずねられます。そのまま Enter を押せば保存されます。

Debian 13での実行画面

保存できると、画面の下に [ Wrote 2 lines ](2行書き込みました)と表示されます。

終了する:Ctrl + X

Ctrl + X で、nano を閉じてターミナルに戻ります。保存してから閉じたので、何も聞かれずに終わるはずです。

  • 1
cat memo.txt

(例)

  • 1
  • 2
1行目:エディタの練習
2行目:nanoで書きました

保存せずに閉じようとすると

書き換えたまま Ctrl + X を押すと、「保存しますか?」と聞かれます。画面の下には、次のように表示されます。

(例)

  • 1
  • 2
  • 3
Save modified buffer?
 Y Yes
 N No           ^C Cancel

Save modified buffer? は「変更した内容を保存しますか?」という意味です。

Debian 13での実行画面

押すキー 結果
Y 保存する(そのあとファイル名を聞かれるので Enter)
N 保存せずに閉じる(書き換えた内容は捨てられる)
Ctrl + C やめて、編集に戻る

vim:「出方」だけ覚えておく

vim(ヴィム)は、多くのサーバー(=ほかのパソコンやアプリにサービスを提供するコンピューター)に入っている、とても高機能なエディタです。ただ、操作の考え方が独特なので、初心者がいきなり使うと戸惑います。

この記事では、vim に入ってしまったときに、落ち着いて出られることだけを目標にします。ネットの手順書が vim を前提にしていたり、何かのコマンドで自動的に vim が開いたりすることがあるからです。

開く:まず vim が入っているかを確かめる
  • 1
  • 2
command -v vim
command -v vi

(例)

  • 1
  • 2
  • 3
kaito@demo:~/linux-practice/edit-test$ command -v vim
kaito@demo:~/linux-practice/edit-test$ command -v vi
/usr/bin/vi

command -v vim は何も表示されませんでした。今回の Debian 13 には、最初は vim が入っていないということです。そのかわり、vi という名前で、vim を小さくした版(vim-tiny)が入っていました。

(例)

  • 1
  • 2
kaito@demo:~/linux-practice/edit-test$ vi --version | head -n 1
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled May 23 2025 00:48:59)

そこで、この記事では vi で開きます。vim が入っている環境なら、vim memo.txt で開いて、同じキーで操作できます。

  • 1
vi memo.txt

💡
vim を入れたいときは

Debian で vim を使いたいときは、sudo apt install vim で入れられます。ソフトを入れる apt と sudo の使い方は、この連載の Lv2 で扱います。この記事の「出方」を覚えるだけなら、vi のままで大丈夫です。

Debian 13での実行画面

左端に ~ が並んでいるのは「ここから下は何もない行」という印です。いちばん下には、"memo.txt" 2 lines, 65 bytes(2行、65バイト)と、開いたファイルの情報が出ています。

vim の2つのモード

vim には、大きく分けて2つのモード(状態)があります。

モード できること 入り方
ノーマルモード 移動・コマンド(保存・終了など) Esc を押す(開いた直後はこれ)
挿入モード 文字を打つ ノーマルモードで i(や o・A)を押す

開いた直後はノーマルモードなので、いきなり文字を打っても入力されず、思わぬ動きをします。「何かおかしい」と思ったら、まず Esc を押して、ノーマルモードに戻るのがコツです。

⚠️
vi(vim-tiny)では、今のモードが画面に出ない

vim では、挿入モードのとき画面の下に -- INSERT -- と出ることがあります。でも、今回の Debian 13 の vi(vim-tiny)では、挿入モードに入っても、いちばん下は "memo.txt" 2 lines, 65 bytes のままで、何も変わりませんでした。

また、vim-tiny では、挿入モードの間に矢印キーで動こうとすると、うまく動きません。今回の確認でも、i のあとに矢印キーで動いてから文字を打ち、:wq で閉じると、ファイルは何も変わっていませんでした。動くのは、挿入モードに入る前(ノーマルモードのうち)に済ませましょう。

vim のモードの行き来

書いて、保存して終了する::wq
  1. ノーマルモードのまま G(大文字のジー。Shift を押しながら g)を押して、最後の行に移動する
  2. o(小文字のオー)を押す。最後の行の下に新しい行ができて、挿入モードになる
  3. 3行目:vimで書きました と打つ
  4. Esc を押して、ノーマルモードに戻る
  5. :wq と打って Enter(write=保存、quit=終了)

今回の Debian 13 でも、この G → o → 入力 → Esc → :wq の手順で、最後の行の下に1行追加されることを確かめました(2行 → 3行)。o のかわりに、A(大文字のエー。行の最後から書き始める)を押してから Enter で改行しても、同じ結果になります。

Debian 13での実行画面

  • 1
cat memo.txt

(例)

  • 1
  • 2
  • 3
1行目:エディタの練習
2行目:nanoで書きました
3行目:vimで書きました

保存せずに終了する::q!

「何を書いたかわからなくなった」「うっかり書き換えてしまった」ときは、保存せずに出るのがいちばん安全です。

  1. Esc を押して、ノーマルモードに戻る(何回押しても大丈夫です)
  2. :q! と打って Enter(! は「変更を捨ててでも」という意味)

今回の確認では、i を押して x を1文字打ってから、Esc → :q! → Enter で閉じました。そのあと cat memo.txt で見ると、x は入っておらず、3行のままでした。

(例)

  • 1
  • 2
  • 3
  • 4
kaito@demo:~/linux-practice/edit-test$ cat memo.txt
1行目:エディタの練習
2行目:nanoで書きました
3行目:vimで書きました

💡
vim から出られなくなったら

Esc を何回か押してから、:q! → Enter。これだけ覚えておけば、どんなときでも、ファイルを書き換えずに vim から出られます。

🤖 詰まったらAIに聞こう:エディタから出られない・保存できない

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
Linuxの初心者です。ターミナルでエディタを使っていて、困っています。
今の画面の状態から、ファイルを壊さずに抜け出す方法を、押すキーの順番で教えてください。

【使っている環境】WSLのUbuntu など
【開いたときのコマンド】例:nano memo.txt/vim memo.txt
【画面のいちばん下に出ている文字】ここに書き写す
【押したキー(覚えている範囲で)】ここに書く
【やりたいこと】例:書いた内容を保存して閉じたい/保存せずに閉じたい

ふだん使うエディタ(既定のエディタ)を選ぶ

Linux では、いくつかのコマンドが自動でエディタを開きます。たとえば、この連載の Lv3 で扱う「決まった時刻にスクリプトを動かす」設定(crontab -e)や、Git(=ファイルの変更の履歴を記録しておく道具)でコメントを書くときなどです。そのときにどのエディタが開くかは、「既定のエディタ」の設定で決まります。

Ubuntu や Debian では、次のコマンドで、ふだん使うエディタを選べることがあります。

  • 1
select-editor

(例)

  • 1
  • 2
  • 3
  • 4
  • 5
Select an editor.  To change later, run select-editor again.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.tiny

Choose 1-2 [1]: 1

番号つきの一覧が出たら、nano の番号を入力して Enter を押します。今回は 1 が nano(<---- easiest=いちばんかんたん)、2 が vim-tiny でした。上の例では 1 を選んでいます。並び順や番号は環境によって変わるので、nano と書かれた番号を選んでください。迷ったら nano がおすすめです。

Debian 13での実行画面

💡
はじめて crontab -e を使うときも聞かれます

select-editor で選んでいなくても、crontab -e をはじめて実行したときに、同じような一覧が出て「どのエディタを使う?」と聞かれることがあります。そのときも nano を選べばOKです。くわしくは、この連載の cron(=決まった日時に、コマンドをくり返し自動で実行してくれるしくみ)の記事で扱います。


よくあるつまずき

保存しようとしたら「Permission denied」

自分のホームディレクトリの外にある設定ファイル(/etc の中など)は、ふつうのユーザーでは書き換えられないことがあります。

たとえば、コンピューターの名前(ホスト名)が書かれた /etc/hostname を nano で開いてみます(書き換えはしません)。

  • 1
nano /etc/hostname

開いた時点で、画面の下に次のように表示されます。

(例)

  • 1
[ File '/etc/hostname' is unwritable ]

「このファイルには書き込めません」という意味です。それでも Ctrl + O → Enter で保存しようとすると、次のエラーが出て保存できません。

(例)

  • 1
[ Error writing /etc/hostname: Permission denied ]

Debian 13での実行画面

そんなときは、保存せずに閉じましょう(nano なら Ctrl + X → N、vim なら :q!)。何も書き換えていなければ、nano は Ctrl + X だけで閉じられます。システムの設定ファイルの書き換え方は、権限(パーミッション)と sudo を学ぶ Lv2 の記事で扱います。

うっかり Ctrl + Z を押してしまった

Ctrl + Z は、多くのコマンドでは一時停止して裏に回す操作です。ただ、今回の Debian 13 の nano 8.4 では、Ctrl + Z を押しても止まらず、画面の下に次のように表示されるだけでした。

(例)

  • 1
[ To suspend, type ^T^Z ]

Debian 13での実行画面

「一時停止したいなら、Ctrl + T のあとに Ctrl + Z を押してください」という意味です。nano は開いたままなので、そのまま編集を続けられます。この状態で fg と打つと、fg という文字がファイルに入力されてしまうので気をつけましょう(nano のバージョンや設定によっては、Ctrl + Z だけで一時停止することもあります)。

Ctrl + T → Ctrl + Z の順に押すと、nano が一時停止して、ターミナルに次のように表示されます。

(例)

  • 1
  • 2
  • 3
Use "fg" to return to nano.

[1]+  Stopped                 nano memo.txt

Debian 13での実行画面

ターミナルに戻ったように見えますが、nano は閉じていません(Stopped=止まっている状態です)。

fg と打って Enter を押すと、エディタに戻れます。

(例)

  • 1
  • 2
kaito@demo:~/linux-practice/edit-test$ fg
nano memo.txt

戻ってから、いつもどおり保存して終了しましょう。

🔒
AIに貼る前に:秘密情報やパスワードは貼らない

エディタで開いているファイルが設定ファイルの場合、パスワード、APIキー、トークンが書かれていることがあります。APIキーやトークンは、Web のサービスを使うときに本人の代わりになる、合言葉のような文字列です。AI に中身を貼って相談するときは、必ず見直して「***」に置き換えてから貼ってください。


よくある質問

Q. git commit をしたら、知らない画面が開きました。

それはエディタです。Git は、コミットのメッセージを書くためにエディタを開くことがあります。vim の画面なら、この記事の方法でメッセージを書いて :wq、やめたいなら :q! で出られます。nano の画面なら、Ctrl + O → Enter → Ctrl + X です。

Q. 保存できたかどうかを確かめるには?

エディタを閉じてから、cat ファイル名 で中身を表示してみましょう。書いた行が出ていれば、保存できています。


まとめ

  • ふだんの編集は nano。Ctrl + O → Enter で保存、Ctrl + X で終了
  • vim は開いた直後は「ノーマルモード」。i で書ける、Esc で戻る(Debian 13 では、最初は vi=vim-tiny で開く)
  • vim の保存して終了は :wq、保存せずに終了は :q!
  • 困ったら、Esc を押してから :q!。ファイルを壊さずに出られる
  • 自動で開くエディタは select-editor などで nano にしておくと安心

これで Lv1「超基本」はおしまいです。移動・作成・コピー・削除・中身の確認・調べ方・編集まで、ひと通り一人でできるようになりました。次の Lv2 では、Linux のフォルダ構成や権限など、一歩進んだ基本を見ていきます。


次に読む記事


関連する記事