user/pages/80.linux/docs.ja.md
452be89a
 ---
 title: 'UNIX / Linux の基礎知識'
 taxonomy:
     category:
         - docs
 external_links:
     process: true
     title: false
     no_follow: true
     mode: active
     target: _blank
 ---
 
 [toc]
 
 ## ファイルシステム{#system}
 
 
 
 ### ファイルとディレクトリ{#file}
 
 ユーザーが作成した様々なデータは、 **ファイル** という形で記録されます。そして、記録されたファイルを **ディレクトリ** と呼ばれる入れ物に入れて管理します。ディレクトリの中にディレクトリを作って、階層的にファイルを管理することも可能です。
 
 ![](348_901.jpg)
 
 このようなファイル構造を、木の枝になぞらえてツリー構造と呼んでいます。 UNIX では、木の根っこに当たる部分を **ルートディレクトリ** と呼び、“ /(スラッシュ)”を使って表します。そして、ユーザーが作業を行なっているディレクトリを **カレントディレクトリ** と呼びます。
 
 
 ### 絶対パスと相対パス{#path}
 
 ツリー構造においては、ファイルを指定するための **パス** という概念が必要となります。パスの指定方法には、 **絶対パス** と **相対パス** の2種類があります。
 
 * **絶対パス**
 
 ルートディレクトリを基準にしてファイルを指定する方法です。
 
 (例)図1「report1.txt」を指定する場合。
 
 
 ```nohighlight
 /home/a/b59999/report/report1.txt
 ```
 
 
 * **相対パス**
 
 カレントディレクトリを基準にしてファイルを指定する方法です。
 
  (例)カレントディレクトリ「/home/a/b59999」を基準にして、図1「report1.txt」 を指定する場合。
 
 
 
 
 ```nohighlight
 report/report1.txt
 ```
 
 
 
 ## 基本的なコマンド{#command}
 
 
 UNIXでよく使われる基本的なコマンドを説明します。
 
 
 ### `pwd` -カレントディレクトリを表示する{#pwd}
 
 
 ```nohighlight
 pwd
 ```
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ pwd
 ```
 
 ```nohighlight
 /home/a/b59999          # カレントディレクトリが表示されている
 ```
 
 
 
 ### `ls` -ファイルの一覧を表示する{#ls}
 
 
 ```nohighlight
 ls [オプション] [ファイル名ディレクトリ名]
 ```
 
 
 **主なオプション**
 
 オプション |  効果                                                            
 ------ | --------------------------------------------------------------
  -l   |  ファイルの詳しい情報を表示する                                               
  -F   |  ディレクトリには “ /(スラッシュ)”、実行可能ファイルには“ *(アスタリスク)”等をつけて属性をわかりやすく表示する 
  -a   |  システム等で使用される、“ .(ドット)”で始まるファイルも表示する                            
 
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ ls
 ```
 
 ```nohighlight
 file1.txt file2.bmp dir1          # ファイルが表示されている
 [b59999@hx001 ~]$ ls -a
 ```
 
 ```nohighlight
 . .cshrc .tcshrc file1.txt dir1   # '.' で始まるファイルも表示されている
 .. .login .bashrc file2.bmp
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file1.txt file2.bmp dir1/         # ディレクトリには '/' がついている
 [b59999@hx001 ~]$
 ```
 
 
 
 ### `cd` -カレントディレクトリを移動する{#cd}
 
 
 ```nohighlight
 cd [ディレクトリ名]
 ```
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ pwd
 ```
 
 ```nohighlight
 /home/a/b59999             # カレントディレクトリは /home/a/b59999
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ cd dir1  # カレントディレクトリを dir1 に移動する
 [b59999@hx001 ~]$ pwd
 ```
 
 ```nohighlight
 /home/a/b59999/dir1        # カレントディレクトリが dir1 に移動した
 ```
 
 
 
 ### `cp` -ファイルやディレクトリをコピーする{#cp}
 
 
 ```nohighlight
 cp [オプション] [コピー元] [コピー先]
 ```
 
 
 **主なオプション**
 
 オプション |  効果                                          
 ------ | --------------------------------------------
  -R   |  コピー元がディレクトリだった場合、そのディレクトリ以下のツリー構造を含めてコピーします。
 
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ ls -F
 file1.txt dir1/
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ cp file1.txt file2.txt # file1.txtをfile2.txtとしてコピーする
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file1.txt file2.bmp dir1/              # file2.txt ができている
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ cp file2.txt dir1    # file2.txt を dir1 にコピーする
 [b59999@hx001 ~]$ ls dir1
 ```
 
 ```nohighlight
 file2.txt         # file2.txt が dir1 にコピーされている
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ cp -R dir1 dir2      # dir1 を dir2 にコピーする
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file1.txt file2.txt dir1/ dir2/        # dir2 ができている
 [b59999@hx001 ~]$ ls dir2
 ```
 
 ```nohighlight
 file2.txt         # ツリー構造も含めて dir1 が dir2 にコピーされている
 [b59999@hx001 ~]$
 ```
 
 
 
 ### `mkdir` -ディレクトリを新規作成する{#mkdir}
 
 
 ```nohighlight
 mkdir [ディレクトリ名]
 ```
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ ls
 file1.txt file2.bmp
 [b59999@hx001 ~]$ mkdir dir1
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file1.txt file2.bmp dir1/          # dir1 ができている
 [b59999@hx001 ~]$
 ```
 
 
 
 ### `rm` -ファイルやディレクトリを削除する{#rm}
 
 
 ```nohighlight
 rm [オプション] [ファイル名ディレクトリ名]
 ```
 
 
 **主なオプション**
 
 オプション |   効果                                      
 ------- | ----------------------------------------
  -R    |  対象がディレクトリだった場合、そのディレクトリ以下のツリー構造を含めて削除する 
 
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ ls -F
 file1.txt file2.bmp dir1/
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ rm file1.txt    # file1.txt を削除する
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file2.bmp dir1/                   # file1.txt が削除されている
 [b59999@hx001 ~]$ ls -F dir1
 ```
 
 ```nohighlight
 dir2/          # dir1 の下に dir2 がある
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ rm -R dir1      # dir1 を削除する
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file2.bmp          # dir1 がそれ以下のツリー構造ごと削除されている
 ```
 
 
 
 ### `mv` -ファイルを移動する(ファイル名を変更する){#mv}
 
 `mv` コマンドは、ファイルやディレクトリを移動させる時に使用します。また、同じディレクトリに移動させることで、ファイル名を変更することもできます。
 
 
 ```nohighlight
 mv [元のファイル名] [新しいファイル名]
 ```
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ ls -F
 file1.txt file2.bmp dir1/ 
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ mv file1.txt dir1         # file1.txt を dir1 に移動する
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file2.bmp dir1/          # file1.txt が無くなっている
 [b59999@hx001 ~]$ ls dir1
 ```
 
 ```nohighlight
 file1.txt          # dir1 に移動している
 ```
 
 ```nohighlight
 [b59999@hx001 ~]$ mv file2.bmp file3.bmp    # file2.bmp を file3.bmp に移動する
 [b59999@hx001 ~]$ ls -F
 ```
 
 ```nohighlight
 file3.bmp dir1/          # file3.bmp にファイル名が変わっている
 ```
 
 
 
 ### `cat` -ファイルの中身を画面に表示する{#cat}
 
 
 ```nohighlight
 cat [ファイル名]
 ```
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ ls -F
 file1.txt file2.bmp dir1/
 [b59999@hx001 ~]$ cat file1.txt
 ```
 
 ```nohighlight
 abcdefghijklmnopqrstuvwxyz          # file1.txt の中身が表示されている
 [b59999@hx001 ~]$
 ```
 
 
 
 ### `more` と `less` -ファイルの中身を表示する{#less}
 
 `cat` コマンドに代わって `more` コマンド、 `less` コマンドを使用すると、ファイルが長い場合1ページごとに表示を止め、コマンド待ち状態になります。
 
 
 ```nohighlight
 more(もしくは less ) [ファイル名]
 ```
 
 
 **実行例**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ more file3.c
 #include <stdio.h>    /* file3.c の中身が表示されている */
 #include <math.h>
 #include <stdlib.h>
 (・・中略・・)
   for(i=0; i<10; i++){
     a[i] = b[i]*c[i];
 --More--(10%)   ← 1 ページ表示したところでコマンド待ち
             スペースを押すことで次の 1 ページに進む
 ```
 
 
 
 ### `logout` -ログアウトする{#logout}
 
 
 ```nohighlight
 logout
 ```
 
 
 **実行例**
 
 
 
 ```nohighlight
 [b59999@hx001 ~]$ logout          # ログアウトする
 ```
 
 
 
 ### `man` -マニュアルを表示する(各コマンドの説明を見る){#man}
 
 **lsコマンドの説明を表示する**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ man ls
 ```
 
 
 `man` コマンドのメッセージを日本語表示する場合は、sshクライアントの文字コードの設定をUTF-8に指定した上で、環境変数LANGにja_JP.UTF-8を設定してください。
 
 **tcshを使用している場合**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ setenv LANG ja_JP.UTF-8
 ```
 
 
 **bashを使用している場合**
 
 
 ```nohighlight
 [b59999@hx001 ~]$ export LANG=ja_JP.UTF-8
 ```
 
 
 
 ## vi エディタの使い方{#vi}
 
 
 vi エディタは、UNIX 系 OS に標準で組み込まれているテキストエディタです。操作体系が非常に特殊なので、以下に詳しく説明します。
 
 **vi エディタの起動**
 
 
 ```nohighlight
 vi [ファイル名]
 ```
 
 
 **2種類のエディットモード**
 
 vi エディタのエディットモードは、 **コマンドモード** と **エディットモード** の2種類に大きく分けられます。
 
 * **コマンドモード**
 
 検索や置換、ファイルの保存、文字や行の削除など、文字入力以外の作業を行ないます。
 
 * **エディットモード**
 
 実際に文字を入力します。
 
 エディタを起動すると、まずコマンドモードが立ち上がります。 `i` 、 `I` 、 `a` 、 `A` 、 `o` 、 `O` などの挿入コマンドでエディットモードに入ることができます。コマンドモードに復帰する時は、ESCキーを押してください。
 
 
 ### vi コマンドリファレンス{#vi}
 
 **カーソルの移動**
 
 文字指向のジャンプ |     
 --------------- | --------------------------
  h , j , k , l |   左、下、上、右 ( ← , ↓ , ↑ , → )
 
 テキスト指向のジャンプ |   
 --------------- | --------------
  w , W , b , B |   前/後の単語       
  e , E         |   単語の末尾        
  ) , (         |   次/前の文の先頭     
  } , {         |   次/前の段落の先頭    
  ]] , [[       |   次/前のセクションの先頭 
 
 行指向のジャンプ   |
 ----------- | -------------------
  0(ゼロ) , $ |   カレント行の先頭/末尾       
  ^         |   カレント行の先頭(空白以外の)文字 
  + , ?     |   次/前の行の先頭の文字       
 _n_l       |   カレント行の _n_ 文字目    
  H         |   画面の最上行            
  M         |   画面の中央行            
  L         |   画面の最下行            
 _n_H       |   上から _n_ 行目の行      
 _n_L       |   下から _n_ 行目の行      
 
 画面指向のジャンプ |                                                              
 ------------------------------------------------------------------------ | --------------------
 CTRL + f , CTRL + b |   次/前の画面にスクロール       
 CTRL + d , CTRL + u |   上/下に半画面分スクロール      
 CTRL + e , CTRL + y |   ウィンドウの下/上にもう1行表示   
  z RETURN                                      |  カーソルのある行を画面の一番上に表示 
  z. (ゼット ドット)                                                           |   カーソルのある行を画面中央に表示   
  z- (ゼット ハイフン)                                                          |   カーソルのある行を画面の一番下に表示 
 CTRL + l , CTRL + r |   画面の書き直し(スクロールなし)   
 
 検索     |     
 ------------ | --------------------------------------
  / _pattern_ |  パターンを順方向に検索                          
  ? _pattern_ |  パターンを逆方向に検索                          
  n , N      |   最後の検索を、同じ/反対の方向で繰り返す                 
  / , ?      |   直前の検索を、順方向/逆方向に繰り返す                  
  f_x_        |  カレント行内の、カーソル位置より後にある _x_ にジャンプ       
  F_x_        |  カレント行内の、カーソル位置より前にある _x_ にジャンプ       
  t_x_        |  カレント行内の、カーソル位置より後にある _x_ の直前の文字にジャンプ 
  T_x_        |  カレント行内の、カーソル位置より前にある _x_ の直後の文字にジャンプ 
  ;          |   直前のカレント行内検索を繰り返す                     
  ,          |   直前のカレント行内検索を反対方向で繰り返す                
 
 行番号によるジャンプ   |                      
 ----------------------------------- | ---------------
 CTRL + g |   カレント行の行番号を表示  
 _n_G                               |   行番号 _n_ にジャンプ 
  G                                 |   ファイルの最終行にジャンプ 
  :_n_                               |  行番号 _n_ にジャンプ 
 
 位置のマーク |
 ------- | -----------------------
  m_x_   |  現在位置を _x_ としてマーク      
  ‘_x_   | _x_ にジャンプ              
  “     |   直前のマークまたは文脈に戻る        
  `_x_   |  マークを _x_ を含む行の先頭にジャンプ 
  ``    |   直前のマークを含む行の先頭に戻る      
 
 **終了コマンド**
 
 終了コマンド |
 ------- | ---------------------------------
  ZZ    |   ファイルを書き込んで(保存)終了                
  :x    |   ファイルを書き込んで(保存)終了                
  :wq   |   ファイルを書き込んで(保存)終了                
  :w    |   ファイルの書き込み(保存)                   
  :w!   |   (強制的な)ファイルの書き込み(保存)             
  :q    |   ファイルの編集を終了                      
  :q!   |   ファイルの編集を終了(全ての変更を無効にする)         
  :e!   |   現在のファイルを、最後に書き込んだ(保存した)時点の内容に戻す 
 
 **編集コマンド**
 
 挿入    |             
 ------------------- | ----------------------------
 `i` , `a`           |  カーソルの前/後にテキストを挿入           
 `I` , `A`           |  行の先頭/末尾にテキストを挿入            
 `o` , `O` (大文字 オー) |   カーソルの下/上にテキスト入力用の新しい行をオープン 
 
 変更  |
 ---- | ------------------
 `r`  |  文字を変更            
 `cw` |  単語を変更            
 `cc` |  カレント行を変更         
 `C`  |  行末まで変更           
 `R`  |  文字列を重ね書きする       
 `s`  |  文字をテキストで置き換える    
 `S`  |  カレント行をテキストで置き換える 
 
 移動、削除    |
 --------- | --------------------------------------------------
 `x`       |  文字の削除                                            
 `X`       |  カーソルの前にある文字の削除                                   
 `dw`      |  単語の削除                                            
 `dd`      |  カレント行の削除                                         
 `D`       |  行末まで削除                                           
 `p` , `P` |  削除したテキストをカーソルの後/前に挿入する                           
  “_n_p   |   カーソルの後に、削除バッファ番号 _n_ のテキストを挿入する(最新 9 回の削除について有効) 
 
 ヤンク      |
 --------- | -----------------------------
 `yw`      |  単語のヤンク(コピー)                 
 `yy`      |  カレント行のヤンク                   
  “_a_yy  |  _a_ という名前のバッファにカレント行をヤンク     
 `p` , `P` |  ヤンクしたテキストをカーソルの後/前に挿入する     
  “_a_p   |   カーソルの前に、バッファ _a_ のテキストを挿入する 
 
 その他のコマンド |
 --------- | -----------------------------
  . (ドット) |   最後の編集コマンドの繰り返し              
 `u` , `U` |  最後の編集の取り消し( undo )/カレント行の復元 
 `j`       |  2 行の連結                      
 
 `ex` コマンドを使った場合 |
 ---------------- | ---------------------
  :d             |   行の削除                
  :m             |   行の移動                
  :co , :t       |   行のコピー               
  / , ?          |   直前の検索を、順方向/逆方向に繰り返す 
  :.,$d          |   カレント行からファイルの最終行まで削除 
 
 
 ## Emacs の使い方{#emacs}
 
 
 
 ### Emacs とは{#emacs_top}
 
 **Emacs** は、UNIX 系の OS でよく利用される、高機能でカスタマイズ性の高いテキストエディタです。  
 **Emacs** で編集を行う際は、バッファにファイルを読み込んで作業した後、編集したバッファをファイルに書き込む形になります。複数のバッファを立ち上げ、切り替えながら作業できるので、バッファごとに名前がついています。通常は、編集するファイル名がバッファの名前となっています。
 
 
 ### Emacs の起動{#emacs_boot}
 
 
 ```nohighlight
 emacs [ファイル名]
 ```
 
 
 起動時にファイル名を指定すると、その名前で編集バッファが用意され、該当ファイルが読み込まれます。(ファイルが存在しない場合は、バッファは空っぽのままです。)   
 ファイル名を省略して起動すると、バッファ名は自動的に **scratch** となります。
 
 
 ### Emacs の画面 {#emacs_display}
 
 X (ウィンドウシステム)が利用できる環境で起動すると、Xクライアントとして新規ウィンドウが立ち上がります。
 
 ![](348_902.jpg)
 
 ウィンドウシステムが利用できない環境の場合は、次のような画面が表示されます。
 
 ![](348_903.jpg)
 
 **Emacs** の画面は、大きく3つの部分に分かれています。
 
 * **テキストウィンドウ**
 
 一番大きいエリア。入力した文字が表示されます。
 
 * **モード行**
 
 テキストウィンドウの下にある反転した行。テキストウィンドウの状態などが表示されます。  
 モード行のおおよその意味は、次のとおりです。
 
 ![](348_904.jpg)
 
 * **エコー行**
 
 モード行の下にある行。 **Emacs** からのメッセージが表示されます。入力もここで行います。
 
 
 ### Emacs の基本操作{#emacs_use}
 
 カーソル移動などの操作は、特殊なキー入力を使います。 キー入力の方法は次の二つです。
 
 * **CTRL キー** を押しながら文字キーを押す( **C-文字キー** )
 
 * **ESC キー** を押した後に文字キーを押す( **M-文字キー** )
 
 **<ins>ファイルを開く( <code>C-x</code>  <code>C-f</code> )</ins>**
 
 **Emacs**  起動後、新たにファイルを読み込みたい時は、 `C-x`  `C-f` ( CTRL を押しながら x 、続いて CTRL を押しながら f )を押します。すると、エコー行に次のメッセージが表示されます。
 
 
     ```nohighlight
     Find file: ~/
     ```
 
 
 **Emacs** をホームディレクトリ以外で起動した場合は、/~ ではなく、カレントディレクトリのパスが表示されます。  
 メッセージの後に続けて、開きたいファイル名( 例 test.txt )を入力し、Enter キーを押します。
 
 
 ```nohighlight
 Find file: ~/test.txt
 ```
 
 
 すると、test.txt という名前のバッファが用意され、ファイルの内容が編集バッファに読み込まれます。ファイルが存在しない場合は、次のように新規ファイルを意味する( New file )のメッセージがエコー行に表示されます。
 
 ![](348_905.jpg)
 
 **<ins>文字の入力</ins>**
 
 文字は、テキストウィンドウ上のカーソル位置に入力されます。文字の削除は、Delete キーです。(Backspace キーは文字の削除には使用しません。)
 
 **<ins>日本語入力システム</ins>**
 
 日本語を入力する場合は、まず `C-¥` ( CTRL を押しながら ¥ [バックスラッシュ] )で日本語入力システムを起動させてください。システムが起動するとモード行の左隅の表示が [ ? - ] から [ あ ] に切り替わり、ローマ字かな変換が可能となります。入力システムを元に戻す時は、ふたたび `C-¥` を押してください。
 
 日本語入力システムで、 k y o u t o d a i g a k u とタイプすると、次のように表示されます。
 
 
 ```nohighlight
 | きょうとだいがく |
 ```
 
 
 左右に表示される縦棒“ | ”は、この縦棒に挟まれた区間に、かな漢字変換が適用されることを意味しています。変換はSpace キーで行います。この時、左隅の表示は[あ] から [漢] に切り替わります。
 
 
 ```nohighlight
 | 京都大学 |
 ```
 
 
 続けて Space キーを押すと、次の変換候補が表示されます。Enter キーまたは `C-l` で入力を確定します。変換する文節を変えたい時は、 `C-i` または `C-o` を押してください。文節毎に変換を行なう場合は、文節にカーソルを移動してSpace キーを押します。漢字変換を取り消す際は `C-c` を押してください。
 
 **<ins>カーソルの移動</ins>**
 
 カーソル移動の方法は次のとおりです。
 
 col 1 | col 2    
 ----- | ---------
 `C-p` |  上方向に移動  
 `C-n` |  下方向に移動  
 `C-f` |  右に移動    
 `C-b` |  左に移動    
 `C-a` |  行の先頭に移動 
 `C-e` |  行の末尾に移動 
 
 キーはそれぞれ previous、next、forward、backward、ahead、end of lineの略です。
 
 col 1                                               | col 2       
 --------------------------------------------------- | ------------
 `C-v`                                               |  次の画面にスクロール 
 `M-v` ( ESC を押して離し v を押す) |  前の画面にスクロール 
 `M-<`                                               |  バッファの先頭に移動 
 `M->`                                               |  バッファの最後に移動 
 
 ![](348_907.jpg)
 
 **<ins>削除とコピー</ins>**
 
 文字の削除には、いくつか方法があります。
 
 col 1       | col 2                
 ----------- | ---------------------
  Delete キー |   一文字戻って削除            
 `C-d`       |  カーソル位置にある文字を一文字削除   
 `C-k`       |  カーソル位置から行の末尾までを全て削除 
 
 範囲を指定して削除することも可能です。まず指定したい範囲の先頭にカーソルを移動させ、 `C-`@ でマークを付けます。その際、エコー行に Mark set と表示されます。次に、範囲の最後にカーソルを移動させ `C-w` を押します。すると、現在のカーソル位置からマークを付けた範囲が全て削除されます。
 
 `C-k` や `C-w` で削除した文字はコピーバッファに保存されるため、 `C-y` でペーストすることができます。コピーバッファは、 `C-k` や `C-w` を実行する毎に書き換えられます。  
 ただし、 `C-d` や Delete キーで削除した文字は、コピーバッファに保存されませんので注意してください。
 
 **<ins>操作の取り消し</ins>**
 
 操作を取り止める時は `C-g` を押します。この時、エコー行には Quit と表示されます。直前の編集操作を取り消す時は、 `C-x`  `u` を押します。この時、エコー行には Undo! と表示されます。
 
 **<ins>ファイルの保存( <code>C-x</code>  <code>C-s</code> )</ins>**
 
 編集内容をファイルに保存する際は、 `C-x`  `C-s` を押します。この時、 **scratch** バッファで編集作業を行なっていた場合は、エコー行に File to save in: ~/ と表示されますので、ファイル名を指定して保存してください。
 
 **<ins>編集バッファの抹消</ins>**
 
 編集バッファを抹消する際は、 `C-x`  `k` を押します。  
 エコー行に Kill buffer: (default test.txt) と表示されますので、Enter キーを押してください。内容に変更がなければ、そのまま抹消されます。バッファの内容に変更があった場合は、さらに Buffer test.txt modified; kill anyway? (yes or no) のメッセージが表示されます。変更内容を無効にして抹消を実行する場合は yes を、抹消を取り止める場合は no を入力して Enter キーを押してください。
 
 
 ### Emacs の終了{#emacs_end}
 
 **Emacs** を終了する際は、 `C-x`  `C-c` を押します。  
 保存していない編集バッファがある場合、エコー行に次のようなメッセージが表示されます。  
 (ファイル名は一例です。)
 
 
 ```nohighlight
 Save file /home/a/b59999/test.txt? (y, n, !, ., q, C-r or C-h)
 ```
 
 
 ファイルを保存して終了する際は y を、保存せずに終了する場合は n を入力してEnterキーを押してください。  
 n の場合は、続いてエコー行に確認メッセージが表示されますので、本当に終了するなら yes 、終了を取り止めるなら no を入力してください。
 
 
 ```nohighlight
 Modified buffers exist; exit anyway? (yes or no)
 ```
 
 
 
 ### Emacs をマスターするために{#emacs_master}
 
 **Emacs** には、チュートリアル(個人指導)が用意されています。開始するには `M-?`  `t` を押します。ここで紹介していない数多くの機能を学習できるので、 **Emacs** を早くマスターしたい方にはおすすめです。  
 チュートリアルもまた一つのバッファで実行されますので、終了の際は、 `C-x`  `k` でバッファを抹消してください。