viでex.shを作成し、
#!/bin/sh # # shell # date echo "This is a sample of shell script."
を書き込み保存せよ。
[user@localhost ~]$ vi ex.sh インサートモードに変更し、解答を打ち込む コマンドラインモードに戻り、 :wq で内容を保存する
[user@localhost ~]$ which echo /bin/echo
[user@localhost ~]$ /bin/echo $PATH
[user@localhost ~]$ wget http://rat.cis.k.hosei.ac.jp/data/edsh.tar.gz [user@localhost ~]$ tar -zxf edsh.tar.gz [user@localhost ~]$ less samples/ex01 lessビューアを開き /put を用いて検索します。
[user@localhost ~]$ vi samples/ex01 viエディタを開き /put を用いて検索します。
[user@localhost ~]$ grep put samples/ex01 puts("vsed : can not open file."); puts("date(yy/mm/dd) : "); fputs(buf, fp); fputc('\n', fp); puts("text : "); fputs(buf, fp); fputc('\n', fp); puts("usage : vsed <filename>");
[user@localhost ~]$ grep put samples/ex01 > test
[user@localhost ~]$ grep include samples/ex0[1-9] samples/ex01:#include <stdio.h> samples/ex02:#include <stdio.h> samples/ex02:# include <string.h> samples/ex03:#include <stdio.h> samples/ex03:#include <string.h> samples/ex03:#include <time.h> samples/ex03:#include <unistd.h> samples/ex03:#include <pwd.h> samples/ex03:#include <sys/types.h> samples/ex04:#include <stdio.h> samples/ex04:#include <string.h> samples/ex04:#include <time.h> samples/ex04:#include <unistd.h> samples/ex04:#include <pwd.h> samples/ex04:#include <sys/types.h> samples/ex05:#include <stdio.h> samples/ex05:#include <sys/utsname.h> samples/ex06:#include <stdio.h> samples/ex06:#include <string.h> samples/ex06:#include <time.h> samples/ex06:#include <unistd.h> samples/ex06:#include <pwd.h> samples/ex06:#include <sys/types.h> samples/ex07:#include <stdio.h> samples/ex07:#include <math.h> samples/ex08:#include <stdio.h> samples/ex08:#include <string.h> samples/ex08:#include <time.h> samples/ex08:#include <unistd.h> samples/ex08:#include <pwd.h> samples/ex08:#include <sys/types.h> samples/ex09:#include <stdio.h> samples/ex09:#include <sys/utsname.h> 上記のグロブを使用するコマンドは [user@localhost ~]$ grep include samples/ex0? [user@localhost ~]$ grep include samples/ex0* のようにしてもOKです。
[user@localhost ~]$ grep include samples/ex0[1-9] | less 上記のグロブを使用するコマンドは [user@localhost ~]$ grep include samples/ex0? | less [user@localhost ~]$ grep include samples/ex0* | less のようにしてもOKです。
問題(8)の結果をlessエディタで見れれば成功です。
[user@localhost ~]$ grep -h include samples/ex0[1-9] | sort -u > sorted [user@localhost ~]$ cat sorted #include <math.h> #include <pwd.h> #include <stdio.h> # include <string.h> #include <string.h> #include <sys/types.h> #include <sys/utsname.h> #include <time.h> #include <unistd.h> ファイル内容が以上のようになっていれば成功です(sortのバージョンによって、順序が変わる可能性があります) 上記のグロブを使用するコマンドは [user@localhost ~]$ grep -h include samples/ex0? | sort -u > sorted [user@localhost ~]$ grep -h include samples/ex0* | sort -u > sorted のようにしてもOKです。
[user@localhost ~]$ chmod u-w ex.sh [user@localhost ~]$ vi ex.sh viエディタを開き、コマンドモードで :w を行い、 (add ! to override) の警告が出ればOKです。 上記のchmodの部分は [user@localhost ~]$ chmod 544 ex.sh 等でも可能です。
[user@localhost ~]$ chmod u-r ex.sh [user@localhost ~]$ less ex.sh ex.sh: Permission denied と表示されればOKです。 上記のchmodの部分は [user@localhost ~]$ chmod 344 ex.sh 等でも可能です。
ex.shのパーミッションを自分が実行できるように変更し、ex.shの配置してあるディレクトリに移動し
./ex.sh
が実行できる事をたしかめよ。
[user@localhost ~]$ chmod 544 ex.sh [user@localhost ~]$ ./ex.sh Thu Jun 2 10:53:20 JST 2005 This is a sample of shell script.
[user@localhost ~]$ alias la='ls -a' [user@localhost ~]$ la . .bash_logout .canna mstscax.dll .ssh .. .bash_profile .emacs mstsc.exe .viminfo .bash_history .bashrc 以上のようにlaコマンドを実行した結果がls -aコマンドを実行したのと同じ結果が出れば完了です。
[user@localhost ~]$ unalias la
[user@localhost ~]$ alias alias l.='ls -d .* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[user@localhost ~]$ unalias ls --color=tty が消去されることによって、lsコマンドの実行結果に色が付かなくなります。