orz.conf

技術メモ✍

ターミナルのショートカット

よく使うターミナルのショートカット

カーソル位置から行頭まで削除
CTRL + u

カーソル位置から行末まで削除
CTRL + k

単語単位で削除
CTRL + w

スクリーンクリア
CTRL + l

単語単位で戻る
ESC + b

単語単位で進む
ESC + f

行頭へ移動
CTRL + a

行末へ移動
CTRL + e

履歴を検索(インクリメンタルサーチ)
CTRL + r
実行中は
別のものを探す
CTRL + r
戻る
CTRL + g

vim

よく調べるvimの使い方。
どうやるんだったかいつもググるので備忘録として。

diffを見る

vim -d 1.txt 2.txt

もしくはvimdiff

画面の分割

:sp ファイル名

画面間の移動

ctrl+w p

コピーについて

"ayでaレジスタにコピー
"apでaレジスタからペースト

aの部分はどのキーでもおk

単語の移動

順方向 w
逆方向 b

一気に移動したい場合
10w とか 5lとかで一気に移動できる

その行のうちの一文字検索

f○ 順方向(○は検索文字)
F○ 逆方向(○は検索文字)

一文字手前まで検索

t○ 順方向(○は検索文字)
T○ 逆方向(○は検索文字)


連続して検索するときは

; 順方向
, 逆報告

今回変更した箇所に移動

g;	変更した箇所に戻る
g,	変更した箇所に進む

行の先頭や末尾

0 インデント無の行の先頭へ移動
^ インデント有の行の先頭へ移動
$ 行の末尾へ移動

先頭行に移動

gg

最終行に移動

shift+g

マクロ

qaでaレジスタにマクロの記録開始
qで記録終了
@aで再生

コメントアウト
まず矩形モードに入る

ctr + v

入力モードになる

shift + i

コメントアウト文字列(//など)を入力しesc
esc
その後上下に移動するとコメントアウトされる

undoとredo

u
ctrl+r

tds_fdwのインストール

Installing on CentOSのページを見てインストールしました。

EPELをインストール

yum install epel-release

TDSをインストール

yum install freetds freetds-devel

alpha版を除くと20180528現在は1.08が最新でした。2016のだけど。

export TDS_FDW_VERSION="1.0.8"

PostgreSQLはバージョン9.6にしています。

export POSTGRES_VERSION="9.6"
wget https://github.com/tds-fdw/tds_fdw/archive/v${TDS_FDW_VERSION}.tar.gz -O tds_fdw-${TDS_FDW_VERSION}.tar.gz
tar -xvzf tds_fdw-${TDS_FDW_VERSION}.tar.gz
cd tds_fdw-${TDS_FDW_VERSION}
PATH=/usr/pgsql-{POSTGRES_VERSION}/bin:$PATH make USE_PGXS=1
sudo PATH=/usr/pgsql-{POSTGRES_VERSION}/bin:$PATH make USE_PGXS=1 install

\dxでインストールしたEXTENSIONを確認出来ます。

続いてpostgresの設定です。
psqlで作業します。

postgres=# create extension tds_fdw;
CREATE EXTENSION

servernameはsql serverがインストールされているサーバを適宜記載

postgres=# create server TDS_TestDB foreign data wrapper tds_fdw options (servername 'localhost', port '1433', database 'TestDB', tds_version '4.2', character_set 'UTF-8');
CREATE SERVER

grantする

postgres=# grant usage on foreign server TDS_TestDB to postgres;
GRANT

sql serverの情報を記載

postgres=# create user mapping for postgres server TDS_TestDB options (username 'sa', password 'password');
CREATE USER MAPPING

sql serverのほうはMicroSoftのページの情報でテーブルを作っているとするとPostgreSQL側では下記の指定になります。

create foreign table t1 (id integer, name VARCHAR(50), quantity integer) server TDS_TestDB options (table 'Inventory');


下記サイトを参考にしました。
tdsのインストール
https://github.com/tds-fdw/tds_fdw

PostgreSQLの設定
https://www.openscg.com/bigsql/docs/tds_fdw/

MicroSoft
https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-red-hat?view=sql-server-linux-2017

Excelでいくつか

Excelの基本的な話をいくつか

値の存在チェック

セルの値が指定範囲内の中に存在する場合に色を変えるということを
よくやります。
IT系の職場であれば常識的な作業ですが、新人など知らない子に教える機会があったのでまとめます。

B列の各値がD列に存在した場合に、、、
f:id:toshtone:20180502194234p:plain

このように色を変えます。
f:id:toshtone:20180502194251p:plain

B列のセルを選択して、書式ルールの編集をクリック。
f:id:toshtone:20180502194310p:plain

これも常識なとこですが復習として
$→絶対参照 $なし→相対参照

下記の書式を設定

=IF(MATCH($B2,$D$2:$D$6,0)>0,TRUE,FALSE)

まずMATCHを使って指定範囲内のどこに対象セルの値があるかチェックします。
引数3番目に0を指定することで対象セルに一致する値を返してくれるようになるので重要です。

MATCH($B2,$D$2:$D$6,0)

この値が0以上となるということは、対象セルに一致する値が存在するということになります。
今回はtrueであれば色をつけてあげれば完成です。
$B2というように行は相対参照にしないといけません。

罫線をショートカットキーで扱いたい

残念ながらないんですが、F4キーを使って繰り返しをさせることでそれに近いことが出来ます。

まず罫線をひく
f:id:toshtone:20180502203314p:plain

次に罫線をひきたいセルに移動
f:id:toshtone:20180502203325p:plain

F4キーを押すと罫線がひけています
f:id:toshtone:20180502203336p:plain

右のセル、左のセルへコピーするショートカットキー

このセルの値を
f:id:toshtone:20180502201210p:plain

右のセルにコピー
f:id:toshtone:20180502201225p:plain

下のセルにコピー
f:id:toshtone:20180502201233p:plain


それぞれCTRL+R、CTRL+Dでコピー出来ます。
でも上方向、左方向にコピーするショートカットは多分ありません。

矢印をピッタリ

こんなちょっと斜めな矢印は嫌です。
f:id:toshtone:20180502203825p:plain

altキーを使えば水平垂直も簡単。
f:id:toshtone:20180502203835p:plain

水平だけど、セルの真ん中に持っていきたい場合はもう一個位置調整用のオートシェイプ(四角とか)を用意
f:id:toshtone:20180502203844p:plain

四角もaltを押しながらだと枠線に合わせるモードになって、枠線に合わせて書けます。

矢印と四角を選択して配置を上下中央揃えにすると
f:id:toshtone:20180502203856p:plain

セルの中央に綺麗に配置が出来ました。
f:id:toshtone:20180502203905p:plain

CSS周りで初歩的で備忘録的なやつ

復習
#→id
.→class
全然触らないのでどっちがどっちだったか分からなくなります。

divでidを指定した場合の例

html側

    <div id="itiran">
・
・
        <table>
            <th>
            </th>
            <tr>
                <td>
                </td>
            </tr>
        </table>
    </div>

css

div#itiran table{
margin: 0px;
width:100%;
border:1px solid #BF3F00;
}
div#itiran table th{
~~~
}
div#itiran table tr{
~~~
}
div#itiran table tr td{
~~~
}


その他
div#itiran th a
→thの中のaタグの指定

リバースSSHポートフォワーディング

以下、自宅を会社と読み替えても差し支えありません。

f:id:toshtone:20180321232237j:plain

外出先のPCから自宅のwindowsリモートデスクトップしたい時があります。

VPNサーバたてて接続するとか色々手段があるんですが今回は
リバースSSHポートフォワーディングして実現したいと思います。

やることは2つです
・自宅のLinuxからVPSLinuxに向けてトンネル
・外出先PCからVPSLinuxに向けてトンネル

自宅のLinuxからVPSLinuxに向けてトンネルを掘る

自宅のWindowsIPアドレス:192.168.1.100
自宅のWindowsのRDP待受ポート:3389
VPSLinuxの転送ポート:13389
VPSドメイン名:vps.com
VPSSSH待受ポート:10022

ssh -N -R 13389:192.168.1.100:3389 vps.com -p 10022
外出先PCからVPSLinuxに向けてトンネルを掘る

TeratermSSHポート転送の設定をします。
ローカルのポートは何でもいいですが今回は50000としました。

ローカルのポート:50000 リッスン:無し
リモート側ホスト:vpn.com ポート:13389
リモート側ホスト:localhost ポート:13389
3/25 リモート側ホストの記載を修正しました


後はリモートデスクトップlocalhost:50000を指定すれば接続出来ます。

blog.devolutions.net

Linuxのor演算子とand演算子

or演算子

コマンド1 || コマンド2
コマンド1が失敗した場合コマンド2が実行される。

ls /var/test > /dev/null 2>&1 || echo "該当ディレクトリは存在しません"

and演算子

コマンド1 && コマンド2
コマンド1が成功した場合コマンド2が実行される。

ls /var/tmp > /dev/null 2>&1 && echo "該当ディレクトリは存在します"