thumb

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

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

長年やっているので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などで楽に行き来してもいいですが、文字コードの変換誤りで化ける可能性もあります。

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

おすすめの記事