60.D Unix コマンド
Unix には数多くのコマンドがある.ここでは,この実験でよく使うもの,通信や端末に関するもの,今回の実験用のコマンドなどを簡単に紹介しておく.
※詳しい使い方やオプションは man page を見ること
※man page は web でも見つかる
A. よく使うコマンド: ls, pwd, cd, mkdir, ps, vi, whoami
B. 通信・端末に関するもの: tty, stty, "ps ax|grep getty", hostname, who, w
C. ログアウト: exit または logout
D. 本実験用文字送出コマンド:send1, send1i, sendchars
※注意1※ D.の専用コマンドは,サーバの $HOME/tusin_bin/ 以下にある.
ただし実行パスは通っていないので,実行するにはパス指定が必要 ← どうすればいい?
※注意2※ $HOME/tusin_bin/src/ には,send1,send1i のソースファイルがある.これらを元にして新しいコマンドを作っても構わない.編集の際には別ファイルにコピーすること
以下,send1, sendchars について説明する.
■ send1 コマンド
send1 コマンドは1文字を隙間なく連続して送出するコマンドである.
サーバの$HOME/tusin_bin/ にある.
引数として,半角英数字を 1 文字与えて実行する.
code: send1コマンド
$ ~/tusin bin/send1 X ← $はコマンドプロンプト,X は任意の半角英数字
★このコマンドは C 言語で書かれたシンプルなプログラムなので,必要に応じて改良を加えることが可能.
ソースプログラムは,$HOME/tusin_bin/src/ にある.
以下にソースを示しておく.
※改良する際はファイルをコピーして別ファイルとして編集すること.
code:send1.c
int main(argc,argv)
int argc;
char **argv;
{
if(argc < 2){printf("This program needs option!\n");exit(0);}
while(1){printf("%s",argv1);} }
★send1の別バージョンとして send1i がある.
これは起動すると送出する文字を聞いてくるプロンプトを示すものである.
※'send1i'の"i"は,"interaction"の"i"
実験にはどちらを使っても構わない.
■ sendchars コマンド
サーバホストにログインしてからの作業は各班に任せるが,send1 コマンドとは別に,長い文字列送出が可能なsendchars コマンドが用意してあるので,これを利用してもよいだろう.
sendcharsコマンドはシェルスクリプトで,内部にパラメータを設定してある.
sendcharsコマンドは単体で実行すれば繰り返し一定の文字列を送出する.
sendchars コマンドはシェルスクリプト内部で 3 つのパラメータを変更できる.
(1) (t1) コマンドを起動してから最初の文字が送信されるまでの時間
(2) (t2) 送信文字間のインタバル時間
(3) (chars) 送出文字列
「最初に t1 秒止まり,文字列 chars を送出し,次の文字列まで t2 秒待つ」
を無限に繰り返す.
このコマンドは単純永久ループなので,終了はsend1と同じ, Ctrl+C
sendchars の中は ↓↓ のようになっている.
code:sendchars
# !/bin/bash
t1=1
t2=1
chars="This is me!"
sleep t1
while :
do
printf”sleept2
done
自分たちのしたい観測に合わせて,t1, t2, chars を変更するとよい.
※ただし以下に注意.
A. sendchars ファイルを別名ファイルにコピーしてそちらを編集して実行すること.
※元々のsendcharsコマンドをいじらない(次のグループのため)
B. 作ったファイルの属性が実行モードでない場合,chmod +x ファイル名 で実行属性をつける.
■特殊な符号を送信したい場合
7bit系の英数字は,上記コマンドで送信できる.
しかしJIS 8bitの半角カナや,7bit系の「機能キャラクター」を送信して確認したい場合はどうするか?
→ 文字符号についての知識が必要
本実験装置での半角カナの送信は困難!
→ サーバの言語設定がUTF8になっているため,半角カナは非英数字文字と認識され,自動的にUTF-8として他バイト処理される.
※UTF-8では,半角英数字は1文字1バイト,半角カタカナは1文字3バイト,全角日本語は3~8バイトの可変長
UTF-8の設定を解くにはLinux
※Shift-JISなら2Bytes(2文字)単位の送信になるが,サーバの言語設定を変更する必要がある
※UTF-8であっても設定したブロック長は同じ
2023/9/28