よく使うvimコマンド
Linux向けのテキストエディタは、ターミナル(コマンドプロンプト)上でファイルの操作やコードの編集ができるツールです。サーバで操作する場合や、アプリをインストールする場合に使います。
MacOSは、インストール済ですが、WindowsOSは、Bashなどターミナルツールをインストールして利用する必要があります。
ファイルの操作
| key | 内容 |
|---|---|
| ZZ | 上書き保存し、viを終了 |
| :w | 内容を保存 |
| :wq | 内容を保存して終了 |
| :q! | 保存せずに終了 |
行の移動
| key | 内容 |
|---|---|
| gg | 最初の行 |
| G | 最終行 |
| 88G | 88行目 |
| H | 画面上の最初の行 (Home) |
| M | 画面上の中央の行 (Middle) |
| L | 画面上の最後の行 (Last) |
その他Vim操作 参考ページ
Viを使ってみよう
vi には、入力モードとコマンドモードという 2 種類の操作モードがあります。
入力モードは、ファイルにテキストを入力するために使います。
コマンドモードは、 vi 特有の機能を実行するコマンドを入力するために使います。
Windowsなら、GitBash
Macbookなら「ターミナル」
を開いて、コマンドを叩いていきましょう!
次のコマンドを入力し、shellscript.sh ファイルを Vi テキストエディタを用いて開きます。vi の後ろに半角スペースを入れることを忘れないでください。
|
1 |
$ vi shellscript.sh |
ファイルを開くことに成功すると、次のような画面となり、ファイルの内容が表示されます。最後の1行を除き、画面全体が当該ファイルを表示している状態となります。

|
1 2 3 4 5 6 |
カーソル → ┃ ~ 空白行 → ~ ~ ステータス行→ shellscript.sh [unix] (08:59 01/01/1970) 0,0-1 All "shellscript.sh" [New] |
シェルスクリプトの作成
シェルとは「オペレーティングシステムと対話するためのインターフェイス」であり、コマンドなどを制御します。
以下の内容をshellscript.sh に貼り付けてください。
※1行目に必ず、どのシェルを実行するか記述します。
「〜」がたくさんある画面に遷移するので、その画面内に下記コードをコピペして貼り付けます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/usr/bin/bash # ------------------------------------------ # このシェルスクリプトは、2つの数値を比較して # 大小を判定し、結果を表示する簡単な例です。 # ------------------------------------------ # メッセージを表示 echo "action start!!" # 数値を変数に代入 NUM1=100 # NUM1 に 100 を代入 NUM2=200 # NUM2 に 200 を代入 # 条件分岐 (if文) により数値を比較する # -lt は "less than"(より小さい)の意味 # [ $NUM1 -lt $NUM2 ] の意味: # → NUM1 が NUM2 より小さい場合に true となる if [ $NUM1 -lt $NUM2 ]; then # 上の条件が true(NUM1 < NUM2)だった場合に、この行が実行される echo 'NUM2 is Bigger Than NUM1' fi # ここでスクリプトは終了します |
① [a]キーで入力モードにします。 下位の表示に – INSERT — モードになります。
② 上記の内容を貼付けもしくは記入します。
③ [ESC]キーでコマンドモードに切り替えます。 [:]キーでコマンドモードにカーソルが移動します。
④ 別の画面が出てくるため、そこに中身を貼り付けます。

⑤ コピペができたら、:wqと押して保存して終了してください。
⑥ 元の画面に戻ってきたら下記コードを打ちます。
|
1 2 |
// Windowsの場合は、 GitBashのターミナルで実行してください。 sh shellscript.sh |
下記のように表示されると、処理が実行されているという意味です。

LinuxコマンドやViエディターについて、今後Gitの対応や、フレームワーク作成時に利用します。開発で利用するために必要なスキルですので、コマンドを使えるようにしてください。
仕事を効率的に行う作業の一つで、作業効率が格段に上がります。是非利用できるようにしてください!
課題
下記手順に沿って、シェルスクリプトを実行し、
自身のボックスにて、
①作成したファイル myscript.sh
②script.logを提出
2点のご提出をお願いします。
課題作成の手順
|
1 2 |
// vi エディターで、下記ファイル名を作成してください。 vi myscript.sh |
以下の内容を貼り付けてください。
(内容については、深く知る必要はありませんが、こういう動きをしているんだなと流れを知っておいてください)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/usr/bin/env bash # スクリプトの開始をログに出力 echo "=== シェルスクリプト処理開始 ===" # 実行ログを保存するファイルパス LOG_FILE="./script.log" DATE=$(date '+%Y-%m-%d %H:%M:%S') # 引数チェック if [ $# -lt 1 ]; then echo "[ERROR] 使用方法: $0 ファイル名1 [ファイル名2 ...]" | tee -a "$LOG_FILE" exit 1 fi # 変数宣言 TOTAL_LINES=0 FILE_COUNT=0 # 各ファイルを処理 for FILE in "$@"; do if [ -f "$FILE" ]; then LINE_COUNT=$(wc -l < "$FILE") echo "[$DATE] $FILE は $LINE_COUNT 行です。" | tee -a "$LOG_FILE" TOTAL_LINES=$((TOTAL_LINES + LINE_COUNT)) FILE_COUNT=$((FILE_COUNT + 1)) else echo "[$DATE] [WARNING] ファイル $FILE は存在しません。" | tee -a "$LOG_FILE" fi done # 結果表示 echo "--------------------------" | tee -a "$LOG_FILE" echo "処理されたファイル数: $FILE_COUNT" | tee -a "$LOG_FILE" echo "合計行数: $TOTAL_LINES" | tee -a "$LOG_FILE" echo "=== シェルスクリプト処理終了 ===" | tee -a "$LOG_FILE" |
実行例
|
1 2 3 4 |
-- 実行例 sh myscript.sh shellscript.sh sample1.txt sh myscript.sh shellscript.sh sample1.txt [自身で作成しているファイルがあればそのファイル名を記載] |

script.log作成されていることを確認して、内容を表示してください!