你早晚都要學(xué)會得linux命令窟赏。
學(xué)linux的時候,前輩們都說千萬別用圖形化界面娶眷,多敲命名有好處。這是接觸到的一份liunx命令啸臀,也就整理留了下來届宠。老樣子 公眾號回復(fù)linux下載全部~
stat命令查看一個文件的屬性 :訪問時間(Access)烁落、修改時間(modify)、狀態(tài)改變時間(Change)
stat filename
查找并刪除/data這個目錄7天前創(chuàng)建的文件
# find /data -ctime +7 -exec rm -rf {} \;
# find /data -ctime +7 | xargs rm -rf
find命令查找文件并復(fù)制到/opt目錄
方法1:
# find /etc -name httpd.conf -exec cp -rf {} /opt/ \;: #-exec執(zhí)行后面命令豌注,{}代表前面輸出的結(jié)果伤塌,\;結(jié)束命令
方法2:
# find /etc -name httpd.conf |xargs -i cp {} /opt #-i表示輸出的結(jié)果由{}代替
查看根目錄下大于1G的文件 默認(rèn)單位是b,可以使用其他單位如轧铁,C每聪、K、M
# find / -size +1024M
tar命令壓縮排除某個目錄
# tar zcvf data.tar.gz /data --exclude=tmp #--exclude參數(shù)為不包含某個目錄或文件齿风,后面也可以跟多個
查看tar包存檔文件药薯,不解壓
# tar tf data.tar.gz #t是列出存檔文件目錄,f是指定存檔文件
實時查看系統(tǒng)所使用內(nèi)存
#free -b -s5
5秒循環(huán)一次...
查看端口被哪個進(jìn)程占用
# lsof -i:端口號
# netstat -tunlp | grep 端口號
查看服務(wù)器IP連接數(shù)
# netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n
-tun:-tu是顯示tcp和udp連接救斑,n是以IP地址顯示
cut -d:-f1:cut是一個選擇性顯示一行的內(nèi)容命令童本,-d指定:為分隔符,-f1顯示分隔符后的第一個字段脸候。
uniq -c:報告或刪除文中的重復(fù)行穷娱,-c在輸出行前面加上出現(xiàn)的次數(shù)
sort -n:根據(jù)不同類型進(jìn)行排序,默認(rèn)排序是升序运沦,-r參數(shù)改為降序泵额,-n是根據(jù)數(shù)值的大小進(jìn)行排序
iptables將本機80端口轉(zhuǎn)發(fā)到本地8080端口
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables網(wǎng)站跳轉(zhuǎn)
先開啟路由轉(zhuǎn)發(fā):
# echo "1" > /proc/sys/net/ipv4/ip_forward #臨時生效
內(nèi)網(wǎng)訪問外網(wǎng)(SNAT):
# iptables –t nat -A POSTROUTING -s [內(nèi)網(wǎng)IP或網(wǎng)段] -j SNAT --to [公網(wǎng)IP]
內(nèi)網(wǎng)服務(wù)器要指向防火墻內(nèi)網(wǎng)IP為網(wǎng)關(guān)
公網(wǎng)訪問內(nèi)網(wǎng)(DNAT)(公網(wǎng)端口映射內(nèi)網(wǎng)端口):
# iptables –t nat -A PREROUTING -d [對外IP] -p tcp --dport [對外端口] -j DNAT --to [內(nèi)網(wǎng)IP:內(nèi)網(wǎng)端口]
內(nèi)網(wǎng)服務(wù)器要配置防火墻內(nèi)網(wǎng)IP為網(wǎng)關(guān),否則數(shù)據(jù)包回不來携添。另外嫁盲,這里不用配置SNAT,因為系統(tǒng)服務(wù)會根據(jù)數(shù)據(jù)包來源再返回去
修改網(wǎng)卡MAC地址:
#ifconfig eth0 down
#ifconfig eth0 hw ether 00:AA:BB:CCD:EE
#ifconfig eth0 up
列出nginx日志訪問最多的10個IP
方法1:
# awk '{print $1}' access.log |sort |uniq -c|sort -nr |head -n 10
sort :排序
uniq -c:合并重復(fù)行烈掠,并記錄重復(fù)次數(shù)
sort -nr :按照數(shù)字進(jìn)行降序排序
監(jiān)控目錄亡资,新創(chuàng)建的文件名追加到日志中 要安裝inotify-tools軟件包
#!/bin/bash
MON_DIR=/opt
inotifywait -mq --format %f -e create $MON_DIR |\
while read files; do
? echo $files >> test.log
done
在Linux上釋放所有arp:
#arp -d -a
關(guān)于sysctl: /etc/sysctl.conf對應(yīng)的是/proc/sys/目錄...
例如要修改/proc/sys/net/ipv4/ip_default_ttl的話,就修改/etc/sysctl.conf文件如下...
添加一行為:
net.ipv4.ip_default_ttl=255,也就是把文件夾變成小數(shù)點就可以啦
然后執(zhí)行一次
#sysctl -p
就可以生效啦向叉。
使用date修改系統(tǒng)時間:
$ date -s "20190301 14:31:00"
#hwclock寫入bios
使退出SSH后程序繼續(xù)運行:
# disown
或者是
nohup command &
設(shè)置環(huán)境變量
#export 變量名=變量值
自動化任務(wù) cron,at,batch
系統(tǒng)管理員通過cron.deny和cron.allow來禁止和允許用戶擁有自己的crontab文件...
crontab的格式: 分 時 日 月 星期 要運行的命令(注意使用的命令必須是絕對路徑)
crontab -e 編輯
crontab -r 刪除
crontab -u user 用某用戶來執(zhí)行
crontab -l 列出當(dāng)前crontab內(nèi)容
at也通過/etc/at.allow和at.deny文件空子后哪些用戶可以使用at命令锥腻,哪些不行
創(chuàng)建文件時即規(guī)定日期
#touch -t 11091531file //11.09日15:31分
字符串判斷
str1 = str2 兩個串有相同內(nèi)容、長度時為真
str1 != str2 str1和str2不等時為真
-n str1 串的長度大于0時為真(串非空)
-z str1 串的長度為0時為真(空串)
str1 str1為非空時為真
df 命令用于顯示目前在Linux系統(tǒng)上的文件系統(tǒng)的磁盤使用情況統(tǒng)計
--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-k 等價于 --block-size=1024 -m 等價于 --block-size=1048576
-T 顯示文件系統(tǒng)的形式
xargs 是給命令傳遞參數(shù)的一個過濾器 母谎∈莺冢可以將管道或標(biāo)準(zhǔn)輸入(stdin)數(shù)據(jù)轉(zhuǎn)換成命令行參數(shù),也能夠從文件的輸出中讀取數(shù)據(jù), 也可以將單行或多行文本輸入轉(zhuǎn)換為其他格式奇唤,例如多行變單行幸斥,單行變多行。
能夠捕獲一個命令的輸出咬扇,然后傳遞給另外一個命令甲葬。由于很多命令不支持|管道來傳遞參數(shù),而日常工作中有有這個必要懈贺,所以就有了 xargs 命令经窖,例如:
somecommand |xargs -item command
-a file 從文件中讀入作為sdtin
-e flag 坡垫,注意有的時候可能會是-E,flag必須是一個以空格分隔的標(biāo)志画侣,分析到含有flag這個標(biāo)志的時候就停止冰悠。
-p 當(dāng)每次執(zhí)行一個argument的時候詢問一次用戶。
-n num 后面加次數(shù)配乱,表示命令在執(zhí)行的時候一次用的argument的個數(shù)溉卓,默認(rèn)是用所有的。
-t 表示先打印命令搬泥,然后再執(zhí)行桑寨。
-i 或者是-I,將xargs的每項名稱忿檩,一般是一行一行賦值給 {}尉尾,可以用 {} 代替。
-r no-run-if-empty 當(dāng)xargs的輸入為空的時候則停止xargs休溶,不用再去執(zhí)行了。
-s num 命令行的最大字符數(shù)扰她,指的是 xargs 后面那個命令的最大命令行字符數(shù)兽掰。
-L num 從標(biāo)準(zhǔn)輸入一次讀取 num 行送給 command 命令
-d delim 分隔符,默認(rèn)的xargs分隔符是回車徒役,argument的分隔符是空格孽尽,這里修改的是xargs的分隔符
-x exit的意思,主要是配合-s使用
-P 修改最大的進(jìn)程數(shù)忧勿,默認(rèn)是1杉女,為0時候為as many as it can ,這個例子我沒有想到鸳吸,應(yīng)該平時都用不到的吧