Linuxの現場では、/etc配下の設定ファイルやログファイルを「見るだけ」のつもりがviで開いて誤編集してしまう事故が後を絶ちません。
この記事では、viewコマンドの基本から応用までを解説します。
viewコマンドは vi -R と同等の読み取り専用モードでファイルを開くコマンドで、誤編集を防ぎつつviの全機能(検索・移動)をそのまま使えます。
RHEL 9.4 / CentOS 7で動作確認済みの実行例付きです。
この記事のポイント
・viewコマンドは vi -R と同じ読み取り専用モードでファイルを開く
・設定ファイルの安全な閲覧に最適(誤って :w しても保存されない)
・:w! で強制書き込みも可能(緊急時の保険)
・less/more/catとの使い分けを実務視点で解説
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
viewコマンドとは? viとの違いを理解する
viewコマンドは、ファイルを読み取り専用モードで開くコマンドです。内部的には
vi -R と同じ動作をするため、viのすべての操作(検索、カーソル移動、ヤンク等)がそのまま使えます。ただし、通常の
:w による書き込みはブロックされます。これにより「見るだけのつもりが誤って編集・保存してしまった」という事故を未然に防げます。
1. viewコマンドの基本構文
# viewコマンドの基本構文 view ファイル名
2. vi -R との関係
viewコマンドとvi -R は完全に同じ動作をします。# 以下の2つは同じ動作 view /etc/httpd/conf/httpd.conf vi -R /etc/httpd/conf/httpd.conf
現場ではviewコマンドの方がよく使われます。
viewコマンドの基本的な使い方
1. ファイルを読み取り専用で開く
実際にviewコマンドで /var/log/messages を開いてみます。messagesファイルはroot権限が必要なため、suコマンドでrootになってから実行しています。
$ su - Password: # view /var/log/messages ar 16 12:14:01 dolphin syslogd 1.4.1: restart. Mar 16 12:14:01 dolphin syslog: syslogd startup succeeded Mar 16 12:14:01 dolphin syslog: klogd startup succeeded Mar 16 12:14:02 dolphin kernel: klogd 1.4.1, log source = /proc/kmsg started. Mar 16 12:14:02 dolphin kernel: Linux version 2.6.9-1.667 (bhcompile@tweety.build.redhat.com)
2. view中の基本操作
viewで開いたファイル内では、viと同じキー操作が使えます。・/ + 文字列:前方検索(nで次の候補、Nで前の候補)
・? + 文字列:後方検索
・:noh:検索ハイライトを消す
・G:ファイル末尾に移動
・gg:ファイル先頭に移動
・:set number:行番号を表示
・:q:viewを終了
またページ送り・カーソル移動のショートカットも覚えておくと便利です。
| 操作 | キー |
|---|---|
| 1画面下にスクロール | Ctrl + f |
| 1画面上にスクロール | Ctrl + b |
| 半画面下にスクロール | Ctrl + d |
| ファイルの先頭へ移動 | gg |
| ファイルの末尾へ移動 | G |
| 指定行へ移動(例: 50行目) | :50 |
3. 設定ファイルの安全な閲覧
viewコマンドが最も役立つのは、本番サーバーの設定ファイルを確認するときです。# Apache設定ファイルを安全に閲覧 view /etc/httpd/conf/httpd.conf # SSH設定ファイルを安全に閲覧 view /etc/ssh/sshd_config # ネットワーク設定を安全に閲覧(RHEL 9) view /etc/NetworkManager/system-connections/ens160.nmconnection
viewなら「:w」で保存しようとしてもブロックされるため、安心してファイルの中身を確認できます。
応用・実務で使えるviewコマンドのTips
1. w!による強制書き込み(緊急時の保険)
viewコマンドで開いたファイルでも、:w!(感嘆符付き)を使えば強制的に書き込むことができます。# viewで開いたファイルに強制書き込み :w! # 別名で保存する場合 :w! /tmp/backup_httpd.conf
ただし、本番環境で
:w! を安易に使うのは要注意です。読み取り専用で開いた意味がなくなります。設定ファイルを書き換える際は必ず事前にバックアップを取る習慣をつけてください(例:cp /etc/httpd/conf/httpd.conf /tmp/httpd.conf.bak)。2. 特定の行に直接ジャンプして開く
設定ファイルのエラーメッセージで「行番号」が示された場合、その行をすぐに確認できます。# 行番号付きで表示する(view起動後に実行) :set number # 特定の行に直接ジャンプして開く(例: 120行目) view +120 /etc/httpd/conf/httpd.conf
3. 複数ファイルをviewで順番に開く
viewコマンドでも、viと同様に複数ファイルを引数に指定できます。# 複数の設定ファイルを順番に閲覧 view /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/ssl.conf # :n で次のファイルに移動 # :N で前のファイルに戻る
4. viewとless/more/catの使い分け
ファイルを「見るだけ」のコマンドは、view以外にもless・more・catがあります。現場での使い分けの目安は以下のとおりです。
| コマンド | 特徴 | 向いている場面 |
|---|---|---|
view ファイル名 |
viの操作で閲覧。行番号表示や正規表現検索が可能 | 設定ファイルの詳細確認。vi操作に慣れている人 |
less ファイル名 |
軽量なページャ。前後スクロール可能 | ログファイルの閲覧。サッと確認したいとき |
more ファイル名 |
前方スクロールのみ。後方に戻れない | パイプの出力を順に確認するとき |
cat ファイル名 |
ファイル全体を一括出力 | 短いファイルの内容確認 |
・less:大きなログファイルの閲覧向け。
Fキーで tail -f 相当のリアルタイム監視もできる・more:シンプルにページ送りで読むだけ。スクリプト内での使用に向く
・cat:短いファイルをターミナルに直接出力したいとき
viの操作に慣れているエンジニアなら、viewコマンドが最も効率的です。
lessは
cat /var/log/messages | less のようにパイプで使えるのが強みですが、viewにはパイプからの入力はできません。viewコマンドのトラブルシュート
1. 「E45: \'readonly\' option is set」が表示される
viewで開いたファイルに対して:w を実行すると、このエラーが表示されます。E45: 'readonly' option is set (add ! to override)
書き込みが本当に必要な場合は
:w! で強制保存するか、:q! で終了してviで開き直してください。2. 「E21: Cannot make changes, 'modifiable' is off」が表示される
viewで開いたファイルを編集しようとすると、このエラーが表示されることもあります。これも正常な動作です。どうしても編集が必要になった場合は、以下の方法があります。
# 方法1: viewを終了してviで開き直す(推奨) :q vi /etc/httpd/conf/httpd.conf # 方法2: view内で読み取り専用を解除する(緊急時のみ) :set noreadonly :set modifiable
vi で開き直す方法1を推奨します。「意図的にviに切り替えた」という操作として記録が残り、チーム作業でも誤解が生じません。
3. viewコマンドが見つからない場合
最小構成のLinuxインストールでは、vim-minimalしか入っていないことがあります。# viewコマンドの場所を確認 $ which view /usr/bin/view # viewが見つからない場合はvim-enhancedをインストール # RHEL 9 / Rocky Linux 9 $ sudo dnf install vim-enhanced # CentOS 7 $ sudo yum install vim-enhanced
4. 「Permission denied」でファイルが開けない
viewは読み取り専用モードですが、ファイル自体の読み取り権限がなければ開けません。# 権限エラーが出る場合 $ view /etc/shadow "/etc/shadow" [Permission denied] # sudoを付けて実行 $ sudo view /etc/shadow
sudo view で開いてください。本記事のまとめ
viewコマンドは「ファイルを安全に閲覧する」ためのシンプルかつ実用的なコマンドです。viの全機能を使いながら誤編集を防げるため、本番サーバーの設定確認には欠かせません。
| やりたいこと | コマンド |
|---|---|
| ファイルを読み取り専用で開く | view ファイル名 |
| vi -Rで読み取り専用にする | vi -R ファイル名 |
| 読み取り専用を解除して強制保存 | :w! |
| 特定の行にジャンプして開く | view +行番号 ファイル名 |
| 別名で保存する | :w! /tmp/backup.conf |
| 複数ファイルを順番に閲覧する | view ファイル1 ファイル2 |
| viewを終了する | :q |
Linuxのコマンド操作、なんとなくで済ませていませんか?
viewコマンドのようなファイル閲覧の基本操作は、サーバー管理の土台になるスキルです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
