首頁技術(shù)文章正文

Java培訓(xùn):Java開發(fā)掌握這些Linux命令就夠了

更新時間:2022-08-10 來源:黑馬程序員 瀏覽量:

  一、導(dǎo)學(xué)

  掌握Linux命令是高級Java工程師必備的技能之一,但并不是每個人都能完全掌握,絕大部分Java初中級工程師只知道少數(shù)的cd/ls/mkdir/rm等非常簡單的命令,但是只會這些命令是完全不夠的,如果想要提升技術(shù)壁壘,晉升成為大牛程序員,掌握最實用的Linux命令是不可或缺的。文本作者結(jié)合多年企業(yè)開發(fā)經(jīng)驗,將最實用的Linux命令進(jìn)行了清晰的分類,逐條羅列,對照反復(fù)練習(xí)即可快速掌握。熟練使用文本提到的命令能有效提升運維技能并幫助各位提高工作效率。

  > 提示:

  >

  > + 操作系統(tǒng):CentOS

  >

  > + 適合對象:使用過Linux的人群

  > + 本文命令:多以示例命令為主,要學(xué)會舉一反三

  二、安裝服務(wù)命令

  在日常開發(fā)和部署的工作中,安裝服務(wù)是非常常見的操作,一般來說當(dāng)我們執(zhí)行某個命令提示不存在命令時,都需要進(jìn)行服務(wù)安裝,一般安裝命令有2種:在線安裝和離線安裝。對比來說,如果網(wǎng)速還不錯的話,推薦使用在線安裝更加方便。

  1. 在線安裝

  `````yacas

  yum install -y vim

  `````

  示例含義:在線安裝vim服務(wù)

  > 注意:如果要加速yum在線下載需要修改yum源為國內(nèi)源

  2. 離線安裝

  ``````yacas

  rpm -ivh tomcat.rpm

  ``````

  示例含義:離線安裝tomcat服務(wù)

  > 注意:rpm文件安裝包需要上傳到服務(wù)器上,再執(zhí)行安裝命令

  三、文件操作命令

  文件操作命令是Linux中使用最為頻繁的命令,眾多命令中還包含非常出名的Linux三劍客grep、awk、sed,在文中也有介紹。

  1. 創(chuàng)建文件

  創(chuàng)建方式1:touch命令直接創(chuàng)建

  + ``````yacas

  touch abc.txt

  ``````

  創(chuàng)建方式2:vi命令修改后保存

  + ``````yacas

  vi abc.txt

  ``````

  + 然后保存

  創(chuàng)建方式3:echo命令輸出寫入文件

  + `````yacas

  echo hello > abc.txt

  `````

  2. 編輯文件

  + ``````yacas

  vi abc.txt

  ``````

  + ``````yacas

  vim abc.txt

  ``````

  3. vi或vim內(nèi)查找關(guān)鍵詞

  用法:vi或vim打開文件后(不要進(jìn)入到編輯模式)輸入英文的?或/,后面跟上要搜索的關(guān)鍵詞即可

  + `````yacas

  ?hello

  `````

  + 然后按住n健查找下一個,按N健查找上一個

  + ``````yacas

  /hello

  ``````

  + 然后按住n健查找下一個,按N健查找上一個

  4. 命令光標(biāo)的移動

  這個命令非常實用,有時候當(dāng)我們輸入一段比較長的命令時,光標(biāo)已經(jīng)到最后了,但發(fā)現(xiàn)前面的命令寫錯了,一般的做法是按照向左箭頭按鍵一直往左移動光標(biāo),改完由按向右監(jiān)聽按鍵一直向右移動光標(biāo),這個效率太慢了,以下快捷鍵能快速解決這個問題,能直接達(dá)到命令最前面和最后面。

  + 移動到命令最前:按住快捷鍵 ctrl +a

  + 移動到命令最后:按住快捷鍵 ctrl+e

  5. vi或vim設(shè)置或取消行號

  vi或vim打開文件后,根據(jù)要求分別輸入如下命令(不要進(jìn)入到編輯模式)

  + 設(shè)置行號

  ``````shell

  :set nu

  ``````

  + 取消行號

  ``````shell

  :set nonu

  ``````

  6. vi或vim 調(diào)到末行及首行

  vi編輯文件時,如果內(nèi)容太長,想要快速將光標(biāo)跳轉(zhuǎn)到文件頭部或尾部,使用下面按鍵

  + 跳轉(zhuǎn)末行 ,按住 G健

  + 跳轉(zhuǎn)首行 ,按住 g健

  7. vim或vim刪除行

  不進(jìn)入編輯模式,在要刪除的行敲擊 dd

  8. vi或vim復(fù)制行

  不進(jìn)入編輯模式,在要刪除的行敲擊 4 yy,標(biāo)識從當(dāng)前行開始復(fù)制4行,再移動光標(biāo)到指定位置按p鍵粘貼

  9. 不編輯查看文件全部內(nèi)容

  ``````shell

  cat abc.txt

  ``````

  10. 不編輯查找文件內(nèi)容

  + 方式1

  ``````shell

  grep "heima" abc.txt

  ``````

  + 方式2

  ``````shell

  cat abc.txt |grep "heima"

  ``````

  這里用到了Linux三劍客之一的篩選命令grep,主要用于篩選文本

  10. 統(tǒng)計某個關(guān)鍵字在文件中出現(xiàn)的次數(shù)

  + 方式1

  ``````shell

  grep "heima" abc.txt |wc -l

  ``````

  + 方式2

  ``````shell

  grep "heima" abc.txt |wc -l

  ``````

  11. 查看文件首行或尾行

  + 查看前3行

  ``````shell

  head -3 abc.txt

  ``````

  + 查看尾3行

  ``````shell

  tail -3 abc.txt

  ``````

  + 查看尾實時輸出的3行日志

  ``````shell

  tail -3f abc.txt

  ``````

  12. 替換文件內(nèi)某個關(guān)鍵字

  sed作為Linux三劍客之一,是使用的最流行的替換命令,主要用于替換本文中的內(nèi)容

  ``````shell

  sed -i s/heima/itcast/g abc.txt

  ``````

  示例含義:替換abc.txt文件內(nèi)所有heima為itcast

  13. 重命名文件

  + 方式1

  ``````shell

  mv abc.txt bcd.txt

  ``````

  + 方式2

  ``````shell

  rename abc bcd abc.txt

  ``````

  14. 輸出格式固定的文件中第幾行第幾列數(shù)據(jù)

  awk作為Linux三劍客之一,主要用于輸出固定格式文件的內(nèi)容

  > 假設(shè)文本文件內(nèi)每行數(shù)據(jù)的格式如: 姓名,年齡,城市,注意分隔符是逗號

  + 輸出每一行

  ``````shell

  awk '{print;}' aaa.txt

  ``````

  + 輸出第三列所有值

  ``````shell

  awk -F ',' '{print $3}' aaa.txt

  ``````

  -F后緊跟的是每行內(nèi)容的分割符號

  
      + 輸出倒數(shù)第2列的值

  ``````shell

  awk -F ',' '{print $(NF-1)}' aaa.txt

  ``````

  + 輸出前2行的第2列的值

  ``````shell

  awk -F ',' '{print $2}' aaa.txt|head -2

  ``````

  15. **根據(jù)名稱查找某目錄下的文件

  ``````shell

  find test/ -name abc*

  ``````

  示例含義:查找test目錄下,所以文件名包含abc的文件

  16. 查找文件并刪除

  ``````shell

  find test/ -name "abc*" | xargs rm -rf

  ``````

  示例含義:查找test目錄下,所以文件名包含abc的文件并執(zhí)行刪除操作

  17.查找30天前創(chuàng)建的文件并刪除

  ``````shell

  find test/ -mtime +30 -type f | xargs rm -rf

  ``````

  示例含義:查找test目錄下,所有創(chuàng)建時間超過30天的文件并執(zhí)行刪除操作

  18. 下載文件

  + 單線程下載

  `````shell

  wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz

  `````

  + 多線程下載

  ``````shell

  axel -n 10 https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz

  ``````

   示例含義:開啟10個線程一起下載一個文件,注意這種下載效率會比單線程快很多

  + 將本地文件上傳到服務(wù)器或從服務(wù)器下載

  
      + 上傳

  ``````

  rz

  ``````

  執(zhí)行命令后會彈出窗口,選擇本地的文件,確認(rèn)后會執(zhí)行上傳

  + 下載

  ``````

  sz 文件命名

  ``````

  默認(rèn)會下載到本地操作系統(tǒng)downloads目錄下

  說明:以上兩個命令執(zhí)行的前提是已經(jīng)安裝了lrzsz,可通過在線命令`yum install -y lrzsz`安裝

  四、壓縮解壓命令

  壓縮解壓命令在開發(fā)中比較常見,一般開發(fā)部署遇到的壓縮包主要以zip和tar包為主,掌握這2種壓縮文件的壓縮和解壓命令就足夠了。

  1. zip

  + 壓縮

  ``````shell

  zip -r xxxx.zip xxxx

  ``````

  實例含義:將xxx的全部內(nèi)容壓縮為xxx.zip

  + 解壓

  ``````shell

  unzip -d xxxx xxxx.zip

  ``````

  2. tar.gz

  + 壓縮

  ``````shell

  tar -zcvf test.tar.gz test/

  ``````

  + 解壓

  ``````shell

  tar -zxvf test.tar.gz test

  ``````

  五、系統(tǒng)命令

  系統(tǒng)命令是我們?nèi)粘E挪榉?wù)器問題及進(jìn)行系統(tǒng)設(shè)置時使用比較多的命令,這些命令要求熟記于心

      1.查看網(wǎng)卡信息

  ``````shell

  ip addr

  ifconfig

  ``````

  2. 修改密碼

  修改當(dāng)前用戶密碼:

  ``````

  passwd

  ``````

  修改其他用戶密碼:

  ``````

  password deploy

  ``````

  3. 重啟系統(tǒng)

  ``````shell

  reboot

  ``````

  4. 重啟網(wǎng)卡

  ``````shell

  service network restart

  ``````

  5. 關(guān)閉防火墻

  ``````shell

  systemctl stop firewalld

  systemctl disable firewalld

  ``````

  6. 查看內(nèi)存大小

  + 查看還剩多少m

  `````shell

  free -m

  `````

  + 查看還剩多少g

  ``````

  free -g

  ``````

  7. 查看磁盤空間

  + 查看總共剩下多少空間

  ``````shell

  df -h /

  ``````

  + 查看某個目錄占用空間

  ``````shell

  du -sh test/

  ``````

  + 查看某個文件占用空間

  ``````shell

  du -sh abc.txt

  ``````

  8. 查看cpu使用情況

  `````

  top

  `````

  9. 跨服務(wù)器傳輸文件

  + 將本服務(wù)器文件傳輸?shù)狡渌?wù)器

  ``````shell

  scp aaa.zip root@192.168.200.130:/usr/local/

  ``````

  + 將本服務(wù)器目錄傳輸?shù)狡渌?wù)器

  ``````shell

  scp -r aaa root@192.168.200.130:/usr/local/

  ``````

  + 將其他服務(wù)器文件傳輸?shù)奖痉?wù)器

  ``````shell

  scp root@192.168.200.130:/usr/local/bbb.zip aaa.zip

  ``````

  + 將其他服務(wù)器目錄傳輸?shù)奖痉?wù)器

  ``````shell

  scp -r root@192.168.200.130:/usr/local/bbb /mnt

  ``````

  

  六、文件權(quán)限命令

  1. 為文件添加權(quán)限


  比如我們在任意目錄下執(zhí)行`ls -al`,將看到文件或目錄最前面顯示效果如下

  ``````

  444 r--r--r--

  600 rw-------

  644 rw-r--r--

  666 rw-rw-rw-

  700 rwx------

  744 rwxr--r--

  755 rwxr-xr-x

  777 rwxrwxrwx

  ``````

  解讀下這個展示效果的含義,其實都是文件系統(tǒng)權(quán)限相關(guān)內(nèi)容:

  從左至右,先是3個數(shù)字,代表文件權(quán)限然后是9個字母(或者連字符),其中 1-3位數(shù)字代表文件所有者權(quán)限,4-6位數(shù)字代表同組用戶的權(quán)限,7-9數(shù)字代表其他用戶的權(quán)限,而具體的權(quán)限是由數(shù)字來表示的。

  + 讀取的權(quán)限等于4,用r表示

  + 寫入的權(quán)限等于2,用w表示

  + 執(zhí)行的權(quán)限等于1,用x表示

  通過4、2、1的組合,得到以下幾種權(quán)限:

  + 0(沒有權(quán)限)

  + 4(讀取權(quán)限)

  + 5(4+1 | 讀取+執(zhí)行)

  + 6(4+2 | 讀取+寫入)

  + 7(4+2+1 | 讀取+寫入+執(zhí)行)

  +

  2. 為某個目錄添加執(zhí)行權(quán)限

  `````shell

  chmod a+x -R test

  `````

  3. 以root身份執(zhí)行命令

  `````shell

  su chmod a+x -R test

  `````

  七、進(jìn)程命令

  服務(wù)部署時使用比較多的命令就是進(jìn)程命令,這些命主要是圍繞著查看進(jìn)程、確認(rèn)進(jìn)程存活情況及殺掉進(jìn)程等操作

      1.查看進(jìn)程

  ``````shell

  ps -ef|grep java

  ``````

  示例含義:查看所有運行中的進(jìn)程信息中包含java的進(jìn)程

  2. 查看端口是否占用

  `````shell

  lsof -i:8080

  `````

  示例含義:確認(rèn)8080端口是否被占用,如果命令執(zhí)行完有響應(yīng)數(shù)據(jù)列表,則表示已占用

  3. 確認(rèn)端口是否開啟

  ``````shell

  telnet 192.168.200.130 8080

  ``````

   示例含義:確認(rèn)192.168.200.130的8080端口是否能連通,能連通就會進(jìn)入黑窗口有光標(biāo),否則會卡主到超時

  4. 殺掉進(jìn)程

  ``````shell

  kill -9 1011

  ``````

  八、結(jié)束語

  好了,這么多命令你終于都練習(xí)完畢了,有很多命令是不是讓你感覺很Nice,令你眼前一亮呢?還記得這些命令分為哪些種類嗎,如果忘記了就回顧多敲幾遍,熟能生巧! 最后別忘了,除了文中總結(jié)的命令以外,我們Java開發(fā)中還涉及到基礎(chǔ)命令還有jdk命令、maven命令、git命令,這些也都要求必須掌握的。有關(guān)于服務(wù)部署命令,更高級的命令還有docker容器相關(guān)命令,感興趣可以在本文基礎(chǔ)之上進(jìn)一步自學(xué)docker。

分享到:
在線咨詢 我要報名
和我們在線交談!