Linuxをデスクトップ環境で使うなら、「テキストエディター(gedit)」や「Leafpad」といったGUIのテキストエディタさえ使えれば、特に困ることはありません。
システム設定ファイルの編集も、以下の記事で紹介した「sudoedit」を使えば、GUIのテキストエディタで問題なく行うことができます。
しかしLinuxをサーバーとして使うなら、「バーチャルコンソール」や「端末」上で動作する「スクリーンエディタ」でテキストを編集する必要がでてきます。
シェル環境でテキストファイルを編集できる「スクリーンエディタ」
Linuxサーバーは通常、「バーチャルコンソール」か「SSH接続」で管理するのが普通です。
サーバーに接続したキーボードやモニターを使って作業する場合は、黒い背景に白い文字だけが表示される「バーチャルコンソール」を使います。
しかし、普段の管理はSSHで接続して行うことが多いでしょう。とくにVPS(バーチャル・プライベート・サーバー)でLinuxサーバーを運用するなら、インターネット経由でSSH接続することになります。
WindowsやmacOS、あるいはLinuxデスクトップからSSHクライアントを使って作業します。
バーチャルコンソールやSSHで使えるのは、コマンドライン・インタフェース(CLI)で動作する「シェル環境」です。そして、CLI環境でテキストファイルの編集に使うのが「スクリーンエディタ」です。
「コンソールエディタ」「コマンドラインエディタ」「テキストベースドエディタ」といった呼び方もあります。
代表的なスクリーンエディタ
Vim
「Vim(ヴィム)」は、Unix系OSで旧来から使われている「vi(ブイアイ/ヴィーアイ)」から派生し、発展したテキストエディタです。操作体系がGUIのテキストエディタとは大きく異なるため、習得には時間がかかります。しかし、慣れれば非常に効率的にテキストの編集ができるため、Linuxサーバーの管理者に広く使われています。多くのLinux環境にデフォルトでインストールされており、「vim」および「vi」コマンドで起動できます。
vi ファイルパス
nano
「nano」は、Vimよりも初心者にとって操作が分かりやすいとされるテキストエディタです。画面下部に主要なキーの割り当てが表示されます。しかし、GUIのエディタとはまったく異なったキー操作となっているため、慣れるまでに時間は必要です。Ubuntuなどの主要なディストリビューションで、「nano」が標準のスクリーンエディタとしてインストールされます。
nano ファイルパス
micro
「micro」は、GUIのテキストエディタに近い操作体系のテキストエディタです。コピー(Ctrl+C)やカット(Ctrl+X)、ペースト(Ctrl+V)、ファイルの保存(Ctrl+S)など、GUIアプリと同じように操作が可能です。2016年にリリースされた新しいスクリーンエディタです。microのインストール方法や詳しい使い方は、次の記事をご覧ください。
Emacs
「Emacs(イーマックス)」は、拡張性の高いテキストエディタとしてUnix系OSのユーザーに広く使われています。キーボードマクロにより繰り返し作業が効率化できたり、「Emacs Lisp」という言語でカスタマイズや拡張ができたりといった特徴があります。なお、BashなどのCLIインタフェースプログラムは、ReadlineというライブラリによってEmacsのようなキーバインド(Ctrl+HでBackspaceなど)で操作できるようになっています。
emacs ファイルパス
常用するテキストエディタを設定する
常用するテキストエディタは、環境変数「EDITOR」に設定するのが一般的です。「~/.bashrc」に以下の行を追加しておけば、Bashをインタラクティブシェルとして起動した時に自動で設定されるようになります。こうすることで、各プログラムがエディタを起動する時、環境変数「EDITOR」に設定されたコマンドが用いられます。
Vimを設定する例
export EDITOR=vim
microを設定する例
export EDITOR=micro
nanoを設定する例
export EDITOR=nano
Emacsを設定する例
export EDITOR=emacs
なお、「~/.bashrc」の変更を実行中のシェルに反映するには、次のコマンドを実行します。
source ~/.bashrc
詳しくは以下の記事を参照してください。
GUIとCLIで起動するテキストエディタを自動で切り替える
デスクトップ環境で端末エミュレーターを開くと、通常は環境変数「DISPLAY」に「:0」などの文字列が設定されます。一方、バーチャルコンソールやSSHで接続した環境では、環境変数「DISPLAY」は設定されません。
そのため、以下のように環境変数「DISPLAY」が設定されている時はGUIのテキストエディタを環境変数「EDITOR」に設定し、環境変数「DISPLAY」が設定されていないときは環境変数「EDITOR」にスクリーンエディタを設定すれば、GUIかCLIかでテキストエディタを切り替えることができます。
以下は、GUI環境では「gedit」、CLI環境では「micro」を起動するよう設定する例です。
if [[ $DISPLAY ]];then
export EDITOR=gedit
else
export EDITOR=micro
fi
コメント