Sl (UNIX)

slはUnix系オペレーティングシステム (OS) のコマンドの一つ。コンソール画面をアスキーアートで描かれた蒸気機関車 (SL) が走り抜ける。

 概要 
Unix系OSにおいて、ls は最もよく使われるコマンドであるが、lsコマンドを実行しようとしてslとミスタイプすることがしばしばある。そのような場合、コンピュータは「sl」という存在しないコマンドを求めてシステムを全検索してしまい、70年代から80年代当時の処理能力の遅いコンピュータではそれにしばらく時間がかかり、作業が中断してしまうことがあった。そこでそれを防ぐため、「sl」と言う名のダミーのプログラムを用意することがあった。

このslも、そういったダミープログラムの一つであるといえるが、ミスタイプによってロスする時間（現代においては殆ど一瞬である）よりも、SLが走り抜けるのを待っている時間のほうが長いなど、ジョークプログラムとしての性格が強い。

Ctrl+Cでも停止できず、延々とSLが走っている姿を見させられるため、嫌がらせに近いと評価する者もいるが、オリジナルである小野版slは(少なくとも表向きには)キータイプ矯正が目的のプログラムであったし、また後述の現在配布されているsl実装の作者である豊田も、学生時代本ソフトのマニュアルにおいて「高度に発展した、キータイプ矯正を目的とするアニメーションプログラムである」と主張している。

 歴史 
UNIXに慣れたソフトウェア開発者達が、GCOS上のディレクトリリスティング・コマンド dir の別名として ls を定義して利用していたが、当時の端末が半二重だった上にコマンド入力のたびにシェルがディスクをスキャンし直して遅いため、コマンド名を sl と打ち間違えるたびにこの開発者のうちの一人である畠山明は苛々してキーボードを鳴らしていた。
この音がうるさいため畠山のタイピングを矯正する目的で GCOS 上で小野哲男により開発されたのが最初の sl の実装である最初の実装の動機に関するツイート。
やがて畠山・小野と同じ会社に所属していた鏡沼和友が、UNIX 上で動作し VT100 のエスケープシーケンスに依存するバージョンを awk で実装した最初のUNIX版に関するツイート。
さらに同じ会社に所属していた歌代和正が、端末に依存しない C言語版を実装し、これを1987年にニュースグループのfj.sourcesに投稿したことで世に広まったslコマンド (歌代のblog)。以来、「作者不明」として流布し、さまざまな改変バージョンが製作された。現在Linuxなど各種Unix系OSのディストリビューション用として公式に採用されているものは、当時東京工業大学の学生であった豊田正史（現・東京大学生産技術研究所教授）が実装し1993年11月2日にfj.sourcesに投稿された、それ以前のものよりも派手な見栄えのバージョンの系列である豊田本人による fj.sources への投稿に対する言及。

豊田のバージョンは1990年代後半から2000年代前半においてはPlamo Linux 2.1などの多くのメジャーなディストリビューションにも搭載され、多くのファンを獲得したが、2000年代におけるKDEやGNOMEなどに代表されるUnix系OSのGUIデスクトップ環境のめざましい発展と、その結果として起こったCUI環境における冗長プログラムの軽視の風潮を受け、2000年代後半以降は同じくCUI環境における冗長プログラムであるfortune（金言名句を表示するコマンド）などと共に、コマンドライン環境を使いこなせない者にとっては「既に過去のソフトとなってしまっている」という声もある。しかし、現在でもDebianなどいくつかのUnix系フリーOSにおいては標準のパッケージとして含まれている。

ジョークプログラムとしてslコマンドを愛好する人々も存在する。Firefoxのアドオンの一つであるVimperator上にも、Firefoxの機能をフルに使ったド派手な演出を設けたslが実装されている。

尚、2013年5月5日に豊田本人によってソースコードがGitHubに設置されたGitHub - mtoyoda/sl 尚、Issue #2にて汽笛の音を追加できないかという質問に対し、豊田は移植可能な実装方法を知らないということと、自由に使える音源を見つけられなかったと回答している。

 オプション 
文字説明-l細長いSLが走る-a車内の客が「HELP!」と叫んでいる-F空（画面の上のほう）へ飛んでゆく

これらはlsでよく使われるオプションを真似たものである。lsにおいて、-lはファイルの詳細を表示する、-aはファイル名が.で始まる隠しファイルを表示する、-Fはファイルの性質を表示に付加するオプションである。

 改造作品 
プログラムの性質上、重いほどキータイプ矯正力が強い（本来の目的が果たせる）とされ、その方向性での改造作品（改造パッチ）もいくつか作られている。以下がその例である。
 客車の数が増える。客車には何両目であるかが記されている。客車数をランダムに決定する機能を持たせたものもある。
 踏切が追加される。踏切では、列車通過の前後に遮断機の昇降演出が入る。
 列車が往復する。踏切付きの場合は、一度遮断機が上がりかけた後で再び遮断機が下りるという演出が入っている。

 関連項目 
 oneko - 猫がマウスカーソルを追いかける、Unix系OS定番のジョークプログラム。
 fortune - おみくじのように名言や迷言を表示する、Unix系OS定番のジョークプログラム。
 xroach - ウインドウの下に無数のゴキブリが隠れてウインドウを動かしたり消すと画面中をゴキブリが走り回る、ジョークというよりハラスメントプログラム。ローカルログイン権限がなくてもX11のポートが解放されていると、リモートで実行できる。

 脚注 

 外部リンク 
 豊田正史とslコマンド　東京大学生産技術研究所戦略情報融合国際研究センター　豊田正史准教授のサイト
 SL改造計画

Category:UNIXのソフトウェア