みんながコマンド打ってる黒い画面てどこよ?
楽しい土曜出勤にてIDST(うちの健診システム)のデータ出力ロジックを作ってます(USPさんがね!)。
USPさんは、shell scripters集団で、shellとテキストで動作するパーソナルコンピュータをネットワーク上で連携させることをやってるシステムやさんです。
私はふつーの保健の先生なので、プログラムとかはわからないのですが、せっかくSFCライフクラウド研究コンソーシアムのメンバーになったので、2013年はシェルプログラミングshell programmingをやってみよー、と思っているのでした。
さて、shellってなーに?という話ですが、、、
ユーザの操作を受け付けて、与えられた指示をOSの中核部分に伝えるソフトウェアの総称だそうです。私は「macのms-dosみたいなもん(よくわかんないけど黒い画面)」と思っていましたが、Windowsではコマンドプロンプトが、UNIX系OSではbash(ばっしゅ)やcsh(しーしぇる)などがshellに該当するそうです。いっぱい種類あるんだね。
OSと会話できるソフトがshellで、共通言語がshell scriptってことなのかな。
OSの中で仕事してくれる中心人物は、カーネルKernel(私的にケンタッキーのっておじさんのイメージ)で、その人が、アプリケーションとハードウェアレベルでの実際のデータ処理を担当してくれているようです。
普通、おじさん?に仕事を頼めばいいだけかなぁ、とユーザ的には思うのですが、世の中のオタ(=UNIX技術者)はカーネルを作っている人たちもいて、表面的なソフトだけ使っている一般ユーザとしては、なかなか感慨深いものがあります。
UNIXっていうのは、OSの種類で、ほそかわたつみ氏のデーモン君が懐かしいFreeBSDや、UNIXライクなOSのLinux(リナックス)とかも実質同じ。
だけど、商標登録の関係で、UNIXの標準的なAPI(Application Programming Interface;ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様)などを定めた仕様であるPOSIXの要件を満たしていても、UNIXと混同して扱うのはだめなんだって。とーなか氏より。
さて、今日はshellを打ち込む黒い画面はどーやって出すか、というはじめの一歩を学んでみます。
アプリケーションからのー、ユーティリティからのー、ターミナル。これです。
gyazz.com/upload/2eba0061333c65470336d862d741023a.png
gyazz.com/upload/e6055f40ddf169f7211d1190d0d10add.png
あれ、黒くない。白い。(自由な色に変えられます。)
kaoru-bash-ってウィンドウに書いてあります。おお、bash!
次に何すればいいんだ。
あきらくんが、例題を出してくれました。「ディレクトリを作る、消す、ファイルを作る、コピーする、消す、何をやったかログを見る。画面をきれいに消す。」
gyazz.com/upload/a3efdca0d34446f66411ff14ba5feca3.png
ところで、疑問が。OSがLinux(mac)のときはbashで書く、UNIXのとき(IDSTが動いているサーバ)はcshで書く、で、shellのコマンドは一緒か?、というと、似ているけど、ちょっと違うときがあるようです。英語とスペイン語みたいなのかな。なんとなく単語みるとわかるけど違う、みたいな。
そして、tsukubaiのオープンソースをUSPさんからインストール。
(make installのあたりで、あれ、makeが使えない、、、ということで、あきらくんに手動でコピー、解凍してもらった)
めもめも。。。。pwd いまどこにいるか確認
../ いっこ上のディレクトリに移動 ./ 現在の位置
コントロール+Aで、コマンドの先頭に戻る。
ファイル名の英文字のはじめを打って、tabを打つと、候補を補完してくれる
↑キーを打つと、いっこ前のコマンドを表示してくれる
!+コマンドで、一個前の同じコマンドを実行してくれる。
今日のhistory!
1 pwd 2 mkdir test 3 ls 4 rm -fr test 5 ls 6 cd Desktop/ 7 mkdir test2 8 touch text.txt 9 cp text.txt text2.txt 10 history 11 clear 12 history 13 clear 14 mkdir nyon 15 rm -fr nyon 16 touch nyon.txt 17 cp nyon.txt nyon2.txt 18 histry 19 history 20 ls 21 ls 22 pwd 23 ls 24 mkdir usp 25 mv open-usp-tukubai-20120802.tar.bz2 usp/ 26 ls 27 cd usp/ 28 ls 29 tar zxvf open-usp-tukubai-20120802.tar.bz2 30 cd open-usp-tukubai-20120802 31 ls 32 make install 33 ls 34 cd COMMANDS/ 35 ls 36 ls 37 cd .. 38 ls 39 ls /usr/local/bin/ 40 cd COMMANDS/ 41 ls 42 ./count 43 count 44 ls 45 ls -al 46 mkdir /usr/local/bin/usp 47 sudo su - 48 sm2 49 ls -la 50 ls -la| more 51 delf -v 52 ls 53 count 54 pwd 55 cd ../../.. 56 pwd 57 cd usp/ 58 ls 59 mkdir work 60 cd work 61 vi test1 62 vi test2 63 more test1 64 vi test2 65 ls 66 count 1 2 test 67 count 1 2 test1 68 count 2 3 test1 69 ls /usr/local/bin/ 70 sm2 71 gyo 72 gyo test1 73 more test1 74 cat test1 75 gyo test1 76 vi test1 77 gyo test1 78 cat test1 79 grep 1234 test1 80 grep 12345 test1 81 man awk 82 man cat 83 pwd 84 mv ../../eye2.txt ./ 85* 86 mv ../../meta2.txt ./ 87 ls 88 gyo eye2.txt 89 gyo meta2.txt 90 cat eye2.txt 91 cat meta2.txt 92 join0 key=1 eye2.txt meta2.txt 93 join0 key=1 meta2.txt eye2.txt 94 join1 key=1 meta2.txt eye2.txt 95 join1 key=1 meta2.txt eye2.txt | gyo 96 join1 key=1 meta2.txt eye2.txt | retu 97 join1 key=1 meta2.txt eye2.txt | keta 98 join1 key=1 meta2.txt eye2.txt | keta > ttt.csv 99 history 100 history > hist.txt
ぷはー!先生たち、ありがと〜!!