2-4 : ターミナルとviエディタについて

2019/05/29

概要

サーバーへの接続やサーバー上で設定ファイルの変更を行うには、ターミナルやviエディタを利用します。
ここではターミナルとviエディタの基本的な利用方法を説明します。

ターミナルの使い方

ターミナルはシステム上のコマンドやシェルスクリプトなどを動かすためのアプリケーションです。

Launchpadその他 から ターミナル を起動します。

ディレクトリ内の一覧を表示する

ディレクトリ内の一覧を表示したい場合は ls コマンドを実行します。

$ ls <表示したいディレクトリのパス>

下の例ではホームディレクトリ内の一覧を表示しています。

devuser ~$ ls
Desktop     Downloads   Movies      Pictures
Documents   Library     Music       Public

ファイル操作権限や隠しディレクトリなどを表示させたい場合は、-a オプション、リスト形式で表示したい場合は -l オプションを利用します。
以下は同じディレクトリでlsコマンドを -aと-lオプションをつけて実行した時の結果です。

devuser ~$ ls -al
total 0
drwxr-xr-x+ 11 devuser  staff  352  5 25 16:34 .
drwxr-xr-x   7 root     admin  224  5 25 16:34 ..
-rw-------   1 devuser  staff    4  5 25 16:34 .CFUserTextEncoding
drwx------+  3 devuser  staff   96  5 25 16:34 Desktop
drwx------+  3 devuser  staff   96  5 25 16:34 Documents
drwx------+  3 devuser  staff   96  5 25 16:34 Downloads
drwx------+ 27 devuser  staff  864  5 25 16:34 Library
drwx------+  3 devuser  staff   96  5 25 16:34 Movies
drwx------+  3 devuser  staff   96  5 25 16:34 Music
drwx------+  3 devuser  staff   96  5 25 16:34 Pictures
drwxr-xr-x+  4 devuser  staff  128  5 25 16:34 Public

別のディレクトリを表示させたい場合は、ディレクトリのパスを指定します。
以下は Library ディレクトリを表示させた結果です。

devuser ~$ ls Library
Application Support FontCollections     Preferences
Assistants      Fonts           Printers
Audio           Input Methods       Screen Savers
Caches          Internet Plug-Ins   Services
ColorPickers        Keyboard Layouts    Sounds
Colors          Keychains       Spelling
Compositions        Logs            Voices
Favorites       PreferencePanes     iMovie

ディレクトリの移動

ディレクトリを移動する場合は、cdコマンドを利用します。

$cd <移動先のディレクトリパス>

以下はLibraryディレクトリに移動した結果です

devuser ~$ cd Library
devuser Library$ 

ホームディレクトリ

起動した直後は、ユーザーのホームディレクトリにいます。
ホームディレクトリとはユーザー専用のディレクトリです。Macでは /Users/<ユーザー名> です。

ホームディレクトリは ~ で表現できます。
例えば ホームディレクトリ以下に存在するDownloads を表したい場合は ~/Downloads と指定します。

また、ホームディレクトリ以外の場所にいて、ホームディレクトリに戻りたい場合は、cd を実行すると移動できます。
以下の例は、Libraryにいる時に cd を実行してホームディレクトリに戻っています。

devuser Library$ cd
devuser ~$ 

ディレクトリを作成する

ディレクトリを作成するには mkdirコマンドを利用します。

mkdir <作成するディレクトリパス>

例えば、ホームディレクトリの下に test ディレクトリを作成したい場合は次のように実行します。

devuser ~$ mkdir test

作成されたか確認してみましょう。

devuser ~$ ls
Desktop     Library     Pictures
Documents   Movies      Public
Downloads   Music       test

testディレクトリが作成されています。

空ファイルの作成

ファイルを作成するには touchを利用します。

touch <作成するファイルパス>

testディレクトリ内に test.txt というファイルを作成するには次を実行します。

$ touch test/test.txt

作成されているか確認してみましょう

devuser ~$ ls test
test.txt

作成されています。

ファイルをコピーする

ファイルをコピーするには cp コマンドを利用します。

cp <コピーするファイルパス> <コピー先のファイルパス>

コピー先のファイルパスでファイル名を指定しなければ同じ名前のファイルが作成されます。

以下は test.txt をコピーして test_copy.txt を作成しました。

devuser ~$ cp test/test.txt test/test_copy.txt

作成されているか確認しましょう。

devuser ~$ ls test
test.txt    test_copy.txt

test_copy.txt が作成されています。

ファイルを移動する/ファイル名を変更する

ファイル移動は mv コマンドを利用します。
また、ファイル名の変更も mvコマンドを利用します。

test.txt を ホームディレクトリに移動します。

devuser ~$ mv ./test/test.txt ~/test.txt
devuser ~$ ls 
Desktop     Downloads   Movies      Pictures    test
Documents   Library     Music       Public      test.txt

ホームディレクトリにtest.txt が移動しています。
移動したtest.txt ファイルをtest_rename.txt というファイル名に変更します。

devuser ~$ mv test.txt test_rename.txt
devuser ~$ ls
Desktop     Downloads   Movies      Pictures    test
Documents   Library     Music       Public      test_rename.txt

変更されていることが確認できます。

ファイルを削除する

ファイル削除はrm を利用します。

以下はtest_copy.txtを削除して、削除後の確認をしています。

devuser ~$ rm ./test/test_copy.txt
devuser ~$ ls test
test.txt

削除されています。
ディレクトリごと削除したい場合は -R オプションを利用します。

以下はtestディレクトリごと削除して、削除確認をしています。

devuser ~$ rm -R ./test
devuser ~$ ls
Desktop     Downloads   Movies      Pictures
Documents   Library     Music       Public

削除されています。

現在位置を確認する

cd コマンドでディレクトリの移動などを行なっていると、どのディレクトリにいるのかわからない時があります。その場合は、pwd コマンドで現在位置を確認することができます。

devuser test$ pwd
/Users/devuser/Downloads/test
devuser test$ 

vi エディタの使い方

vi エディタはコンソールベースで利用するテキストエディタです。
アプリベースではないので、テキストファイルのちょっとした変更や、ターミナルでSSH接続したサーバー上で何かファイルを変更する場合に便利です。

基本的な操作方法を説明します。

viエディタコマンド

vi エディタを利用するには viコマンドを利用します。

vi <ファイルパス>

ファイルパスを指定しないとファイル新規作成モードになります。
また、コマンドでファイルパスを指定してもファイルが存在しない場合は、新規作成モードになります。

testディレクトリにnew.txt というファイル名を新規作成モードで開きます。

devuser ~$ vi ~/test/new.txt

実行すると以下のような画面に変わります。


~                                                                    
~                                                                   
~                                                                                
~                                                                       
~                                                                                
~                                                                                                                                                    
~                                                                                
~                                                                                
"~/test/new.txt" [New File]

編集モード

vi エディタを立ち上げた直後は表示モードになっています。編集モードに変更する場合はi を入力します。

入力するとInsertと表示され、編集モードに変更されます。


~                                                                                
~                                                                                
~                                                                                
~                                                                                
~                                                                                
~                                                                                
~                                                                                
-- INSERT --

以下のように適当に文字を入力してください。

grape
strawberry
banana
cherry
peach
watermelon
lemon

juice
cookie
pancake
mashmallow
candy
chocolate
biscuit

~                                                                                
~                                                                                
~                                                                                
-- INSERT --

編集モードの終了

編集モードを抜けるには escを押します。
-- INSERT --の表示が消えます。

pancake
mashmallow
candy
chocolate
biscuit

~                                                                                
~                                                                                
~                                                                                

保存

保存は表示モードの状態で、:w を入力して Enter で実行します。

実行すると、 下部に written と表示され書き込まれたことがわかります。

pancake
mashmallow
candy
chocolate
biscuit

~                                                                                
~                                                                                
~                                                                                
"test/new.txt" [New] 19L, 116C written

終了

テキストエディタを終了します。終了するには、表示モードで :q を押します。
終了すると元のターミナルのコンソールに戻ります。

devuser ~$ vi ~/test/new.txt
devuser ~$  

検索

次に、テキスト内を検索します。検索は、キーワードを正確に検索したい場合や、何百行にも渡る設定ファイルなどの項目を編集するのに便利です。

再度 viエディタで new.txt を開きます。
テキストのpancakeを検索し、その下にcaramelを追加します。

検索する場合は表示モードで以下のように実行します。

/<検索するキーワード>

今回は pancake を検索したいので /pancake と入力して enterを押します。
実行すると次のようにカーソルがpancakeの行に移動します。

移動したら i を入力して編集モードに切り替え、caramel を追加します。

保存して終了

保存した後にエディタをそのまま終了したい場合は、表示モードで :wq を実行します。
実行してみましょう。元のターミナルのコンソールに戻ります。

保存せずに終了

テキストに変更を加えてしまったが、変更内容を破棄して保存せずに終了したい場合、:q! を実行します。
まずは、new.txt を再度 viエディタで開き、適当に変更を加えてください。

ここでは以下のように変更を加えました。

grape
strawberry
banana
cherry
peach
caramel
mashmallow
candy
chocolate
biscuit

~                                                                        
~                                                                        
~                                                                        
~                                                                        
-- INSERT --

ここから表示モードに切り替え、":q!" を実行します。
エディタが閉じます。

保存されていないか、再度new.txtをviエディタで開いて確認します。
以下のように変更されていないことが確認できます。

grape
strawberry
banana
cherry
peach
watermelon
lemon

juice
cookie
pancake
caramel
mashmallow
candy
chocolate
biscuit

~                                                                         
~