|
【Linuxの少し進んだ使い方】
少し進んだLinuxコマンドの
使い方を紹介しています.♪
|
Linuxで「端末」を開くと使える,少し進んだコマンドの使い方を紹介しています.Linux(UNIX)の基本的なコマンドについては
コマンドプロンプトを参照して下さい.
|
少し進んだLinuxコマンドの使い方
cc 「ファイル名」.c
Cコンパイラです.alith.cの中に
#include
main()
{
int i,j,k;
printf("enter 2 numbers_");
scanf("%d %d",&i,&j);
k=i+j;
printf("%d+%d=%d\n",i,j,k);
}
のようなプログラムが書いてあったとすると
cc alith.c
で"a.out"という実行ファイルが生成されます.
cc alith.c -o alith
とすればalithという実行ファイルが生成されます.
実行するにはpathを通していない場合
./alith
とします.
Windows PCで,"Minimalist GNU for Windows(MinGW)"をインストールしている場合は,マウス右ボタンで「コンピュータ」の
「プロパティ」を開き,「システムの詳細設定」の「環境変数」の"Path"に
C:\altera\16.0\modelsim_ase\win32aloem;C:\NuSMV_64\bin;C:\MinGW\bin;
のようにMinGWのbinを加えます.
gcc alith.c -o alith
で"alith.exe"が出来ればOKです.
|
|
od 「ファイル名」
オクタル(8進数)でのダンプです."-x"のオプションで16進数での表示になります.画像ファイルも
対象にできます.
|
|
finger 「ユーザ名」
ユーザについての情報を表示します.
|
|
find 「パス名」 -name 「ファイル名」
指定したパスの下に,指定したファイル名のファイルを探します.
パス名として"."を
指定すれば現在いるディレクトリ以下で探します.パス名として"/"(ルートディレクトリ)を
指定すれば全ファイルシステムに
当該ファイルを探します.アクセスを許可されていない場合はその旨が表示されます.
ファイル名しか分からないファイルがどこにあるかを探せます.
|
|
「コマンド」 > 「ファイル名」
標準出力(端末のディスプレイ出力)を指定したファイルにリダイレクションします.
date > hizuke
とすると"hizuke"というファイルに日付けが格納されます.
|
|
「コマンド」 < 「ファイル名」
コマンドに対して,標準入力(端末のキーボード入力)を指定したファイルから与えることができます.
#include<stdio.h>
main()
{
int i,j,k;
printf("enter 2 numbers_");
scanf("%d %d",&i,&j);
k=i+j;
printf("%d+%d=%d\n",i,j,k);
}
というプログラム"addition.c"が"addition"というコマンドになっており,"inputs"という
ファイルに2つの数を書いていたとすると
./addition < inputs
とすることで"addition"の結果が標準出力に出力されます."./"は「ここの」というパス指定です.
./addition < inputs > outputs
とすれば出力はoutputsというファイルに格納されます.
|
|
「コマンド」 >& 「ファイル名」
標準エラー出力(端末のディスプレイ出力)を指定したファイルにリダイレクションします.
#include<stdio.h>
main()
{
int i,j,k;
printf("enter 2 numbers_")
scanf("%d %d",&i,&j);
k=i+j;
printf("%d+%d=%d\n",i,j,k);
}
のように5行目にセミコロン";"を書くのを忘れるなどしたプログラムをコンパイルしたときのエラー
出力は
cc addition.c >& log
とすることで"log"というファイルに格納されます.単に”>”と書いただけではエラー出力は
リダイレクションされません.
( time ./addition < inputs > outputs ) >&log
とすれば実行時間が"log"というファイルに格納されてくれちゃいます.処理時間を教えてくれる"time"
コマンドの出力先は標準エラー出力になっています.
|
|
sort 「ファイル名」
指定されたファイルを行単位でソーティングして表示します."-r"のオプションを付けると
逆さまの結果を表示します."-n"のオプションを付けると数字として扱ってくれたりします.
詳しくは"man sort"で調べて下さい.このコマンドに限らずどのコマンドでも
"man"(マニュアル)で使い方を調べることができます."man ls"でlsコマンドのオプションについて知ることが出来ます.ページャーを終らせるには
"q"を打ちます.
|
|
「コマンド1」 | 「コマンド2」
間の「|」は「パイプ」と呼ばれます.最初のコマンドの出力を次のコマンドに渡します.複数回
つなげても使えます.
ls -l | sort
を試してみて下さい.
|
|
grep 「パターン」「ファイル名」
指定されたファイル内のパターンで指定した内容を探して行単位で表示します.
「パターン」としては"k=i+j"などのように探したい文字列を指定します.
「ファイル名」は複数指定することができ,"*.c"のように指定すれば
現在いるディレクトリにあるすべてのC言語プログラムの中で,
"k=i+j"という代入文を使っている行をすべて表示してくれます.
grep k=i+j *.c
どの
ファイルかも併せて表示するので特定の代入文がどのファイルで
使われているかを探せます.
|
|
C−c
コントロール・キー(ctrl)を押しながら"c"を打つと,フォアグラウンドで実行中
のプロセスを殺せ(停止でき)ます.
|
|
「コマンド」 &
指定したコマンドをバックグラウンドで起動します.「プロセスID」を表示した後
プロンプトが出てきて新たなコマンドを入力できます."fg"と打つとフォアグラウンドに
戻ってきます.
|
|
ps
走っているプロセスを表示します."-e"あるいは"-A"のオプションですべてのプロセスを
表示します."-f"ですべての情報をフルに表示します.
ps -ef
で,すべてのプロセスのすべての情報が表示されます.
ps -ef | grep lm
で"lmgrd"(ライセンスマネージャ)など,"lm"という文字列を含むプロセスのIDを知ることができます.
そもそも走っているかを調べるのにも便利です.
|
|
kill 「プロセスID」
「プロセスID」(PID)で指定したプロセスを殺し(停止させ)ます.
「プロセスID」(番号)は上述した"ps"コマンドで調べることができます.
権限がなければ停止させることはできません."-HUP"(ハップ)という
オプションで再起動ができます.起動のための設定を変更したとき
新たな設定を読み込ませるのに便利です.
|
|
sed 「編集の内容」 「ファイル名」
ストリームエディタです.「編集の内容」で指定した処理をして標準出力に出力します.
結果を格納するには前述した「>」(リダイレクション)を使います.
sed s/fox/pig/ fox > pig
とすると"fox"というファイル内の"fox"という文字列を"pig"に代えて,"pig"という
ファイルに格納します.詳しくはマニュアルなどを参照して下さい.
|
|
awk 「特定のパターンに対する動作」 「ファイル名」
ファイル名で指定されたテキストから特定のパターンを探して"{...}"で指定する何かの動作を
させるコマンドです.コマンド名はAho,Weinberger,Kernighanに由来しています."awk"は
正規表現を扱えるなど,それだけで本が出ている,奥の深いコマンドです.
ls -l | awk '$6=="2012-06-06" {print $6,$7,$8}'
とすると"ls -l"の結果の6カラム目が"2012-06-06"だったとき,6,7,8カラム目を
出力させることができます.
|
|
|