【メモ】標準ターミナル設定をまとめる(Tera Term, screen)

# 目的・概要
通常、利用しているターミナル環境の情報をまとめる。

# 対象ソフトウェア
- Tera Term
https://ja.osdn.net/projects/ttssh2/

- screen
https://linuxjm.osdn.jp/html/GNU_screen/man1/screen.1.html


# 設定
## Tera Term
### 端末サイズ：160×48
少なくとも横幅が無いと、ログが見にくい。

- 「設定」→「端末」
- 160×48に設定する。

![2017-11-25_22h32_20.png](https://qiita-image-store.s3.amazonaws.com/0/137777/ffb4e3db-aa71-f8b1-8b6c-1f602222d84f.png)


### 自動的にウィンドウを閉じない
ホストからのコネクションを切断した直後に、「あ、あれ確認してない」となったときに助かる。

- 「設定」→「TCP/IP」
- 「自動的にウィンドウを閉じる」のチェックを外す。

![2017-11-25_22h36_09.png](https://qiita-image-store.s3.amazonaws.com/0/137777/69195443-a3cb-56d6-9fa2-874ec1e17620.png)

### 自動でのログ取得・タイムスタンプの付与
**※超重要。業務でTera Termを利用する場合は必ずやろう**
**自動的にログ採取を開始するよう設定し、ファイル名はタイムスタンプ準拠にするようにしておく**

- 「設定」→「その他の設定」
- 「ログ」タブを選択し、下記の値を設定する。

| 設定項目 | 設定値 | 説明・備考 |
|----------|----------|----------|
| 標準ログファイル名(strftimeフォーマット可) |teratermlog_%Y%m%d-%H%M%S.log|Tera Term起動時刻が2017/11/25 12:10:15であれば、teraterm_log_20171125-121015.logといったファイル名となる|
|標準のログ保存先フォルダ|自身のDesktop / My Documentsなどの適当なフォルダ|意外とサイズが膨れ上がるので、空き容量に余裕のあるパーティションにする|
|自動的にログ採取を開始する|■（チェックを入れる）|**※超重要**|
|オプション->追記|■（チェックを入れる）|手動でのログ開始時、既存のログファイルをうっかり指定しても上書きされない|
|オプション->タイムスタンプ|■（チェックを入れる）|ログの行頭に出力時刻が記録される|

![2017-11-25_22h41_20.png](https://qiita-image-store.s3.amazonaws.com/0/137777/c2b51a6f-149d-3745-ec6b-77406c16b0af.png)

### 誤ったペーストを防ぐ
**※超重要。右クリックでの貼り付け時は必ず確認するよう設定する**
ただ、最近のバージョンだと下記設定がデフォルトになっているかも。

- 「設定」→「その他の設定」
- 「コピーと貼り付け」タブを選択し、下記の値を設定する。

| 設定項目 | 設定値 | 説明・備考 |
|----------|----------|----------|
|右クリックでの貼り付けを無効にする|□（チェックを外す）||
|右クリックでの貼り付けを確認する|■（チェックを入れる）||
|危険なクリップボードの貼り付けを確認する|■（チェックを入れる）||

![2017-12-10_16h11_00.png](https://qiita-image-store.s3.amazonaws.com/0/137777/0de49630-b6a5-e7fe-c5ac-ce84c61ebaf9.png)


### ビープ音を鳴らさない
デフォルトでは「on」になっており、スピーカーが有効だと音が鳴ってしまう。Beepが必要な場合は画面がフラッシュするよう、「visual」に設定する。
なお、この設定はGUIから設定できないようなので、直接TERATERM.INI（※次項参照）を編集する。

```ini:TERATERM.ini
; Beep by BEL (on/off/visual)
Beep=visual
```

### 設定を保存する
上記の設定変更しただけでは、次にTera Termを起動したときに有効にならない。
インストールフォルダ（多くの場合はC:\Program Files (x86)\teraterm）内のTERATERM.INIを上書きする必要がある。

- 「設定」→「設定の保存」からファイル保存用のダイアログが開く
- インストールフォルダが指定されていることを確認し、TERATERM.INIというファイル名で保存する

![2017-11-25_23h13_24.png](https://qiita-image-store.s3.amazonaws.com/0/137777/5c62309f-504d-1945-9fe2-b4324505798d.png)

インストールフォルダに保存する権限が無い場合は、「設定」→「設定フォルダ」から、INIファイルのパスを併せて変更する。

## Tera Term Menuを活用する
Tera Termのインストール時にインストールするかどうか聞かれるので、インストールして活用する。
複数台のサーバにログイン・管理する必要がある場合、いちいち接続設定を探さなくて済むようになる。

下記のようにタスクトレイから接続先のホストをクリックするだけでログインできるようになる。
![2018-11-18_23h56_58.png](https://qiita-image-store.s3.amazonaws.com/0/137777/7ba04418-e3a2-718b-238b-bbf89103a699.png)


## screen
これは接続先のサーバで実行するコマンドとなる。
通常は、サーバ共通の設定は勝手に変更できないため、個人用設定に反映させる。

接続先のサーバはCentOS6/7、若しくはAmazon Linuxを想定する。

- サーバ共通設定ファイル:
    - /etc/screenrc
- 個人用設定ファイル:
    - ${HOME}/.screenrc

### エスケープキーを変更する
デフォルトではCtrl+Aがエスケープキーであり、これはbash等のショートカット（行頭へジャンプする）とかぶり、使いにくいので変更する。
Ctrl+]（日本語キーボードでは「む」のキー）に変更する。

``` bash:${HOME}./screenrc
# vi ${HOME}./screenrc

# 下記の行を追加する
escape ^]]
```

### Tera Term利用時、横幅が変更されないようにする(termcapinfo)
一般的なRHEL/CentOS系Linuxディストリビューションのインストールデフォルトの状態では、Tera Termで接続してscreenを実行すると、横幅が80桁に変更されてしまう。
そのため、これが変更されないよう設定する。
\# termcapinfoの書式についてはよく調べておらず、個人的には黒魔術的なおまじない設定となっている。

``` bash:${HOME}./screenrc
# vi ${HOME}./screenrc

# 下記の行を追加する
termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
```

## おまけ：/etc/screenの設定を変更するAnsible Playbook
screenrcはincludeする仕組みが無いため、Ansibleでの変更は少し考える必要がある。
設定自体は単一行で指定することが可能であるため、lineinfileモジュールを利用する。

``` yaml
- name: Configure "screen" for all users 1/2
  lineinfile: dest=/etc/screenrc regexp="^escape.*" line="escape ^]]"
- name: Configure "screen" for all users 2/2
  lineinfile: dest=/etc/screenrc state=present line="termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'"
```

参照元URL：
lineinfile - Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression.
http://docs.ansible.com/ansible/latest/lineinfile_module.html