Linux お役立ち情報サイ



基本コマンド

各コマンドは、わたしなりに検証したものではありますが、
みなさんが実行するときは、必ず影響のない
状況でテストしてからにしてください。
いかなる場合も、「自己責任」でお願いいたします。

カッコ()内は、適宜ファイル名などに置き換えててください。

コマンド 使  用  例 説     明
at at
at -c 0400pm (exscript)
コマンド自動実行処理
午後4時にスクリプトを自動実行
awk awk
ls -l | awk'{print $9,$5}'
パターン走査処理
ls表示の9列目と5列目のみ表示
banner banner
banner Linux
banner Linux > (file)
バナー(花文字)の作成
「Linux」というバナー文字を表示
「Linux」というバナー文字を(file)におとす
(TurboLinux6.1では/usr/gamesにあります)
basename basename (file-path) ファイル名からディレクトリと末尾の文字を
削除した文字列を表示
batch batch [date] 指定した順番でジョブを実行
bc bc 簡易電卓(終了はCTRL-D)
bg bg (job-no) ジョブをバックグラウンドの実行に変更
cal cal
cal 5
cal 5 2001
カレンダ表示
月指定
年月指定
bzip2 bzip2 -zvf (file.tar)
bzip2 -cd (file.bz2) | tar xvf -
圧縮してBZIP2ファイルを作成
BZIP2ファイルの解凍
cat cat (file)
cat -n (file)
cat (file1) (file2) > (file3)
ファイル内容の表示
行番号表示
ファイルの連結
cb cb (file.c)
cb -s (file.c)
Cソースファイルの整形
K&R準拠表示
cc cc -o (file) (file.c)
cc -c -o (file.o) (file.c)
C言語コンパイラ
コンパイルのみ(リンクなし)
cd cd (dir)
cd ..
カレントディレクトリの変更
1つ上に移動
chgrp chgrp (grp) (file)
chgrp -R (grp) (dir)
グループIDの変更
ディレクトリ以下すべて変更
chkconfig chkconfig --list
chkconfig --list | sort
chkconfig --add (proc)
chkconfig --del (proc)
chkconfig --level 3 (proc) on
chkconfig --level 5 (proc) off
システム起動時プロセスの表示
プロセス名でソート(並び替え)して表示
プロセスの追加
プロセスの削除
プロセスをランレベル3でONにする
プロセスをランレベル5でOFFにする
chmod chmod 644 (file)

chmod 1755 (directory)

chmod 4755 (file)

chmod 2755 (file)

chmod -R 644 (dir)

chmod root.root (file)
ファイル属性の変更(644に)

スティッキービットをON(755+t)
(指定したディレクトリ以下のファイル名の
変更や削除は、所有者のみが行える)

SetUIDビットをON(755+SetUID)
 (その他の人もこのUID権限で実行できる)

SetGIDビットをON(755+SetGID)
 (その他の人もこのGID権限で実行できる)

ディレクトリ以下すべて変更(644に)

所有者とグループを一気にrootに変更
chown chown (userID) (file)
chown -R (userID) (dir)
ファイル所有者の変更
ディレクトリ以下すべて変更
chsh chsh -s /bin/csh
chsh -s /bin/bash
chsh hoge
起動時のシェルをcshに変更
起動時のシェルをbashに変更
ユーザhogeの起動時シェルを変更
clear clear コンソール画面のクリア
clock clock ハードウェア内部クロックの表示・設定
cmp cmp (file1) (file2) 2つのファイルの内容比較
(バイナリ比較)
cp cp (file1) (file2)
cp -r (dir1) (dir2)
cp -f (file1) (file2)
cp -rf (dir1) (dir2)
ファイルのコピー
ディレクトリごとコピー
無条件コピー
無条件ディレクトリコピー
crontab crontab crontab(自動実行)ファイルの編集
cut cut -f 2 (file) ファイルの2番目のフィールドを取出して表示
date date
date 0520123501
日付の表示と設定
2001/05/20 12:35に設定
ただし、マシンのBIOSに記憶
させるにはhwclockコマンドで
dd dd if=(infile) of=(outfile) conv=(code) ファイルを指定ブロックサイズで
コピー変換してコピー
depmode depmode -a モジュール依存情報の調査
df df (file1) (file2) ファイルシステムの使用状況
などを表示(パーティションごとに表示)
diff diff (file1) (file2) 2つのファイルの内容比較
(テキスト比較)
dircmp dircmp (dir1) (dir2) 2つのディレクトリの比較
dirs dirs
dirs -l
ディレクトリスタックの表示
絶対パス表示(long表示)
(pushd/popdとともに使う)
dmesg dmesg カーネル起動時の情報表示
du du
du -s ./*
du -s /*
ディレクトリの使用量を表示
カレント以下の使用量表示
「/」以下の使用量表示
fastboot fastboot システムを高速に再起動
「shutdown -r -q -f now」と同じ
fasthalt fasthalt システムを高速にシャットダウン動
「shutdown -h -q -f now」と同じ
fdisk fdisk -l
fdisk
パーティションテーブルの表示
パーティションの編集
このコマンドの誤使用は危険です
fg fg (job-no) ジョブをフォアグラウンドの実行に変更
file file (file)
file /bin/ls
ファイルの種別情報を表示(cf.「readelf」)
lsコマンドの種別情報を表示
find find / -name (file) -print
find . -name (file) -print
find / -type f -perm -04000 -ls
find / -type f -perm -02000 -ls
ファイルの検索(ルートから)
ファイルの検索(カレントから)
SetUIDファイルの検索
SetGIDファイルの検索
finger finger
finger -l
ユーザ情報の表示
詳細情報表示
free free メモリ使用状況の表示
fsck fsck -AR
fsck -A
fsck /dev/hda8
ルートFileSystem以外の検査・修復
すべてのLinux領域の検査・修復
/dev/hda8領域の検査・修復
(必ずシングルユーザモードで)
ftp ftp (IP)
ftp (host)
FTP接続を行う
grep grep "hoge" (file)
grep -n "hoge" (file)
grep -i "hoge" (file)
grep -in "hoge" (file)
ps aux | grep sendmail
grep -v "^#" (file)
ファイル内の文字列「hoge」の検索
行番号表示
英大文字小文字区別なし
上の二つのオプションを同時指定
プロセスsendmailの検索
先頭が#でない行の表示
groupadd groupadd (groupname) グループの追加
groupdel groupdel (groupname) グループの削除
groupmod groupmod -g 567 (groupname) グループ情報の変更(GIDを567に変更)
groups groups
groups hoge
自分の所属するグループ名の表示
ユーザhogeのグループ名の表示
grpconv grpconv /etc/groupのshadow化
grpunconv grpunconv /etc/groupのshadow解除
gzip gzip -cvf (file.tar) > (file.tar.gz)
gzip -cd (file.gz) | tar xvf -
圧縮してGZIPファイルを作成
GZIP形式のファイルの解凍
head head (file)
head -200 (file)
ファイルの先頭だけを表示
先頭から200行だけ表示
history history コマンド実行履歴の表示
hostid hostid ホストマシンのIDを表示
hostname hostname ホストマシン名の表示
hwclock hwclock
hwclosk --systohc
hwclock --hctosys
マシンのハードウェア時間を表示
現在のLinux時間をハードウェアに設定
現在のハードウェア時間をLinuxに設定
id id
id (username)
ユーザID、グループIDの表示
ifconfig ifconfig -a ネットワークI/F情報の表示
insmod insmod (modules) カーネルにモジュールをロード
jobs jobs 実行中のジョブの表示
kill kill (PID)
kill -HUP (PID)
kill -9 (PID)
プロセス番号PID番の強制終了
プロセスの再起動
確実に強制終了させる
(PIDはpsコマンドで表示される)
last last 前回ログインしたときの情報表示
lastlog lastlog ユーザの最後にログインした日付を表示
less less
less (file)
grep hoge (file) | less
ファイルのページ単位出力(スクロール可)
ファイルのページ表示(qで終了)
grep コマンドの結果をページ表示
lilo lilo ブートローダのインストール
ln ln -s (existfile) (linkname) (ソフト)リンクファイルの作成
locate locate (file) ファイルを高速に検索(事前にupdatedbを実行)
login login ログインする
logname logname ログイン名を表示
logout logout ログアウト(セッション終了)する
lpq lpq プリントジョブの表示
lpr lpr -Plp (file) プリンタに出力する
lprm lprm -Plp (nnn) スプール中のプリントジョブを削除
(nnnの番号はlpqコマンドで表示)
lpstat lpstat プリンタ状況の出力
ls ls
ls -lsa
ディレクトリ内容の表示
すべてのファイルの詳細表示
lsof lsof -i:25 ポート25を使用しているプロセスの表示
lsmod lsmod ロードされているモジュールの表示
mail mail
mail hoge
メールの受信
ユーザhogeにメールの送信
make make コンパイルとリンクの実行
man man (command)
man -k (keywords)
コマンドのオンラインマニュアル表示
キーワードに関連する表示
mkdir mkdir (dir) ディレクトリの作成
mkfs mkfs -c -t (type) (filsystem) 新規のファイルシステムの作成
このコマンドの誤使用は危険です
modprobe modprobe (modules) モジュールのロード
more more (file)
grep (key) (file) | more
1ページごとの表示(スクロール不可)
検索結果をページごとに表示
mount mount マウント情報の表示・設定
mv mv (file1) (file2) ファイルの移動または名前変更
(同じディレクトリ内なら名前が変更に)
netstat netstat
netstat -r
netstat -a
netstat -ap
ネットワーク状態の表示
ゲートウェイ情報の表示
ネットワーク状態の全表示
ネットワーク状態の全表示(プロセス表示も)
newgroup newgroup (groups) グループIDの一時変更
nice nice -n 10 slocate slocateコマンドの優先順位を10に変更
nkf nkf
nkf -e (file)
nkf -s (file)
nkf -j (file)
ls -lsa | nkf -e
nkf -e (file1) > (file2)
文字コード変換
EUCに変換
シフトJISに変換
JISに変換
lsコマンドの結果をEUCに変換
file1をEUC変換しfile2を作成
nslookup nslookup (host) ドメインネームの検索
nohup nohup (command) ログアウト後もコマンドを続ける
od od -x -w16 -A x (file) ファイルをバイナリ形式で表示
passwd passwd パスワードの設定・変更
pidof pidof httpd httpdのプロセスIDを調べる
ping ping (IP)
ping (host)
ホスト間の接続確認
popd popd ディレクトリスタックの復旧
ps ps
ps aux
プロセスの表示
全プロセスの詳細表示
pushd pushd ディレクトリスタックへの保存
pwconv pwconv /etc/passwdのshadow化
pwd pwd カレントディレクトリの表示
pwunconv pwunconv /etc/passwdのshadow解除
readelf readelf -h /bin/ls lsコマンドのヘッダ情報を表示
reboot reboot システムをすぐに再起動
renice renice 11 (PID) 稼動中の(PID)のプロセスの優先順位を
11に変更
rm rm (file)
rm -r (dir)
rm -rf (dir)
ファイルの削除
ディレクトリ以下すべて削除
ディレクトリ以下の強制削除
rmdir rmdir (dir) ディレクトリの削除
rmmod rmmod (modules) カーネルからモジュールを解放
route route ルーティングテーブルの表示
scp scp (user@host:file) (user2@host2:file2) ファイルを安全にコピー(SSHを使用)
shutdown shutdown -h now
shutdown -r now
shutdown -rf now
shutdown -h +10
ただちにシステムを停止
システムを再起動
fsckをせずに再起動
10分後にシステム停止
sleep sleep 10s
sleep 10m
10秒間処理停止
10分間処理停止
slogin slogin user@host リモートで安全にログイン(SSHを使用)
sort sort (file)
sort +5 (file)
sort -r (file)
chkconfig --list | sort
行単位で内容を並替えをして表示
5カラム目を基点にソートする
逆順にソート
chkconfigの結果をソートして表示
split split -l 5 (infile) (outfile-base) ファイルを分割して複数のファイルを生成
ssh ssh (IP)
ssh (host)
ssh (host) -l (他のユーザID)
SSH接続の実行(IP指定)
SSH接続の実行(ホスト指定)
他のユーザIDでリモートログイン(小文字のエル)
ssh-keygen ssh-keygen
ssh-keygen -t rsa1
SSH用の公開鍵・秘密鍵を作成
RSA Ver.1用の鍵を作成
stat stat (file) (file)の情報の表示
stop stop (job-no) バックグラウンドのジョブを停止
su su
su -
su hoge
rootユーザへの一時変更
rootに完全になりきる(メールも含めて)
他のユーザhogeへの一時変更
sync sync キャッシュバッファをHDDに書き出す
(昔はshutdown前に必ず行ったものでした!?)
sysctl sysctl -a カーネルの状態表示
tail tail (file)
tail +200 (file)
ファイルの最後部分の表示
ファイルの最後から200行を表示
talk talk hoge ユーザhogeと文字で会話する(チャット)
tar tarcvf (file.tar) (file1) (file2) ...
tar rvf (file.tar) (file1)
tar tvg (file.tar)
tar xvf (file.tar)


ファイルを1つにまとめる(アーカイブ)
アーカイブにファイルを追加
中身の確認
TAR形式ファイルの展開
※展開するときにいきなり原本が上書きに
 なってもよいのかを十分検討し、アーカイブ
 を作成するようにしてください。
tcpdchk tcpdchk tcp_wrappersの設定チェック
telnet telnet (IP)
telnet (host)
TELNET接続の実行
testparm testparm
testparm | more
sambaのsmb.confチェック
1ページ単位で表示
time time (command)
time cc (file.c)
実行時間の計測
コンパイル所要時間の計測
top top CPU・メモリ使用状況のリアルタイム表示
touch touch (file)
touch (file) -t 01101200
空ファイルの作成
ファイルの日時を1月10日 12時00分に
traceroute traceroute (IP)
traceroute (host)
ホストまでの経路を表示
tty tty 端末名の表示
umask umask 077 新規ファイルの属性を700に設定
(7ビットの反転指定になります)
umount umount
umount /mnt/floppy
umount /mnt/cdrom
マウントの解除
FDのマウント解除
CD-ROMのマウント解除
uname uname
uname -a
UNIXシステム名の表示
全内容表示
uniq uniq (infile) (outfile) 重複した行を削除して出力
updatedb updatedb 検索用データベースを作成(locate用)
uptime uptime システム起動からの時刻等の表示
useradd useradd (userID)
useradd -g (groupID) (userID)
ユーザの追加
グループを指定してユーザを追加
userdel userdel (userID)
userdel -r (userID)
ユーザの削除
ホームディレクトリごと削除
usermod usermod -d (dir) (username) ユーザ情報の変更(ホームディレクトリの移動)
users users ログイン名の表示
vi vi (file) テキストエディタ
view view (file) 書込み禁止版のviエディタ
vipw vipw /etc/passwd専用viエディタ
w w 現在ログイン中ユーザのコマンド表示
wait wait (PID)
wait (job-no)
プロセスーおよびジョブの終了を待つ
wall wall 全ユーザにメッセージを送信
(入力後にCTRL-Dで送信)
wc wc (file)
wc -l (file)
wc -w (file)
wc -c (file)
wc -b (file)
単語数の表示
行数の表示
単語数の表示
文字数の表示
バイト数を表示
whereis whereis (file) ファイルのありかを表示
マニュアル、ソース、オブジェクト可
which which (command) コマンド実行ファイルのありかを表示
who who 現在ログイン中のユーザ名の表示
whoami whoami 自分のユーザ名の表示
write write hoge ユーザhogeに対するメッセージの送信
(入力後CTRL-Dで送信)


項 目 使 用 例 説 明
リダイレクト (command) < (file)
ls -lsa > (file)
ls -lsa >> (file)
cc file.c &> (file)
cc file.c 2> (file)
(file)を(command)に渡す(入力)
lsの結果を(file)におとす(新規作成)
lsの結果を(file)におとす(追加更新)
ccの結果を(file)におとす(標準エラー出力も含める)
ccの結果を(file)におとす(標準エラー出力も含める)
バック
グラウンド実行
cc file.c & バックグラウンドでccを実行
並列実行 cc file.c & ps aux 2つのコマンドを並列(同時)に実行
連続実行 cc file.c ; ps aux cc終了後にpsを実行
条件実行 cc file.c && ps aux ccの実行が成功すればpsを実行
グループ化 (ps;who;df) > (file) ps と who と df の結果を一緒に(fileに)おとす
パイプ ps aux | grep httpd psの結果の中で、httpdの文字列のある行だけを表示


Linux標準のEXT2でFDを使う
(rootで作業してください)

fdformat  
mkfs
【初期化】
fdformat /dev/fd0H1440   
あるいは
fdformat /dev/fd0
とか
fdformat /dev/floppy
とか、ディストリビューションによって
いろいろやり方があります。

【ファイルシステム作成】          
mkfs -t ext2 /dev/fd0
(1台目のFDDにある時)

※ちなみに「-t msdos」と指定すると、
 MS-DOS形式のFDとして利用可です。
 でも、MS-DOS形式のFDを使いたい
 方は、mtools を利用した方が便利
 だと思います。(マウントなしに使える)

【マウント】
mount /mnt/floppy
これでEXT2のFDが使用できます。
(MS-DOSなら mount -t msdos 〜)

【マウント解除】
umount /mnt/floppy
マウント解除しないでFDをとりだすと
壊れますのでご注意。

指定時間に
なったら
自動的に
shutdownする
cronとshutdownを
組み合わせて実現します。
APMまたはACPIがきいていれば、
自動で電源まで落ちるので便利です。
BIOSの時刻指定起動と併用すれば、
指定時間帯だけ稼動する環境になります。
(UPSがない場合ですネ......)

ここでは例として、午後8時2分
にシステム停止する例をあげます。

通常は、接続しているユーザの確認
をすべきなのでしょうが、ローカルログ
イン、Samba、Apache、Sendmailなど
のユーザをひとつひとつチェックするのは
容易ではありません。わたしの環境では、
社内で使用するため、午後8時2分になっ
たらかまわず停止させてしまいます。
もちろん作業中のファイルは壊れる
可能性がある
ので、ベルを鳴らすなど
してその時間付近では作業を終了する
などの社員教育(?)を徹底しておきます。

(他の社員はLinuxが操作不可のため)
それ以降使いたい人は、電源を入れ
なおしていただきます。(一晩中稼動!!)

なぜcronでは半端な分を指定する
かといいますと、毎正時に、他の
処理とダブらないようにずらせば、
それだけシステムの負担が少なく
て済むので、慣習としてそうなって
います。
まず、root になります。
# cd /etc
# mkdir cron.shut
# chmod 700 cron.shut
# cd cron.shut
# vi shut.cron
以下のファイルを作成
------------------------
#!/bin/sh
/sbin/shutdown -h now
------------------------
「:wq!」で保存終了します。

# chmod 700 shut.cron
# cd ..   (←「/etc」にもどる)
# vi crontab
以下の記述を最後のあたりに追加
------------------------
# Shutdown on scheduled
02 20 * * * root run-parts /etc/cron.shut
------------------------
「:wq!」で保存終了します。

cronは、約1分おきに「/etc/crontab」をチェッ
クしますので、これで設定は終了です。


お問い合わせはこちら