計算機基礎 - 第13回: UNIX を使ってみよう (4) - エディタ

Table of Contents

1. エディタ (editor) とは

コンピュータ上でテキストやデータの作成・編集を行うソフトウェアを「エディタ」といいます。 Windows の「メモ帳」や Mac の「メモ」もエディタの一種です。

本格的なエディタには以下のようなものがあります。

  • Visual Studio Code (VS Code)
    • 現在世界シェアNo.1。拡張機能 (プラグイン) が豊富で,自分好みにカスタマイズ可能。動作が比較的軽く,初心者からプロまで使われている。
  • サクラエディタ
    • Windows 専用の老舗無料エディタ。日本語の扱い (文字コード変更など) に強く,ビジネスの現場や文章執筆で長年使われている。
  • Vim
    • Linux などのサーバー環境に標準搭載されていることが多く,ターミナル上で動作する。独特なキー操作の習得が必要。
  • Emacs
    • Vim と並ぶ高機能エディタ。カスタマイズ性が極めて高く,エディタ内でメール送受信やゲームまでできると言われるほどの拡張性を持っている。もっとも修得が難しいエディタのひとつ。

2. nano の基本的な操作

いろいろなエディタがありますが,今回は nano というエディタを使ってみます。
nano は Vim や Emacs のような複雑さがなく,「最もハードルが低い CUI エディタ」として広く使われています。
主な特徴は以下の通りです。

  • 直感的で「モード」がない
  • 画面下部に常にガイド (メニュー) がある
  • 最初から多くの環境に入っている
  • シンプルながら最低限の機能は網羅

1. 起動と終了

ターミナルから nano と入力すると起動します。

特定のファイルを開く (編集する) にはファイル名を指定して起動します。

$ nano ファイル名.txt

終了するには Ctrl-x (コントロールキーを押しながら x) を入力します。

2. 保存 (書き込み)

編集したファイルを上書き保存するには, Ctrl-O を押したあと Enter を押して確定します。

3. 編集の基本 (文字入力・移動)

  • 文字入力
    キーボードでそのままタイピングするだけです。
  • カーソル移動
    矢印キー (← → ↑ ↓) を使います。
  • 1行削除 (切り取り)
    Ctrl-K (カーソルがある行を丸ごと消去,またはクリップボードに格納)
  • 貼り付け (ペースト)
    Ctrl-U (直前に切り取った行を貼り付け)

4. 検索と置換

  • キーワードを検索する
    • Ctrl-W を押し、探したい文字を入力して Enter を押します。
    • 次の候補に進むには,もう一度 Ctrl-W を押してそのまま Enter を押します。
  • キーワードを置換 (置き換え) する
    • Ctrl-\ を押し、置き換えたい文字を入力して Enter を押します。
    • 次に,新しく変更したい文字を入力して Enter を押します。

5. 便利な技

  • 行番号の表示
    • Alt-N (Macの場合は Option-N) を押すたびに,行番号の表示/非表示が切り替わります。

他にも,設定次第でソースコードに色を付ける (シンタックスハイライト) といったことができるようになります。インターネット上に情報がありますので,興味がある人は調べてみましょう。

3. 練習 (基本編)

以下の操作を試してみましょう。

  1. practice ディレクトリを作成し,そこに移動する。
  2. nano practice.txt と入力して起動する。
  3. 「Hello Linux」と入力する。
  4. Ctrl-OEnter で保存する。
  5. Ctrl-X で nano を終了する。
  6. ターミナルに戻ったら cat practice.txt を実行し,正しく保存できているか確認する。

4. 練習 (応用編)

課題1:テンプレートのコピーと行番号の表示

  1. /etc/passwd というシステムファイルの先頭から20行だけを, ~/practice/passwd.txt という名前でコピー (保存) してください。
    (※これは nano 以外のコマンドを使って構いません)
  2. nano を使って行番号を表示させた状態で passwd.txt を開いてください。

課題2:高度な検索・置換と行ジャンプ

  1. 開いた passwd.txt の中から15行目へ一瞬でジャンプしてください。
  2. ファイル内にあるすべての nologin という文字列を,一括で X_NOLOGIN に置換 (置き換え) してください。

課題3:行の入れ替えと一括削除

  1. ファイルの5行目にある行を丸ごと切り取り (カット),ファイルの一番最後の行に貼り付け (ペースト) て順番を入れ替えてください。
  2. その後,ファイルの1行目から3行目までをまとめて一括削除してください。

課題4:ファイルの挿入と強制終了への備え

  1. 一度現在の編集内容を上書き保存してください。
  2. 保存した状態のまま,ファイルの最下行に移動し,nano の中から操作して /etc/services の中身をそのままファイル内に読み込んで挿入してください。
  3. 最後に,もし編集途中にターミナルが突然閉じてしまった場合, nano が作成する救済用のバックアップファイルの名前 (拡張子) が何になるか答えてください。

課題5:Gnuplot のスクリプト (1)

以下のような内容のスクリプトファイルを sin.gp という名前で作成してください。

plot sin(x)

同じディレクトリで gnuplot を起動し sin.gp を読み込んでください。スクリプトファイルを読み込むには load コマンドを使います。

gnuplot> load "sin.gp"

課題6:Gnuplot のスクリプト (2)

以下のような内容のスクリプトファイルを plot.gp という名前で作成してください。

set terminal gif noenhanced size 800,600
set output "plot.gif"
plot sin(x) title "sin(x)"

ターミナルのコマンドラインから次のように gnuplot をしてください。

$ gnuplot plot.gp

ls コマンドで plot.gif という画像ファイルができていることを確認してください。このように作成した図を Word や PowerPoint に貼り付けることができます。

課題7:Gnuplot のスクリプト (3)

Gnuplot で曲面の媒介変数表示を試してみましょう。トーラス (ドーナツ型) の曲面 \((x,y,z)\) は媒介変数 \((u,v)\) を用いて次のように表すことができます。 \[ x=\cos u (3+\cos v), \quad y=\sin u (3+\cos v), \quad z=\sin v \]

これを Gnuplot で表示するには次のようなスクリプトファイルを作成します。

reset
set parametric
set isosamples 90,45
set pm3d
splot cos(u)*(3+cos(v)), sin(u)*(3+cos(v)), sin(v)

課題7:Gnuplot のスクリプト (4)

Gnuplot を使ってアニメーションを作ることができます。

時刻 \(t\) とともに位置と形が変化するガウシアン型の波束 \(f(x,t)\) を考えます。 \[ f(x,t) = \left(\frac{1}{1+t^2}\right)^2 \exp\left[-\frac{(x-t)^2}{1+t^2}\right] \]

この時間変化をアニメにするスクリプトは次のようになります。

f(x,t) = sqrt(1/(1+t*t)) * exp(-(x-t)**2/(1+t*t))
set xrange [-10:10]
set yrange [0:1]
set samples 512
do for [i=-200:200] {
    t = i*0.02
    plot f(x,t) lw 2 notitle
}

課題8:Gnuplot のスクリプト (5)

\(\displaystyle y=\frac{\sin x}{x}\) のグラフが \(x\) 軸の正の方向にゆっくり動いていくアニメーションを作成せよ。描画する \(x\) 軸の範囲や移動速度などは適当に調整すること。

5. タッチタイピング

今日も毎分120文字を目指しましょう。

Copyright © 2026 Masahiro Takagi. All right reserved.

Date: 2026-07-06 Mon 08:28

Emacs 29.4 (Org mode 9.6.15)

Validate