本篇內(nèi)容主要講解“Linux操作系統(tǒng)的介紹及命令使用技巧”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Linux操作系統(tǒng)的介紹及命令使用技巧”吧!
創(chuàng)新互聯(lián)建站專注于開州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供開州營(yíng)銷型網(wǎng)站建設(shè),開州網(wǎng)站制作、開州網(wǎng)頁(yè)設(shè)計(jì)、開州網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造開州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供開州網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
vim Vi/Vim 是所有 Unix/Linux 操作系統(tǒng)默認(rèn)配備的編輯器 ZQ 無條件退出 :q! 無條件退出 ZZ 存盤并退出 :wq 存盤并退出 j 下移一行 k 上移一行 / 在文件中向前搜索(特殊字符如/需要用轉(zhuǎn)移字符\,如匹配baidu/agile/agile需要輸入:/baidu\/agile\/agile) ? 在文件中向后搜索 n 搜索下一個(gè) N 反向搜索下一個(gè) #將整個(gè)文件的所有a替換為b :%s/a/b/g #將1至3行的第一個(gè)a替換為b :1,3s/a/b/ #將1至3行的所有a替換為b :1,3s/a/b/g
#####################tail##################### #倒數(shù)300行并進(jìn)入實(shí)時(shí)監(jiān)聽文件寫入模式 tail -300f shopbase.log #顯示文件 example.txt 的后二十行內(nèi)容 tail -n 20 example.txt #顯示文件 example.txt 的后十行內(nèi)容并在文件內(nèi)容增加后,自動(dòng)顯示新增的文件內(nèi)容。 tail -f example.txt #顯示文件 example.txt 的后50行內(nèi)容并在文件內(nèi)容增加后,自動(dòng)顯示新增的文件內(nèi)容。 tail -n 50 -f example.txt #動(dòng)態(tài)顯示末尾的100行包含java的內(nèi)容 tail -100f file1 | grep java #####################cat##################### #顯示file文件里匹配foo字串那行以及上下5行 cat error.log | grep -C 5 'foo' #顯示foo及前5行 cat error.log | grep -B 5 'foo' #顯示foo及后5行 cat error.log | grep -A 5 'foo' #同時(shí)包含多個(gè)關(guān)鍵詞 cat example.txt | grep dongshihao | grep ciOnline #忽略大小寫檢索關(guān)鍵詞 cat f.txt | grep -i shopbase #關(guān)鍵詞出現(xiàn)次數(shù) cat f.txt | grep -c shopbase #####################grep##################### #文件查找 grep forest f.txt #多文件查找 grep forest f.txt cpf.txt #目錄下查找所有符合關(guān)鍵字的文件 grep 'log' /home/admin -r -n #指定單個(gè)文件后綴 grep 'import' ~/code -r -n --include '*.java' #指定多個(gè)文件后綴 grep 'shopbase' /home/admin -r -n --include *.{vm,java} #反匹配 grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #####################find##################### #根據(jù)名稱查找/目錄下的filename.txt文件。 find / -name filename.txt #遞歸查找所有的xml文件 find . -name "*.xml" #遞歸查找所有文件內(nèi)容中包含hello world的xml文件 find . -name "*.xml" | xargs grep "hello world" #多個(gè)目錄去找 find /home/admin /tmp /usr -name \*.log #按名字(不區(qū)分大小寫)查找 find . -iname \*.log #當(dāng)前目錄下的所有子目錄 find . -type d #當(dāng)前目錄下所有的符號(hào)鏈接 find /usr -type l #符號(hào)鏈接的詳細(xì)信息 eg:inode目錄 find /usr -type l -name "z*" -ls #超過250000k的文件,當(dāng)然+改成-就是小于了 find /home/admin -size +250000k #按照權(quán)限查詢文件 find /home/admin f -perm 777 -exec ls -l {} \; #1天內(nèi)訪問過的文件 find /home/admin -atime -1 #1天內(nèi)狀態(tài)改變過的文件 find /home/admin -ctime -1 #1天內(nèi)修改過的文件 find /home/admin -mtime -1 #1分鐘內(nèi)訪問過的文件 find /home/admin -amin -1 #1分鐘內(nèi)狀態(tài)改變過的文件 find /home/admin -cmin -1 #1分鐘內(nèi)修改過的文件 find /home/admin -mmin -1 #刪除文件大小為零的文件 find ./ -size 0 | xargs rm -f & #查找并刪除/data這個(gè)目錄7天前創(chuàng)建的文件 find /data -ctime +7 -exec rm -rf {} \; find /data -ctime +7 | xargs rm -rf #查找文件并復(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 #找出IP地址 ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' #-o只顯示匹配字符 #查看文本中20至30行內(nèi)容(總共100行) 方法1: awk '{if(NR > 20 && NR < 31) print $0}' test.txt 方法2: sed -n '20,30p' test.txt 方法3: head -30 test.txt |tail #查看壓縮日志文件 zcat test.gz zless test.gz #搜索當(dāng)前目錄包含某個(gè)字符串的文件(找到該字符串在哪個(gè)文件的第幾行) grep -rn "test" *
awk是一個(gè)強(qiáng)大的文本分析工具,相對(duì)于grep的查找,sed的編輯,awk在其對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。簡(jiǎn)單來說awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行各種分析處理。
#####################awk##################### 文件a a11 a12 a13 b21 b22 b23 c31 c32 c33 文件b 11 12 13 21 22 23 31 32 33 文件c a:b:c d:e:f g:h:i #基礎(chǔ)命令 awk '{print $2,$3}' a a12 a13 b22 b23 c32 c33 awk '{print NR,$0}' a b 1 a11 a12 a13 2 b21 b22 b23 3 c31 c32 c33 4 11 12 13 5 21 22 23 6 31 32 33 awk '{print FNR,$0}' a b 1 a11 a12 a13 2 b21 b22 b23 3 c31 c32 c33 1 11 12 13 2 21 22 23 3 31 32 33 awk '{print FNR,FILENAME,$0}' a b 1 a a11 a12 a13 2 a b21 b22 b23 3 a c31 c32 c33 1 b 11 12 13 2 b 21 22 23 3 b 31 32 33 awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' a b a NR=1 FNR=1 $3=a13 a NR=2 FNR=2 $3=b23 a NR=3 FNR=3 $3=c33 b NR=4 FNR=1 $3=13 b NR=5 FNR=2 $3=23 b NR=6 FNR=3 $3=33 echo 1 2 3 | awk -F: '{print $1,$2,$3}' c a b c d e f g h i #匹配ldb awk '/ldb/ {print}' f.txt #不匹配ldb awk '!/ldb/ {print}' f.txt #匹配ldb和LISTEN awk '/ldb/ && /LISTEN/ {print}' f.txt #第五列匹配ldb awk '$5 ~ /ldb/ {print}' f.txt #文本左對(duì)齊: awk '{printf "%-15s %-10s %-20s\n",$1,$2,$3}' test.txt #文本右對(duì)齊: awk '{printf "%15s %10s %20s\n",$1,$2,$3}' test.txt #從如下日志中求出feature、model兩個(gè)過程耗時(shí)平均值 2019-11-13 15:23:08 INFO [DubboServerHandler-127.0.0.1:20880-thread-199] (AInterfaceImpl.java:128) - A_task: where:B, strategy:READ_SPEED_REGRESSION_V9_OPT, uid:123@wx.163.com, traceId:123, feature(FeatureExtractor,400,112ms), model(400, success, 31ms), allCost: 143ms cat engine_ctr.log | grep FeatureExtractor | grep B | awk -F "[,()]" '{print $10}' | awk -F "ms" '{print $1}' | awk '{sum+=$1} END {print "Average = ", sum/NR}' cat engine_ctr.log | grep FeatureExtractor | grep B | awk -F "[,()]" '{print $15}' | awk -F "ms" '{print $1}' | awk '{sum+=$1} END {print "Average = ", sum/NR}'
#使用stat命令查看一個(gè)文件的屬性,訪問時(shí)間(Access)、修改時(shí)間(modify)、狀態(tài)改變時(shí)間(Change) stat index.php #文件夾讀寫權(quán)限 chmod -R 777 文件夾 #重命名 mv oldNameFile newNameFile #遞歸復(fù)制整個(gè)文件夾 cp -r sourceFolder targetFolder #批量解壓tar.gz 方法1: find . -name "*.tar.gz" -exec tar zxf {} \; 方法2: for tar in *.tar.gz; do tar zxvf $tar; done 方法3: ls *.tar.gz | xargs -i tar zxvf {} #篩除出文件中的注釋和空格 方法1: grep -v "^#" httpd.conf |grep -v "^$" 方法2: sed -e ‘/^$/d’ -e ‘/^#/d’ httpd.conf > http.conf 或者 sed -e '/^#/d;/^$/d' #-e 執(zhí)行多條sed命令 方法3: awk '/^[^#]/|/"^$"' httpd.conf 或者 awk '!/^#|^$/' httpd.conf #篩選/etc/passwd文件中所有的用戶 方法1: cat /etc/passwd |cut -d: -f1 方法2: awk -F ":" '{print $1}' /etc/passwd
#內(nèi)存使用情況 free -h #查看java進(jìn)程 ps aux|grep java #查找elastic進(jìn)程 kill -9強(qiáng)制殺掉進(jìn)程 ps -ef | grep --color elastic #終止線程號(hào)位19979的進(jìn)程 kill -9 19979 #查找是否存在名為tomcat的進(jìn)程: ps -aux | grep tomcat #查看內(nèi)存占用前10的進(jìn)程 ps -aux|sort -k4nr |head -n 10 #查看所有進(jìn)程和端口的使用情況: netstat -apn #如果發(fā)現(xiàn)8080端口被PID為的8979的java進(jìn)程占用,則可以進(jìn)一步查看明細(xì): ps -aux | grep 8979 ps -aux | grep java #查看進(jìn)程運(yùn)行時(shí)間 ps -p 24525 -o lstart,etime #直接使用端口號(hào)查看進(jìn)程: netstat -apn | grep 8080 #查看端口屬于哪個(gè)進(jìn)程 lsof -i :8080 #查看進(jìn)程打開的文件句柄 lsof -p pid #iptables將本機(jī)80端口轉(zhuǎn)發(fā)到本地8080端口 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 #查看所有網(wǎng)絡(luò)連接 netstat -antp #只查看監(jiān)聽的端口信息 netstat -lntp #表示人以root身份登錄 su - root #表示與root建立一個(gè)鏈接,通過root執(zhí)行命令 su root #使用超級(jí)管理員身份執(zhí)行命令 #sudo命令需要輸入當(dāng)前用戶的密碼,su命令需要輸入root用戶的密碼 sudo rm a.txt #生成8位隨機(jī)字符串 方法1: echo $RANDOM |md5sum |cut -c 1-8 方法2: openssl rand -base64 4 方法3: cat /proc/sys/kernel/random/uuid | cut -c 1-8 #刪除從開頭到光標(biāo)處的命令文本 ctrl + u #刪除從光標(biāo)到結(jié)尾處的命令文本 ctrl+k #光標(biāo)移動(dòng)到命令開頭 ctrl + a #光標(biāo)移動(dòng)到命令結(jié)尾 ctrl + e #多條命令執(zhí)行,使用分號(hào)隔開 cd /temp/log/;rm -rf * 多條命令執(zhí)行,使用分號(hào)隔開(確保前一條成功,否則會(huì)刪除當(dāng)前目錄) cd /temp/log/&&rm -rf * #終止并恢復(fù)進(jìn)程執(zhí)行 ctrl+z、fg #快速查找你需要的命令 man -k "copy files"
設(shè)置redis訪問密碼
到此,相信大家對(duì)“Linux操作系統(tǒng)的介紹及命令使用技巧”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!