ご報告
職業は今は無職です.
退職しました
退職と進学エントリの組み合わせですがペラッペラな薄さ.
新卒で入った会社を今年の2月末に辞めました. 半年は研修や実習だったので実質ほんの少しか働いていないっすね. 文字に起こすとなかなかにキマっていますね.
社名等はこれを読むような人はなんやかんや知っていると思うので 書きません.
こっからどうするの
今年の4月から大学の博士後期課程に行きます. 修士の時と変わらない研究室で研究です. おらっ,D進したぞ.
お金はアレやコレでどうにかする.したい.
最後に
理由やら何やらはここに書くよりも 別のところで. どこかのサークルの本とか. 食事とかの場で.
プレゼントや何やらはAmazonとKyashまで.
Kyash
ID: takion0
シェル芸勉強会に参加しました
シェル芸勉強会に参加しました
2018/09/01に開催された
jus共催 第37回シェル芸bot生きてるかどうか分からないけどシェル芸bot向けシェル芸勉強会
に午前・午後の両方とも参加しました.
問題はこちら
午前
午前中は 鳥海さん による シェルで文字コードに触れてみるその2 でした. スライドは こちら.
内容は 前回 から続くものであり,
シェル上で様々な文字コードを行ったり来たりするものでした.
具体的には,xxd
コマンドを用いて文字コードを取得し,iconv
コマンドで別のコードへと変換する.
といったことを UTF-8, ASCII, EBCDIC, ISO/IEC 646, EUC
などを対象に行いました.
わかってしまう人にはわかってしまう内容であり,実際に会場に来ていた人からはスライドが変わるたびに ため息や納得するような声が上がっていました.
午後
午後の問題は シェル芸BOT映え な問題が多数出題されました. ゴリゴリとパズル的に文字を配置していくタイプの問題ですね. 問題を解いていく中で,
sed
のt
コマンドawk
中でパイプを使っても良い
は,新しく知れて良かったです.
これで,b
コマンドで無限ループさせて
head
コマンド等で必要な分だけ取る
以外の手法を取ることができるようになりました.
自分のために書いておくところ
鳥海さんがゴリゴリ書いていた EBCDIC
のコード表を出すワンライナー
for((i=4;i<16;i++));do printf '\t%02X' $(( i*16));done;echo;for((j=0;j<16;j++));do printf '%02X' $j;for((i=4;i<16;i++));do printf '\t';printf '%02X' $((i*16+j))|xxd -p -r|iconv -f ebcdic-jp-e -t utf8 -c;done;echo;done
整形
# 列アドレスを出す for ((i = 4; i < 16; i++)); do printf '\t%02X' $((i * 16)) done echo for ((j = 0; j < 16; j++)); do # 行アドレスを出す printf '%02X' $j # アドレスに対応する ebcdic-jp-e の文字を出す for ((i = 4; i < 16; i++)); do printf '\t' printf '%02X' $((i * 16 + j)) | xxd -p -r | iconv -f ebcdic-jp-e -t utf8 -c done echo done
鳥海さんが書いていった順番を思い出しながら書く
- 列アドレスを出す
for((i=4;i<16;i++)); do printf '\t%02X' $((i*16));done; echo
- 行アドレスを出す
for((i=4;i<16;i++)); do printf '\t%02X' $((i*16));done; echo; for((j=0;j<16;j++)); do printf '%02X' $j;echo; done
- 行・列に対応した値を出す
for((i=4;i<16;i++)); do printf '\t%02X' $((i*16));done; echo; for((j=0;j<16;j++)); do printf '%02X' $j;for((k=4;k<16;k++)); do printf '\t'; printf '%02X' $((k * 16 + j)); done; echo; done
- 対応した値を
EBCDIC
の値に直して出力する
for((i=4;i<16;i++)); do printf '\t%02X' $((i*16));done; echo; for((j=0;j<16;j++)); do printf '%02X' $j;for((k=4;k<16;k++)); do printf '\t'; printf '%02X' $((k * 16 + j)) | xxd -p -r | iconv -f ebcdic-jp-e -t utf-8 -c; done; echo; done
ぬるシェルなのかな?
ebanさんの書いたワンライナーを自分なりに解釈
zsh -c 'hex=({0..9} {A..F});echo ${^hex}${^hex}' | xargs -n16#シェル芸
— eban (@eban) 2018年9月1日
setopt braceccl
をつけると思ったとおりに動いた.
zsh -c 'setopt braceccl ;r=({0-9} {A-F});c=({0-9} {A-F});echo ${^r}${^c}' | xargs -n16
参考文献・リンク
Subversionでファイルのロックを一括解除する
前提
- 全てのロックを解除して良いと認識している
LANG=ja_JP.UTF-8
である/var/svn/repo
にリポジトリがある- root 権限を持つ
実行
実際に使用する際には /var/svn/repo
を適時読み替える.
LANG=C
の場合は grep "パス"
を grep "Path"
にすれば
多分うまくいく.
svnadmin lslocks /var/svn/repo | grep "パス" | sed "s/^[^:]*://g" | xargs -I@ echo "svnadmin rmlocks /var/svn/repo @" | bash
説明
ロックされているファイルの一覧を取得
svnadmin lslocks /var/svn/repo
その中のパスが書かれている行を取得
svnadmin lslocks /var/svn/repo | grep "パス"
先頭からコロンまでの文字を削除すると実際のパスが取れる.
svnadmin lslocks /var/svn/repo | grep "パス" | sed "s/^[^:]*://g"
xargs の -I オプションを使って svnadmin rmlocks に削除したいファイルのパスを渡す.
echo
を一度挟むのはうっかりがあるかもしれないから.
svnadmin lslocks /var/svn/repo | grep "パス" | sed "s/^[^:]*://g" | xargs -I@ echo "svnadmin rmlocks /var/svn/repo @"
出力を見て,大丈夫そうだったら bash
に投げてロックを解除する.
svnadmin lslocks /var/svn/repo | grep "パス" | sed "s/^[^:]*://g" | xargs -I@ echo "svnadmin rmlocks /var/svn/repo @" | bash
ちなみに,確認とかいらないよ.って時はこっち
svnadmin lslocks /var/svn/repo | grep "パス" | sed "s/^[^:]*://g" | xargs -I@ svnadmin rmlocks /var/svn/repo @
終わり.
某クラウドにサーバ借りたので初期設定した
はじめてのクラウドサーバ
- CentOS 7.5
- 1GB 仮想1コア
- 100GB 標準プラン
初期設定
# yun upgrade -y # adduser にゃーんユーザ # passwd にゃーんユーザ # usermod -G wheel にゃーんユーザ # mkdir -p /home/にゃーんユーザ/.ssh # cp .ssh/authorized_keys /home/にゃーんユーザ/.ssh/ # chmod 600 /home/にゃーんユーザ/.ssh/authorized_keys # chmod 700 /home/にゃーんユーザ/.ssh # chown -R /home/にゃーん/.ssh にゃーんユーザ:にゃーんユーザ # echo "にゃーんポート" >> /etc/ssh/sshd_config # systemctl restart sshd # cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ # sed -i "s/port=\"22\"/port=\"にゃーんポート\"/" /etc/firewalld/services/ssh.xml # firewall-cmd --reload
これをやっておいてローカルの ~/.ssh/config
に以下を追記した.
Host sakura User にゃーんユーザ hostname に.ゃ.ー.ん port にゃーんポート IdentityFile どこかにある例のファイル
systemctl
や firewalld
が微妙に分からなかったのは秘密.
にゃーんがゲシュタルト崩壊しているけれどもあんまり関係ない.
何をするかは実は決まっていない.