Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シェル芸に目覚める前と後
Search
sickleaf
June 26, 2021
Technology
0
55
シェル芸に目覚める前と後
第54回シェル芸勉強会LT
sickleaf
June 26, 2021
Tweet
Share
More Decks by sickleaf
See All by sickleaf
20240512ジャンル指定クイズ
sickleaf
0
25
「○○するシェル芸ちゃん」の紹介
sickleaf
0
140
手順メモ(circle.ms、C97申し込み)
sickleaf
0
540
bashcms本で手を動かしてみた
sickleaf
0
850
技術書典4新刊宣伝LT_radiberry pi!
sickleaf
0
220
Other Decks in Technology
See All in Technology
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1.4k
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
Lambda Web Adapterについて自分なりに理解してみた
smt7174
5
140
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
240
SpringBoot x TestContainerで実現するポータブル自動結合テスト
demaecan
0
120
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
740
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.4k
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
6
600
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
130
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
0
330
KubeCon + CloudNativeCon Japan 2025 に行ってきた! & containerd の新機能紹介
honahuku
0
120
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Six Lessons from altMBA
skipperchong
28
3.9k
Fireside Chat
paigeccino
37
3.5k
It's Worth the Effort
3n
185
28k
Building an army of robots
kneath
306
45k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Transcript
シェル芸に目覚める前と後 ~raspberry piの環境構築にシェル芸を突っ込む~ 第54回シェル芸勉強会 LT 病葉(わくらば) @sickleaf3 1
もくじ ・何をした話? ・シェル芸に目覚める前/後の比較 ・実例(シェル芸の投入パターン) ・実機デモ ・最後に 2
何をした話? ・仕事はWordとExcel作業が中心、家ではLinuxを使ってラジオ環境の整備 ・ラジオ好きが高じて技術書を頒布/出版 ・初版執筆後に知ったシェル芸で培った知見を、今回の改版で出来る限り突っ込んだ 3
本の改版にシェル芸で得た知見を突っ込んだ話 シェル芸に触れた時期 大体2019年頃 2019年2月開催、「光明節シェル芸勉強会」の金スロット問題が強烈に印象に残ってい る 4
本の改版にシェル芸で得た知見を突っ込んだ話 どんな本? raspberry piでラジオ/音声ファイルを聴く環境を作るための構築手順をまとめた本 初版でもシェルスクリプトは使っていたが、シェル芸の観点では大きな差異 あり 5
シェル芸に目覚める前/後の比較 書籍の構成/シェル芸が占める割合(初版) 6
シェル芸に目覚める前/後の比較 書籍の構成/シェル芸が占める割合(第2版) 7
システム構成図 構築完了時のシステムイメージは以下の通り CUI上でのシェルスクリプト実行でも動作可能だが、より快適に利用するためにブラウ ザ画面を提供する(デモ動作) システムイメージ 8
シェル芸の投入パターン 既存の手順や新規手順追加にあたりシェル芸を投入した理由は、概ね以下の3パター ンのいずれか 1. 構築手順の設定値を確実に入力するため 2. テキストエディタの利用を回避するため 3. シェルスクリプトへの組み込み 9
シェル芸の投入パターン 1.構築手順の設定値を確実に入力するため 通常は usermod -G の後に、設定したいグループをカンマ区切りで空白を入れずに列挙 →ユーザを新規作成した後に、既存ユーザに準じた設定を行う場合は利用するべき //新規追加ユーザ(radipi)の所属グループ設定 sudo adduser
radipi groups pi | cut -d: -f2 | sed "s/ /,/g; s/^.//g" # piユーザが所属するグループを表示。 # pi,adm,dialout,.....となることを確認 sudo usermod -G $(groups pi | cut -d: -f2 | sed "s/ /,/g; s/^.//g") radipi # 矢印の↑を押して前回コマンドを再利用し、piユーザが所属するグループをradipiユーザに設定 10
シェル芸の投入パターン 2.テキストエディタの利用を回避するため 最近のツール(イメージ書き込み専用ツール、初期設定ウィザードなど)の提供によ り、Linux/Unix特有のエディタ操作が無くとも利用可能に →ターミナルでのコマンド実行を限度とした場合、必然的にシェル芸が登場 //SSH有効化(ポートは固有番号に変更) sudo sed -i 's/#Port
22/Port 23456/' /etc/ssh/sshd_config //cronログ有効化 sudo sed -i "/#cron/s;#;;g" /etc/rsyslog.conf //赤外線リモコンを動かす時の設定ファイル修正 sudo sed -i '$a dtoverlay=gpio-ir,gpio_pin=24' /boot/config.txt # config.txtを上書き、GPIO24を有効化 sudo sed -i '/driver/s;devinput;default;g' /etc/lirc/lirc_options.conf sudo sed -i '/device/s;auto;/dev/lirc0;g' /etc/lirc/lirc_options.conf # lirc_options.confを上書き 11
シェル芸の投入パターン 3.シェルスクリプトへの組み込み 音声再生・制御には基本的にシェルスクリプト経由で行うため、随所にシェル芸が登 場 12
実機デモ 画面イメージ 13
最後に 14