2025/09/24 のものと同じ。
https://lsnl.jp/~ohsaki/lecture/netcompx/2025/#10-1
- 簡単なシェルスクリプトが書けるようになる
https://lsnl.jp/~ohsaki/lecture/netcompx/2025/priv/02.pdf
https://lsnl.jp/~ohsaki/lecture/netcompx/2025/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/2025/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/2025/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.
「レポート課題 2025/09/24」と同じ。
https://lsnl.jp/~ohsaki/lecture/netcompx/2025/#10-7
- Debianの実用的な使い方
すべての作業を Debian GNU/Linux 上で行うとよいでしょう。
OS が高速で、キーボードだけで操作できて、自由にカスタマイズできて、利用でき
るパッケージも豊富で、問題があっても治せるので、生産性が劇的に向上しますよ。
- パソコン本体のOSでコピーした内容をvm側のOS上のコマンドラインにペーストする方法は、自身で調べた限りSSH接続くらいだったのですが、他に良い方法はありますか?
ホストが Windows や macOS で、ゲストが Debain GNU/Linux の場合は、ゲスト上の
X11 アプリ (Emacs、rxvt 端末エミュレータ等) であれば、VirtualBox の Guest
Additions で実現可能だと思います (私自身は使っていません)。
- 今操作しているDebianはOSの一つで、OSではwebアプリなどを動かすためのwebサーバーを作ったりできる、という認識で合っていますでしょうか?合っているとするならば、チャレンジ課題にある、ターミナル上でパックマン互換のゲームをプレイせよ。などは、webサーバーを作れたことになるのでしょうか??それともただたんにアプリケーションを動かしただけでしょうか??
今はいろんなものがあるので、仕組みや概念が非常にややこしいですね。
Debian GNU/Linux は OS です。アプリケーションや Web サーバは、OS のユーザ空
間上で動作するソフトウェア (プログラム) です。
パックマン互換のゲームも OS のユーザ空間上で動作するソフトウェア (プログラム)
です。Web サーバは関係ありません。
ややこしいのは、例えば以下のようなパックマン互換のゲームは、Web ブラウザ上で
動作します。
Pacman Doodle - Google
https://www.google.co.jp/logos/2010/pacman10-i.html
パックマン無料ゲーム|PCで遊べるブラウザ版
https://game16.net/burage/act/html5-pacman/
これらのパックマン互換のゲームは、Web ブラウザ上で動作する JavaScript で書か
れたソフトウェア (プログラム) です。Web ブラウザは、OS のユーザ空間上で動作
するソフトウェア (プログラム) です。
したがって、Debian GNU/Linux 上で動作する Web ブラウザの上で動作するパックマ
ン互換のゲーム、という関係です。この場合も、実行時は Web サーバは関係ありま
せん (Web サーバは JavaScript のプログラムを取得するために使用しています)。
やっぱりややこしいですね。
- 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/2025/221012-tint.mp4
[<12. Debian GNU/Linux セットアップ〜パッケージ管理] [>14. X ウィンドウシステム & ウィンドウマネージャ]