/home/usr2/13OTlec0/lec/Hello/hello.c
40 と同じファイルを作成して
gcc ファイル名 でコンパイル。
./a.out で実行。
username@t2a006163:~/mylec>cat ~13OTlec0/lec/Hello/hello.c
#include<stdio.h>
int main(void){
printf("Hello World!!\n");
return 0;
}
username@t2a006163:~/mylec>emacs hello.c username@t2a006163:~/mylec>ls -l
total 128
-rw-r--r-- 1 username users 42 2014-04-07 20:47 emacstest.txt -rw-r--r-- 1 username users 12 2014-04-07 20:46 emacstest.txt~
-rw-r--r-- 1 username users 78 2014-04-07 20:59 hello.c -rw-r--r-- 1 username users 13 2014-04-07 20:44 vitest.txt username@t2a006163:~/mylec>cat hello.c
#include<stdio.h>
int main(void){
printf("Hello World!!\n");
return 0;
}
username@t2a006163:~/mylec>gcc hello.c username@t2a006163:~/mylec>ls -l total 160
-rwxr-xr-x 1 username users 11782 2014-04-07 20:59 a.out
-rw-r--r-- 1 username users 42 2014-04-07 20:47 emacstest.txt -rw-r--r-- 1 username users 12 2014-04-07 20:46 emacstest.txt~
-rw-r--r-- 1 username users 78 2014-04-07 20:59 hello.c -rw-r--r-- 1 username users 13 2014-04-07 20:44 vitest.txt
username@t2a006163:~/mylec>./a.out Hello World!!
実際に操作をしてください。
username@t2a006180:~/mylec>mkdir modetest username@t2a006180:~/mylec>cd modetest/
username@t2a006180:~/mylec/modetest>cp -i ~13OTlec0/lec/Mode_test/make_sh_mode_test.c .
username@t2a006180:~/mylec/modetest>less make_sh_mode_test.c username@t2a006180:~/mylec/modetest>gcc make_sh_mode_test.c username@t2a006180:~/mylec/modetest>ls -l
total 64
-rwxr-xr-x 1 username users 11934 2014-04-08 21:00 a.out
-rw-r--- 1 username users 2304 2014-04-08 20:59 make_sh_mode_test.c username@t2a006180:~/mylec/modetest>./a.out
実際に操作をしてください。
username@t2a006180:~/mylec/modetest>cd ..
username@t2a006180:~/mylec>mkdir bigmem username@t2a006180:~/mylec>cd bigmem
username@t2a006180:~/mylec/bigmem>cp -i ~13OTlec0/lec/Big_memory/big_memory.c . username@t2a006180:~/mylec/bigmem>cat big_memory.c
#include <stdio.h>
#define ROW_SIZE 1000*1000*1000
#define COLUMN_SIZE 8
int main(void){
char str[ROW_SIZE][COLUMN_SIZE];
unsigned long i_r,i_c;
for( i_r=0 ; i_r<ROW_SIZE ; i_r++ ){
for( i_c=0 ; i_c<COLUMN_SIZE ; i_c++ ){
if( i_c==0 ){
str[i_r][i_c]='H';
コメント [A75]: あとはC言語を勉強すれ ば、ここまででTSUBAMEでC言語のプ ログラムを作成して、実行できるようにな りました。…が…1行の実行結果だし、ス ーパーコンピューターじゃなくても…
コメント [A76]: 結果が長い …ファイルに 保存したい…
コメント [A77]: たくさんメモリが必要な プログラム
42 }else if( i_c==1 ){
str[i_r][i_c]='e';
}else if( i_c==2 ){
str[i_r][i_c]='l';
}else if( i_c==3 ){
str[i_r][i_c]='l';
}else if( i_c==4 ){
str[i_r][i_c]='o';
}else if( i_c>=5 ){
str[i_r][i_c]='!';
}
if( i_c==COLUMN_SIZE-1 ){
str[i_r][i_c]='\0';
} } }
printf("str[0]:%s\n",str[0]);
printf("str[%lu]:%s\n",ROW_SIZE/(unsigned long)2,str[ROW_SIZE/(unsigned long)2]);
printf("str[%lu]:%s\n",(unsigned long)ROW_SIZE-1,str[(unsigned long)ROW_SIZE-1]);
return 0;
}
username@t2a006180:~/mylec/bigmem>gcc big_memory.c username@t2a006180:~/mylec/bigmem>ls -l
total 64
-rwxr-xr-x 1 username users 11789 2014-04-08 21:04 a.out -rw-r--- 1 username users 807 2014-04-08 21:03 big_memory.c username@t2a006180:~/mylec/bigmem>./a.out
Segmentation fault
username@t2a006180:~/mylec/bigmem>
TSUBAME2.5利用の手引き 3.1.2 インタラクティブノードでの制限
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/resources.
html#id4
コメント [A78]: 実行できない。
これを実行するためには...シェルスクリプ トとt2sub
…メモリの使用量に制限があり、メモリ不足のため「Segmentation fault」となり、
実行できない。
TSUBAME2.5利用の手引き 3.1.3 バッチノード
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/resources.
html#resources-batch
8 grep
grep パターン ファイル パターンに一致する行を出力する。
たぶん時間がないので紹介だけ username@t2a006174:~>less /etc/services
username@t2a006174:~>grep smtp /etc/services smtp 25/tcp # Simple Mail Transfer smtp 25/udp # Simple Mail Transfer
# Boris B. Maiden <Boris_Maiden&smtp.microcom.com>
rsmtp 2390/tcp # RSMTP rsmtp 2390/udp # RSMTP
44 9 リダイレクト
デフォルトの標準入力はキーボードです。
デフォルトの標準出力はディスプレイです。
デフォルトの標準エラー出力はディスプレイです。
コマンド > ファイル:標準出力をファイルにします。
コマンド 1> ファイル:標準出力をファイルにします。(上と同じ) コマンド >> ファイル:標準出力をファイルにします。(追加書き込み)
見てるだけでも大丈夫です。
username@t2a006168:~/mylec>vi aaa.txt username@t2a006168:~/mylec>cat aaa.txt aaa
username@t2a006168:~/mylec>vi bbb.txt username@t2a006168:~/mylec>cat bbb.txt bbb
コマンド
標準出力
標準エラー出力 標準入力
コマンド
標準出力
標準エラー出力 標準入力
username@t2a006168:~/mylec>cat aaa.txt bbb.txt aaa
bbb
username@t2a006168:~/mylec>cat bbb.txt aaa.txt bbb
aaa
username@t2a006168:~/mylec>cat aaa.txt bbb.txt > 0.txt username@t2a006168:~/mylec>cat 0.txt
aaa
bbb
username@t2a006168:~/mylec>cat aaa.txt bbb.txt 1> 1.txt username@t2a006168:~/mylec>cat 1.txt
aaa
bbb
username@t2a006168:~/mylec>cat aaa.txt bbb.txt >> 0.txt username@t2a006168:~/mylec>cat 0.txt
aaa
bbb
aaa
bbb
username@t2a006168:~/mylec>cat bbb.txt aaa.txt > 0.txt username@t2a006168:~/mylec>cat 0.txt
bbb
コメント [A79]: こうすると、aaa.txtと
bbb.txtを順番に表示します。
46 aaa
username@t2a006168:~/mylec>
コマンド 2> ファイル:標準エラー出力をファイルにします。
コマンド 2>> ファイル:標準エラー出力をファイルにします。(追加書き込み)
見てるだけでも大丈夫です。
username@t2a006168:~/mylec>ls -l total 352
-rw-r--r-- 1 username users 10 2014-04-09 18:02 0.txt -rw-r--r-- 1 username users 10 2014-04-09 18:01 1.txt -rw-r--r-- 1 username users 5 2014-04-09 17:31 aaa.txt -rwxr-xr-x 1 username users 11782 2014-04-07 20:59 a.out -rw-r--r-- 1 username users 5 2014-04-09 17:31 bbb.txt drwxr-xr-x 2 username users 32768 2014-04-08 21:04 bigmem -rw-r--r-- 1 username users 42 2014-04-07 20:47 emacstest.txt -rw-r--r-- 1 username users 12 2014-04-07 20:46 emacstest.txt~
-rw-r--r-- 1 username users 78 2014-04-07 20:59 hello.c drwxr-xr-x 2 username users 32768 2014-04-08 21:00 modetest -rw-r--r-- 1 username users 13 2014-04-07 20:44 vitest.txt username@t2a006168:~/mylec>cat ccc.txt
cat: ccc.txt: No such file or directory
username@t2a006168:~/mylec>cat ccc.txt > stdout.txt cat: ccc.txt: No such file or directory
username@t2a006168:~/mylec>ls -l total 352
コマンド
標準出力
標準エラー出力 標準入力
コメント [A80]: 上書きされてしまう。
コメント [A81]: これが標準エラー出力
-rw-r--r-- 1 username users 10 2014-04-09 18:02 0.txt -rw-r--r-- 1 username users 10 2014-04-09 18:01 1.txt -rw-r--r-- 1 username users 5 2014-04-09 17:31 aaa.txt -rwxr-xr-x 1 username users 11782 2014-04-07 20:59 a.out -rw-r--r-- 1 username users 5 2014-04-09 17:31 bbb.txt drwxr-xr-x 2 username users 32768 2014-04-08 21:04 bigmem -rw-r--r-- 1 username users 42 2014-04-07 20:47 emacstest.txt -rw-r--r-- 1 username users 12 2014-04-07 20:46 emacstest.txt~
-rw-r--r-- 1 username users 78 2014-04-07 20:59 hello.c drwxr-xr-x 2 username users 32768 2014-04-08 21:00 modetest -rw-r--r-- 1 username users 0 2014-04-09 18:06 stdout.txt -rw-r--r-- 1 username users 13 2014-04-07 20:44 vitest.txt username@t2a006168:~/mylec>cat stdout.txt
username@t2a006168:~/mylec>cat ccc.txt 2> stderr.txt username@t2a006168:~/mylec>cat stderr.txt
cat: ccc.txt: No such file or directory
username@t2a006168:~/mylec>cat ddd.txt 2>> stderr.txt username@t2a006168:~/mylec>cat stderr.txt
cat: ccc.txt: No such file or directory cat: ddd.txt: No such file or directory username@t2a006168:~/mylec>
コマンド 1> ファイル 2>&1:標準出力をファイルにして、標準エラー出力を標準出 力(=ファイル)にします。
見てるだけでも大丈夫です。
コマンド
標準出力 標準入力
標準エラー出力
コメント [A82]: ファイルはできる
コメント [A83]: 何も表示されない
48 username@t2a006168:~/mylec>cat aaa.txt ccc.txt aaa
cat: ccc.txt: No such file or directory
username@t2a006168:~/mylec>cat aaa.txt ccc.txt 1> stdouterr.txt 2>&1 username@t2a006168:~/mylec>cat stdouterr.txt
aaa
cat: ccc.txt: No such file or directory
コマンド < ファイル:標準入力をファイルにします。
見てるだけでも大丈夫です。
username@t2a006168:~/mylec>sort suzuki
watanabe
sato ←”sato” Enter Ctrl D
sato suzuki watanabe
username@t2a006168:~/mylec>emacs meibo.txt username@t2a006168:~/mylec>cat meibo.txt suzuki
watanabe sato
username@t2a006168:~/mylec>sort < meibo.txt sato
コマンド
標準出力
標準エラー出力 標準入力
コメント [A84]: 標準出力の部分
コメント [A85]: 標準エラー出力の部分
suzuki watanabe
username@t2a006168:~/mylec>