UNIXコマンド(1)
主なコマンドの使い方と作業の実例。
システム
X Serverを起動する
$ startxこれが入力されると、マシンはX Serverの設定ファイル($HOME/.xinitrcなど)を読み込んで、X Window Systemが立ち上がって来ます。
ターミナルを終了する
$ exitX上に起動するターミナルを終了する他、コンソール上に起動するKonなどを終了する際にも使用します。$ logoutでも同じです。
ユーザーをログアウトする
$ exitユーザーアカウントをログアウトする際に使用します。$ logoutでも同じです。
スーパーユーザーになる
$ suユーザーアカウントでログイン中に、プログラムのインストールやシステムファイルの設定を行なう場合にスーパーユーザーになります。
パスワード入力を要求されますので、rootパスワードを入力してEnterします。プロンプトが変わるのを確認して下さい。
システムにパッケージをインストールする
$ pkg_add hoge-1.0.3コンパイル済のパッケージ hoge-1.0.3 をシステムに追加します。
システムからパッケージを削除する
$ pkg_delete fuga-2.4.12システムにインストールされている fuga-2.4.12 を削除します。
RedHat系 LinuxのRPMパッケージをシステムに追加する
$ rpm -ivh huga.hoge.rpmRPM(RedHat Package Manager)形式のパッケージをシステムにインストールします。RedHat系 Linuxは勿論ですが、FreeBSDでもLinuxエミュレータがサポートされていますので、RPMパッケージをインストールすることが出来ます。
ソースコードをコンパイルする
$ make$ make install
コンパイルするソースコードが存在するディレクトリに移動し、$ ./configure → $ makeでコンパイルします。完了後 $ make installでインストールします。
システムをシャットダウンする
$ shutdown -h +5システムを何分後に終了するかを数字で指定します。今すぐ終了させたい場合は、オプションに now を指定します。
システム終了と同時に電源を切るには -p オプションを付加します。
すべてのユーザーを無視して、直ちにシステムを停止させる
$ haltログイン中のユーザーの有無を無視して、強制的にシステムを停止します。
自身の環境
現在起動中のプロセスを確認する
$ ps -ax283 ?? I 0:00.00 /usr/local/bin/Wnn4/jserver 296 ?? Ss 0:00.00 /usr/local/sbin/httpd 306 ?? I 0:00.00 /usr/local/sbin/cannaserver 354 v0- S 0:00.00 /proftpd: proftpd (accepting connections) (proftpd)現在起動しているプロセスを、プロセスIDを伴って一覧表示します。
起動中のプロセスを終了する
$ kill 354 (←プロセスID)上記の例で言うところのproftpdを終了します。
UNIXの世界では、プログラムを終了させることをしばしば「殺す」と表現します。この表現は、プロセスを終了させる"kill"コマンドの名前に由来していると思われます。
プログラムのパスを確認
$ which perl/usr/local/bin/perl などと位置を返して来ます。CGIスクリプトの1行目の記述はこれに合わせます。
任意のコマンドのパスを調べる場合は、perlの部分をコマンド名に書き替えます。
perlのバージョンを確認
$ perl -vperlコマンドに-vオプションを付加することで、そのサーバーに入っているperlのバージョンを返します。
This is perl, v5.8.8 built for i386-linux-thread-multi Copyright 1987-2006, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.任意のコマンドのバージョンを調べる場合は、perlの部分をコマンド名に書き替えます。
ディレクトリ処理
カレントディレクトリの中身を見る
$lsaho.dat boke.html kasu.txtというように、アルファベット順にファイル名またはディレクトリ名を表示します。許可属性や更新日時などを含む詳細情報を表示するには-lオプションを、表示順を逆にしたい場合は-rオプションを付加します。
hogeディレクトリから、名前にfugaを含むファイルを検索する
$ ls hoge | grep fugafuga.html fugaga.dat hoge.fugaディレクトリをリカーシブに辿って検索する場合は"-R"オプションを付加します。
$ ls -R hoge | grep fuga
ディレクトリを移動する
$ cd ..cdコマンドの右に、スペースをひとつ空けて行き先のディレクトリを指定します。上記の例ではペアレントディレクトリへ移動します。
$ cd ../boke/kasu/というように、ひとつ戻ってふたつ下るなどの指定も自由です。
ディレクトリを新規に作成する
$ mkdir hogegeカレントディレクトリのひとつ下に、新規ディレクトリhogegeを作成します。作成されたディレクトリの属性はデフォルトで0755です。
ディレクトリを削除する
削除するディレクトリにファイルが乗っているか否かで多少方法は異なります。$ rmdir hoge または $ rm -d hoge
空のディレクトリの場合は上記で消せます。
$ rm -r hoge
ファイルが乗っている場合、上記を打ち込んでから目をつぶってEnterを押しましょう。
ファイル処理
ファイルをコピーする
$cp hoge.html fuga.htmlhoge.htmlの内容がfuga.htmlにコピーされます。このとき、fuga.htmlが既に存在していれば書き替えられます。
$cp hoge.html ..
hoge.htmlがペアレントディレクトリにコピーされます。コピーされたファイルの名前は同じです。
許可属性などは変更されませんので、現に動いている.cgiファイルをコピーすれば複製先ですぐに起動できます。
ファイルの名前を変更する
$mv hoge.html fuga.htmlhoge.htmlがfuga.htmlに名前変更されます。
ファイルを移動する
$mv hoge.html ./cgi-binhoge.htmlは、ひとつ下のcgi-binディレクトリに移動します。
ファイルを削除する
$rm hoge.htmlカレントディレクトリにあるhoge.htmlを削除します。
ファイルの中身を見る
$cat nyahaha.htmlnyahaha.htmlを開けてソースを表示します。
この「ソースを表示」とは「標準出力へ出力」という意味で、catコマンドは出力先を指定して変更することが出来ます。
$cat A > BファイルBは、ファイルAに書き替えられます。
$cat A >> BファイルBはファイルAを食います。
これらはperlのファイルハンドルでの出力先変更と同じ考え方で良いでしょう。
ファイルを新規作成する
$touch hoge.datタイムスタンプを変更するtouchコマンドで、対象ファイルが存在しない場合に新規作成する機能を利用します。ですが、実用上は空のファイルを作成して放置することは少ないので、実際はcpやcatを使うことが多いでしょう。
CGI設置時に空のデータファイルを作成する時などに使えます。作成されたファイルの属性はデフォルトで0644です。
ダウンローダー
HTTPからファイルを取得する
$ fetch http://hoge.com/fuga.htmlHTTP(Hyper Text Transfar Protocol)接続で、サーバー名hoge.comのpublic_htmlディレクトリからfuga.htmlを取得します。
fetchはFreeBSDのみ(?)と思われるコマンドで、ディレクトリに対してリカーシブには働きません。また、ディレクトリを表す/で終わるURL指定では何も取得しません。
HTTPから再帰的にファイルを取得する
$ wget -r -nv http://hoge.com/fuga/wgetコマンドに-rオプションを付加することにより、サーバー名hoge.comのfugaディレクトリ以下に置かれたファイルを順に取得します。リカーシブに辿る深度はデフォルトで5ですが、-lオプションによって指定することができます。
FTPから再帰的にファイルを取得する
$ wget -r -nv ftp://ID:Password@ftp.hoge.com/fuga/ftpコマンドでは再帰的にファイルを取得できないため、wgetでログイン情報を送信して再帰的に取得します。
アーカイブ
tar.gz形式のファイルを解凍して展開する
$tar zxvf hogehoge.tar.gzhogehoge.tar.gzがカレントディレクトリに展開されます。
ディレクトリhogehogeを圧縮してtar.gz形式のファイルを作成する
$tar zcvf hogehoge.tar.gz hogehogeディレクトリhogehogeが圧縮されて、hogehoge.tar.gzがカレントディレクトリに作成されます。
ZIP形式の圧縮ファイルを解凍して展開する
$unzip hoge.ziphoge.zipがカレントディレクトリに展開されます。展開先ディレクトリを指定する場合は、後ろに-d (ディレクトリ名)オプションを付加します。
LZH形式の圧縮ファイルを解凍して展開する
$lha e fuga.lzhfuga.lzhがカレントディレクトリに展開されます。展開するオプションはxでも同じ働きをします。
このlhaというコマンドは標準ではインストールされません。また、$ man lhaではマニュアルは出て来ません。オプションなどのマニュアルを参照したい場合、単にlhaだけを実行します。
その他
ディスクの使用量を調べる
$du public_htmlpublic_htmlディレクトリ以下のディスク使用量を計算して表示します。最近のマシンに搭載されているHDDは大容量のものが増えてきていますが、調子に乗って音楽ファイルや動画ファイルをを増やし続けていると、残りの容量が気になることもあるでしょう。
どのディレクトリを起点に使用量を計算するかは引数で指定します。
オプションを省略した場合に返される値はブロック単位で表示されます。(1block=512bytes)
パイプでコマンドを接続する
$zcat xyz.patch.gz | patch -p1 |& tee hoge|&でコマンドを接続します。
上記の例では、圧縮されたpatchをzcatで展開し、そのpatchを使用し、そのまま次のteeコマンドに処理を移します。 例えばsrc/xyz.orgからsrc/xyzへのパッチをxyz/以下に適用する場合、patchコマンドに-p1オプションを付加して最初のsrc/部分を無視させます。その後プログラムからの出力を|&によってteeコマンドに接続し、出力を画面とファイルhogeの両方に引っ張ります。
許可属性を変更する
$chmod 0755 hoge.cgihoge.cgiのパーミッションを0755に変更します。
$chmod +x fuga.cgi
fuga.cgiの現在の許可属性に、x(=実行許可)を加えます。
[ UNIX Top ]
[ BACK ]
[ Reference Top ]
[ NEXT ]
[ HOME ]