viエディタのコマンド一覧~入力モード・コマンドモード~

中山テック 代表の中山です。

さて、最近ホームページ制作でもシステム開発でもよくサーバをいじくり回してます。

長年やっているのでWinSCPよりはTeraTermでコマンド操作の方が慣れています。

ファイル転送はWinSCPでもいいんですが、何度もコマンドを操作することがあるので

直接コマンドで命令出した方がやりやすかったりします(WinSCPでもコマンド操作可ですが)。

そんな今回はLinux内でファイルを作る「viエディタ」についてお話したいと思います。

※Windows上でメモ帳を開くことと全く同じです

Windowsのメモ帳と同じで、メモアプリのUnix系OS(Linux、CentOS等)版です。

LinuxもGUIが増えてますが、コンソールから「vi」コマンド、半角スペースを付けて

ファイル名を指定してあげるとファイルを開くことが出来ます。

※参照するだけなら「view」コマンドで読み取り専用で開いてください。

viコマンド

・vi [ファイル名]・・・読み書き可能な状態でファイルを開く
・view [ファイル名]・・・読み取り専用でファイルを開く

それでは早速やっていきましょう。

まず「vi aaa.txt」でメモを新規作成します。

※この時点ではファイルは作られておらず、最後に保存コマンドを打ってやっと作成されます

vi ファイル名で読み書き用ファイルを作成
無事新規のエディタが作られました

これで読み書き可能な状態でエディタが起動されました。

では早速文字を打ち込んでいきたいですが、大事な2つのモードについても解説いたします。

各種モード

viエディタには下記の2モードがあるので覚えておいてください

「INSERT」と出たら入力モード

入力モード

アルファベット「i」を押下すると入力モードに入ります。

この状態にするとコマンドモードのコマンドが打てなくなります。

ひたすら文字を入力するためのモードです。

コマンドモードに戻りたい時は「Esc」キーを押下します。

何も出てないのはコマンドモード

コマンドモード

文字入力が出来ませんが、下記のように便利なモードがあります。

これを覚えると記載するのが早くなるので、絶対覚えておきましょう。

コマンド
(キーボード)
意味Windowsの場合
j下に1行移動
k上に1行移動
h左に1文字移動
l右に1文字移動
0文頭に戻るHome
Shift + $文末へ移動End
Ctrl + d1ブロック下がるPgDn
Ctrl + b1ブロック上がるPgUp
yy行コピー???
dd行削除???
u1つ前のコマンドを取り消すCtrl + z
x1文字消すBackSpace
Delete
r + 文字指定文字を置換Insert→文字
d[数字] + lカーソルの文字を
数字分削除して
左に詰める
-
d[数字] + h左の文字を削除して
左に詰める
-
d[数字] + j数字分下の行を消すd1000jなら下1000行分削除する
d[数字] + k数字分上の行を消す
カーソル当たってる
行は削除しない
d1000kなら上1000行分削除する
今いる場所の行は消えない
gg佐藤ではない(笑)
ファイルの1行目に
戻る
Ctrl + Home
Shift + gファイルの最下に移動Ctrl + End
set number行番号を表示するse nuでも可
/[文字][文字]を検索Ctrl + f
:wファイルを保存
※エディタは閉じない
Ctrl + s
:wqファイルを保存
※エディタを閉じる
×マーク
:qエディタを閉じる
※保存しない
何かしら文字を打っていた場合は
このコマンドは効かないので注意
:q!強制的に
ディタを閉じる
もちろん保存されない
:%s/[置換前文字]/
[置換後文字]/g
全文字列置換Ctrl + r
o下に改行Enter
Shift + o上に改行Shift + Enter

他にもまだまだありますが、上記を覚えておけば大抵のことは出来ると思います。

最初は慣れずにイライラするかもしれませんが、その向こうには明るい未来が待っているかも(笑)

実践

早速実践していきましょう。

今回は「C言語のHello Worldプログラミング」をやっていきたいと思います。

プログラムを打ち込む前のひな型を作成
Hello worldプログラムを作成
「:wq」で保存かつエディタ終了

エディタを抜けたら「ls -ltr」でファイルを確認しましょう。

※lsコマンドとは、今いる場所のファイルやフォルダの一覧を表示するものです

出来ました!

が、C言語のプログラム組んだのに.cの拡張子にしていない痛恨のミス・・・

そしたら「mv aaa.txt aaa.c」で名前をリムーヴしてあげましょう。

※mvはコピーせずファイル名を変えるコマンド。別ファイルの移動にも使われます

mvで.txt→.cに変換

終わったらgccでコンパイルしてあげましょう。

もし権限関連エラー(Permission~)が出たら「chmod 755 aaa.c」でコンパイルできるようにしましょう。

コンパイルは「gcc -o aaa aaa.c」、-oでCファイル名を指定できます。

-oを付けない場合はa.outというファイルで吐き出されます。

その後、./aaaと打ち込んでEnterキーを押してみましょう。

ねっ、面倒くさいでしょう?

まとめ

いかがでしたでしょうか。

今回はHello Worldプログラムを書いただけなので手順は少なかったです。

しかし、大量のログデータの確認、ソースコードが何百秒になるとエディタの使いこなしが求められます。

また、WinSCPなどで楽に行き来してもいいですが、文字コードの変換誤りで化ける可能性もあります。

直接サーバに入り、実行することを求められることもあるので是非覚えておいてください!

中山テックでは下記のお仕事を承っています。

ホームページ制作系

ご料金はサービス内容・料金を参照ください。

■ホームページ制作

※ロゴ、バナーは外注となります

■SEO対策

Googleガイドライン診断、マネジメント、ブログ執筆など

システム開発系(SES請負契約向け)

■役職

プロジェクトマネジメント、PMO、リーダー、開発(要件定義~納品まで)

■スキル

工数見積(FP法)、折衝・提案、計画、調査、設計、実装(C、Java、クライアント系、SQL等)

データベース全般、テスト計画・項目作成、運用・保守

その他

Excel、プログラミングなどソフト系のお困りごと

対象地域

千葉県:東葛エリア(松戸市、柏市、我孫子市、市川市、流山市、船橋市、鎌ヶ谷市、白井市、浦安市) 他要相談

茨城県:取手市、土浦市、他要相談

埼玉県:三郷市、草加市、春日部市、他要相談

東京都:23区、他要相談

京都府:南区、他要相談

ご質問ございましたら、お問い合わせページよりご連絡ください。

おすすめの記事