2024/09/25 のものと同じ。
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/#10-1
- 簡単なシェルスクリプトが書けるようになる
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/priv/02.pdf
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/03-session.html
/usr/bin ディレクトリに格納されているファイルの一覧を list というファイルに保存せよ。
/usr/bin ディレクトリに格納されているファイルのうち、 m で始まるファイルの一覧を list-m というファイルに保存せよ。
コマンド行で指定したディレクトリに格納されているファイルのうち、 ファイルサイズが最大のもののサイズとファイル名を表示するシェルスクリプトを作成せよ。
コマンド行で指定した地域の、 今晩の天気予報を Web から取得し、 標準出力に表示するシェルスクリプトを作成せよ。
> ls /usr/bin >list
保存できているかの確認:
> head list
2to3-2.7
411toppm
7z
7za
7zr
CuraEngine
GET
HEAD
HTMLLinker
JxrDecApp
> ls /usr/bin | grep '^m' >list-m
保存できているかの確認:
> head list-m
m17n-db
m4
macptopbm
madplay
mag
mail
mail.mailutils
mailq
mailx
make
プログラムの例
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/03-findmax.sh
実行例:
> chmod +x 03-findmax.sh
> ./03-findmax.sh /usr/bin
+ dir=/usr/bin
+ shift
+ ls -l /usr/bin
+ awk { print $5, $9 }
+ sort -rn
+ head -1
53756024 docker
プログラムの例
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/03-weather.sh
実行例:
> chmod +x 03-weather.sh
> ./03-weather.sh sanda
+ area=sanda
+ shift
+ id=1de45589c3ffdf7ec3f72a09d94465bc89b562c10fdb719edc5140c935828285
+ lynx --dump https://weather.com/weather/tenday/l/1de45589c3ffdf7ec3f72a09d94465bc89b562c10fdb719edc5140c935828285
+ sed -n /^To\(night\|day\)/,/ mph/p
Today
78°/61°
Partly Cloudy
4%
N 12 mph
> ./03-weather.sh nisinomiya
+ area=nisinomiya
+ shift
+ id=0b564079717caa709f3a11a530951a66926be8f8f0227b6c2ccf18cd9da20f2d
+ lynx --dump https://weather.com/weather/tenday/l/0b564079717caa709f3a11a530951a66926be8f8f0227b6c2ccf18cd9da20f2d
+ sed -n /^To\(night\|day\)/,/ mph/p
Today
81°/67°
Mostly Sunny
2%
N 12 mph
(UNIX に限りませんが) オンラインドキュメントではなく、 書籍で知識を吸収することをおすすめします。 以下の本は特におすすめです。 特に上の 2 冊 (カーニハンとレイモンドの本) は「UNIX の哲学」を学ぶことができます。
- Brian W. Kernighan, Rob Pike, ``UNIXプログラミング環境,'' KADOKAWA, 2017.
- Eric S. Raymond, ``The Art of UNIX Programming,'' KADOKAWA, 2019.
- Shelley Powers, Tim O'Reilly, Jerry Peek, Mike Loukides, ``UNIX パワーツール,'' オライリージャパン, 2003.
「レポート課題 2024/09/25」と同じ。
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/#10-7
- apt-cache search tetris を実行し、どのようなパッケージが存在するか見てみよ。
- ターミナル上でテトリス互換のゲームをプレイせよ。
- apt-cache search pacman を実行し、どのようなパッケージが存在するか見てみよ。
- ターミナル上でパックマン互換のゲームをプレイせよ。
- man ls を実行し、ls コマンドにどんなオプションがあるか見てみよ。
- ls(1) (ls コマンドの man ページ) 中に単語 color が何回登場するかを数えよ。
- /usr/bin 以下のコマンドのうち、Python のスクリプトであるもののコマンド名を列挙せよ。
- 現在の日経平均を表示する nikkei コマンドを作成せよ。
- fish のプロンプトを自分好みにカスタマイズせよ。
GNU/Linux のターミナル上で実行できるテトリス互換ゲームを探し、 ソースコードに手を入れて、 既存のゲームを自分流に改造して楽しむ様子を収録したビデオです。
221012-tint.mp4 (01:03:59, 184 kb/s)
https://lsnl.jp/video/netcompx/2024/221012-tint.mp4
- 実況ビデオ 「テトリス互換ゲームを探して改造して遊んでみた」を見ながら自分も同じようにやってみようと思い、tintをインストールするところまではできたのですが、そのあとのパスを通すという部分がよくわからず、tintを立ち上げることができなかったのでパスを通すということについて説明をしていただきたいです。また、cd /usr/games/lsとするとtint*と表示されファイルを開く方法が分からず、手詰まってしまったのでこの場合のファイルの開き方も教えてほしいです。
環境変数 PATH については以下を見てください。
1.5 シェルプロンプト
https://www.debian.org/doc/manuals/debian-reference/ch01.ja.html#_the_simple_shell_command
fish の場合は ~/.config/fish/config.fish 中で
set -x PATH /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin /usr/games
のように設定するのが一つの方法です。
- いつでもどこでも般若心経を唱えることができるシェルスクリプトを添付します。簡単なものですがシェルスクリプトの勉強と徳を積むことに活用してください
以下に置きました。
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/priv/hannya.sh
[<12. Debian GNU/Linux セットアップ〜パッケージ管理] [>14. X ウィンドウシステム & ウィンドウマネージャ]