くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

Linuxでsetxkbmapが効かない(ように見えた)件

.xinitrcsetxkbmap -layout jp って書いても全然効かないということがあったんですが…

f:id:kunst1080:20180102140856p:plain

犯人はfcitxちゃんでした。

無情。

「忘年会議2017」でLTしてきました。

一つ前の記事の続きです。

www.kunst1080.net

懇親会(忘年会議)

「合同勉強会 in 大都会岡山 -2017 Winter-」の懇親会として 忘年会議2017 - connpass というイベントがあり、そちらでもLTをさせていただきました。

発表内容

『2017年のふりかえり』と称してAqoursの2017年を振り返りました。

www.slideshare.net

※公開のため一部スライドを差し替えています

まとめ

????「なんやかんや言って、ラブライブ!の話したいだけでしょ?」

ぼく「そうだよ!!!!」

「合同勉強会 in 大都会岡山 -2017 Winter-」でシェル芸勉強会をしてきました。

2017/12/23(土)に岡山で行われた「合同勉強会 in 大都会岡山 -2017 Winter-」にて、県外ゲスト枠としてシェル芸のセッション(20分)をしてきました。

gbdaitokai.connpass.com

togetter.com

www.slideshare.net

セッションの様子

今回は岡山の合同勉強会ということもあり、シェル芸人らしき人がまったくいない中のセッションとなりました。

冒頭でアンケートを取ったのですが、参加者約80名のうち「シェル芸」という単語を知っている人がそもそも1/3程度という状況…… が! 解けてる方も数名いらっしゃって、岡山のパワーを感じました。

出題中はみなさん非常に集中されてる様子で、真剣さが伝わってきてました。

開始前は無茶苦茶緊張していたのですが、無事に盛り上がっていただけて安心しました。ありがとうございました!

問題と解答例

スライドにも書いてありますが、ブログの方にも書き写しておきます。よろしければ練習にお使い下さい。

問1: シェル上で計算

問題

次の数字の列を、足し算してください。

$ echo 2 5 9 8 1 3 7 4
2 5 9 8 1 3 7 4

解答例

$ echo 2 5 9 8 1 3 7 4 | tr ' ' '+' | bc
$ echo 2 5 9 8 1 3 7 4 | awk '{for(i=1;i<=NF;i++){a+=$i}}END{print a}'
$ echo 2 5 9 8 1 3 7 4 | tr ' ' '\n' | awk '{a+=$1}END{print a}'

問2: 文字列の変換

問題

「pen-pineapple-apple-pen」を「PenPineappleApplePen」に変換して下さい。

$ echo pen-pineapple-apple-pen
pen-pineapple-apple-pen

解答例

$ echo pen-pineapple-apple-pen | sed -r 's/(^|-)(.)/\U\2/g'
$ echo pen-pineapple-apple-pen | tr '-' '\n' | while read L; do echo -n ${L^}; done; echo

問3: 「大都会岡山へようこそ」問題

問題

$ echo 大都会岡山へようこそ

から、以下のような出力を生成してください。

大都会岡山へようこそ
都会岡山へようこそ大
会岡山へようこそ大都
岡山へようこそ大都会
山へようこそ大都会岡
へようこそ大都会岡山
ようこそ大都会岡山へ
うこそ大都会岡山へよ
こそ大都会岡山へよう
そ大都会岡山へようこ

解答例

$ echo 大都会岡山へようこそ | sed 's/.*/&&&&&&&&&&&/g' | sed -r 's/(.{10})./\1\n/g'
$ echo 大都会岡山へようこそ | sed -r ':a;p;s/(.)(.*)/\2\1/;/^そ/!ba'
$ echo 大都会岡山へようこそ | perl -nle 'print "$_$_\n"x10' | awk '$0=substr($0,NR,10)'

まとめ

  • 岡山の方へ
    • シェル芸勉強会はフルリモートで参加できますので、ぜひ気軽に参加してみてください。
    • 初参加なのにもかかわらず1問でも解けるのは凄いので自慢しまくってください!
  • ハンズオン形式や、Twitterを活用して双方向になるような感じは、やはり新鮮さがあるようです。他の勉強会でもそういうのが増えてくると楽しいかもですねっ!

えっ!? ちょっ!? まじすか……

fcitxで「正しくfcitxに接続できません。」エラーが発生したときの対応

環境

  • ASUS Chromebook Flip C100PA のcrouton環境

現象

  • fcitx-diagnose すると出力結果の中に「正しくfcitxに接続できません。」というメッセージが含まれる。
  • fcitxを起動しようとしても Connection Error が出て起動できない。

原因

dbus-launch コマンドがないことが原因っぽい。

対応

dbus-lanch コマンドをインストールする。 (パッケージは dbus-x11 )

$ sudo apt install dbus-x11

参考URL

rxvt-unicodeでシェルをログイシェルとして起動する方法

環境

  • ASUS Chromebook Flip C100PA のcrouton環境
$ uname -a
Linux localhost 3.14.0 #1 SMP PREEMPT Tue Oct 31 22:00:25 PDT 2017 armv7l armv7l armv7l GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

設定

デフォルトの状態ではurxvtはログインシェルとして起動せず、 .profile.bash_profile が読まれない。 ~/.Xdefault に設定を記述することにより、ログインシェルとしてターミナルを起動することができる。

~/.Xdefault

urxvt*loginShell:  true

いじょ。

参考URL

rxvt-unicodeでシェルをログイシェルとして起動する方法

環境

  • ASUS Chromebook Flip C100PA のcrouton環境
$ uname -a
Linux localhost 3.14.0 #1 SMP PREEMPT Tue Oct 31 22:00:25 PDT 2017 armv7l armv7l armv7l GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

設定

デフォルトの状態ではurxvtはログインシェルとして起動せず、 .profile.bash_profile が読まれない。 ~/.Xdefault に設定を記述することにより、ログインシェルとしてターミナルを起動することができる。

~/.Xdefault

urxvt*loginShell:  true

いじょ。

参考URL

標準出力を他のターミナルに繋げて遊ぼう

複数のターミナルを開き、tyyを接続して遊びましょう。

あそんだ環境

  • WSL(Ubuntu 16.04.2)

遊ぼう!

※スクリーンショットを撮りやすくするためにtmuxを使っていますが、別ウィンドウにしてもちゃんと遊べます。

1. それぞれのttyの確認

$ tty

f:id:kunst1080:20171101233000p:plain

使用しているttyは

  • 左側: /dev/pts/0
  • 右側: /dev/pts/1

ですねっ♪

2. 左側のターミナルの標準出力を右側のターミナルに接続

$ exec 1> /dev/pts/1

3. なんかコマンド叩いてみます。

$ toilet UNKO

f:id:kunst1080:20171101233017p:plain

流します。

$ clear

f:id:kunst1080:20171101233028p:plain

楽しいですね!(o・∇・o)

終わりだよ~