みんながコマンド打ってる黒い画面てどこよ?
楽しい土曜出勤にて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
ぷはー!先生たち、ありがと〜!!