ようへい

2020年3月5日木曜日

Chrome への Tampermonkey とスクリプト導入方法

Greasemonkey からフォークした Tampermonkey の導入方法です。
Chrome 以外にも導入できますが、Firefox 版ではバグがあったりするので Chrome 版を使用します。

Chrome への拡張インストール

以下のリンクを Chrome で開き、Chrome に追加 ボタンをクリックしインストールします。
Tampermonkey - Chrome ウェブストア
https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

スクリプトの導入

例として、ヤフオク! での違反通報をサポートするスクリプトを導入してみます。
Tampermonkey がインストールされたブラウザで以下のリンクをクリックします。
ヤフオク! 違反通報
https://logroid.github.io/user-script/8209_violation_report.user.js インストール ボタンをクリックしてインストールします。 以下のページの内容が動作することを確認します。 [Tampermonkey] ヤフオク! 違反通報をサポートするスクリプトを作りました [転売ヤー昇天]
期待通りに動いていればOK

スクリプトの更新

Tampermonkey のデフォルト設定では、1日に1度チェックされて自動更新されます。
しかし、強制的に更新したい場合は、Chrome のツールバーの Tampermonkey アイコンをクリックして、UserScript の更新を確認 をクリックすることで更新できます。
関連記事

2020年2月20日木曜日

bash スクリプトでよく使うコマンドまとめ

スクリプトを動的に作る

$ cat <<'EOF' >/tmp/hogehoge.rb
xxx
EOF
あまり使わないけど、docker で自動的に環境構築するときとか、シェルからはできないような操作をする際に使ったり。

echo で色つけて出力

色・装飾つき echo コマンドメーカー

sed で置換

$ sed -i -e 's;fuga;bar;' \
    -e '/^hoge/s/=false/=true/' \
    /tmp/hoge.conf
sed の正規表現で気を付けるのは、-e 's;h+;HOGE;' と書いてしまうとダメ。
拡張正規表現を使うためには、対象のメタキャラクタをエスケープする。-e 's;h\+;HOGE;' という感じ。
よくハマる。

grep で抽出

$ echo "hoge=fuga" | grep -o "fuga"
fuga
これでもいいのだが、Perl の正規表現を使うようにして
$ echo "hoge=fuga" | grep -Po "=\K(fuga)"
こんな感じで使うほうが好き。

大量のファイルに何かをする

$ find <検索条件> -print0 | xargs -0i sh -c "echo {}; basename {}"
ポイントとしては、-print0 で null 区切りにすること。
こうすることで、ファイルパスに含まれる空白などが悪さをしなくなり xargs が正しく処理できる。
なお、-exec は制限あるので極力使わない。

ls の日付フォーマットを変更

$ ls -l --time-style=+%Y-%m-%d\ %H:%M:%S
加工するときとかに使う。

バイナリファイルのダンプ

$ od -tx1z <ファイルパス>
ファイルの中に制御文字入ってないかとか見るときに使ったり。

指定サイズのデータ作成

ランダムデータ
$ dd if=/dev/urandom of=random_data bs=1073741824 count=4
ddは2GB以上のブロックサイズを指定できないため、4GBを作る場合は1GBx4等で対処する
固定データ
$ printf "%01048576d" > 1MB.txt
0で埋まったファイルが作られる。

あるファイルが、どの rpm によりインストールされたか調べる

$ rpm -qf <ファイルパス>

rpm の中身を見る

未インストールの rpm
$ rpm -pql <rpmファイルパス>
インストール済みの rpm
$ rpm -ql <rpm名>
関連記事

色・装飾つき echo コマンドメーカー

シェルを書いてると、エラーや大切なメッセージを色や装飾つきで表示したくなることありますよね。
そんなとき、面倒な色のコードや、テキスト装飾の属性を調べるのが面倒だったのでつくりました。
色は 16bit カラーに限定しています。
点滅はブラウザが非対応なのでプレビューで意図的に再現してません。また、ほかにも装飾があったり色があったりしますが、省略しています。
必要な方はググってください。
なお、Macのターミナルの場合は、echo -e $'xxxx'のように、クォートの前に$を入れないと色が付きません。
Macターミナル対応
$ {{ echoCommand() }}
{{ echoText }}
コマンドをコピー
クリア
関連記事

2020年1月14日火曜日

Git で毎回 SSH パスワードを入力しなくていいようにする

セキュリティ考えてる人は SSH キーにパスワードを設定してると思いますが、この場合 git コマンドを打つたびにパスワードを聞かれるのが厄介。
これを解消します。
test -f ~/.bashrc && . ~/.bashrc
# Setup ssh-agent
if [ -f ~/.ssh-agent ]; then
    . ~/.ssh-agent
fi
if [ -z "$SSH_AGENT_PID" ] || ! kill -0 $SSH_AGENT_PID; then
    ssh-agent > ~/.ssh-agent
    . ~/.ssh-agent
fi
ssh-add -l >& /dev/null || ssh-add
~/.ssh-agent に ssh-agent の実行に必要な情報を書いておき、それを使い回す。
最後の行で、読み込まれた認証情報があるか確認し、なければ ssh-add する。
ssh キーがデフォルトのパス(~/.ssh/id_rsa) 以外にある場合は、
ssh-add -l >& /dev/null || ssh-add /path/to/id_rsa
のようにすればいいはず。 次回ログイン時にパスワードを聞かれますが、以後は ssh-agent がいい感じにやってくれると思います。
たぶん Linux でも Git for Windows の Git Bash でも同じはず。
Windows のコマンドプロンプトとかから使いたい場合は、
  1. puttygen で、Conversions -> Save private key で変換
  2. pageant に変換したキーファイルを読み込ませて起動
    pagent.exe ~\.ssh\id_rsa.ppk
  3. 環境変数 GIT_SSH に plink.exe のパスを設定
でいいはず。
関連記事

2020年1月8日水曜日

Windows で plink を使用して ssh 接続する際、 Store key in cache? (y/n) でタイプできなくなった場合の対処法

Windows で plink を使用し、GitHub に ssh 接続しようとしたのだが、
$ git fetch                                                    
The server's host key is not cached in the registry. You       
have no guarantee that the server is the computer you          
think it is.                                                   
The server's rsa2 key fingerprint is:                          
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx   
If you trust this host, enter "y" to add the key to            
PuTTY's cache and carry on connecting.                         
If you want to carry on connecting just once, without          
adding the key to the cache, enter "n".                        
If you do not trust this host, press Return to abandon the     
connection.                                                    
Store key in cache? (y/n)                                      
y とタイプしたいのに入力できない。
この場合、puttyjp.exe を起動し、接続することで対応できる。
GitHub なら github.com と入力し、開く をクリック。
あとはキーを store するか聞かれるので Yes をクリックすれば store できます。
次回からはターミナルで操作できます。
関連記事