みんながコマンド打ってる黒い画面てどこよ?

2012年12月21日 14:17

楽しい土曜出勤にて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

ぷはー!先生たち、ありがと〜!!