Linux 系統管理命令


 

df 命令;

df 是來自於coreutils 軟件包,系統安裝時,就自帶的;我們通過這個命令可以查看磁盤的使用情況以及文件系統被掛載的位置;

舉例:

[root@localhost beinan]# df -lh

Filesystem容量 已用 可用 已用% 掛載點

/dev/hda8**G 6.0G 4.4G 58% /

/dev/shm ***M 0 ***M 0% /dev/shm

/dev/sda1**G 22G 35G 39% /mnt/sda1

我們從中可以看到,系統安裝在/dev/hda8 ;還有一個56G的磁盤分區/dev/sda1掛載在 /mnt/sda1中;

其它的參數請參考 man df

系統

# uname -a              # 查看內核/操作系統/CPU信息

# head -n 1 /etc/issue   # 查看操作系統版本

# cat /proc/cpuinfo     # 查看CPU信息

# hostname              # 查看計算機名

# lspci -tv             # 列出所有PCI設備

# lsusb -tv             # 列出所有USB設備

# lsmod                 # 列出加載的內核模塊

# env                   # 查看環境變量

資源

# free -m               # 查看內存使用量和交換區使用量

# df -h                 # 查看各分區使用情況

# du -sh        # 查看指定目錄的大小

# grep MemTotal /proc/meminfo   #查看內存總量

# grep MemFree /proc/meminfo    #查看空閒內存量

# uptime                # 查看系統運行時間、用戶數、負載

# cat /proc/loadavg     # 查看系統負載

磁盤和分區

# mount | column -t     # 查看掛接的分區狀態

# fdisk -l              # 查看所有分區

# swapon -s             # 查看所有交換分區

# hdparm -i /dev/hda    # 查看磁盤參數(僅適用於IDE設備)

# dmesg | grep IDE      # 查看啓動時IDE設備檢測狀況

網絡

# ifconfig              # 查看所有網絡接口的屬性

# iptables -L           # 查看防火牆設置

# route -n              # 查看路由表

# netstat -lntp         # 查看所有監聽端口

# netstat -antp         # 查看所有已經建立的連接

# netstat -s            # 查看網絡統計信息

進程

# ps -ef                # 查看所有進程

# top                   # 實時顯示進程狀態

用戶

# w                     # 查看活動用戶

# id            # 查看指定用戶信息

# last                  # 查看用戶登錄日誌

# cut -d: -f1 /etc/passwd   # 查看系統所有用戶

# cut -d: -f1 /etc/group    # 查看系統所有組

# crontab -l            # 查看當前用戶的計劃任務

服務

# chkconfig --list      # 列出所有系統服務

# chkconfig --list | grep on    #列出所有啓動的系統服務

程序

# rpm -qa               # 查看所有安裝的軟件包

這是一個linux常見命令的列表。

那些有• 標記的條目,你可以直接拷貝到終端上而不需要任何修改,因此你最好開一個終端邊讀邊

剪切&拷貝

所有的命令已在Fedora和Ubuntu下做了測試

命令

描述

apropos whatis

顯示和word相關的命令。參見

線程安全

man

-t man | ps2pdf - > man.pdf

生成一個PDF格式的幫助文件

 

which command

顯示命令的完整路徑名

 

time command

計算命令運行的時間

time cat

開始計時. Ctrl-d停止。參見

sw

nice 

info

運行一個低優先級命令(這裏是info)

renice 19 -p $$

使腳本運行於低優先級。用於非交互任務。

目錄操作

cd -

回到前一目錄

cd

回到用戶目錄

 

(cd dir && command)

進入目錄dir,執行命令command然後回到當前目錄

pushd .

將當前目錄壓入棧,以後你可以使用popd回到此目錄

文件搜索

alias

l='ls -l --color=auto'

單字符文件列表命令

ls -lrt

按日期顯示文件. 參見

newest

ls /usr/bin | pr -T9 -W$COLUMNS

在當前終端寬度上打印9列輸出

 

find -name '*.[ch]' | xargs grep -E 'expr'

在當前目錄及其子目錄下所有.c和.h文件中尋找'expr'. 參見

findrepo

 

find -type f -print0 | xargs -r0 grep -F'example'

在當前目錄及其子目錄中的常規文件中查找字符串'example'

 

find -maxdepth 1 -type f | xargs grep -F'example'

在當前目錄下查找字符串'example'

 

find -maxdepth 1 -type d | while 

read

dir; do echo $dir; echo cmd2; done

對每一個找到的文件執行多個命令(使用while循環)

find -type f ! -perm -444

尋找所有不可讀的文件(對網站有用)

find -type d ! -perm -111

尋找不可訪問的目錄(對網站有用)

locate -r 'file[^/]*\.txt'

使用locate 查找所有符合*file*.txt的文件

look reference

在(有序)字典中快速查找

grep 

--color

reference /usr/share/dict/words

使字典中匹配的正則表達式高亮

歸檔 and compression

 

gpg -c file

文件加密

 

gpg file.gpg

文件解密

 

tar -c dir/ | bzip2 > dir.tar.bz2

將目錄dir/壓縮打包

 

bzip2 -dc dir.tar.bz2 | tar -x

展開壓縮包 (對tar.gz文件使用gzip而不是bzip2)

 

tar -c dir/ | gzip | gpg -c | ssh user@remote'dd of=dir.tar.gz.gpg'

目錄dir/壓縮打包並放到遠程機器上

 

find dir/ -name '*.txt' | tar -c--files-from=- | bzip2 > dir_txt.tar.bz2

將目錄dir/及其子目錄下所有.txt文件打包

 

find dir/ -name '*.txt' | xargs cp -a--target-directory=dir_txt/ --parents

將目錄dir/及其子目錄下所有.txt按照目錄結構拷貝到dir_txt/

 

( tar -c /dir/to/copy ) | ( cd /where/to/&& tar -x -p )

拷貝目錄copy/到目錄/where/to/並保持文件屬性

 

( cd /dir/to/copy && tar -c . )| ( cd /where/to/ && tar -x -p )

拷貝目錄copy/下的所有文件到目錄/where/to/並保持文件屬性

 

( tar -c /dir/to/copy ) | ssh -Cuser@remote 'cd /where/to/ && tar -x -p' 

拷貝目錄copy/到遠程目錄/where/to/並保持文件屬性

 

dd bs=1M if=/dev/sda | gzip | sshuser@remote 'dd of=sda.gz'

將整個硬盤備份到遠程機器上

rsync (使用 --dry-run選項進行測試)

 

rsync -Prsync://rsync.server.com/path/to/file file

只獲取diffs.當下載有問題時可以作多次

 

rsync --bwlimit=1000 fromfile tofile

有速度限制的本地拷貝,對I/O有利

 

rsync -az -e ssh --delete ~/public_html/remote.com:'~/public_html'

鏡像網站(使用壓縮和加密)

 

rsync -auz -e ssh remote:/dir/ . &&rsync -auz -e ssh . remote:/dir/

同步當前目錄和遠程目錄

ssh (安全 Shell)

 

ssh $USER@$HOST command

在$Host主機上以$User用戶運行命令(默認命令爲Shell)

ssh -f -Y $USER@$HOSTNAME xeyes

在名爲$HOSTNAME的主機上以$USER用戶運行GUI命令

 

scp -p -r $USER@$HOST: file dir/

拷貝到$HOST主機$USER'用戶的目錄下

 

ssh -g -L 8080:localhost:80 root@$HOST

由本地主機的8080端口轉發到$HOST主機的80端口

 

ssh -R 1434:imap:143 root@$HOST

由主機的1434端口轉發到imap的143端口

wget (多用途下載工具)

(cd cmdline && wget -nd -pHEKkhttp://www.pixelbeat.org/cmdline.html)

在當前目錄中下載指定網頁及其相關的文件使其可完全瀏覽

 

wget -c http://www.example.com/large.file

繼續上次未完的下載

 

wget -r -nd -np -l1 -A '*.jpg'http://www.example.com/

批量下載文件到當前目錄中

 

wget ftp://remote/file[1-9].iso/

下載FTP站上的整個目錄

wget -q -O-http://www.pixelbeat.org/timeline.html | grep 'a href' | head

直接處理輸出

 

echo 'wget url' | at 01:00

在下午一點鐘下載指定文件到當前目錄

 

wget --limit-rate=20k url

限制下載速度(這裏限制到20

KB/s

)

 

wget -nv --spider --force-html -ibookmarks.html

檢查文件中的鏈接是否存在

 

wget --mirror http://www.example.com/

更新網站的本地拷貝(可以方便地用於cron)

網絡(ifconfig, route, mii-tool, nslookup 命令皆已過時)

 

ethtool eth0

顯示網卡eth0的狀態

 

ethtool --change eth0 autoneg off speed 100duplex full

手動設制網卡速度

 

iwconfig eth1

顯示無線網卡eth1的狀態

 

iwconfig eth1 rate 1Mb/s fixed

手動設制無線網卡速度

iwlist scan

顯示無線網絡列表

ip link show

顯示interface列表

 

ip link set dev eth0 name wan

重命名eth0爲wan

 

ip link set dev eth0 up

啓動interface eth0(或關閉)

ip addr show

顯示網卡的IP地址

 

ip addr add 1.2.3.4/24 brd + dev eth0

添加ip和掩碼(255.255.255.0)

ip route show

顯示路由列表

 

ip route add default via 1.2.3.254

設置默認網關1.2.3.254

tc qdisc add dev lo root handle 1:0 netemdelay 20msec

增加20ms傳輸時間到loopback設備(調試用)

tc qdisc del dev lo root

移除上面添加的傳輸時間

host pixelbeat.org

查尋主機的DNS IP地址

hostname -i

查尋本地主機的IP地址(同等於host `hostname`)

whois pixelbeat.org

查尋某主機或莫IP地址的whois信息

netstat -tupl

列出系統中的internet服務

netstat -tup

列出活躍的連接

windows networking (samba提供所有windows相關的網絡支持)

smbtree

尋找一個windows主機. 參見findsmb

 

nmblookup -A 1.2.3.4

尋找一個指定ip的windows (netbios)名

 

smbclient -L windows_box

顯示在windows主機或samba服務器上的所有共享

 

mount -t smbfs -o fmask=666,guest//windows_box/share /mnt/share

掛載一個windows共享

 

echo 'message' | smbclient -M windows_box

發送一個彈出信息到windows主機(XP sp2默認關閉此功能)

文本操作 (sed使用標準輸入和標準輸出,如果想要編輯文件,則需添加newfile)

 

sed 's/string1/string2/g'

使用string2替換string1

 

sed 's/\(.*\)1/\12/g'

將任何以1結尾的字符串替換爲以2結尾的字符串

 

sed '/ *#/d; /^ *$/d'

刪除註釋和空白行

 

sed ':a; /\\$/N; s/\\\n//; ta'

連接結尾有\的行和其下一行

 

sed 's/[ \t]*$//'

刪除每行後的空白

 

sed 's/\([\\`\\"$\\\\]\)/\\\1/g'

將所有轉義字符之前加上\

seq 10 | sed "s/^/     /; s/ *\(.\{7,\}\)/\1/"

向右排N(任意數)列

 

sed -n '1000p;1000q'

輸出第一千行

 

sed -n '10,20p;20q'

輸出第10-20行

 

sed -n 's/.*\(.*\).*/\1/ip;T;q'

輸出HTML文件的字段中的內容

 

sort -t. -k1,1n -k2,2n -k3,3n -k4,4n

排序IPV4地址

echo 'Test' | tr '[:lower:]' '[:upper:]'

轉換成大寫

tr -dc '[:print:]' 

過濾掉不能打印的字符

history | wc -l

計算指定單詞出現的次數

集合操作 (如果是英文文本的話

export LANG=C

可以提高速度)

 

sort file1 file2 | uniq

兩個未排序文件的並集

 

sort file1 file2 | uniq -d

兩個未排序文件的交集 

 

sort file1 file1 file2 | uniq -u

兩個未排序文件的差集 

 

sort file1 file2 | uniq -u

兩個未排序文件的對稱差集

 

join -a1 -a2 file1 file2

兩個有序文件的並集

 

join file1 file2

兩個有序文件的交集

 

join -v2 file1 file2

兩個有序文件的差集

 

join -v1 -v2 file1 file2

兩個有序文件的對稱差集

數學

echo '(1 + sqrt(5))/2' | bc -l

方便的計算器(計算 φ)

echo 'pad=20; min=64;(100*10^6)/((pad+min)*8)' | bc

更復雜地計算,這裏計算了最大的FastE包率

echo 'pad=20; min=64; print(100E6)/((pad+min)*8)' | python

Python處理數值的科學表示法

echo 'pad=20; plot [64:1518](100*10**6)/((pad+x)*8)' | gnuplot -persist

顯示FastE包率相對於包大小的圖形

echo 'obase=16; ibase=10; 64206' | bc

進制轉換(十進制到十六進制)

echo $((0x2dec))

進制轉換(十六進制到十進制)((shell數學擴展))

units -t '100m/

9.69s

' 'miles/hour'

單位轉換(公尺到英尺)

units -t '500GB' 'GiB'

單位轉換(SI 到IEC 前綴)

units -t '1 googol'

定義查找

seq 100 | (tr '\n' +; echo 0) | bc

加N(任意數)列. 參見 

add

and 

funcpy

日曆

cal -3

顯示一日曆

cal 9 1752

顯示指定月,年的日曆

date -d fri

這個星期五是幾號. 參見

day

date --date='25 Dec' +%A

今年的聖誕節是星期幾

date --date '1970-01-01 UTC 2147483647seconds'

將一相對於1970-01-01 00:00的秒數轉換成時間

TZ=':America/Los_Angeles' date

顯示當前的美國西岸時間(使用tzselect尋找時區)

 

echo "mail -s 'get the train'[email protected] 

在指定的時間發送郵件

echo "DISPLAY=$DISPLAY xmessagecooker" | at "NOW + 30 minutes"

在給定的時間彈出對話框

locales

printf "%'d\n" 1234

根據locale輸出正確的數字分隔

BLOCK_SIZE=\'1 ls -l

用ls命令作類適於locale()文件分組

echo "I live in `localeterritory`"

從locale數據庫中展開信息

LANG=en_IE.utf8 locale int_prefix

查找指定地區的locale信息。參見

ccodes

locale | cut -d= -f1 | xargs locale -kc |less

顯示在locale數據庫中的所有字段

recode (iconv, dos2unix, unix2dos 已經過時了)

recode -l | less

顯示所有有效的字符集及其別名

 

recode windows-1252.. file_to_change.txt

轉換Windows下的ansi文件到當前的字符集(自動進行回車換行符的轉換)

 

recode utf-8/CRLF.. file_to_change.txt

轉換Windows下的ansi文件到當前的字符集

 

recode iso-8859-15..utf8 file_to_change.txt

轉換Latin9(西歐)字符集文件到utf8

 

recode ../b64  file.b64

Base64編碼

 

recode /qp..  file.qp

Quoted-printable格式解碼

 

recode ..HTML  file.html

將文本文件轉換成HTML

recode -lf windows-1252 | grep euro

字符表

中查找歐元符號

echo -n 0x80 | recode latin-9/x1..dump

顯示字符在latin-9中的字符映射

echo -n 0x20AC | recode ucs-2/x2..latin-9/x

顯示latin-9編碼

echo -n 0x20AC | recode ucs-2/x2..utf-8/x

顯示utf-8編碼

光盤

 

gzip  cdrom.iso.gz

保存光盤拷貝

 

mkisofs -V LABEL -r dir | gzip >cdrom.iso.gz

建立目錄dir的光盤鏡像

 

mount -o loop cdrom.iso /mnt/dir

將光盤鏡像掛載到 /mnt/dir (只讀)

 

cdrecord -v dev=/dev/cdrom blank=fast

清空一張CDRW

 

gzip -dc cdrom.iso.gz | cdrecord -vdev=/dev/cdrom -

燒錄光盤鏡像 (使用 dev=ATAPI -scanbus 來確認該使用的 dev)

 

cdparanoia -B

在當前目錄下將光盤音軌轉錄成wav文件

 

cdrecord -v dev=/dev/cdrom -audio *.wav

將當前目錄下的wav文件燒成音樂光盤 (參見cdrdao)

 

oggenc --tracknum='track' track.cdda.wav -o'track.ogg'

將wav文件轉換成ogg格式

磁盤空間 (參見

FSlint

)

ls -lSr

按文件大小降序顯示文件

du -s * | sort -k1,1rn | head

顯示當前目錄下佔用空間最大的一批文件. 參見

dutop

df -h

顯示空餘的磁盤空間

df -i

顯示空餘的inode

fdisk -l

顯示磁盤分區大小和類型(在root下執行)

rpm

-q -a --qf '%10{SIZE}\t%{NAME}\n' | sort-k1,1n

顯示所有在rpm發佈版上安裝的

,並以包字節大小爲序

dpkg

-query -W-f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n

顯示所有在deb發佈版上安裝的

,並以KB包大小爲序

dd bs=1 seek=2TB if=/dev/null of=ext3.test

建立一個大的測試文件(不佔用空間). 參見

truncate

監視/調試

tail -f /var/log/messages

監視Messages

日誌文件

strace -c ls >/dev/null

總結/剖析命令進行的系統調用

strace -f -e open ls >/dev/null

顯示命令進行的系統調用

ltrace -f -e getenv ls >/dev/null

顯示命令調用的庫函數

lsof -p $$

顯示當前進程打開的文件

lsof ~

顯示打開用戶目錄的進程

tcpdump not port 22

顯示除了ssh外的網絡交通. 參見

tcpdump_not_me

ps -e -o pid,args --forest

以樹狀結構顯示進程

ps -e -o pcpu,cpu,nice,state,cputime,args--sort pcpu | sed '/^ 0.0 /d'

以CPU佔用率爲序顯示進程

ps -e -orss=,args= | sort -b -k1,1n | pr-TW$COLUMNS

以內存使用量爲序顯示進程. 參見

ps_mem.py

ps -C firefox-bin -L -o pid,tid,pcpu,state

顯示指定進程的所有線程信息

ps -p 1,2

顯示指定進程ID的進程信息

last reboot

顯示系統重啓記錄

free -m

顯示(剩餘的)內存總量(-m以MB爲單位顯示)

watch -n.1 'cat /proc/interrupts'

監測文件/proc/interrupts的變化

系統信息 (參見

sysinfo

)

uname -a

查看內核/操作系統/CPU信息

head -n1 /etc/issue

查看操作系統版本

cat /proc/partitions

顯示所有在系統中註冊的分區

grep MemTotal /proc/meminfo

顯示系統可見的內存總量

grep "model name" /proc/cpuinfo

顯示CPU信息

lspci -tv

顯示PCI信息

lsusb -tv

顯示USB信息

mount | column -t

顯示所有掛載的文件系統並對齊輸出

#

dmidecode -q | less

顯示SMBIOS/DMI 信息

#

smartctl -A /dev/sda | grep Power_On_Hours

系統開機的總體時間

#

hdparm -i /dev/sda

顯示關於磁盤sda的信息

#

hdparm -tT /dev/sda

檢測磁盤sda的讀取速度

#

badblocks -s /dev/sda

檢測磁盤sda上所有的壞扇區

交互 (參見

linux keyboard shortcut database

)

readline

Line editor used by bash, python, bc,gnuplot, ...

screen

多窗口的虛擬終端, ...

mc

強大的文件管理器,可以瀏覽rpm, tar, ftp, ssh, ...

gnuplot

交互式並可進行腳本編程的畫圖工具

links

網頁瀏覽器

miscellaneous

alias

hd='od -Ax -tx1z -v'

方便的十六進制輸出。 (用法舉例: • hd /proc/self/cmdline | less)

alias

realpath='readlink -f'

顯示符號鏈接指向的真實路徑((用法舉例: • realpath ~/../$USER)

set | grep $USER

在當前

環境

中查找

 

touch -c -t 0304050607 file

改變文件的時間標籤 (YYMMDDhhmm)

python -m SimpleHTTPServer

Serve current directory tree athttp://$HOSTNAME:8000/


linux查看系統信息命令

     # uname -a # 查看內核/操作系統/CPU信息

    # head -n 1 /etc/issue # 查看操作系統版本

    # cat /proc/cpuinfo # 查看CPU信息

    # hostname # 查看計算機名

    # lspci -tv # 列出所有PCI設備

    # lsusb -tv # 列出所有USB設備

    # lsmod # 列出加載的內核模塊

    # env # 查看環境變量資源

    # free -m # 查看內存使用量和交換區使用量

    # df -h # 查看各分區使用情況

    # du -sh # 查看指定目錄的大小

    # grep MemTotal /proc/meminfo # 查看內存總量

    # grep MemFree /proc/meminfo # 查看空閒內存量

    # uptime # 查看系統運行時間、用戶數、負載

    # cat /proc/loadavg # 查看系統負載磁盤和分區

    # mount | column -t # 查看掛接的分區狀態

    # fdisk -l # 查看所有分區

    # swapon -s # 查看所有交換分區

    # hdparm -i /dev/hda # 查看磁盤參數(僅適用於IDE設備)

    # dmesg | grep IDE # 查看啓動時IDE設備檢測狀況網絡

    # ifconfig # 查看所有網絡接口的屬性

    # iptables -L # 查看防火牆設置

    # route -n # 查看路由表

    # netstat -lntp # 查看所有監聽端口

    # netstat -antp # 查看所有已經建立的連接

    # netstat -s # 查看網絡統計信息進程

    # ps -ef # 查看所有進程

    # top # 實時顯示進程狀態用戶

    # w # 查看活動用戶

    # id # 查看指定用戶信息

    # last # 查看用戶登錄日誌

    # cut -d: -f1 /etc/passwd # 查看系統所有用戶

    # cut -d: -f1 /etc/group # 查看系統所有組

    # crontab -l # 查看當前用戶的計劃任務服務

    # chkconfig –list # 列出所有系統服務

    # chkconfig –list | grep on # 列出所有啓動的系統服務程序

    # rpm -qa # 查看所有安裝的軟件包

    cat /proc/cpuinfo :查看CPU相關參數

    cat /proc/partitions :查看硬盤和分區

    cat /proc/meminfo :查看內存信息

    cat /proc/version :查看版本,類似uname -r

    cat /proc/ioports :查看設備io端口

    cat /proc/interrupts :查看中斷

    cat /proc/pci :查看pci設備的信息

    cat /proc/swaps :查看所有swap分區的信息


發佈了11 篇原創文章 · 獲贊 13 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章