課題
logout
: ログアウト
logout
exit
(Ctrl+D)
システムから離脱する。 ログインしたシェルで作業している場合には、シェルの終了コマンドである
exit
でもログアウトと同様になる。
ls
: ファイルの存在確認
ls [-AaBbCcdFfghikLlmnopqRrSsTtuWwx1] [file ...]
デフォルトではファイル名またはディレクトリ名を表示する。 ファイル名、ディレクトリも省略されると、現在のディレクトリが指定されたものとみなされる。
cp
: ファイルのコピー
cp [-R [-H | -L | -P]] [-f | -i] [-Npv] source_file target_file
cp [-R [-H | -L | -P]] [-f | -i] [-Npv] source_file ... target_directory
ファイルをコピーする。形式1の場合は、
source_file
の内容がtarget_file
という 名前で作成される。デフォルトではtarget_file
が存在していても確認されることはないので注意。 形式2の場合は、指定されたファイルをtarget_directory
に同じ名前でコピーする。上書きの際に確認してほしければ
-i
オプションを利用すれば良い。
rm
: ファイルの削除
rm [-f | -i] [-dPRrvW] file ...
対象となるファイルを消去する。デフォルトでは確認もなく、消去されるので注意。
確認してほしければ
-i
オプションを利用すれば良い。ファイルの読み出し権限は必要ないが、親ディレクトリへの書き込み権限が必要。
mv
: ファイルの移動
mv [-fiv] source target
mv [-fiv] source ... directory
形式 1では、
source
をtarget
という名前に移動する、つまり名前を変更する。 形式 2ではsource
で指定されたファイルやディレクトリを、directory
に移動する。移動先が存在していてもデフォルトでは確認されない。確認が必要であれば
-i
オプションを使用する。
mkdir
: ディレクトリの作成
mkdir [-p] [-m mode] directory_name ....
ディレクトリを作成する。親ディレクトリへの書き込み権限が必要である。
rmdir
: ディレクトリの削除
rmdir [-p] directory ....
ディレクトリを削除する。対象のディレクトリは空になっている必要がある。また 親ディレクトリへの書き込み権限が必要。
cd
: カレントディレクトリの移動
cd directory
移動対象が指定されていない場合は、ホームディレクトリへ移動する。 また、多くのシェルの場合移動先に
-
を指定することで 前にいたディレクトリに戻ることができる。
pwd
: カレントディレクトリの確認
pwd [-LP]
現在の作業ディレクトリ名を表示する。
man
: マニュアルの参照
man [-acw|-h] [[-s] section] name
man [-k] keyword ...
形式1では、コマンド名や標準ライブラリ中の関数名を引数にして起動すると そのコマンド等の説明が表示される。
適切に管理されているマシンでは、形式2で起動すると、キーワード検索も可能。
cat
: ファイルの連結/出力
cat [-benstuv] [file ...]
指定したファイルそれぞれの内容を標準出力へ書き出す。 ファイルが与えられなかった場合は、標準入力から読み込む。
vi
, emacs
, ...)
今回は特にエディタは指定しない。自分にあったエディタを使用してみること。 Unix 上の標準エディタとしては
vi
があり、同じくらい広く 利用されているエディタにemacs
があるが、すこし設計思想が異なっている。 ウィンドウズ上のエディタを使っても良いが、ファイルの転送作業を必要とする。
sh
, bash
, csh
, tcsh
, ksh
, zsh
...)
ユーザからの要求を解釈し、カーネルへ伝える一連のプログラムです。 今回は特に指定しません。なれているものを使うのも良し、与えられたものを使うのも良し... ログインシェルを変更するには、
chsh
コマンドを利用する。
more
, less
, ...)
テキストファイルを画面に見える単位(ページごと)に表示する。
cal
: カレンダーを表示する
cal [-jy3] [[month] year]
簡単なカレンダーを表示する。
passwd
: パスワードの変更
passwd
パスワードを変更する。 本講義では自分のパスワード以外は変更しないが、スーパーユーザは他人のパスワードも変更できる。
chfn
: ユーザ情報の変更
chfn [-f full_name] [-r room_no] [-w work_ph] [-h home_ph] [-o other] [user]
passwd -f
ユーザ情報(GECOS)を変更する。オプションをつけなければ対話的に変更できる。
エディタで作成した C プログラムを実行できる形に変換するのに必要なコマンド。
cc
: C コンパイラ
人間が読むことができるプログラミング言語を、コンピュータが実行できる形式に変換する操作をコンパイルと呼ぶ。 プログラミング言語 C の Compiler なので
cc
。 GNU の cc なので、gcc という名前でも実行可。実際には、プリプロセッサ、コンパイラ、アセンブラ、リンカなどが続けて実行されることで、 C プログラムから実際に実行できる状態まで変換してくれる。 エディタと合わせて次回から毎回お世話になるコマンドである。
cpp
: プリプロセッサ
プログラムをコンパイルする前の前処理を行う。 ソースコードに一定の規則にしたがって処理を行う。 C 言語では # で始まる行がプリプロセッサへの指示となる。
as
: アセンブラ
マシン語をコンピュータが実行できる形式であるオブジェクトコードに変換する。 GCC をはじめとする UN*X 上の
cc
では、勝手に実行されるので あまり気にすることはない。
ld
: リンカ
ソースコードからコンパイルされたオブジェクトコードとライブラリなどを結合して実行形式にする。 GCC をはじめとする UN*X 上の
cc
では、勝手に実行されるので、 あまり気にすることはない。
今後お世話になるかも知れないコマンドたち。
時間があれば man
で眺めていると良いかもしれない。
make nm size strip gdb g77 gcc perl ruby awk sed login exit su ln find grep diff sort od wc tail head fold split expand unexpand pr nkf gzip gunzip chmod file which tar pushd,popd
kadai01
というディレクトリを作成し、そこに移動する。
% mkdir kadai01 % cd kadai01 %
エディタを使って hello.c
を作成する。
(vi でも可)
% emacs hello.c
入力する内容は次の4行。
main() { printf("hello world\n"); }
入力が終われば、エディタを終了し(Emacs なら Ctrl-X Ctrl-C, vi なら :wq)、コマンドラインから次の通り実行する
% cc hello.c %
入力が正しければ何も出力されることなくプロンプトが返ってきたはずである。
ls
を実行してみると、a.out
というファイルができているはずである。
ls
に -F
オプションをつけて実行すると、*
が付いているので
実行可能ファイルである事がわかる。
% ls a.out hello.c % ls -F a.out* hello.c %
できあがった a.out
を実行してみる。実行するには ./a.out
と指定する。
% ./a.out hello world %
となれば、成功である。
printf
は与えられた内容を標準出力(普通は画面)に書き出す働きをする。
与えられた内容と画面に書き出されたものを比べると、"\n
"が
余分であることが分かる。この"\n
"は何を表しているか?
ヒント: 実際にやってみれば良い :-)
自分の名前をローマ字で画面に表示するプログラムを name.c
として作成せよ。
前の日はありません | 表紙 | 2日目 |