您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關linux中經典命令有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1.刪除0字節文件
find -type f -size 0 -exec rm -rf {} \;
2.查看進程
按內存從大到小排列
ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
3.按cpu利用率從大到小排列
ps -e -o "%C : %p : %z : %a"|sort -nr
4.打印說cache里的URL
grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'
5.查看http的并發請求數及其TCP連接狀態:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
6. sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config sed在這個文里Root的一行,匹配Root一行,將no替換成yes.
7.1.如何殺掉mysql進程:
ps aux|grep mysql|grep -v grep|awk '{print $2}'|xargs kill -9 (從中了解到awk的用途)
pgrep mysql |xargs kill -9 [網友:&FROST]
killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid` 試試查殺進程PID
8.顯示運行3級別開啟的服務:
ls /etc/rc3.d/S* |cut -c 15- (從中了解到cut的用途,截取數據)
9.如何在編寫SHELL顯示多個信息,用EOF
cat << EOF
+--------------------------------------------------------------+
| === Welcome to Tunoff services === |
+--------------------------------------------------------------+
EOF
10. for 的巧用(如給mysql建軟鏈接)
cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done
11. 取IP地址:
ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6- 或者
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
12.內存的大小:
free -m |grep "Mem" | awk '{print $2}'
13.
netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
14.查看Apache的并發請求數及其TCP連接狀態:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
15.因為同事要統計一下服務器下面所有的jpg的文件的大小,寫了個shell給他來統計.原來用xargs實現,但他一次處理一部分,搞的有多個總和....,下面的命令就能解決啦.
find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
CPU的數量(多核算多個CPU,cat /proc/cpuinfo |grep -c processor)越多,系統負載越低,每秒能處理的請求數也越多。
--------------------------------------------------------------------------------------------------------------------
16 CPU負載 # cat /proc/loadavg
檢查前三個輸出值是否超過了系統邏輯CPU的4倍。
18 CPU負載 #mpstat 1 1
檢查%idle是否過低(比如小于5%)
19 內存空間 # free
檢查free值是否過低 也可以用 # cat /proc/meminfo
20 swap空間 # free
檢查swap used值是否過高 如果swap used值過高,進一步檢查swap動作是否頻繁:
# vmstat 1 5
觀察si和so值是否較大
21 磁盤空間 # df -h
檢查是否有分區使用率(Use%)過高(比如超過90%) 如發現某個分區空間接近用盡,可以進入該分區的掛載點,用以下命令找出占用空間最多的文件或目錄:
# du -cks * | sort -rn | head -n 10
22 磁盤I/O負載 # iostat -x 1 2
檢查I/O使用率(%util)是否超過100%
23 網絡負載 # sar -n DEV
檢查網絡流量(rxbyt/s, txbyt/s)是否過高
24 網絡錯誤 # netstat -i
檢查是否有網絡錯誤(drop fifo colls carrier) 也可以用命令:# cat /proc/net/dev
25 網絡連接數目 # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n
26 進程總數 # ps aux | wc -l
檢查進程個數是否正常 (比如超過250)
27 可運行進程數目 # vmwtat 1 5
列給出的是可運行進程的數目,檢查其是否超過系統邏輯CPU的4倍
28 進程 # top -id 1
觀察是否有異常進程出現
29 網絡狀態 檢查DNS, 網關等是否可以正常連通
30 用戶 # who | wc -l
檢查登錄用戶是否過多 (比如超過50個) 也可以用命令:# uptime
31 系統日志 # cat /var/log/rflogview/*errors
檢查是否有異常錯誤記錄 也可以搜尋一些異常關鍵字,例如:
# grep -i error /var/log/messages
# grep -i fail /var/log/messages
# egrep -i 'error|warn' /var/log/messages 查看系統異常
32 核心日志 # dmesg
檢查是否有異常錯誤記錄
33 系統時間 # date
檢查系統時間是否正確
34 打開文件數目 # lsof | wc -l
檢查打開文件總數是否過多
35 日志 # logwatch –print 配置/etc/log.d/logwatch.conf,將 Mailto 設置為自己的email 地址,啟動mail服務 (sendmail或者postfix),這樣就可以每天收到日志報告了。
缺省logwatch只報告昨天的日志,可以用# logwatch –print –range all 獲得所有的日志分析結果。
可以用# logwatch –print –detail high 獲得更具體的日志分析結果(而不僅僅是出錯日志)。
36.殺掉80端口相關的進程
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
37.清除僵死進程。
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9
38.tcpdump 抓包 ,用來防止80端口被人***時可以分析數據
# tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
39.然后檢查IP的重復數 并從小到大排序 注意 "-t\ +0" 中間是兩個空格
# less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0
40.查看有多少個活動的
php-cgi進程
netstat -anp | grep
php-cgi | grep ^tcp | wc -l
41.利用iptables對應簡單***
netstat -an | grep -v LISTEN | awk ‘{print $5}’ |grep -v 127.0.0.1|grep -v 本機ip|sed “s/::ffff://g”|awk ‘BEGIN { FS=”:” } { Num[$1]++ } END { for(i in Num) if(Num>8) { print i} }’ |grep ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’| xargs -i[] iptables -I INPUT -s [] -j DROP
Num>8部分設定值為閥值,這條句子會自動將netstat -an 中查到的來自同一IP的超過一定量的連接的列入禁止范圍。本機ip改成你的服務器的ip地址
查看軟件xxx安裝內容
dpkg -L xxx
查找軟件
apt-cache search 正則表達式
查找文件屬于哪個包
dpkg -S filename
查詢軟件xxx依賴哪些包
apt-cache depends xxx
查詢軟件xxx被哪些包依賴
apt-cache rdepends xxx
增加一個光盤源
sudo apt-cdrom add
系統升級
sudo apt-get updatesudo apt-get dist-upgrade
清除所以刪除包的殘余配置文件
dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P -
系統
查看內核
uname -a
查看Ubuntu版本
cat /etc/issue
查看內核加載的模塊
lsmod
查看PCI設備
lspci
查看USB設備
lsusb
查看網卡狀態
sudo ethtool eth0
查看CPU信息
cat /proc/cpuinfo
顯示當前硬件信息
lshw
硬盤
查看硬盤的分區
sudo fdisk -l
查看硬盤剩余空間
df -h df -H
查看目錄占用空間
du -hs 目錄名
優盤沒法卸載
syncfuser -km /media/usbdisk
內存
查看當前的內存使用情況
free -l
進程
查看當前有哪些進程
ps -A
殺死一個進程
kill 進程號(就是ps -A中的第一列的數字)或者 killall 進程名
強制殺死一個進程(在上面的殺死進程不成功的時候使用)
kill -9 進程號或者 killall -9 進程名
查看當前進程的實時狀況
top
查看進程打開的文件
lsof -p
ADSL
配置 ADSL
sudo pppoeconf
ADSL手工撥號
sudo pon dsl-provider
激活 ADSL
sudo /etc/ppp/pppoe_on_boot
斷開 ADSL
sudo poff
查看撥號日志
sudo plog
網絡
根據IP查網卡地址
arping IP地址
查看當前IP地址
sudo ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'
查看當前外網的IP地址
w3m -no-cookie -dump ip.loveroot.com |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
查看當前監聽80端口的程序
lsof -i :80
查看當前網卡的物理地址
sudo arp -a | awk '{print $4}'sudo ifconfig eth0 | head -1 | awk '{print $5}'
立即讓網絡支持nat
sudo echo 1 > /proc/sys/net/ipv4/ip_forwardsudo iptables -t nat -I POSTROUTING -j MASQUERADE
查看路由信息
netstat -rnsudo route -n
手工增加刪除一條路由
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
修改網卡MAC地址的方法
sudo ifconfig eth0 down #關閉網卡sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址sudo ifconfig eth0 up #然后啟動網卡
服務
添加一個服務
sudo update-rc.d 服務名 defaults 99
刪除一個服務
sudo update-rc.d 服務名 remove
臨時重啟一個服務
/etc/init.d/服務名 restart
臨時關閉一個服務
/etc/init.d/服務名 stop
臨時啟動一個服務
/etc/init.d/服務名 start
設置
配置默認Java使用哪個
sudo update-alternatives --config java
修改用戶資料
sudo chfn userid
給apt設置代理
export http_proxy=http://xx.xx.xx.xx:xxx
修改系統登錄信息
sudo vim /etc/motd
中文
轉換文件名由GBK為UTF8
sudo apt-get install convmv convmv -r -f cp936 -t utf8 --notest --nosmart *
轉換文件內容由GBK為UTF8
iconv -f gbk -t utf8 $i > newfile
文件
快速查找某個文件
whereis filenamefind 目錄 -name 文件名
查看文件類型
file filename
顯示xxx文件倒數6行的內容
tail -n 6 xxx
查找包含xxx字符串的文件
grep -l -r xxx .
查找關于xxx的命令
apropos xxxman -k xxx
通過ssh傳輸文件
scp -rp /path/filename
username@remoteIP:/path #將本地文件拷貝到服務器上scp -rp
username@remoteIP:/path/filename /path #將遠程文件從服務器下載到本地
查看某個文件被哪些應用程序讀寫
lsof 文件名
壓縮
解壓縮 xxx.tar.gz
tar -zxvf xxx.tar.gz
解壓縮 xxx.tar.bz2
tar -jxvf xxx.tar.bz2
壓縮aaa bbb目錄為xxx.tar.gz
tar -zcvf xxx.tar.gz aaa bbb
壓縮aaa bbb目錄為xxx.tar.bz2
tar -jcvf xxx.tar.bz2 aaa bbb
Nautilus
顯示隱藏文件
Ctrl+h
顯示地址欄
Ctrl+l
特殊 URI 地址
* computer:/// - 全部掛載的設備和網絡* network:/// - 瀏覽可用的網絡* burn:/// - 一個刻錄 CDs/DVDs 的數據虛擬目錄* smb:/// - 可用的 windows/samba 網絡資源* x-nautilus-desktop:/// - 桌面項目和圖標*
file:/// - 本地文件* trash:/// - 本地回收站目錄* ftp:// - FTP 文件夾* ssh:// - SSH 文件夾
查看已安裝字體
在nautilus的地址欄里輸入”fonts:///“,就可以查看本機所有的fonts
程序
詳細顯示程序的運行信息
strace -f -F -o outfile <cmd>
日期和時間
設置日期
#date -s mm/dd/yy
設置時間
#date -s HH:MM
將時間寫入CMOS
hwclock --systohc
讀取CMOS時間
hwclock --hctosys
控制臺
不同控制臺間切換
Ctrl + ALT + ←Ctrl + ALT + →
指定控制臺切換
Ctrl + ALT + Fn(n:1~7)
控制臺下滾屏
SHIFT + pageUp/pageDown
控制臺抓圖
setterm -dump n(n:1~7)
數據庫
mysql的數據庫存放在地方
/var/lib/mysql
從mysql中導出和導入數據
mysqldump 數據庫名 > 文件名 #導出數據庫mysqladmin create 數據庫名 #建立數據庫mysql 數據庫名 < 文件名 #導入數據庫
忘了mysql的root口令怎么辦
sudo /etc/init.d/mysql stopsudo mysqld_safe --skip-grant-tables &sudo mysqladmin -u user password 'newpassword''sudo mysqladmin flush-privileges
修改mysql的root口令
sudo mysqladmin -uroot -p password '你的新密碼'
其它
下載網站文檔
wget -r -p -np -k
http://www.21cn.com· -r:在本機建立服務器端目錄結構;· -p: 下載顯示HTML文件的所有圖片;· -np:只下載目標站點指定目錄及其子目錄的內容;· -k: 轉換非相對鏈接為相對鏈接。
感謝各位的閱讀!關于“linux中經典命令有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。