計算機基礎 - 第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. 練習 (基本編)
以下の操作を試してみましょう。
- practice ディレクトリを作成し,そこに移動する。
nano practice.txtと入力して起動する。- 「Hello Linux」と入力する。
Ctrl-OとEnterで保存する。Ctrl-Xで nano を終了する。- ターミナルに戻ったら
cat practice.txtを実行し,正しく保存できているか確認する。
4. 練習 (応用編)
課題1:テンプレートのコピーと行番号の表示
- /etc/passwd というシステムファイルの先頭から20行だけを,
~/practice/passwd.txt という名前でコピー (保存) してください。
(※これは nano 以外のコマンドを使って構いません) - nano を使って行番号を表示させた状態で passwd.txt を開いてください。
課題2:高度な検索・置換と行ジャンプ
- 開いた passwd.txt の中から15行目へ一瞬でジャンプしてください。
- ファイル内にあるすべての nologin という文字列を,一括で X_NOLOGIN に置換 (置き換え) してください。
課題3:行の入れ替えと一括削除
- ファイルの5行目にある行を丸ごと切り取り (カット),ファイルの一番最後の行に貼り付け (ペースト) て順番を入れ替えてください。
- その後,ファイルの1行目から3行目までをまとめて一括削除してください。
課題4:ファイルの挿入と強制終了への備え
- 一度現在の編集内容を上書き保存してください。
- 保存した状態のまま,ファイルの最下行に移動し,nano の中から操作して /etc/services の中身をそのままファイル内に読み込んで挿入してください。
- 最後に,もし編集途中にターミナルが突然閉じてしまった場合, 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文字を目指しましょう。
- タイピンガーZの「0から始めるタイピング」で基礎を勉強してください。
- 慣れてきたら寿司打の「お勧め5000円コース」で練習しましょう。
- インターネットでタイピング練習 の「ローマ字タイピング」か「英語タイピング」もよさそうです。