Linux命令工作中常用的总结
1.搜索
??在vi和vim中如果打開一個很大的文件,不容易找到對應的內容,可以使用自帶的搜索關鍵字進行搜索定位:
??在vi和vim界面中輸入:"/"(反斜杠),之后會出現(xiàn)一個輸入框讓你輸入,當你輸入的關鍵字在文件中存在就會以高亮的形式顯示出來,之后按 回車 就確定定位到當前高亮位置,如果不是你要找的,則可以按:“n”,意即尋找下一個輸入關鍵字的內容。
2. vim恢復以及亂碼問題
(1) 在vi和vim中如果不小心誤刪除了一些東西,想要恢復怎么辦?
?首先要退出編輯狀態(tài),即按Esc鍵,之后再按 u 撤銷之前的修改的內容。
(2) 在用vi或vim打開一個文件的時候,如果有些地方出現(xiàn)一些特殊符號或是亂碼,可以通過以下命令嘗試:
??vim -b mytest.php(其中-b一般是用來查看對應的二進制文件的)
3. 管道命令,即豎杠–>’|'
上面的意思是:將查詢出來的內容交給管道后面的命令裝飾之后再展示出來
??例如:cat install.log | more (more的意思是將一屏放不下的內容以分頁的形式顯示)
?? ?? ls -l /etc | more
??如果想看上一頁的內容,可以通過:Shift + PageUp 來查看
??管道配合grep(過濾)可以達到很好用的組合例如:
??cat -n hello.txt | grep “hello” (查看hello.txt文件內容,并過濾出來帶有hello的內容) , -n 表示顯示出來第幾行的內容
4. find 搜尋文件或目錄
??find /home -name hello* (查找home目錄下的文件名或目錄為hello的)
??find / -name h?m* (在跟目錄下查找h開頭第二個字符是任意的,第三個是m,后面的是任意的字符)
??find / -size +1000000k (表示在根目錄下查詢文件大于1000000K的文件)
??查找目錄下的所有文件中是否含有某個字符串,并且只打印出文件名
find .|xargs grep -ri "IBM" -l5. 字符串替換命令
:s/well/good/ 替換當前行第一個 well 為 good:s/well/good/g 替換當前行所有 well 為 good:n,$s/well/good/ 替換第 n 行開始到最后一行中每一行的第一個 well 為 good:n,$s/well/good/g 替換第 n 行開始到最后一行中每一行所有 well 為 goodn 為數(shù)字,若 n 為 .,表示從當前行開始到最后一行:%s/well/good/ (等同于 :g/well/s//good/) 替換每一行的第一個 well 為 good:%s/well/good/g (等同于 :g/well/s//good/g) 替換每一行中所有 well 為 good特殊符號轉義:可以使用 # 作為分隔符,此時中間出現(xiàn)的 / 不會作為分隔符:s#well/#good/# 替換當前行第一個 well/ 為 good/ :%s#/usr/bin#/bin#g 可以把文件中所有路徑/usr/bin換成/bin6. 重定向命令
??ls -l /etc/ 希望
??s -l /etc > /home/myback.txt (覆蓋重定向) 把顯示的結果覆蓋到/home/myback.txt中去
??ls -l /etc >> /home/myback.txt (追加重定向) 把顯示的結果追加到/home/myback.txt中去
7. 刪除多行
刪除多行步驟如下:
??1. 首先要顯示對應的行數(shù)這樣方能知道從第幾行到第幾行刪除
??: set nu
??2. 按Esc鍵退出,在命令行中輸入: 190,6233d (即[190 , 6233]都刪除掉)
??如果想要情況整個文件內容,在直接運行以下命令:
??清空文件內容:> log.txt
8. 行位定位
?直接定位到最后一行:
??按Esc鍵退出,在命令行中輸入: G
?直接定位到第一行:
??按Esc鍵退出,在命令行中輸入: 1 G
?直接定位到某一行:(第17行)
??按Esc鍵退出,在命令行中輸入:17 G
9. 復制一行或多行
?<1. 復制一行
?? yy 復制當前行
?? p 粘貼
?< <2. 復制多行
?? 7yy 從當前行開始復制7行
?? p 粘貼
10. Linux中查看python的版本
?? python -V
?? 或者
?? python --version
11. grep 的用法
<1. 顯示匹配的后n行 (after)
?? grep -A n
<2. 顯示匹配的前n行 (before)
?? grep -B n
< 3. 顯示匹配的前后n行 (context)
?? grep -C n
<4. 忽略大小寫
?? grep -i str
12. ll或ls顯示說明
?ll -ht (h會按照標準格式自動轉換大小即:456M,1.2G等,t 表示顯示內容按照時間倒序排列)
? 應用案例:
? 清空8月份的日志文件:
? 說明: awk ‘/pattern/action’–> awk ‘/8月/{print 6,NF}’,只顯示第六行與最后一行的內容且只保留8月的列表內容顯示。
ls中文件顏色的顯示代表的意義為:
1. 藍色 --> 目錄
2. 綠色 --> 可執(zhí)行文件
3. 紅色 --> 壓縮文件
4. 淺藍色 --> 鏈接文件
5. 灰色 --> 其他文件
13. 查看某文件被哪個進程所占用
?lsof 文件名
14. 創(chuàng)建用戶以及查看當前用戶
??useradd redis
??passwd redis
??如果是Ubuntu系統(tǒng)則需要使用如下命令:
??useradd openstack -m -s /bin/bash
??userdel -r openstack
??查看當前系統(tǒng)存在的用戶組和用戶
??/etc/group文件包含所有組
/etc/shadow和/etc/passwd系統(tǒng)存在的所有用戶名
15. 常用查看文件大小與Linux系統(tǒng)命令
??查看內存使用情況: free -m (m為MB,g為GB)
??查看對應磁盤使用情況: df -lh
查看對應CPU使用情況: cat /proc/cpuinfo
??會有32個大致相同的內容展示(下標是從0開始的),這就說明該服務器為8核操作系統(tǒng)
或者有更牛逼的命令:
cat /proc/cpuinfo | grep “model name” | head -1 (只顯示一行對應的CPU型號以及其他信息)
cat /proc/cpuinfo | grep “model name” (系統(tǒng)有幾個核就會顯示幾行)
cat /proc/cpuinfo | grep “model name” | wc -l (統(tǒng)計出一共有多少核)
??查看對應服務器版本當前操作系統(tǒng)發(fā)行版信息: cat /etc/issue 或 cat /etc/redhat-release
??查看更為底層的版本信息: cat /proc/version (例如:CentOS實際最根源為RetHat,此命令將會顯示所采用RetHat的版本)
如果想查看某個文件夾當前所占用的空間使用:
??du -h node ? (cd /data/solr-4.8.0/)
如果想查看當前目錄下的所有文件各個大小
??du -sh * ? (cd /)
16. 查看內存情況
??<1. jstat -gc pid 可以看到對應各個內存大小、使用狀況以及GC處理情況
?? <2. jmap -heap [pid] 查看內存分布
??< 3. jstat -gcutil [pid] 1000 每隔1s輸出java進程的gc情況
17. 修改文件夾及其里面的內容的權限
chown -R solr:solr /home/solr/lib
意思是將 /home/solr/lib 文件夾及其里面內容的用戶所屬權限修改為solr用戶所屬權限
18. 查看某個端口鏈接狀態(tài)的連接數(shù)
netstat -nlap | grep -i est | grep -i 6379 | awk ‘{print $4}’
netstat -nlap | grep -i est | grep -i 1121 | wc -l
平時使用總結,使用此命令如果實在記不住后面參數(shù)有哪些,那么直接記住為:-nlap 即可,大部分情況都可以滿足我們的需求
netstat常見參數(shù)如下:
?-a (all)顯示所有選項,默認不顯示LISTEN相關
?-t (tcp)僅顯示tcp相關選項
?-u (udp)僅顯示udp相關選項
?-n 拒絕顯示別名,能顯示數(shù)字的全部轉化成數(shù)字。
?-l 僅列出有在 Listen (監(jiān)聽) 的服務狀態(tài)
? ?-p 顯示建立相關鏈接的程序名
?-r 顯示路由信息,路由表
?-e 顯示擴展信息,例如uid等
?-s 按各個協(xié)議進行統(tǒng)計
?-c 每隔一個固定時間,執(zhí)行該netstat命令。
?提示:LISTEN和LISTENING的狀態(tài)只有用-a或者-l才能看到
?grep -i ? (i表示忽略大小寫)
?awk ‘{print $4}’ ? (表示只打印第4列)
?grep -i est ? (est表示:ESTABLISHED,即只顯示ESTABLISHED即連接狀態(tài)的端口)
?grep命令最后的那個顯示出來的結果以它進行標紅,即最后一個grep為:grep -i 6379, 那么打印出來的結果其中的6379標紅,結果如下如所示:
19. 同步服務器的時間
ntpdate pool.ntp.org
將這個命令啟用為定時腳本執(zhí)行,具體如下所示:
1 */2 * * * ntpdate pool.ntp.org
20. 不允許ssh登錄如何配置
??修改vim /etc/sysconfig/sshd_config文件,增加一行:AllowUsers solr,具體如下所示:
使其生效運行如下命令:
?service sshd reload
常用系統(tǒng)級配置總結:
??1. 限制登錄:/etc/ssh/sshd_config 修改后需重啟:service sshd restart
??2. 用戶配置:/etc/passwd
??3. sudo權限:/etc/sudoers
21. 常用JDK系統(tǒng)環(huán)境變量配置
1?JAVA_HOME=/usr/java/jdk1.7.0_55
2?CLASSPATH=.:$JAVA_HOME/lib.tools.jar
3?PATH=$JAVA_HOME/bin:$PATH
4?PATH=$JAVA_HOME/bin:$PATH
22. 查看Redis/Tomcat的版本
??redis-cli info | grep ‘redis_version’
??tomcat版本需要進入到安裝目錄下的 bin/ 文件夾:
??./version.sh 或者 sh version.sh
23. 怎么看linux的防火墻是否阻止80端口
1.iptables -vnL | grep ":80 "
返回有內容說明開通,沒返回內容,則說明阻止
24. 查看文件編碼以及修改文件編碼
file -i 文件
:set fileencoding=utf-8
1 vim ~/.vimrc
#增加一句話
set encoding=utf-8 fileencoding=utf-8
25. 創(chuàng)建軟連接
??linux下的軟鏈接類似于windows下的快捷方式。常用于實際路徑很深,每次進入的時候需要花費一定時間,此時我們在根目錄創(chuàng)建一個軟鏈接指向該目錄,那么我們進入該軟連接其實就是進入了軟鏈接指向的實際目錄。
??ln -s /data/elastic/plugin/ik/custom myES
??以上命令中的 /data/elastic/plugin/ik/custom 就是源文件,myES 是鏈接文件名, 其作用是當進入 myES 目錄,實際上是鏈接進入了 /data/elastic/plugin/ik/custom 目錄
??刪除軟鏈接:
????rm -rf ?myES
?? 注意不是 rm -rf myES/ (此命令會將原始目錄也一并刪除,會造成很嚴重的后果,切記!!!)
總結
以上是生活随笔為你收集整理的Linux命令工作中常用的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 31.99万起 阿维塔11单电机版上市:
- 下一篇: linux 其他常用命令