程序員-linux-命令詳解大全

你早晚都要學(xué)會(huì)得linux命令。

學(xué)linux的時(shí)候,前輩們都說(shuō)千萬(wàn)別用圖形化界面,多敲命名有好處。這是接觸到的一份liunx命令,也就整理留了下來(lái)。老樣子 公眾號(hào)回復(fù)linux下載全部~

stat命令查看一個(gè)文件的屬性 :訪問(wèn)時(shí)間(Access)、修改時(shí)間(modify)、狀態(tài)改變時(shí)間(Change)
stat filename
查找并刪除/data這個(gè)目錄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命令壓縮排除某個(gè)目錄
# tar zcvf data.tar.gz /data --exclude=tmp    #--exclude參數(shù)為不包含某個(gè)目錄或文件,后面也可以跟多個(gè)

查看tar包存檔文件,不解壓
# tar tf data.tar.gz #t是列出存檔文件目錄,f是指定存檔文件

實(shí)時(shí)查看系統(tǒng)所使用內(nèi)存
#free -b -s5
5秒循環(huán)一次...

查看端口被哪個(gè)進(jìn)程占用 
# lsof -i:端口號(hào)
# netstat -tunlp | grep 端口號(hào)

查看服務(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是一個(gè)選擇性顯示一行的內(nèi)容命令,-d指定:為分隔符,-f1顯示分隔符后的第一個(gè)字段。
uniq -c:報(bào)告或刪除文中的重復(fù)行,-c在輸出行前面加上出現(xiàn)的次數(shù)
sort -n:根據(jù)不同類型進(jìn)行排序,默認(rèn)排序是升序,-r參數(shù)改為降序,-n是根據(jù)數(shù)值的大小進(jìn)行排序

iptables將本機(jī)80端口轉(zhuǎn)發(fā)到本地8080端口
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

iptables網(wǎng)站跳轉(zhuǎn)
先開(kāi)啟路由轉(zhuǎn)發(fā):
# echo "1" > /proc/sys/net/ipv4/ip_forward  #臨時(shí)生效
內(nèi)網(wǎng)訪問(wèn)外網(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)訪問(wèn)內(nèi)網(wǎng)(DNAT)(公網(wǎng)端口映射內(nèi)網(wǎng)端口):
# iptables –t nat -A PREROUTING -d [對(duì)外IP] -p tcp --dport [對(duì)外端口] -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ù)包回不來(lái)。另外,這里不用配置SNAT,因?yàn)橄到y(tǒng)服務(wù)會(huì)根據(jù)數(shù)據(jù)包來(lái)源再返回去
 
 
 修改網(wǎng)卡MAC地址:
#ifconfig eth0 down
#ifconfig eth0 hw ether 00:AA:BB:CCD:EE
#ifconfig eth0 up

列出nginx日志訪問(wèn)最多的10個(gè)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對(duì)應(yīng)的是/proc/sys/目錄...
例如要修改/proc/sys/net/ipv4/ip_default_ttl的話,就修改/etc/sysctl.conf文件如下...
添加一行為:
net.ipv4.ip_default_ttl=255,也就是把文件夾變成小數(shù)點(diǎn)就可以啦
然后執(zhí)行一次
#sysctl -p
就可以生效啦。

使用date修改系統(tǒng)時(shí)間:
$ date -s "20190301 14:31:00" 
#hwclock寫入bios

使退出SSH后程序繼續(xù)運(yùn)行:
# disown
或者是
nohup command &

設(shè)置環(huán)境變量
#export 變量名=變量值

自動(dòng)化任務(wù)  cron,at,batch
系統(tǒng)管理員通過(guò)cron.deny和cron.allow來(lái)禁止和允許用戶擁有自己的crontab文件...
crontab的格式:  分 時(shí) 日 月 星期 要運(yùn)行的命令(注意使用的命令必須是絕對(duì)路徑)
crontab -e 編輯
crontab -r 刪除
crontab -u user 用某用戶來(lái)執(zhí)行
crontab -l 列出當(dāng)前crontab內(nèi)容
at也通過(guò)/etc/at.allow和at.deny文件空子后哪些用戶可以使用at命令,哪些不行

創(chuàng)建文件時(shí)即規(guī)定日期
#touch -t 11091531file            //11.09日15:31分

字符串判斷
str1 = str2   兩個(gè)串有相同內(nèi)容、長(zhǎng)度時(shí)為真
str1 != str2   str1和str2不等時(shí)為真
-n str1     串的長(zhǎng)度大于0時(shí)為真(串非空)
-z str1     串的長(zhǎng)度為0時(shí)為真(空串)
str1       str1為非空時(shí)為真
 
df 命令用于顯示目前在Linux系統(tǒng)上的文件系統(tǒng)的磁盤使用情況統(tǒng)計(jì)
--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-k 等價(jià)于 --block-size=1024 -m  等價(jià)于 --block-size=1048576
-T 顯示文件系統(tǒng)的形式

xargs 是給命令傳遞參數(shù)的一個(gè)過(guò)濾器 ??梢詫⒐艿阑驑?biāo)準(zhǔn)輸入(stdin)數(shù)據(jù)轉(zhuǎn)換成命令行參數(shù),也能夠從文件的輸出中讀取數(shù)據(jù), 也可以將單行或多行文本輸入轉(zhuǎn)換為其他格式,例如多行變單行,單行變多行。
 能夠捕獲一個(gè)命令的輸出,然后傳遞給另外一個(gè)命令。由于很多命令不支持|管道來(lái)傳遞參數(shù),而日常工作中有有這個(gè)必要,所以就有了 xargs 命令,例如:
 somecommand |xargs -item  command
-a file 從文件中讀入作為sdtin
-e flag ,注意有的時(shí)候可能會(huì)是-E,flag必須是一個(gè)以空格分隔的標(biāo)志,分析到含有flag這個(gè)標(biāo)志的時(shí)候就停止。
-p 當(dāng)每次執(zhí)行一個(gè)argument的時(shí)候詢問(wèn)一次用戶。
-n num 后面加次數(shù),表示命令在執(zhí)行的時(shí)候一次用的argument的個(gè)數(shù),默認(rèn)是用所有的。
-t 表示先打印命令,然后再執(zhí)行。
-i 或者是-I,將xargs的每項(xiàng)名稱,一般是一行一行賦值給 {},可以用 {} 代替。
-r no-run-if-empty 當(dāng)xargs的輸入為空的時(shí)候則停止xargs,不用再去執(zhí)行了。
-s num 命令行的最大字符數(shù),指的是 xargs 后面那個(gè)命令的最大命令行字符數(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時(shí)候?yàn)閍s many as it can ,這個(gè)例子我沒(méi)有想到,應(yīng)該平時(shí)都用不到的吧
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章 1.Linux是一套免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),它可以基于Intel x86系列處理器以及Cy...
    yansicing閱讀 5,580評(píng)論 0 9
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,338評(píng)論 0 10
  • 最近一段時(shí)間心情都不怎么好,因?yàn)楦鞣N事情!不得不承認(rèn)我是一個(gè)很容易被自己情緒左右的人,一點(diǎn)壞心情就開(kāi)始頹廢,...
    荷葉蘿裙一色裁閱讀 473評(píng)論 2 0
  • 這個(gè)村子里的所有女孩在剛出生時(shí)就會(huì)被扔進(jìn)豬圈,和豬一起長(zhǎng)大,但是幾乎沒(méi)有娃娃能在這種條件下存活,大多被豬踩死或是染...
    霧魚(yú)霧魚(yú)閱讀 290評(píng)論 0 0
  • 11.10劉潤(rùn)商學(xué)院日課感悟:領(lǐng)導(dǎo)力“遠(yuǎn)” 所謂的遠(yuǎn)提及的就是一個(gè)人的能見(jiàn)第視覺(jué)感官的“遠(yuǎn)見(jiàn)”,個(gè)人通過(guò)永遠(yuǎn)看...
    徐猛_Merlin閱讀 514評(píng)論 0 0

友情鏈接更多精彩內(nèi)容