全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

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

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

更新時(shí)間:2022-08-10 來(lái)源:黑馬程序員 瀏覽量:

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

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

  > 提示:

  >

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

  >

  > + 適合對(duì)象:使用過(guò)Linux的人群

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

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

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

  1. 在線(xiàn)安裝

  `````yacas

  yum install -y vim

  `````

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

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

  2. 離線(xiàn)安裝

  ``````yacas

  rpm -ivh tomcat.rpm

  ``````

  示例含義:離線(xiàn)安裝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命令輸出寫(xiě)入文件

  + `````yacas

  echo hello > abc.txt

  `````

  2. 編輯文件

  + ``````yacas

  vi abc.txt

  ``````

  + ``````yacas

  vim abc.txt

  ``````

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

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

  + `````yacas

  ?hello

  `````

  + 然后按住n健查找下一個(gè),按N健查找上一個(gè)

  + ``````yacas

  /hello

  ``````

  + 然后按住n健查找下一個(gè),按N健查找上一個(gè)

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

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

  + 移動(dòng)到命令最前:按住快捷鍵 ctrl +a

  + 移動(dòng)到命令最后:按住快捷鍵 ctrl+e

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

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

  + 設(shè)置行號(hào)

  ``````shell

  :set nu

  ``````

  + 取消行號(hào)

  ``````shell

  :set nonu

  ``````

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

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

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

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

  7. vim或vim刪除行

  不進(jìn)入編輯模式,在要?jiǎng)h除的行敲擊 dd

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

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

  9. 不編輯查看文件全部?jī)?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)計(jì)某個(gè)關(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

  ``````

  + 查看尾實(shí)時(shí)輸出的3行日志

  ``````shell

  tail -3f abc.txt

  ``````

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

  sed作為L(zhǎng)inux三劍客之一,是使用的最流行的替換命令,主要用于替換本文中的內(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作為L(zhǎng)inux三劍客之一,主要用于輸出固定格式文件的內(nèi)容

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

  + 輸出每一行

  ``````shell

  awk '{print;}' aaa.txt

  ``````

  + 輸出第三列所有值

  ``````shell

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

  ``````

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

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

  ``````shell

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

  ``````

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

  ``````shell

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

  ``````

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

  ``````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)建時(shí)間超過(guò)30天的文件并執(zhí)行刪除操作

  18. 下載文件

  + 單線(xiàn)程下載

  `````shell

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

  `````

  + 多線(xiàn)程下載

  ``````shell

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

  ``````

   示例含義:開(kāi)啟10個(gè)線(xiàn)程一起下載一個(gè)文件,注意這種下載效率會(huì)比單線(xiàn)程快很多

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

  
      + 上傳

  ``````

  rz

  ``````

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

  + 下載

  ``````

  sz 文件命名

  ``````

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

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

  四、壓縮解壓命令

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

  1. zip

  + 壓縮

  ``````shell

  zip -r xxxx.zip xxxx

  ``````

  實(shí)例含義:將xxx的全部?jī)?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ù)器問(wèn)題及進(jìn)行系統(tǒng)設(shè)置時(shí)使用比較多的命令,這些命令要求熟記于心

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

  ``````shell

  ip addr

  ifconfig

  ``````

  2. 修改密碼

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

  ``````

  passwd

  ``````

  修改其他用戶(hù)密碼:

  ``````

  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. 查看磁盤(pán)空間

  + 查看總共剩下多少空間

  ``````shell

  df -h /

  ``````

  + 查看某個(gè)目錄占用空間

  ``````shell

  du -sh test/

  ``````

  + 查看某個(gè)文件占用空間

  ``````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)限


  比如我們?cè)谌我饽夸浵聢?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

  ``````

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

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

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

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

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

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

  + 0(沒(méi)有權(quán)限)

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

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

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

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

  +

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

  `````shell

  chmod a+x -R test

  `````

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

  `````shell

  su chmod a+x -R test

  `````

  七、進(jìn)程命令

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

      1.查看進(jìn)程

  ``````shell

  ps -ef|grep java

  ``````

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

  2. 查看端口是否占用

  `````shell

  lsof -i:8080

  `````

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

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

  ``````shell

  telnet 192.168.200.130 8080

  ``````

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

  4. 殺掉進(jìn)程

  ``````shell

  kill -9 1011

  ``````

  八、結(jié)束語(yǔ)

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

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!