今回は少し趣向を変えて、MS-Windows用の通信ソフト、「TeraTerm」を用いてLinuxコマンドや、エディタの使い方をざっと紹介させていただきます。
このソフトを使いこなすことができれば、他の色々なソフトを行き来することなくコマンドライン上でコーディングやSSH接続等の作業を完結することが可能です。
TeraTermとは
TeraTermとは、オープンソースのターミナルエミュレーター(通信ソフト)です。
MS-Windows 用のフリーソフトウェアであるTera Term (Pro) の原作者公認の後継版として、現在も開発が進められています(最終リリース日時は2015-09-01)。
こちらからダウンロードできます↓↓
Tera Term (テラターム) プロジェクト日本語トップページ – OSDN
基本的なLinuxコマンド
まずはSSH接続
$ ssh ユーザー名@IPアドレス
上のコマンドを叩き、設定しているパスワードを入力すると、SSH接続が可能です。
※注:叩く→「Enterキー」を押すことです。
例:user@192.168.1.1からuser@192.168.11.1へ切替
[user@192.168.1.1]$ ssh user@192.168.11.1 password:設定しているパスワード(入力しても表示されませんが、きっちり入力はできています)
たったの1行+パスワード入力のみで接続を切り替えることができます。
pingコマンド
相手のホストに接続可能かどうかを確認することが可能です。
例えば、自分の公開しているサイトにつながらない時などに、接続が生きているのかどうかを確認することができます。サイトが表示されない場合の問題の切り分けに使う場合が多いです。
書き方:ping IPアドレス
[user@192.168.1.1]ping 192.168.10.1
このコマンドはこちら側で止めてやらなければ処理を投げ続けてしまうため、「Ctrl+C」で処理をキャンセルして停止させてやる必要があります。
接続ができた場合のexitコードは0、できなかった場合のexitコードは1となっています。
他にも指定回数分のpingを実行させることが可能な「ping -c」コマンドや、対象ホストまでのネットワークルートを出力させることができる「ping -R」コマンド等があります。
ping -cコマンド
書き方:ping -c 回数 IPアドレス
[user@192.168.1.1]$ ping -c 3 192.168.10.1
ping -Rコマンド
書き方:ping -R IPアドレス
[user@192.168.1.1]$ ping -R 192.168.10.1
ping -c と -Rの組み合わせ
書き方:ping -c 回数 -R IPアドレス
[user@192.168.1.1]$ ping -c 5 -R 192.168.10.1
lsコマンド
ディレクトリの中にあるファイルやディレクトリの名前を見ることが可能です。
オプションとして、ディレクトリ内のファイルを、隠しファイルも含め全て表示するls -aコマンドや、ディレクトリ内のファイルの名前だけでなく、タイムスタンプや権限、オーナーの情報も含めて表示するls -lコマンド等があります。
また、ls -laコマンドを打てば隠しファイルも含めた全てのファイルの名前、タイムスタンプや権限、オーナー情報を表示させることができます。
書き方:ls
[user@192.168.1.1]$ ls
ls -aコマンド
書き方:ls -a
[user@192.168.1.1]$ ls -a
ls -lコマンド
書き方:ls -l
[user@192.168.1.1]$ ls -l
ls -laコマンド
書き方:ls -la
[user@192.168.1.1]$ ls -la
chmodコマンド
ファイルやディレクトリのパーミッション(権限)を変更することができます。
特定の人のみファイルやディレクトリにアクセスできるようにしたい時、あるいは特定のファイルやディレクトリに誰でもアクセスできるようにしたい時などに使用します。
書き方:chmod パーミッションの種類(後述) ファイルorフォルダ名
[user@192.168.1.1]$ chmod 777 hogehoge
※rootユーザーでログインしている場合のみのコマンドです。一般ユーザーが使うためにはsudoコマンドを先に打つ必要があります。sudoコマンドは許可されたユーザーのみ使用できます。
[user@192.168.1.1]$ sudo chmod 777 hogehoge
権限の種類
u : 所有者の権限
g : グループの権限
o : その他のユーザーの権限
a : 全ての権限
r : 読み込み権限
w : 書き込み権限
x : 実行権限
s : セットID
t : スティッキ・ビット
(すべてのユーザーがファイル・ディレクトリを書き込めますが、rootを除いた所有者だけにしか削除ができなくなります)
+ : 後に記述した権限を付加
– : 後に記述した権限を削除
= : 後に記述した権限にする
権限の種類を表した数字
0 : – – – (権限なし)
1 : – – x (実行権限のみ)
2 : – w – (書き込み権限のみ)
3 : – w x (書き込み、実行権限)
4 : r – – (読み込み権限のみ)
5 : r – x (読み込み、実行権限)
6 : r w – (読み込み、書き込み権限)
7 : r w x (全ての権限あり)
上記でhogehogeの権限を777に変更しましたが、この3桁の数字は左から「所有者」「グループ」「その他のユーザー」の権限の種類を表しています。
それぞれにどのような権限を与えるのか、を数字で指定するので、777というのは、
- 所有者に全ての権限
- グループに全ての権限
- その他のユーザーに全ての権限
を与えるという意味になります。
vim
初心者が詰まりやすいポイント
vimの機能は至って簡単で、編集したいファイルをvimで指定します。
[user@192.168.1.1]$ vim 編集したいファイル
TeraTerm上でエディタが起動し、ファイルを編集することが出来るようになります。
モード切替
ノーマルモード、Insert(入力)モード、ビジュアルモード、コマンドラインモードの4つのモードを切り替えて使用します。起動時の状態はノーマルモードです。
他のエディタと全く異なる挙動
例えば他のエディタであれば、ファイルの保存は「Ctrl+S」で行いますが、vimでは「:w」(コマンドラインモードでw)で保存します。通常のエディタと違う挙動に戸惑うケースも多く、筆者も最初はとても戸惑いました。
まず起動に時間がかかりません。サイズの大きいファイルを起動するときもさほど時間を取られないことが利点です。
さらにコマンドラインから直接ファイルの中身が編集できるため、ファイルを編集後、そのままコマンドラインでの作業が可能です。
またコマンドさえ覚えれば、ファイル内の特定の位置への移動が楽であったり、慣れてくればマウスを使うことなくキーボードのみで作業ができたりと、手を動かす時間を大幅に短縮することもできます。
それでは、以下より簡単なvimの操作方法を記載させていただきます。
vimは基本的に全ての操作をキーボードで完結させるため、操作するモードが用意されています。主なモードは下記の4つです。
ノーマルモード:起動時のモードです。検索やコピー&ペースト等を行います。
Insertモード:テキストの入力や編集を行います。
コマンドラインモード:保存や終了等を行う時に使用するモードです。また、行数指定等でも使用します。
ビジュアルモード:範囲を選択する時に使うモードです。コピーする時などに使用します。
ノーマルモード から Insertモード:「i」
ノーマルモード から コマンドラインモード :「:」
ノーマルモード から ビジュアルモード:「v」
Insertモード から ノーマルモード:「ESC」
コマンドラインモード から ノーマルモード:「ESC」
ビジュアルモード から ノーマルモード:「ESC」
ノーマルモードとビジュアルモードで行います。通常の矢印のようにカーソルを上下左右に移動出来ます。
左:「h」
下:「j」
上:「k」
右:「l」
ノーマルモードで行います。
検索:「/」
編集したファイルの保存や、vimの終了はコマンドラインモードで行います。
保存:「w」
保存+終了:「wq」
保存+強制終了「wq!」
終了:「q」
強制終了:「q!」
vimでは「ヤンク&ペースト」といいます。ヴィジュアルモードでヤンクすると自動的にノーマルモードに切り替わります。また、ノーマルモードでマウスを使ってヤンクすることも可能です。ペーストはノーマルモードで行います。
コピー(Ctrl + Cと同様):「y」
ペースト(Ctrl + Vと同様):「p」
例:ファイルの500行目に移動したいとき
ノーマルモードを起動している時に「:500」と入力することで、移動することができます。
作業を2画面に分割させる事も可能です。実行はノーマルモードで行います。
縦方向に画面を分割:「Ctrl+wv」
このように分割して表示されます。
また分割した画面間の移動には次のコマンドを使用します。
画面移動:「Ctrl+ww」
まとめ
TeraTermを使ってvimでファイルを編集した後に、開発環境から本番環境にSSH接続して変更分を反映することができます。さらにファイルの作成、削除などが全てコマンドライン上で完結出来るので、開発作業が一本化でき効率化にもつながります。
今回はとても初歩的な内容をまとめたものとなっておりますので、ぜひお試しいただければと思います。