Linux命令工作中常用總結

Linux命令工作中常用總結

  1. 搜索
      在vi和vim中如果打開一個很大的文件,不容易找到對應的內容,可以使用自帶的搜索關鍵字進行搜索定位:

  在vi和vim界面中輸入:"/"(反斜槓),之後會出現一個輸入框讓你輸入,當你輸入的關鍵字在文件中存在就會以高亮的形式顯示出來,之後按 回車 就確定定位到當前高亮位置,如果不是你要找的,則可以按:"n",意即尋找下一個輸入關鍵字的內容。

  1. vim恢復以及亂碼問題

(1) 在vi和vim中如果不小心誤刪除了一些東西,想要恢復怎麼辦?

 首先要退出編輯狀態,即按Esc鍵,之後再按 u 撤銷之前的修改的內容。

(2) 在用vi或vim打開一個文件的時候,如果有些地方出現一些特殊符號或是亂碼,可以通過以下命令嘗試:

 vim -b mytest.php(其中-b一般是用來查看對應的二進制文件的)
  1. 管道命令,即豎槓-->'|'

上面的意思是:將查詢出來的內容交給管道後面的命令裝飾之後再展示出來

  例如:cat install.log | more (more的意思是將一屏放不下的內容以分頁的形式顯示)

     ls -l /etc | more

  如果想看上一頁的內容,可以通過:Shift + PageUp 來查看

  管道配合grep(過濾)可以達到很好用的組合例如:

  cat -n hello.txt | grep "hello" (查看hello.txt文件內容,並過濾出來帶有hello的內容) , -n 表示顯示出來第幾行的內容

  1. find 搜尋文件或目錄

  find /home -name hello* (查找home目錄下的文件名或目錄爲hello的)

  find / -name h?m* (在跟目錄下查找h開頭第二個字符是任意的,第三個是m,後面的是任意的字符)

  find / -size +1000000k (表示在根目錄下查詢文件大於1000000K的文件)

5 字符串替換命令

  :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 爲 good
  n 爲數字,若 n 爲 .,表示從當前行開始到最後一行

  :%s/well/good/ (等同於 :g/well/s//good/) 替換每一行的第一個 well 爲 good
  :%s/well/good/g (等同於 :g/well/s//good/g) 替換每一行中所有 well 爲 good
  特殊符號轉義:可以使用 # 作爲分隔符,此時中間出現的 / 不會作爲分隔符
  :s#well/#good/#    替換當前行第一個 well/ 爲 good/ 
  :%s#/usr/bin#/bin#g  可以把文件中所有路徑/usr/bin換成/bin 

6. 重定向命令

  ls -l /etc/ 希望

  ls -l /etc > /home/myback.txt (覆蓋重定向) 把顯示的結果覆蓋到/home/myback.txt中去

  ls -l /etc >> /home/myback.txt (追加重定向) 把顯示的結果追加到/home/myback.txt中去

7. 刪除多行

刪除多行步驟如下:

1. 首先要顯示對應的行數這樣方能知道從第幾行到第幾行刪除

    : 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   粘貼
  1. Linux中查看python的版本

  python -V

  或者

  python --version

  1. grep 的用法

<1. 顯示匹配的後n行 (after)

  grep -A n

<2. 顯示匹配的前n行 (before)

  grep -B n

<3. 顯示匹配的前後n行 (context)

  grep -C n

<4. 忽略大小寫

  grep -i str

  1. ll或ls顯示說明

    ll -ht (h會按照標準格式自動轉換大小即:456M,1.2G等,t 表示顯示內容按照時間倒序排列)

    應用案例:

    清空8月份的日誌文件:

    rm -rf ll -ht | awk '/8月/ {print 6,<br/>6<br/>,<br/>NF}' | awk '{print $NF}'

    說明:awk '/pattern/action'--> awk '/8月/{print 6,
    6
    ,
    NF}',只顯示第六行與最後一行的內容且只保留8月的列表內容顯示。

ls中文件顏色的顯示代表的意義爲:
  1. 藍色 --> 目錄

  2. 綠色 --> 可執行文件

  3. 紅色 --> 壓縮文件

  4. 淺藍色 --> 鏈接文件

  5. 灰色 --> 其他文件

  1. 查看某文件被哪個進程所佔用

  lsof 文件名

  

  1. 創建用戶以及查看當前用戶

  useradd redis

  passwd redis

  如果是Ubuntu系統則需要使用如下命令:

  useradd openstack -m -s /bin/bash
  userdel -r openstack

 查看當前系統存在的用戶組和用戶

  /etc/group文件包含所有組
  /etc/shadow和/etc/passwd系統存在的所有用戶名

  1. 常用查看文件大小與Linux系統命令

  查看內存使用情況: free -m (m爲MB,g爲GB)

  

  查看對應磁盤使用情況: df -lh

  

查看對應CPU使用情況: cat /proc/cpuinfo

  會有32個大致相同的內容展示(下標是從0開始的),這就說明該服務器爲8核操作系統

  

或者有更牛逼的命令:
cat /proc/cpuinfo | grep "model name" | head -1 (只顯示一行對應的CPU型號以及其他信息)

cat  /proc/cpuinfo | grep "model name"                        (系統有幾個核就會顯示幾行)

cat  /proc/cpuinfo | grep "model name" | wc -l              (統計出一共有多少核)

  查看對應服務器版本當前操作系統發行版信息: 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 /)

  

  1. 查看內存情況

  <1. jstat -gc pid         可以看到對應各個內存大小、使用狀況以及GC處理情況

  <2. jmap -heap [pid]       查看內存分佈

  <3. jstat -gcutil [pid] 1000     每隔1s輸出java進程的gc情況

  1. 修改文件夾及其裏面的內容的權限

    chown -R solr:solr /home/solr/lib

    意思是將 /home/solr/lib 文件夾及其裏面內容的用戶所屬權限修改爲solr用戶所屬權限

  2. 查看某個端口鏈接狀態的連接數

  netstat -nlap | grep -i est | grep -i 6379 | awk '{print $4}'
  netstat -nlap | grep -i est | grep -i 1121 | wc -l
  平時使用總結,使用此命令如果實在記不住後面參數有哪些,那麼直接記住爲:-nlap 即可,大部分情況都可以滿足我們的需求

netstat常見參數如下:
  -a (all)顯示所有選項,默認不顯示LISTEN相關
  -t (tcp)僅顯示tcp相關選項
  -u (udp)僅顯示udp相關選項
  -n 拒絕顯示別名,能顯示數字的全部轉化成數字。
  -l 僅列出有在 Listen (監聽) 的服務狀態

  -p 顯示建立相關鏈接的程序名
  -r 顯示路由信息,路由表
  -e 顯示擴展信息,例如uid等
  -s 按各個協議進行統計
  -c 每隔一個固定時間,執行該netstat命令。

  提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到

  grep -i (i表示忽略大小寫)

  awk '{print $4}' (表示只打印第4列)

  grep -i est (est表示:ESTABLISHED,即只顯示ESTABLISHED即連接狀態的端口)

  grep命令最後的那個顯示出來的結果以它進行標紅,即最後一個grep爲:grep -i 6379, 那麼打印出來的結果其中的6379標紅,結果如下如所示:

  

  1. 同步服務器的時間
      ntpdate pool.ntp.org

  將這個命令啓用爲定時腳本執行,具體如下所示:

  1 /2 ntpdate pool.ntp.org

  1. 不允許ssh登錄如何配置

  修改vim /etc/sysconfig/sshd_config文件,增加一行:AllowUsers solr,具體如下所示:

  

  使其生效運行如下命令:

  service sshd reload

常用系統級配置總結:

  1. 限制登錄:/etc/ssh/sshd_config 修改後需重啓:service sshd restart

  2. 用戶配置:/etc/passwd

  3. sudo權限:/etc/sudoers

  1. 常用JDK系統環境變量配置

1
2
3
4
JAVA_HOME=/usr/java/jdk1.7.0_55
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

  1. 查看Redis/Tomcat的版本

  redis-cli info | grep 'redis_version'

  tomcat版本需要進入到安裝目錄下的 bin/ 文件夾:

  ./version.sh  或者  sh version.sh

  1. 怎麼看linux的防火牆是否阻止80端口

1
iptables -vnL | grep ":80 "
返回有內容說明開通,沒返回內容,則說明阻止

  1. 查看文件編碼以及修改文件編碼

    1. 直接查看文件編碼

1
file -i 文件

  1. 在 vim 中修改此文件編碼格式

1
:set fileencoding=utf-8

  1. 修改 vim 的統一編碼格式

1
2
3
4
vim ~/.vimrc

增加一句話

set encoding=utf-8 fileencoding=utf-8

  1. 創建軟連接

  linux下的軟鏈接類似於windows下的快捷方式。常用於實際路徑很深,每次進入的時候需要花費一定時間,此時我們在根目錄創建一個軟鏈接指向該目錄,那麼我們進入該軟連接其實就是進入了軟鏈接指向的實際目錄。

    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/  (此命令會將原始目錄也一併刪除,會造成很嚴重的後果,切記!!!)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章