2K Views
May 26, 23
スライド概要
授業用の解説スライド
シェル引きこもりが教えるシェル入門
まずは基礎知識から
シェルとは シェル カーネル User コマンド システムコール 戻り値 出力 シェル カーネル User シェルからコマンドを呼び出し、そのコマンドがシステムコールを呼び出している。 (厳密には出力先はファイルなのですが、あまりにも沼なので割愛します。)
カーネル? カーネルには 近い部分の処理を代行する ハードウェアを効率よく利用できるように調整する などの役割がある。
システムコール? ハードウェアとの低レベルのやり取りを仲介する役割を持っている。 これによりハードウェアの違いを気にせず同じプログラムを動かせる。
ここまでのまとめ シェルはコマンドを呼び出している そのコマンドはシステムコールを呼び出している システムコールによりプログラムはハードウェアの機能を安全かつ便利に使うこ とができる
ネタコマンドの世界
この世にはネタコマンドを作る謎の勢力が存在する Typo系 ls og など 文字列生成系 ojosama AA系 cowsay ojichat mamadm fortune
実演 fortune | cowsay -f tux | lolcat -a -d 1 --freq=0.5 yes | head -n 4 | tr -d \\nyes 'paste <(echo -e "[ \e[32mOK\e[m ]") <(ojichat ラズパイ | cut -b 1-60)' | head -n 100 | bash curl "wttr.in/Kofu?format=3&m" | cowsay -f tux | lolcat --freq=0.5 curl "wttr.in/Kofu" | lolcat
もちろん実用的なコマンドもある TUI系 lazygit lazydocker bottom gtop ユーティリティ系 teip (ちなみにこれも ojichat や mamadm の作者と同一です) sed rg fzf cat 19YAMANA.csv | sed "s/,/ /g" | teip -f 8 -- grep 丹波山村 スクリプト系 cotowali シェルスクリプトをより書きやすくしたスクリプト言語
目指せシェル芸人
シェル芸という技術がある 一つのコマンドに大量の魔術(コマンド)を詰め込み、コマンド一発で作業を終わら せたり 面白い画像や文字を生成したり シンプルなコマンドを難読化(読みづらく)したりなど 様々な処理をコマンドで済ませる技術
専用のBotまで存在する
面白いと思った投稿を紹介
https://twitter.com/akira__okumura/status/1661523734786875392
https://twitter.com/y_kato222/status/1660222955560001537
muscular shout 正弦波泳法 -p front-relax \
|tee >(cat) >(cat) >(cat) >(cat) \
|tee >(cat) >(cat) >(cat) >(cat) \
|awk '{PI=4*atan2(1,1);for(i=0;i<(sin(NR/25*PI*2)+1)*5;i++){printf " "}{print $0}}' \
|textimg -asl25
ボディビルダーが泳ぐシェル芸
まとめ シェルはユーザーとOSの仲介をしてくれる この世には変なコマンドを作る人がいる シェル芸という技術がある