forget for get

覚えるために忘れる

TeraTerm 自動ログインマクロ

毎日TeraTermでサーバに接続して作業するときに、毎回IP、ユーザ名、パスワードを入力するのはめんどくさい。
TeraTermのマクロを1度つくれば、あとはダブルクリックで簡単に接続できる。

・簡単パターン(IP、ユーザ名、パスワード固定)

connect '192.168.110.101:22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi123'

上記をファイル名.ttlで保存し、ttpmacro.exeで開けばOK!

※ダブルクリックで開かない場合は、「拡張子とプログラムの関連付け」を行ってください。

 

秘密鍵を使う場合

connect '192.168.110.101:22 /ssh /2 /auth=publickey /user=kohshi /passwd=kohshi123 /keyfile=C:\pathtokey\private_key'

 

・接続した後、特定のコマンドを実行したい場合
(例)suしてcd

connect '192.168.110.101:22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi123'
wait "$"
sendln "su"
wait ":"
sendln "kohshi"
wait "#"
sendln "cd /var/www/html/"

waitで特定の文字列を待ち受けて、sendlnでコマンド実行です。

 

コメントアウト

;一行コメント
/*
複数行コメント
*/


・ユーザ入力を受け付けたい場合
(例)接続先IPを入力させる

inputbox 'IPを入力してください' 'IP入力'
HOSTADDR = inputstr
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND

inputboxでダイアログを出して入力受付、入力された値はinputstrに入っている
「strconcat 文字列 文字列」で文字列を結合する。

 

・選択肢から選びたい場合

(例)接続先IPを選ばせる

strdim HOSTNM 2
HOSTNM[0] = '192.168.0.101'
HOSTNM[1] = '192.168.0.102'

listbox '接続先IPを選択して下さい' '接続ホスト選択' HOSTNM if result >= 0 then HOSTADDR = HOSTNM[result] else end endif

COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND

 

(例)接続先名から接続先IPを選ばせる

strdim HOSTNM 2
HOSTNM[0] = 'dev'
HOSTNM[1] = 'stg'

strdim HOSTIP 2
HOSTIP[0] = '192.168.0.101'
HOSTIP[1] = '192.168.0.102'

listbox '接続先を選択して下さい' '接続ホスト選択' HOSTNM
if result >= 0 then
    HOSTADDR = HOSTIP[result]
else
    end
endif

COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND


strdimで配列を宣言して、値を入れる。
listboxに配列を渡すと、選択した値がresultに入る。
キャンセルされた場合はresultに−1が入る。

・ログを保存

FILEPATH = 'C:\Users\kohshi\Desktop\tera.log'
logopen FILEPATH 1 1
logclose

logopen FILEPATH 1 0 ;2つめを0にすると上書き。1だと追記。
logcloseがなくてもteratermを閉じればログも閉じるので、途中でログだけ閉じたいときに使う。

・ファイル名に日付を入れたい

getdir FILEPATH
strconcat FILEPATH '\'
getdate FILENAME '%Y%m%d-%H%M%S.log'
strconcat FILEPATH FILENAME
logopen FILEPATH 1 0

getdirでマクロがあるディレクトリを取得。
getdateで変数FILENAMEに指定したフォーマットで文字列を入れる。
strconcatで変数FILEPATHに足していく。

viコマンドまとめ

viのコマンドをまとめてみました。

最初は使いづらいと思うかもしれませんが、慣れると使いやすいです。

1. 最小限覚えるコマンド(これだけで編集できる。が、時間がかかる)
i カーソルの左から文字入力(Escで文字入力モード終了)
:q 保存しないで終了
:w 保存
:wq 保存して終了

2. 作業をスピードアップさせるために最低限覚えるコマンド
yy 行をコピーする
p コピーしたものを貼り付け
dd 行を削除(切り取りなのでpで貼り付けれる)
※ 5yyとすると、5行コピー。5ddは5行削除。

u 元に戻す
Ctrl+r やり直し

/キーワード 前方検索
?キーワード 後方検索
n 次の候補にカーソル移動
N 前の候補にカーソル移動

nnG nn行目にカーソル移動
shift+G 最終行へカーソル移動

0 行頭へカーソル移動
$ 行末へカーソル移動

Ctrl+v押して矢印で矩形選択
Shift+iで入力モードになる
文字入力後ESCで反映される

Ctrl+v押して矢印で矩形選択
xで選択範囲が削除される

:%s/置換前/置換後/g
※矩形選択した状態で↑だと選択範囲内を置換


3. その他よく使うコマンド
:set number 行数表示
:set nonumber 行数非表示

:e ファイル名 別のファイルを開く
:e# 別のファイルを閉じる
o カーソルの下に1行追加して文字入力
x カーソルの下の1文字を消す

r カーソルの下の1文字を上書き

^ 文頭へカーソル移動
w 次の単語へ
b 前の単語へ

SQLコマンド基本まとめ

SQLコマンド基本まとめ

挿入

insert into A_TABLE(NAME,TIME) values('test',SYSDATE);

insert into A_TABLE values('test',14,SYSDATE);

※全項目を指定する場合は項目名を入れなくても良い

 

更新

update A_TABLE set AGE=23, TIME=SYSDATE where NAME='test';

 

削除

delete from A_TABLE where NAME='test';

 

選択

項目取得
select * from テーブル名;

目指定
select name,age from テーブル名;

条件指定
(例)nameが佐々木のデータを取得
select * from テーブル名 where name='佐々木';
(例)ageが40以上
select * from テーブル名 where age>=40;
(例)nameが松井か山
select * from テーブル名 where name in ('松井', '山本')
(例)nameに奈を含む
select * from テーブル名 where name like '%奈%';
'%奈'だと末尾が奈、'奈%'だと頭が

指定件数のみ取得(データ数が多い場合など
select * from テーブル名 limit 1;

新しいデータから取得(並べ替え)
(例)項目名idを降順で並べ替え
select * from テーブル名 order by id desc;
descで降順、ascで昇順。デフォがascなので昇順の場合は省略可。

 

文字→時間

to_date('20140101100000','yyyymmddhh24miss')

時間→文字

to_char(TIME,'yyyy/mm/dd hh24:mi:ss')

 

テーブル定義確認

show databases;

show tables;

show tbles like '%item%';

show create table テーブル名;

desc テーブル名;

 

テーブル作成

create table A_TABLE(

NAME varchar(20) not null,

AGE int,

TIME date,

primary key(NAME)

);

 

テーブル定義変更

カラム名変更

alter table テーブル名 change 古カラム名カラム名 int;

カラム定義変更

alter table テーブル名 modify カラム名 tinyint;

カラム追加(afterで追加位置指定)

alter table テーブル名 add 追加カラム名 int after カラム名;

カラム削除

alter table テーブル名 drop column カラム名;

テーブル削除

drop table テーブル名;

テーブル初期化(deleteより圧倒的に早い)

truncate テーブル名