Linux Command

更新日 2010-01-10 (日) 16:35:07

Linux Command

メモリーやCPUの情報の表示

以下の例は、10秒間隔に3回表示

$ vmstat 10 3
   procs                      memory    swap          io     system         cpu
 r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
 0  0  0   2044  74828 118972 459404   0   0     1     1    1     0   1   0   2
 0  0  0   2044  74828 118972 459404   0   0     0     2  235    27   0   0 100
 0  0  0   2044  74828 118972 459404   0   0     0     0  133    21   0   0 100

topコマンドについて

実行中

P:CPU使用率でソート
A:実時間でソート
N:PIDによる(数字での)ソート
?:Help表示

dig(domain information groper)

ドメイン情報の表示

dig @server domain query-type

server:利用するネームサーバ  
domain:情報を知りたいドメイン名 
query-type:知りたい情報のタイプ

query-type例

A: ネットワークアドレス (省略時)
NS: ネームサーバ
MX: メールサーバの情報
SOA: SOA 情報
ANY: 知っているすべての情報
$ dig @ns.mie-chukyo-u.ac.jp mie-chukyo-u.ac.jp mx

; <<>> DiG 8.3 <<>> @ns.mie-chukyo-u.ac.jp mie-chukyo-u.ac.jp mx
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; QUERY SECTION:
;;      mie-chukyo-u.ac.jp, type = MX, class = IN

;; ANSWER SECTION:
mie-chukyo-u.ac.jp.     1D IN MX        10 mail.mie-chukyo-u.ac.jp.
 
;; AUTHORITY SECTION:
mie-chukyo-u.ac.jp.     1D IN NS        ns01.mctv.ne.jp.
mie-chukyo-u.ac.jp.     1D IN NS        ns.mie-chukyo-u.ac.jp.

;; ADDITIONAL SECTION:
mail.mie-chukyo-u.ac.jp.  1D IN A  192.244.75.5
ns.mie-chukyo-u.ac.jp.  1D IN A         192.244.75.1
ns01.mctv.ne.jp.        5h27m1s IN A    61.122.216.211

;; Total query time: 5 msec
;; FROM: uso5003.matsusaka-u.ac.jp to SERVER: ns.mie-chukyo-u.ac.jp   192.244.75.1
;; WHEN: Fri Nov 10 06:41:53 2006
;; MSG SIZE  sent: 36  rcvd: 149

各ディレクトリごとの使用容量表示

カレントディレクトにあるファイル、ディレクトリの容量

$ du -m -s *   メガバイト表示
1       105
1       About
2       Bisicom
1       GNUstep
88      OpenOffice
カレント全体の容量表示
$ du -m -s .
398     .

chattr(Change Attribute)は ext2 ファイルシステム上にあるファイル属性 を 変更するコマンド

★log を操作不能にする(immutableビットを立てる)

# chattr +i log
# lsattr log
----i--- log

★rootでも削除できなくなる

# rm log
rm: remove write-protected file `log'? y
rm: cannot unlink `log': Operation not permitted

★immutableビットを落とす

# chattr -i log
# lsattr log
-------- log
#) rm log
rm: remove `log'? y

現在のコネクションポートを表示

$ netstat -n --inet
 
稼働中のインターネット接続 (w/oサーバー)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態
tcp        0      0 1xx.244.xxx.253:4040     1xx.xxx.xxx.xxx:1693     ESTABLISHED
tcp        0      0 1xx.244.xxx.253:80       2x9.xxx.252.xxx:7658     TIME_WAIT
tcp        0      0 1xx.244.xxx.253:80       2x9.xxx.252.xxx:7659     TIME_WAIT
tcp        0      0 1xx.244.xxx.253:22       2x9.xxx.252.xxx:7640     ESTABLISHED

特定のポートのプロセス番号を表示

Vineは別途インストールの必要あり。RedHat9はインストールされている。

# /usr/sbin/lsof -i:22
COMMAND  PID  USER   FD   TYPE DEVICE SIZE NODE NAME
sshd    1115  root    3u  IPv4   1634       TCP *:ssh (LISTEN)
sshd    1676  root    4u  IPv4  21375       TCP 192.168.10.214:ssh->192.168.10. 24:1155 (ESTABLISHED)
sshd    1678 okada    4u  IPv4  21375       TCP 192.168.10.214:ssh->192.168.10. 24:1155 (ESTABLISHED)

HDDの検査

# /sbin/badblocks -w -v /dev/hda1
(ただし-wは書き込み試験のため、hda1はできない。
/dev/hda1 is mounted; it's not safe to run badblocks!)

lsコマンドのオプションの一部

-S, --sort=size:ファイル・サイズ順にソートする
-X, --sort=extension:拡張子でソートして表示する
-I, --ignore pattern:patternにマッチするファイルは表示しない
-i, --inode:ファイル名の左にインデックス番号を表示する
--full-time:タイムスタンプを曜日,月,日付,時間,年すべて表示する
-h:容量を適当な単位で表示する
-R, --recursive:ディレクトリ内容を再帰的に表示する(ディレクトリ内をすべて表示)
-N, --literal:エスケープ・コードが含まれていても変換せずに表示する
-B, --ignore-backups:ファイルの最後にチルダ(~)が付いているファイルを除外して表示する

日本語のsjisのファイル名の表示

$ ls --show-control-chars -l | nkf -e
-rw-r--r--    1 okada    staff         147 May  8  2003 文書2.txt
-rw-r--r--    1 okada    staff         110 May  8  2003 文書3.txt
-rw-r--r--    1 okada    staff         376 May  8  2003 文書1.txt

rpm/SHA1/MD5でCheckSumの表示

・pgpcheckを行わないチェック

$ rpm --checksig --nogpg sylpheed-1.0.3-0vl1.2.i386.rpm
                   ^^^^^Redhat,Vineではこのスペル(--nopgpもあるかも?)
sylpheed-1.0.3-0vl1.2.i386.rpm: md5 OK

・SHA1 checksumの表示

$ sha1sum sylpheed-1.0.3-0vl1.2.i386.rpm

8ca7a840d70b2ca9de252a82797e87788ccff201 sylpheed-1.0.3-0vl1.2.i386.rpm

・MD5 checksumの表示

$ md5sum sylpheed-1.0.3-0vl1.2.i386.rpm
f492694eff6ce7632534f7790cd4ef97  sylpheed-1.0.3-0vl1.2.i386.rpm

rpmでインストール済のファイルから、元のrpmパッケージを表示

$ rpm -qf /usr/bin/texi2html
tetex-2.0.2-0vl14

rpmでインストール済のバージョン表示

$ rpm -qa | grep libxml
libxml-1.8.16-0vl1
libxml-devel-1.8.16-0vl1
$ rpm -q -i libxml-1.8.16-0vl1
Name        : libxml                       Relocations: (not relocateable)
Version     : 1.8.16                            Vendor: Project Vine
Release     : 0vl1                          Build Date: 2001年11月25日 02時13分43秒
Install date: 2003年12月06日 22時16分58秒      Build Host: grover
Group       : System Environment/Libraries   Source RPM: libxml-1.8.16-0vl1.src.
rpm
Size        : 1500058                          License: LGPL
Packager    : MATSUBAYASHI 'Shaolin' Kohji 
URL         : http://www.gnome.org
Summary     : XMLライブラリ
Description :
libxmlパッケージは XMLファイルを操作するためのXMLライブラリを備
えています. XML (eXtensible Markup Language)は、
ウェブ経由でデータを交換するための構造化された形式です。

または

$ rpm -qa -i | less

Name        : bind-utils                   Relocations: (not relocateable)
Version     : 8.3.1                             Vendor: Project Vine
Release     : 0vl3                          Build Date: 2003年12月01日 22時31分12秒
Install date: 2003年12月04日 14時16分56秒      Build Host: fool.graco.c.u-tokyo.ac.jp
Group       : Applications/System           Source RPM: bind-8.3.1-0vl3.src.rpm
Size        : 1987827                          License: distributable
Packager    : NISHIMURA Daisuke 
URL         : http://www.isc.org/bind.html
Summary     : DNS ネームサーバに問い合わせをするユーティリティ
Description :
Bind-utils contains a collection of utilities for querying DNS (Domain
Name Service) name servers to find out information about Internet hosts.
These tools will provide you with the IP addresses for given host names,
as well as other information about registered domains and network
addresses.

You should install bind-utils if you need to get information from DNS name
servers.

rpmでパッケージのインストールファイルの表示

$ rpm2cpio zlib-devel-1.1.4-0vl3.i386.rpm | cpio -i --list
./usr/include/zconf.h
./usr/include/zlib.h
./usr/include/zutil.h
./usr/lib/libz.a
./usr/lib/libz.so
./usr/share/doc/zlib-devel-1.1.4
./usr/share/doc/zlib-devel-1.1.4/ChangeLog
./usr/share/doc/zlib-devel-1.1.4/algorithm.txt
./usr/share/man/man3/zlib.3.gz
309 blocks

rpmでインストール済のパッケージの場所の表示

$ rpm -qa | grep libxml
libxml-1.8.16-0vl1
libxml-devel-1.8.16-0vl1
$ rpm -q -l libxml-1.8.16-0vl1
/usr/doc/libxml-1.8.16
/usr/doc/libxml-1.8.16/AUTHORS
/usr/doc/libxml-1.8.16/COPYING
/usr/doc/libxml-1.8.16/COPYING.LIB
/usr/doc/libxml-1.8.16/ChangeLog
/usr/doc/libxml-1.8.16/NEWS
/usr/doc/libxml-1.8.16/README
/usr/doc/libxml-1.8.16/TODO
/usr/doc/libxml-1.8.16/html
/usr/doc/libxml-1.8.16/html/book1.html
/usr/doc/libxml-1.8.16/html/gnome-xml-debugxml.html
/usr/doc/libxml-1.8.16/html/gnome-xml-encoding.html
/usr/doc/libxml-1.8.16/html/gnome-xml-entities.html
/usr/doc/libxml-1.8.16/html/gnome-xml-error.html
/usr/doc/libxml-1.8.16/html/gnome-xml-htmlparser.html
/usr/doc/libxml-1.8.16/html/gnome-xml-htmltree.html
/usr/doc/libxml-1.8.16/html/gnome-xml-nanoftp.html
/usr/doc/libxml-1.8.16/html/gnome-xml-nanohttp.html
/usr/doc/libxml-1.8.16/html/gnome-xml-parser.html
/usr/doc/libxml-1.8.16/html/gnome-xml-parserinternals.html
/usr/doc/libxml-1.8.16/html/gnome-xml-sax.html
/usr/doc/libxml-1.8.16/html/gnome-xml-tree.html
/usr/doc/libxml-1.8.16/html/gnome-xml-valid.html
/usr/doc/libxml-1.8.16/html/gnome-xml-xml-error.html
/usr/doc/libxml-1.8.16/html/gnome-xml-xmlio.html
/usr/doc/libxml-1.8.16/html/gnome-xml-xmlmemory.html
/usr/doc/libxml-1.8.16/html/gnome-xml-xpath.html
/usr/doc/libxml-1.8.16/html/index.sgml
/usr/doc/libxml-1.8.16/html/libxml-lib.html
/usr/doc/libxml-1.8.16/html/libxml-notes.html
/usr/lib/libxml.so.1
/usr/lib/libxml.so.1.8.16

touchでタイムスタンプを変更

$ touch -a file1.txt ←最終参照日時を現在の日時に変更
$ touch -r file1.txt -m file2.txt ←更新日時をfile1.txtと同じに変更
$ touch -d "2 February 2002 10:00am" file1.txt ←更新・最終参照日時を2002年2月2日の午前10時に変更
-a:最終参照日時を変更する
-m:更新日時を変更する
aオプションやmオプションを指定しない場合は、更新日時・最終参照日時のすべてが設定される。
-r:指定したファイルと同じ日時にする
-d:ファイルの日時を指定した時刻に設定する
rオプションやdオプションで時刻を指定しない場合は、現在の時刻が設定される。

cpコマンド

cpで属性を変えずにまた、リンクも継承してコピーする。

cp -af * /xxx/yyy/

注)このとき、カレントディレクトリにある.ファイル(.abc,.yyy等)はコピー されない。

[manより]

      -a, --archive
             コ ピー先で、できる限り元のファイルの構成と属性を保
             持する (ディレクトリ構造体は保存しない) 。 -dpR  と
             同じ。
      -d, --no-dereference
             シ ンボリックリンクをコピーする場合、シンボリックリ
             ンクが指しているファイルをコピーするのではなく、 シ
             ン ボリックリンクとしてコピーする。また、コピー元で
             のハードリンクはコピー先でもハードリンクとして保 持
             される。
      -f, --force
             既存のコピー先ファイルを削除してからコピーする。
      -R, --recursive
             ディレクトリでないものを保持しながら、ディレクト リ
             を 再 帰 的にコピーする 。スペシャルファイルの内容を

       コピーするのでなく、スペシャルファイルをその特性を        保持したままコピー

フォアグランのコマンドをバックグランドにして実行

$ (Command)
^z <---ctrl+zを入力

[1]+  Stopped                 (Command)
$ bg
$ ps x <---確認
19025 pts/0    D      0:00 (Command)

$ % <---フォアグランドに戻す

HDDを復旧不可能のようにランダムデータを書き削除する

knoppixで起動し、以下のコマンド等を実行する

方法1. # shred -n 2 -v -z /dev/hda

  乱数 → 乱数 → 0x00 という3回の上書きが行われます.
  -n:回数
  -v:進捗状況のメッセージを表示する。 
  -z:shred を実行した後、NUL で上書きする.

方法2.# dd if=/dev/nul of=/dev/hda bs=512 count=1

  bs:一度に指定したバイトのブロックを読み書きする.
  count:入力から出力へ指定したブロックをコピーする

HDDのパラメータ表示・変更・ベンチ

パラメータ表示

# /sbin/hdparm /dev/hda

/dev/hda:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 9964/255/63, sectors = 81964302336, start = 0
# /sbin/hdparm -i /dev/hda

/dev/hda:

 Model=Maxtor 6Y080M0, FwRev=YAR51HW0, SerialNo=Y2507PHC
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=DualPortCache, BuffSize=7936kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=160086528
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: (null):

 * signifies the current active mode

設定変更

# /sbin/hdparm -d1 /dev/hda  (-d1:DMA ON  -d0:DMA OFF) 
# /sbin/hdparm -c1 /dev/hda  (-c1:I/O 32bit -c0:I/O 16bit)

ベンチマーク

# /sbin/hdparm -ft /dev/hda

/dev/hda:
 Timing buffered disk reads:  160 MB in  3.00 seconds =  53.33 MB/sec

バイナリからテキストを抽出

$ strings /bin/cat
/lib/ld-linux.so.2
__gmon_start__

(略)
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
memory exhausted

稼動時間の表示

$ uptime
 午前09時32分  稼働 38日間, 20時06分,  1 ユーザ,  負荷平均率: 0.06, 0.33, 0.18
ただし、497日でオーバーフォローするようで0日になる。
10msカウントで、32Bit なので 2^32/(24*60*60/0.01[10ms])=497,1.....

psコマンド

プロセスのユーザを表示
$ /bin/ps -aef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:05 ? 00:00:04 init [3]
root 2 1 0 13:05 ? 00:00:00 [keventd]
root 3 1 0 13:05 ? 00:00:00 [kapmd]
root 4 1 0 13:05 ? 00:00:00 [ksoftirqd_CPU0]
root 5 1 0 13:05 ? 00:00:01 [kswapd]
(略)

grep 階層検索

$ grep -r JE2ISM  *
test/work3/work4/ghi:JE2ISM
test/work3/def:JE2ISM
test/abc.txt:JE2ISM 

タイムゾーンの設定

/etc/localtimeファイルの内容で決まる。

Ex) Asia/Tokyo -> TZif
この内容は/usr/share/zoneinfoディレクトリにあり上記の内容は
/usr/share/zoneinfo/Asia/Tokyoの内容のコピー
よって/etc/localtimeのリンクを/usr/share/zoneinfo/Asia/Tokyo
にしてもOK

元ページ

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS