カテゴリー
vi

viエディタの使い方

Linux、Unixで使用できるvi、vimエディタの使い方をメモしておきます。

vi、vimエディタの違い

vi(ヴィーアイ)を使いやすく拡張したものがvim(ヴィム)

どちらもUnix環境で使用できるテキストエディタです。

Xserverでもviが使えます。

ファイルを開く

vi [ファイル名]

vimの場合は

vim [ファイル名]

ファイルを開いた直後はコマンドモードになります。

コマンドモードとインサートモード

コマンドモードで編集はできません。

i

と入力して、インサートモードにして編集します。

編集が終わったら ESCキー でインサートモードからコマンドモードに戻ります。

ファイルを閉じる

ファイルの保存はコマンドモードで行います。

:q

でファイルを閉じます。

ファイルを保存して閉じる

コマンドモードで行います。

:wq

でファイルを保存して閉じます。

ファイルを保存せず閉じる

コマンドモードで行います。

:q!

でファイルを保存せず閉じます。

カーソルの移動

左右移動

カーソルの左右矢印

環境によって

hキーでカーソル右移動、lキーでカーソル左移動

上下移動

カーソルの上下矢印

環境によって

kキーでカーソル上移動、jキーでカーソル下移動

行頭、行末への移動

0キーで現在行の行頭へ移動

$キーで現在行の行末へ移動

ページの移動

Ctrl + fキーで前ページへ移動

Ctrl + bキーで前ページへ移動

行指定して移動

:[数字]

で指定行へ移動します。

カットペースト

x 1文字削除
dd 1行削除
p カーソルの文字の次または次の行にペースト
P カーソルの文字の前または前の行にペースト

コピーペースト

yy 1行コピー
[数字]yy [数字]行コピー
p カーソルの文字の次または次の行にペースト
P カーソルの文字の前または前の行にペースト

編集の取り消し(アンドゥ)

u カット、ペーストを一回取り消し(アンドゥ)

文字列の検索

/検索文字列 文字列の検索
n 下方向へ再検索
N 上方向へ再検索

文字列の置換

:[対象の行] s/検索文字列/置換文字列/オプション 文字列を置換する

:[対象の行]s/old/new [対象の行]行目の最初の old を new に置換して終了
:[対象の行]s/old/new/g [対象の行]行目の全ての old を new に置換して終了
:%s/old/new/g ファイル全体の検索語句を置換する
:%s/old/new/gc 置換の度に確認を求める

参考資料:

Linux標準教科書

カテゴリー
Linux/Unix

Linux 基本コマンド

ファイルやディレクトリの参照 (ls)

LiSt の略

ls [オプション] [ファイル]

オプション

-a

.(ドット) で始まる隠しファイル等もすべて (All) 出力します。

-l

長 (Long) 形式で出力します。

-t

最終更新時間 (Time) によって、ソートをして出力します。

-r

逆順 (Reverse) にソートをして出力します。

ファイルの指定例

$ ls /usr/

*(アスタリスク)と?(クエスチョン)の指定例

ls *.txt

*はワイルドカードです。

例の場合はカレントディレクトリのすべてのテキストファイルを表示します。

ls ???.txt

?は1個につき何らかの1文字を示します。

例の場合、3文字のテキストファイルを表示します。

ドットファイル(隠しファイル)の表示例

ls -la

カレントディレクトリのドットファイル(隠しファイル)を含めたすべてのファイルを長形式で表示します。

ファイルのコピー (cp)

CoPy の略

cp [オプション] [コピー元] [コピー先]

ファイルの移動 (mv)

MoVe の略

mv [移動元ファイル] [移動先ファイル]

ファイルの削除 (rm)

ReMove の略

rm [オプション] [ファイル名]

オプション

-i

処理を行なうときの確認です。対象ファイルを本当に削除してよいか、確認のための問い合わせをします。誤っ て削除することを防ぐために利用されます。

-f

強制的に処理を実行します。ファイルによっては、削除に確認を求められる場合がありますが、-f オプション はその確認を無視して、強制的に処理を継続します。

-r

ディレクトリを対象にします。ディレクトリの中の、ファイルやディレクトリも削除します。

現在のディレクトリの表示 (pwd)

Print Working Directory の略

pwd

ディレクトリの変更 (cd)

Change Directory の略

cd [ディレクトリ名]

ディレクトリの作成 (mkdir)

MaKe DIRectory の略

mkdir [ディレクトリ名]

ディレクトリの削除 (rmdir)

ReMove DIRectory の略

rmdir [ディレクトリ名]

ファイルの内容を表示 (cat)

catenate キャトネイト(つなぐ)の略

cat [オプション] [ファイル名]

オプション

-n

行番号を付加して表示します。

基本的な使い方は、ファイルの中身をみたい時に cat が使えます。

また、

cat [オプション] [ファイル名A] [ファイル名B]・・・

とファイル名を複数指定すると、連結してファイルの中身を表示できます。

ただし、1ページしか表示されません。

複数ページをみたい場合は、more や less を使います。

ファイルの検索 (find)

find [パス] -name [ファイル名]

/etc 配下にある [ファイル名]を検索

コマンドのパスの表示 (which)

 which [コマンド名]

ヘルプの使い方

 [コマンド] --help

コマンドのヘルプを表示します。

ただし、ヘルプがないコマンドもある。

マニュアルの使い方

man [コマンド名]

セクション

1:ユーザコマンド
2:システムコール
3:システムライブラリや関数
4:デバイスやデバイスドライバ
5:ファイルの形式
6:ゲームやデモなど
7:その他
8:システム管理系のコマンド
9:カーネルなどの情報

ファイルの中からデータを検索(grep)

grep [オプション] 検索条件 [指定ファイル]

検索条件で使う正規表現

^a

aで始まっている行

b$

bで終わっている行

a.b

aとbの間に1文字入っている

[ab]ab

aもしくはbに続く ab(例:aab,bab)

[^ab]ab

aもしくはbで始まらない(not)で、abが続くもの(例:xab,zab 等)

ファイルのタイムスタンプの変更 (touch)

touch [オプション] [ファイル名]

touchコマンドを実行すると、ファイルのタイムスタンプが現在日時に変更されます。

オプションにより、新しいタイムスタンプとなる日時を指定することもできます。

ファイルが存在しない場合、touch コマンドは中身が空である0バイトのファイルを作成します。

特別なディレクトリ

カレントディレクトリ (.)

現在いるディレクトリのことです。ファイルやディレクトリ操作では「ドット」を使って表わします。

親ディレクトリ (..)

1 階層上のディレクトリのことです。
カレントディレクトリが/home/penguin の場合、/home が親ディレクトリにあたります。

ホームディレクトリ (~)

ユーザの作業開始位置となるディレクトリです。
ログイン直後のユーザは、必ずホームディレクトリにいます。
ユーザごとに異なるホームディレクトリを使うので、それぞれのユーザにとってホームディレクトリは異なります。
ファイルやディレクトリ操作では「~ チルダ」を使って表わします。

ルートディレクトリ (/)

ディレクトリ階層の、最上位階層を示します。

ファイルやディレクトリ操作では「/ ルート」を使って表わします。

絶対 (パス) 指定と相対 (パス) 指定

ページャを使った表示

コマンドの実行結果の行数がたくさんあると表示が流れてしまうため以下のコマンドでスクロールを止めます。

more ファイル名

スペース

次のページに進む

b

前の一画面に戻る

f

次の一画面に進む

/単語

単語を検索します。n キーで検索結果をジャンプします

q

ページャコマンドを終了 (quit) します。

末行まで表示すると表示が終了します。

less ファイル名

スペース

次のページに進む

b

前の一画面に戻る

f

次の一画面に進む

前の行に進む

次の行に進む

/単語

単語を検索します。n キーで検索結果 をジャンプします

q

ページャコマンドを終了 (quit) します。

qを入力するまで表示は終了しない。

参考資料:

Linux標準教科書

カテゴリー
Mac

WindowユーザーがMacで戸惑うこと

確認環境:

Mac OS X

Windowsをずっと使ってMacを初めて使い始めて戸惑ったことをメモしておきます。

今どこにいるの?

1.ターミナルを起動する。

2.以下のコマンドを実行する。

$ pwd

結果

/Users/xxx

xxxはユーザー名

ここがホームディレクトリ。最初にいる場所。

$HOME、~/ などともいう。

なお、Finderでは、

ユーザ/xxx

とターミナルでは「Users」と表示されているところが、日本語で「ユーザ」と表示されてます。

これが、同じ場所なのに、まるで違う場所のように思えるので、戸惑いました。