Linux系統(tǒng)常用命令合集
歡迎來到學習啦,本文介紹Linux系統(tǒng)常用命令合集 ,歡迎您閱讀。
系統(tǒng)
# uname -a # 查看內核/操作系統(tǒng)/CPU信息
# head -n 1 /etc/issue # 查看操作系統(tǒng)版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看計算機名
# lspci -tv # 列出所有PCI設備
# lsusb -tv # 列出所有USB設備
# lsmod # 列出加載的內核模塊
# env # 查看環(huán)境變量
資源
# free -m # 查看內存使用量和交換區(qū)使用量
# df -h # 查看各分區(qū)使用情況
# du -sh <目錄名> # 查看指定目錄的大小
# grep MemTotal /proc/meminfo # 查看內存總量
# grep MemFree /proc/meminfo # 查看空閑內存量
# uptime # 查看系統(tǒng)運行時間、用戶數(shù)、負載
# cat /proc/loadavg # 查看系統(tǒng)負載
磁盤和分區(qū)
# mount | column -t # 查看掛接的分區(qū)狀態(tài)
# fdisk -l # 查看所有分區(qū)
# swapon -s # 查看所有交換分區(qū)
# hdparm -i /dev/hda # 查看磁盤參數(shù)(僅適用于IDE設備)
# dmesg | grep IDE # 查看啟動時IDE設備檢測狀況
網絡
# ifconfig # 查看所有網絡接口的屬性
# iptables -L # 查看防火墻設置
# route -n # 查看路由表
# netstat -lntp # 查看所有監(jiān)聽端口
# netstat -antp # 查看所有已經建立的連接
# netstat -s # 查看網絡統(tǒng)計信息
進程
# ps -ef # 查看所有進程
# top # 實時顯示進程狀態(tài)
用戶
# w # 查看活動用戶
# id <用戶名> # 查看指定用戶信息
# last # 查看用戶登錄日志
# cut -d: -f1 /etc/passwd # 查看系統(tǒng)所有用戶
# cut -d: -f1 /etc/group # 查看系統(tǒng)所有組
# crontab -l # 查看當前用戶的計劃任務
服務
# chkconfig --list # 列出所有系統(tǒng)服務
# chkconfig --list | grep on # 列出所有啟動的系統(tǒng)服務
程序
# rpm -qa # 查看所有安裝的軟件包
linux常見命令的列表
系統(tǒng)命令
apropos whatis 顯示和word相關的命令。 參見線程安全
man -t man | ps2pdf - > man.pdf 生成一個PDF格式的幫助文件
which command 顯示命令的完整路徑名
time command 計算命令運行的時間
time cat 開始計時. Ctrl-d停止。參見sw
nice info 運行一個低優(yōu)先級命令(這里是info)
renice 19 -p $$ 使腳本運行于低優(yōu)先級。用于非交互任務。
目錄操作
cd - 回到前一目錄
cd 回到用戶目錄
(cd dir && command) 進入目錄dir,執(zhí)行命令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‘ 在當前目錄及其子目錄中的常規(guī)文件中查找字符串‘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 對每一個找到的文件執(zhí)行多個命令(使用while循環(huán))
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 -C user@remote ‘cd /where/to/ && tar -x -p‘ 拷貝目錄copy/到遠程目錄/where/to/并保持文件屬性
dd bs=1M if=/dev/sda | gzip | ssh user@remote ‘dd of=sda.gz‘ 將整個硬盤備份到遠程機器上
rsync (使用 --dry-run選項進行測試)
rsync -P rsync://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端口轉發(fā)到$HOST主機的80端口
ssh -R 1434:imap:143 root@$HOST 由主機的1434端口轉發(fā)到imap的143端口
wget (多用途下載工具)
(cd cmdline && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) 在當前目錄中下載指定網頁及其相關的文件使其可完全瀏覽
wget -c http://www.example.com/large.file 繼續(xù)上次未完的下載
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 限制下載速度(這里限制到20KB/s)
wget -nv --spider --force-html -i bookmarks.html 檢查文件中的鏈接是否存在
wget --mirror http://www.example.com/ 更新網站的本地拷貝(可以方便地用于cron)
網絡(ifconfig, route, mii-tool, nslookup 命令皆已過時)
ethtool eth0 顯示網卡eth0的狀態(tài)
ethtool --change eth0 autoneg off speed 100 duplex full 手動設制網卡速度
iwconfig eth1 顯示無線網卡eth1的狀態(tài)
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 netem delay 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 列出系統(tǒng)中的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 發(fā)送一個彈出信息到windows主機(XP sp2默認關閉此功能)
文本操作 (sed使用標準輸入和標準輸出,如果想要編輯文件,則需添加newfile)
sed ‘s/string1/string2/g‘ 使用string2替換string1
sed ‘s/\(.*\)1//g‘ 將任何以1結尾的字符串替換為以2結尾的字符串
sed ‘/ *#/d; /^ *$/d‘ 刪除注釋和空白行
sed ‘:a; /$/N; s/\n//; ta‘ 連接結尾有\(zhòng)的行和其下一行
sed ‘s/[ \t]*$//‘ 刪除每行后的空白
sed ‘s/\([\`\"$\]\)/\ class="main">
Linux系統(tǒng)常用命令合集
Linux系統(tǒng)常用命令合集
sed -n ‘1000p;1000q‘ 輸出第一千行
sed -n ‘10,20p;20q‘ 輸出第10-20行
sed -n ‘s/.*字段中的 內容
sort -t. -k1,1n -k2,2n -k3,3n -k4,4n 排序IPV4地址
echo ‘Test‘ | tr ‘[:lower:]‘ ‘[:upper:]‘ 轉換成大寫
tr -dc ‘[:print:]‘ < /dev/urandom 過濾掉不能打印的字符
history | wc -l 計算指定單詞出現(xiàn)的次數(shù)
集合操作 (如果是英文文本的話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 兩個有序文件的對稱差集
數(shù)學
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處理數(shù)值的科學表示法
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數(shù)學擴展)
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(任意數(shù))列. 參見 add and funcpy
日歷
cal -3 顯示一日歷
cal 9 1752 顯示指定月,年的日歷
date -d fri 這個星期五是幾號. 參見day
date --date=‘25 Dec‘ +%A 今年的圣誕節(jié)是星期幾
date --date ‘1970-01-01 UTC 2147483647 seconds‘ 將一相對于1970-01-01 00:00的秒數(shù)轉換成時間
TZ=‘:America/Los_Angeles‘ date 顯示當前的美國西岸時間(使用tzselect尋找時區(qū))
echo "mail -s ‘get the train‘ P@draigBrady.com < /dev/null" | at 17:45 在指定的時間發(fā)送郵件
echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes" 在給定的時間彈出對話框
locales
printf "%‘d\n" 1234 根據(jù)locale輸出正確的數(shù)字分隔
BLOCK_SIZE=\‘1 ls -l 用ls命令作類適于locale()文件分組
echo "I live in `locale territory`" 從locale數(shù)據(jù)庫中展開信息
LANG=en_IE.utf8 locale int_prefix 查找指定地區(qū)的locale信息。參見ccodes
locale | cut -d= -f1 | xargs locale -kc | less 顯示在locale數(shù)據(jù)庫中的所有字段
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.txt > file.b64 Base64編碼
recode /qp.. < file.txt > file.qp Quoted-printable格式解碼
recode ..HTML < file.txt > 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 < /dev/cdrom > 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 -v dev=/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 顯示磁盤分區(qū)大小和類型(在root下執(zhí)行)
rpm -q -a --qf ‘%10{SIZE}\t%{NAME}\n‘ | sort -k1,1n 顯示所有在rpm發(fā)布版上安裝的包,并以包字節(jié)大小為序
dpkg-query -W -f=‘${Installed-Size;10}\t${Package}\n‘ | sort -k1,1n 顯示所有在deb發(fā)布版上安裝的包,并以KB包大小為序
dd bs=1 seek=2TB if=/dev/null of=ext3.test 建立一個大的測試文件(不占用空間). 參見truncate
監(jiān)視/調試
tail -f /var/log/messages 監(jiān)視Messages日志文件
strace -c ls >/dev/null 總結/剖析命令進行的系統(tǒng)調用
strace -f -e open ls >/dev/null 顯示命令進行的系統(tǒng)調用
ltrace -f -e getenv ls >/dev/null 顯示命令調用的庫函數(shù)
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 顯示系統(tǒng)重啟記錄
free -m 顯示(剩余的)內存總量(-m以MB為單位顯示)
watch -n.1 ‘cat /proc/interrupts‘ 監(jiān)測文件/proc/interrupts的變化
系統(tǒng)信息 (參見sysinfo)
uname -a 查看內核/操作系統(tǒng)/CPU信息
head -n1 /etc/issue 查看操作系統(tǒng)版本
cat /proc/partitions 顯示所有在系統(tǒng)中注冊的分區(qū)
grep MemTotal /proc/meminfo 顯示系統(tǒng)可見的內存總量
grep "model name" /proc/cpuinfo 顯示CPU信息
lspci -tv 顯示PCI信息
lsusb -tv 顯示USB信息
mount | column -t 顯示所有掛載的文件系統(tǒng)并對齊輸出
dmidecode -q | less 顯示SMBIOS/DMI 信息
smartctl -A /dev/sda | grep Power_On_Hours 系統(tǒng)開機的總體時間
hdparm -i /dev/sda 顯示關于磁盤sda的信息
hdparm -tT /dev/sda 檢測磁盤sda的讀取速度
badblocks -s /dev/sda 檢測磁盤sda上所有的壞扇區(qū)
===== 交互 (參見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 在當前環(huán)境中查找
touch -c -t 0304050607 file 改變文件的時間標簽 (YYMMDDhhmm)
python -m SimpleHTTPServer Serve current directory tree at http://$HOSTNAME:8000/