大數據技術之_01_Linux學習_01_linux的入門+VM和linux的安裝+linux的目錄結構+遠程登錄到linux服務器+vi和vim編輯器+開機、重啟和用戶登錄注銷+用戶管理+用戶組管理+實用指令


1 linux的入門1.1 Linux的介紹2 VM和linux的安裝2.1 安裝vm和Centos2.1.1 基本說明2.1.2 CentOS安裝的步驟2.1.3 CentOS安裝技術難點 -> 網絡配置三種方式理解(難點)2.2 Centos終端的使用和聯網2.2.1 Centos自帶終端的使用2.2.2 在centos的火狐可以聯網,可以和外部的ip拼通3 linux的目錄結構3.1 linux目錄結構3.2 linux目錄機構的一覽圖3.3 對linux目錄結構的小結4 遠程登錄到linux服務器4.1 為什么需要遠程登錄linux4.2 遠程登錄Linux -> Xshell64.3 遠程上傳下載文件Xftp64.4 SecureCRT的安裝和使用5 vi和vim編輯器5.1 vi和vim的基本介紹5.2 vi和vim三種模式的切換5.3 vi和vim的快速入門小案例5.4 vi和vim的快捷鍵的使用6 開機、重啟和用戶登錄注銷6.1 關機&重啟命令6.1.1 常見的指令如下6.1.2 注意細節6.2 用戶的登錄和注銷6.2.1 基本介紹6.2.2 使用細節7 用戶管理7.1 linux的用戶和權限的關系示意圖7.2 基本介紹7.3 添加用戶7.4 指定/修改密碼7.5 刪除用戶7.6 查詢用戶信息指令7.7 切換用戶7.8 查看當前用戶/登錄用戶8 用戶組管理8.1 新增組8.2 刪除組8.3 增加用戶時直接指定用戶的家目錄和用戶組8.4 修改用戶所屬的用戶組8.5 用戶和組的相關文件9 實用指令9.1 運行級別9.2 指定運行級別9.2.1 CentOS 6X指定當前運行級別9.2.2 CentOS 7X指定運行級別9.3 面試題9.4 幫助指令9.5 文件和目錄相關的指令9.5.1 pwd指令9.5.2 ls指令9.5.3 cd指令9.5.4 mkdir指令9.5.5 rmdir指令9.5.6 touch指令9.5.7 cp指令9.5.8 rm指令9.5.9 mv指令9.5.10 cat指令9.5.11 more指令9.5.12 less指令9.5.13 >指令和>>指令9.5.14 echo指令9.5.15 head指令9.5.16 tail指令9.5.17 ln指令9.5.18 history指令9.6 時間日期類相關的指令9.6.1 date指令-顯示當前日期9.6.2 date指令-設置日期9.6.3 cal指令-顯示日歷搜索查找類9.7 搜索查找類相關的指令9.7.1 find指令9.7.2 locate指令9.7.3 grep指令和管道符號|9.8 壓縮和解壓類相關的指令9.8.1 gzip/gunzip 指令9.8.2 zip/unzip 指令9.8.3 tar 指令


1 linux的入門

1.1 Linux的介紹

1、Linux怎么讀? 推薦讀法:里紐克斯

2、Linux是一個開源、免費的操作系統,其穩定性、安全性、處理多並發已經得到業界的認可,目前很多企業級的項目都會部署到Linux/unix系統上。

3、常見的操作系統(Win7/Win10、IOS、Android、Mac)。

4、Linux 吉祥物。


  該標志的由來是因為Linus在澳洲時曾被一只動物園里的企鵝咬了一口,便選擇了企鵝作為Linux的標志。

5、Linux的創始人

6、Linux主要的發行版:
  Ubuntu(烏班圖)、RedHat(紅帽)、CentOS、Debain[蝶變]、Fedora、SuSE、OpenSUSE

7、Linux和Unix的關系 -> Unix是怎么來的

  1943年湯普遜出生於美國新奧爾良。1960年就讀加州大學伯克利分校主修電氣工程,取得了電子工程碩士的學位。1966年加入了貝爾實驗室。湯普遜參與了貝爾實驗室與麻省理工學院以及通用電氣公司聯合開發的一套多用戶分時操作系統,名叫Multics,同時他自己寫了一個“star travel”游戲可運行於Multics之上。貝爾實驗室后來撤出Multics計划。湯普遜只好找到一台老式PDP-7機器,重寫了他的“star travel”游戲。
  在開發Multics的期間,湯普遜創造出了名為Bon的程式語言。湯普遜花了一個月的時間開發了全新的操作系統,UNiplexed Information and Computing System(UNICS),可執行於PDP-7機器之上,后來改稱為UNIX。第一版的Unix就是基於B語言來開發的。Bon語言在進行系統編程時不夠強大,所以Thompson和Ritchie對其進行了改造,並於1971年共同發明了C語言。1973年Thompson和Ritchie用C語言重寫了UNIX。安裝於PDP-11的機器之上。
  1983年,美國計算機協會將杜林獎(圖靈獎)授予湯普遜與丹尼斯。
  2000年12月時,湯普遜退休,離開貝爾實驗室,成為了一名飛行員
  美國貝爾實驗室是晶體管太陽能電池數字交換機通信衛星有聲電影等許多重大發明的誕生地。自成立年以來,貝爾實驗室共獲得兩萬七千多項專利,平均每個工作日獲得4項多專利。一共獲得8項諾貝爾獎(其中7項物理學獎,1項化學獎)。
  Unix 的使用成本很高,不是想用就用的起的!
  1、5萬美元起價 【當時可以購買一套美國別墅】
  2、需要性能高端服務器


理查德·馬修·斯托曼是世界最著名的黑客。
畢業於哈佛大學,是美國國家工程院院士。
取得最大的成就,就是發起 GNU計划,提倡軟件的源碼可以被閱讀並在規定下進行改版。

8、Linux和Unix的關系 -> Linux是怎么來的
偉大的GNU計划:


Linux的完成的稱呼應該是 GNU/Linux,我們簡稱Linux。

javaEE和大數據一般使用CentOS。
Python一般使用Ubuntu。

2 VM和linux的安裝

2.1 安裝vm和Centos

2.1.1 基本說明

學習Linux需要一個環境,我們需要創建一個虛擬機,然后在虛擬機上安裝一個Centos系統來學習。
1) 先安裝virtual machine,VM12 Pro
2) 再安裝Linux (CentOS )
3) 原理示意圖如下:

2.1.2 CentOS安裝的步驟

1) 創建虛擬機
2) 開始安裝系統(CentOS6.8)
3) 具體的步驟看以下鏈接
參考鏈接:
安裝VMware12的補充:要先去BIOS里修改設置開啟虛擬化設備支持(開機的瞬間狂按f2或f10進入BIOS),修改如下圖所示:


   VMware10.0 && VMware12.0 Pro && VMware14.0 Pro && VMware 15.0 Pro 的安裝與破解
   VMware12.0 Pro 中安裝 CentOS-7.5(桌面版)
   VMware12.0 Pro 中安裝 CentOS 6.8_超詳解 + 高清大圖

安裝CentOS-7.5(桌面版)的補充:手動分區
Linux系統Linux至少有三個分區:
第一個分區:創建標准分區,掛載點是 /boot,文件系統類型為ext4,是Linux系統在啟動或引導的時候需要的文件所放在的位置,大小一般200M足夠。
第二個分區:創建標准分區,沒有掛載點,文件系統類型為swap,是Linux系統的交換分區,相當於Windows的虛擬內存,大小一般跟Linux系統分配的物理內存相同或者是其2倍。作用是:當Linux系統內存不夠用的時候,臨時充當內存使用,效率比實際物理內存要低一點,比物理硬盤要高。
第三個分區:創建標准分區,掛載點是/,文件系統類型為ext4,是Linux系統的根分區。大小是剩余的全部可用空間。
說明:也可以使用將除去 /boot 和 swap 分區的所有空間分配給 / 根分區的方式。

2.1.3 CentOS安裝技術難點 -> 網絡配置三種方式理解(難點)

這里,在面試的時,有可能面試官問關於橋接模式NAT模式主機模式的含義和區別?
虛擬機的三種網絡配置方式的說明:

網絡連接類型的選擇,網絡連接類型一共有橋接NAT僅主機不聯網四種。
橋接:選擇橋接模式的話虛擬機和宿主機在網絡上就是平級的關系,相當於連接在同一交換機上。
NAT:NAT模式就是虛擬機要聯網得先通過宿主機才能和外面進行通信。
僅主機:虛擬機與宿主機直接連起來。
橋接與NAT模式訪問互聯網過程,如下圖所示:

2.2 Centos終端的使用和聯網

2.2.1 Centos自帶終端的使用

2.2.2 在centos的火狐可以聯網,可以和外部的ip拼通

這里,我們僅僅簡單的動態的分配ip(后面我們要學習固定分配ip)。
參考鏈接:虛擬機CentOS 7.5 如何固定IP地址

3 linux的目錄結構

3.1 linux目錄結構

  Linux的文件系統是采用級層式的樹狀目錄結構,在此結構中的最上層是根目錄“/”,然后在此目錄下再創建其他的目錄。
  深刻理解Linux樹狀文件目錄是非常重要的,這里我給大家說明一下。
  記住一句經典的話:在Linux世界里,一切皆文件。(即使是一個硬件設備,也是使用文件來標識的,即把硬件映射成一個文件)

3.2 linux目錄機構的一覽圖


具體的目錄說明:
1、

2、

3、

  /proc、/srv、/sys 目錄是高手的修改的地方,目前水平不用去修改。【屬於Linux內核部分】

4、


比如:
  /dev 就有 cpu 、disk 等等。
  /mnt 可以實現磁盤擴容。
5、

  /opt 放將要安裝的軟件程序,所以工作時,我們盡量將安裝軟件放到這個統一的目錄下。
  /selinux 是一個安全系統,類似360安全衛士。當有黑客入侵到服務器后,就會觸發/selinux 安全系統。

3.3 對linux目錄結構的小結

1) 在linux中,目錄結構有且僅有一個 根目錄/ 其他的目錄都是在 /目錄分支里。
2) 在linux中,有很多目錄,每個目錄都會存放相應的內容,不要隨意去修改。
3) 在linux中,所有的設備都可以通過文件來體現(比如字符設備文件[鍵盤、鼠標等],塊設備文件[硬盤])。
4) 在學習linux時,要盡快的在腦海中,形成一個目錄樹

4 遠程登錄到linux服務器

4.1 為什么需要遠程登錄linux


終端工具對比:

4.2 遠程登錄Linux -> Xshell6

Xshell 是目前最好的遠程登錄到Linux操作的軟件,流暢的速度並且完美解決了中文亂碼的問題,是目前程序員首選的軟件。
Xshell 是一個強大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的 TELNET 協議。
Xshell可以在Windows界面下用來訪問遠端不同系統下的服務器,從而比較好的達到遠程控制終端的目的。

特別說明:如果希望安裝好的XShell可以訪問Linux系統的話,需要有一個前提:就是Linux啟用了sshd的服務,該服務會監聽22號端口。

Xshell6使用方法:


點擊【新建】

填寫信息

由於是第一次連接,點擊【接受並保存】

輸入登錄Linux系統的用戶名

輸入登錄密碼

遠程連接成功后的截圖

Xshell自動保存用戶名和密碼后的更改方法

4.3 遠程上傳下載文件Xftp6

Xftp6是一個基於 windows 平台的功能強大的SFTP、FTP 文件傳輸軟件。使用了 Xftp 以后,windows 用戶能安全地在 UNIX/Linux 和 Windows PC 之間傳輸文件。

注意:Xftp6使用方法同Xshell6使用方法!這里不再贅述。不同的地方:協議要選擇SFTP

簡便方法:我們可以在Xshell6界面點擊【新建文件傳輸】按鈕直接進入Xftp6界面。


效果:

顯示中文亂碼解決:

點擊【確定】之后,刷新,就可以解決顯示中文亂碼問題!

4.4 SecureCRT的安裝和使用

SecureCRT是用於遠程登錄Linux的軟件。SecureCRT 也是一款常用的遠程登錄Linux的軟件,在大數據開發中使用較多。
注意:在大數據開發中使用什么終端軟件都可以,沒有什么是必須使用的。

SecureCRT8.1.4整合漢化綠色版:
下載鏈接:
  https://share.weiyun.com/1b080cae17c0d66755b100228dce0f31(密碼:WV98)
破解教程:自己網上下載SecureCRT v8.x 注冊機。

SecureCRT v8.x 注冊機使用說明:
[基本信息]
SecureCRT v8.x 注冊機,TEAM Z.W.T 出品,MD5 = 44114b98d90f8bfc9e18c285937ca092

[使用說明]
1. 先不要運行 SecureCRT
2. 建議把注冊機放到安裝目錄(放在其他目錄也可以)
3. 運行securecrt8.0_注冊機
4. 點擊 Patch,此時會讓你選擇 SecureCRT.exe 和 LicenseHelper.exe 的位置
5. 應用 Patch 成功之后,會出現 SecureCRT.exe 和 LicenseHelper.exe 的 .bak 備份文件
6. 此時以管理員身份再運行 SecureCRT,會先彈要你注冊,點擊下一步,再點擊 Enter License Manually 
7. 復制粘帖注冊機上的 License 里面的內容到指定的編輯框, 點擊下一步,OK

注意:默認打開CRT時候會是一個輸入key的頁面,什么都不輸入,點擊下一步

SecureCRT無法啟動的解決方法:
  https://www.cnblogs.com/chenmingjun/p/9938765.html

使用步驟:


填寫連接信息

選擇SecureFX協議

給回話起名字,任意,原則:見名知意

開始連接

接受並保存

輸入Linux系統的用戶名和密碼

連接成功后截圖:

中文亂碼解決:

5 vi和vim編輯器

5.1 vi和vim的基本介紹

所有的 Linux 系統都會內建 vi 文本編輯器。
Vim 具有程序編輯的能力,可以看做是Vi的增強版本,可以主動的以字體顏色辨別語法的正確性,方便程序設計。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。
我們只需要掌握它的基本使用即可。

5.2 vi和vim三種模式的切換

正常模式:
以 vim 打開一個文件就直接進入一般模式了(這是默認的模式)。在這個模式中,你可以使用『上下左右』按鍵來移動光標,你可以使用『刪除字符』或『刪除整行』來處理檔案內容, 也可以使用『復制、粘貼』來處理你的文件數據。在正常模式下可以使用快捷鍵。
插入模式(編輯模式):
按下i(insert), I, o, O, a, A, r, R等任何一個字母之后才會進入編輯模式,一般來說按i即可。
命令行模式
在這個模式當中,可以提供你相關指令,完成讀取、存盤、替換、離開vim、顯示行號等的動作則是在此模式中完成的。

5.3 vi和vim的快速入門小案例

使用 vim 開發一個 Hello.java 程序,步驟說明和演示如下:

5.4 vi和vim的快捷鍵的使用

1) 拷貝當前行:yy,拷貝當前行向下的5行:5yy,並粘貼:p。【該快捷鍵在正常模式下使用】
2) 刪除當前行:dd,刪除當前行向下的5行:5dd
3) 在文件中查找某個單詞 【在命令模式模式下 :/關鍵字,回車查找,輸入 n 就是查找下一個 】
4) 設置文件的行號,取消文件的行號【在命令行模式下 :set nu:set nonu]
5) 編輯 /etc/profile 文件,使用快捷鍵到達文檔的最末行G和最首行gg【在正常模式下使用】
6) 在一個文件中輸入 “hello”,然后又撤銷這個動作u【在正常模式下】
7) 編輯 /etc/profile 文件,並將光標移動到20行shift+g【在正常模式下使用】
  1、顯示行號 :set nu
  2、輸入20
  3、輸入Shift+g

vi和vim鍵盤圖

6 開機、重啟和用戶登錄注銷

6.1 關機&重啟命令

6.1.1 常見的指令如下

shutdown -h now     【立刻關機】
shutdown -h 1       【1分鍾后,關機】
shutdown -r now     【立刻重啟】
shutdown -r 2       【2分鍾后,重啟】
halt                【立刻關機】
reboot              【立刻重啟】

在重啟和關機前,通常需要先執行
sync                【把內存的數據,寫入磁盤】

6.1.2 注意細節

建議:不管是重啟系統還是關閉系統,首先要運行sync命令,把內存中的數據寫到磁盤中。這是個好習慣!

6.2 用戶的登錄和注銷

6.2.1 基本介紹

1) 登錄時盡量少用root帳號登錄,因為它是系統管理員,擁有最大的權限,避免操作失誤。可以利用普通用戶登錄,登錄后再用su - 用戶名命令來切換成系統管理員身份。
2) 在提示符下輸入logout即可注銷用戶。【不同的shell具體命令可能不同(logout或exit)】

6.2.2 使用細節

1) logout注銷指令在圖形運行級別運行該指令無效,在運行級別 3下運行該指令有效。(簡單提一下:0-6個級別)
2) 運行級別這個概念,后面給大家介紹。

7 用戶管理

7.1 linux的用戶和權限的關系示意圖

7.2 基本介紹

Linux系統是一個多用戶多任務的操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。
Linux的用戶至少需要屬於一個組。

7.3 添加用戶

基本語法
  useradd [選項] 用戶名

案例演示
  添加一個用戶xiaoming

細節說明
  1、當創建用戶成功后,會自動的創建和用戶同名的家目錄【/home/xiaoming】。
  2、也可以通過useradd -d /home/xiaohonghome xiaohong 給新創建的用戶xiaohong指定家目錄【/home/xiaohonghome】。

7.4 指定/修改密碼

基本語法
  passwd 用戶名 // 如果沒有帶用戶名,則是給當前登錄的用戶修改密碼

案例演示
  給xiaoming用戶指定密碼
  passwd xiaoming // 需要使用root用戶,這樣權限才夠

7.5 刪除用戶

基本語法
  userdel 用戶名

案例演示
  刪除用戶xiaoming,但是要保留家目錄 userdel xiaoming
  刪除用戶以及用戶家目錄 userdel –r xiaohong 【小心使用】

細節說明
  是否保留家目錄的討論? [建議一般保留]

linux徹底刪除用戶

刪除用戶xiaoming,如果我們直接使用userdel xiaoming,那么並不能刪除該用戶賬號所有相關信息,只是刪除掉了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow 四個文件里的該賬戶和組的信息。因為默認情況下創建一個用戶賬號,設置好密碼后,會創建一個家目錄和一個用戶郵箱(在/var/spool/mail目錄以用戶名命名)。我們可以使用find命令來查找所有與該用戶相關的文件信息【find / -name "xiaoming"】。如下圖所示:

7.6 查詢用戶信息指令

基本語法
  id 用戶名

案例演示
  請查詢root信息

細節說明
  當用戶不存在時,返回“無此用戶”。

7.7 切換用戶

介紹
  在操作Linux中,如果當前用戶的權限不夠,可以通過su -指令,切換到高權限用戶,比如root用戶。

基本語法
  su - 切換用戶名

案例演示
  創建一個用戶xiaojun,指定密碼,然后切換到xiaojun。

細節說明
  1) 從權限高的用戶切換到權限低的用戶,不需要輸入密碼,反之需要。
  2) 當需要返回到原來用戶時,使用exit指令。
  3) 如果su – 沒有帶用戶名,則默認切換到root用戶。

7.8 查看當前用戶/登錄用戶

基本語法
  whoami / who am i

8 用戶組管理

介紹
  類似於角色,系統可以對有共性的多個用戶進行統一的管理。

8.1 新增組

新增組
  groupadd 組名

案例演示
  groupadd wudang

8.2 刪除組

刪除組
  groupdel 組名

案例演示
  groupdel wudang
  注意:這里有一個前提,就是這個用戶組沒有用戶,才能被刪除。

8.3 增加用戶時直接指定用戶的家目錄和用戶組

  1、創建一個用戶,名字叫abc,主目錄是/home/abc/目錄,屬於aabb這個組。
  useradd -d /home/abc/ abc -m -g aabb

-d的意思是指定用戶的主目錄 
-m的意思是,如果主目錄不存在,那么就自動創建這個目錄 
-g的意思是指定該用戶屬於哪個組

  2、增加一個用戶zwj, 直接將他指定到用戶組wudang。
  useradd zwj -g wudang

8.4 修改用戶所屬的用戶組

修改用戶所屬的用戶組
  usermod 用戶名 –g 新的組名

案例演示
  創建一個shaolin用戶組,讓將zwj用戶修改到shaolin用戶組。

8.5 用戶和組的相關文件

/etc/passwd 文件
  用戶(user)的配置文件,記錄用戶的各種信息。
  每行的含義:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell的種類

/etc/shadow 文件
  口令的配置文件。
  每行的含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:保留

/etc/group 文件
  組(group)的配置文件,記錄Linux包含的組的信息。
  每行含義:組名:口令:組標識號:組內用戶列表

9 實用指令

9.1 運行級別

基本介紹
運行級別說明:

0 :關機 
1 :單用戶【類似安全模式,這個模式可以幫助找回root密碼】
2 :多用戶狀態沒有網絡服務
3 :多用戶狀態有網絡服務【使用最多】
4 :系統未使用保留給用戶
5 :圖形界面
6 :系統重啟

常用運行級別是3和5,我們可以修改默認的運行級別文件。

9.2 指定運行級別

CentOS 6X 和 CentOS 7X 的指定運行級別的方式有區別!!!
CentOS 6X 是通過修改/etc/inittab 來修改默認運行級別的。

9.2.1 CentOS 6X指定當前運行級別

  查看vim /etc/inittab文件


  id:5:initdefault:
  命令:init [012356]
  通過init來切換不同的當前運行級別,比如:5、3,然后關機。
  init 5
  init 3
  init 0

9.2.2 CentOS 7X指定運行級別

  查看vim /etc/inittab文件


我們可以看到,里面除了注釋,什么也沒有,並沒有CentOS 6X中設置默認運行當前級別的方式。
注釋內容大意是說:
# multi-user.target類似於runlevel 3
# graphical.target類似於runlevel5

#獲得默認運行級別的方式
systemctl get-default

#設置默認運行級別的方式
systemctl set-default TARGET.target

運行級別對應表如下圖所示:

CentOS 7X 設置運行級別
命令格式:systemctl [command] [unit.target]
參數詳解:command:

    get-default     獲得當前的target
    set-default     設置指定的target為默認的運行級別
    isolate         切換到指定的運行級別

unit.target 為運行級別對應表中列出的運行級別,如下圖所示:


注:上表前兩行是設置默認運行級別(重啟系統生效),后兩行是設置當前運行級別(立即生效)。

CentOS 7X 系統演示

9.3 面試題

1、請設置我們的Linux運行級別,linux運行后,直接進入到命令行終端(3級別)
答:對於CentOS 6X而言,編輯vim /etc/inittab文件即可,修改為:id:3:initdefault:
對於CentOS 7X而言,命令是:systemctl set-default multi-user.target(重啟linux系統后生效)
擴展:如果將運行級別設置為0,即Linux系統一開機就立馬關機,那么我們如何解決這個問題?
答:思路同下。即進入單用戶運行級別,然后修改inittab文件

2、假設我們的root用戶的密碼忘記了,請問如何找回密碼?
思路:進入單用戶運行級別,然后修改root密碼。因為單用戶運行級別不需要密碼就可以使用root身份登錄。
答:Linux系統啟動時 -> 快速輸入Enter -> 輸入e -> 進入到編輯界面 -> 選擇中間有kernel項 -> 再輸入e(edit) -> 在該行的最后寫入空格和1 [表示修改內核,臨時生效] -> 再輸入Enter -> 輸入b [boot] -> 進入到單用戶模式【這里就可以做補救工作了】。
截圖如下:
Linux系統啟動時,快速輸入Enter


輸入e,進入到編輯界面,選擇中間有kernel項

再輸入e(edit),在該行的最后 寫入空格和1 [表示修改內核,臨時生效],再輸入Enter

輸入b [boot],進入到單用戶運行級別【這里就可以做補救工作了】

單用戶運行級別不需要密碼就可以使用root身份登錄,此時我們使用root用戶修改密碼即可。

思考:root用戶的密碼都可以隨意修改,Linux的安全性體現在哪里呢?
答:上述修改root用戶密碼的前提:不能遠程登錄,必須在這個Linux服務器所在的電腦上進行操作。換言之,這個Linux服務器就在我們身邊,觸手可及,是我們自己的東西,我們對於我們自己的東西,想怎么整都行!何況小小的修改密碼的操作。

9.4 幫助指令

  • 當我們對某一個指令不熟悉的時候,我們可以使用Linux提供的幫助指令來了解這個指令的使用方法。
  • man獲得幫助信息
    • 基本語法:
        man [命令或配置文件](功能描述:獲得幫助信息)
    • 應用實例:
        案例:查看ls命令的幫助信息
  • help指令
    • 基本語法:
        help 命令 (功能描述:獲得shell內置命令的幫助信息)
    • 應用實例:
        案例:查看cd命令的幫助信息
  • 百度幫助更直接
    • 雖然上面兩個都可以來獲取指令幫助,但是需要英語功底,如果英語不太好的,我還是推薦大家直接百度靠譜。

9.5 文件和目錄相關的指令

9.5.1 pwd指令

  • 基本語法:
    pwd (功能描述:顯示當前工作目錄的絕對路徑)
  • 應用實例:
    案例:顯示當前工作目錄的絕對路徑。

9.5.2 ls指令

  • 基本語法:
    ls [選項] [目錄或是文件]
  • 常用選項:
    -a :顯示當前目錄所有的文件和目錄,包括隱藏的(文件名以.開頭就是隱藏)。
    -l :以列表的方式顯示信息
    -h :顯示文件大小時,以 k, m, G 單位顯示
  • 應用實例:
    案例:查看當前目錄的所有內容信息。

9.5.3 cd指令

  • 基本語法:
    cd [參數] (功能描述:切換到指定目錄)
  • 常用參數:
    絕對路徑【從 / 開始定位】和相對路徑【從當前的位置開始定位】
    cd ~ 或者 cd 回到自己的家目錄
    cd .. 回到當前目錄的上一級目錄
  • 應用實例:
    案例1:使用絕對路徑切換到root目錄 cd /root
    案例2:使用相對路徑到/root目錄 cd ../root (用戶在/home目錄下)
    案例3:表示回到當前目錄的上一級目錄 cd ..
    案例4:回到家目錄 cd ~

9.5.4 mkdir指令

  • 說明:
    mkdir 用於創建目錄 [make directory]
  • 基本語法:
    mkdir [選項] 要創建的目錄
  • 常用選項:
    -p :創建多級目錄
  • 應用實例:
    案例1:創建一個目錄 /home/dog mkdir /home/dog
    案例2:創建多級目錄 /home/animal/tiger mkdir -p /home/animal/tiger

9.5.5 rmdir指令

  • 說明:
    rmdir 用於刪除空目錄 [remove directory]
  • 基本語法:
    rmdir [選項] 要刪除的空目錄
  • 應用實例:
    案例1:刪除一個目錄 /home/dog
      rmdir /home/dog [前提 /home/dog 是空目錄]
  • 使用細節:
    rmdir 刪除的是空目錄,如果目錄下有內容時無法刪除的。
      提示:如果需要刪除非空目錄,需要使用 rm -rf 要刪除的目錄

9.5.6 touch指令

  • 說明:
    touch 用於創建空文件,還可以更新文件的修改時間。
  • 基本語法:
    touch 文件名稱
  • 應用實例:
    案例1:創建一個空文件 hello.txt touch hello.txt
      提示:如果文件存在,則表示刷新該文件的修改時間。
    案例2:創建多個空文件 hello.txt haha.txt touch hello.txt haha.txt

9.5.7 cp指令

  • 說明:
    cp 用於拷貝文件到指定目錄 [copy 拷貝]
  • 基本語法:
    cp [選項] source【源文件或者源目錄】 dest【目的目錄】
  • 常用選項:
    -r :遞歸復制整個文件夾 [r:recursive 遞歸]
  • 應用實例:
    案例1:將 /home/aaa.txt 拷貝到 /home/bbb/ 目錄下 cp /home/aaa.txt /home/bbb/
    案例2:遞歸復制整個文件夾,舉例:將 /home/ 整個目錄拷貝到 /opt/ 目錄下 cp -r /home/ /opt/
  • 使用細節:
    當發現目標目錄下有相同的文件,會提示是否覆蓋,很煩人,強制覆蓋不提示的方法:\cp
  • 建議
    /表示的是根目錄,/home//home都表示的是根目錄下的home目錄,但是建議home目錄寫成home/會更專業,這樣避免出現歧義。即xxx目錄最好寫成xxx/,正斜杠最好別省略!強烈推薦多使用絕對路徑,少用相對路徑!腦海中要有清晰的Linux目錄樹結構圖。

9.5.8 rm指令

  • 說明:
    rm 用於移除文件或目錄
  • 基本語法:
    rm [選項] 要刪除的文件或目錄
  • 常用選項:
    -r :遞歸刪除整個文件夾 [r=recursive 遞歸]
    -f :強制刪除不提示 [f=force 強制]
    -rf :強制遞歸刪除整個文件夾不提示
  • 應用實例:
    案例1:將 /home/aaa.txt 刪除 rm /home/aaa.txt
    案例2:遞歸刪除整個文件夾 /home/bbb/ 命令 rm –r /home/bbb/
  • 使用細節
    強制刪除不提示的方法:帶上 -f 即可
    rm –rf /home/bbb/

9.5.9 mv指令

  • 說明:
    mv 移動文件與目錄或重命名
  • 基本語法:
    1) mv oldNameFile newNameFile (功能描述:重命名)前提:要先有oldFile存在,才是重命名
    2) mv /temp/moveFile /targetFolder/ (功能描述:移動文件或目錄)
  • 應用實例:
    案例1:將 /home/aaa.txt文件 重新命名為 pig.txt,前提:aaa.txt文件先存在,才是重命名。
    案例2:將 /home/pig.txt文件 移動到 /root/ 目錄下,前提:/root/ 目錄下沒有改文件,是移動。

9.5.10 cat指令

  • 說明:
    cat 查看文件內容
  • 基本語法:
    cat [選項] 要查看的文件
  • 常用選項:
    -n :顯示行號
  • 應用實例:
    案例1:查看 /ect/profile文件 內容,並顯示行號。命令:cat -n /etc/profile | more
      cat 只能瀏覽文件,而不能修改文件,為了瀏覽方便,一般會帶上管道命令 | more
      cat xxx.txt | more (把 cat xxx.txt 輸出結果交給 more 處理),如下圖所示:

9.5.11 more指令

  • 說明:
    more指令是一個基於vi編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容。
  • 基本語法:
    more 要查看的文件
  • 操作說明:
    more指令中內置了若干快捷鍵,詳見操作說明如下圖:
  • 應用實例:
    案例: 采用more查看 more /etc/profile文件

9.5.12 less指令

  • 說明:
    less指令用來分屏查看文件內容,它的功能與more指令類似,但是比more指令更加強大,支持各種顯示終端。less指令在顯示文件內容時,並不是一次將整個文件加載之后才顯示,而是根據顯示需要加載內容,對於顯示大型文件具有較高的效率
  • 基本語法:
    less 要查看的文件
  • 操作說明:
  • 應用實例:
    案例: 采用less查看一個大文件,比如大型日志文件

9.5.13 >指令和>>指令

  • 說明:
    > 輸出重定向>> 追加
  • 基本語法:
    1) ls -l > 文件   (功能描述:把列表的內容寫入文件a.txt中(覆蓋寫),如果文件a.txt不存在就創建並寫入,如果文件a.txt存在就覆蓋寫)
    2) ls -al >> 文件   (功能描述:那列表的內容追加到文件aa.txt的末尾)
    3) cat 文件1 > 文件2   (功能描述:將文件1的內容覆蓋到文件2)
    4) echo "內容" >> 文件
  • 應用實例:
    案例1:將 /home/ 目錄下的文件列表寫入到 /home/info.txt
    命令:ls –l /home/ > /home/info.txt [如果文件不存在,則會自動創建后再寫入]
    案例2:將當前日歷信息追加到 /home/mycal 文件中
    命令:date >> /home/mydate 或者 cal >> /home/mycal

9.5.14 echo指令

  • 說明:
    echo 用於輸出內容到控制台。
  • 基本語法:
    echo [選項] [輸出內容]
  • 應用實例:
    案例1:使用echo指令輸出環境變量,輸出當前的環境路徑。
    案例2:使用echo指令輸出文"Hello World"。

9.5.15 head指令

  • 說明:
    head 用於顯示文件的開頭部分內容,默認情況下head指令顯示文件的前10行內容。
  • 基本語法:
    1) head 文件   (功能描述:默認查看文件頭10行內容)
    2) head -n 5 文件   (功能描述:查看文件頭5行內容,5可以是任意行數)
  • 應用實例:
    案例:查看 /etc/profile 的前面5行代碼。

9.5.16 tail指令

  • 說明:
    tail 用於輸出文件中尾部的內容,默認情況下tail指令顯示文件的后10行內容。
  • 基本語法:
    1) tail 文件   (功能描述:默認查看文件后10行內容)
    2) tail -n 5 文件   (功能描述:查看文件后5行內容,5可以是任意行數)
    3) tail -f 文件   (功能描述:實時追蹤該文檔的所有更新)該命令在工作中經常用。
  • 應用實例:
    案例1:查看 /etc/profile文件 最后5行的內容

    案例2:實時監控某文件,看到當該文件有變化時,就會實時看到變化。

    最常使用查看tomcat啟動日志文件命令:tail -f logs/catalina.out

9.5.17 ln指令

  • 說明:
    軟鏈接[link]也成為符號鏈接,類似於windows里的快捷方式,主要存放了鏈接其他文件的路徑。
  • 基本語法:
    ln -s [原文件或目錄] [軟鏈接名] (功能描述:給原文件創建一個軟鏈接)
  • 應用實例:
    案例1:在 /home/ 目錄下創建一個軟連接,名為 linkToRoot,連接到 /root/ 目錄
      ln -s /root/ linkToRoot
    案例2: 刪除軟連接 linkToRoot
      rm –rf linkToRoot
    注意:刪除軟連接的時候,不要帶正斜杠!否則會刪除掉軟連接對應的目錄!
  • 細節說明:
    當我們使用pwd指令查看目錄時,仍然看到的是軟鏈接所在目錄。

9.5.18 history指令

  • 說明:
    查看已經執行過歷史命令,也可以執行歷史指令。
  • 基本語法:
    history (功能描述:查看已經執行過歷史命令)
  • 應用實例:
    案例1:顯示所有的歷史命令。history
    案例2:顯示最近使用過的10個指令。history 10
    案例3:執行歷史編號為5的指令:!5。``

9.6 時間日期類相關的指令

9.6.1 date指令-顯示當前日期

  • 說明:
    顯示當前日期
  • 基本語法:
    1) date (功能描述:顯示當前時間)
    2) date +%Y (功能描述:顯示當前年份)
    3) date +%m (功能描述:顯示當前月份)
    4) date +%d (功能描述:顯示當前是哪一天)
    5) date "+%Y-%m-%d %H:%M:%S" (功能描述:顯示年月日時分秒)
  • 應用實例:
    案例1:顯示當前時間信息。
    案例2:顯示當前時間年月日。
    案例3:顯示當前時間年月日時分秒。

9.6.2 date指令-設置日期

  • 基本語法:
    date -s 字符串時間
  • 應用實例:
    案例1:設置系統當前時間,比如設置成 2020-11-11 11:22:22

9.6.3 cal指令-顯示日歷搜索查找類

  • 說明:
    查看日歷指令
  • 基本語法:
    cal [選項](功能描述:不加選項,顯示本月日歷)
  • 應用實例:
    案例1:顯示當前日歷。
    案例2:顯示2050年日歷。

9.7 搜索查找類相關的指令

9.7.1 find指令

  • 說明:
    find指令 用於將從指定目錄向下遞歸地遍歷其各個子目錄,將滿足條件的文件或者目錄顯示在終端。
  • 基本語法:
    find [搜索范圍] [選項]
  • 選項說明:
  • 應用實例:
    案例1:按文件名:根據名稱查找 /home/ 目錄下的 hello.txt文件
      find /home/ -name hello.txt
    案例2:按擁有者:查找/opt目錄下,用戶名為nobody的文件
      find /opt/ -user nobody
    案例3:查找整個linux系統下大於10M的文件(+n 大於、-n 小於、n 等於)
      find / -size +10M (注意:k要小寫,M要大寫)

9.7.2 locate指令

  • 說明:
    locate指令可以快速定位文件路徑。locate指令利用事先建立的系統中所有文件名稱及路徑的locate數據庫實現快速定位給定的文件。locate指令無需遍歷整個文件系統,查詢速度較快。為了保證查詢結果的准確度,管理員必須定期更新locate時刻
  • 基本語法:
    locate 搜索文件
  • 特別說明:
    由於locate指令基於數據庫進行查詢,所以第一次運行前,必須使用updatedb指令創建locate數據庫。
  • 應用實例:
    案例1:請使用locate指令快速定位 hello.txt 文件所在目錄
      updatedb // 創建locate的數據庫
      locate hello.txt

9.7.3 grep指令和管道符號|

  • 說明:
    grep 過濾查找,管道符“|”,表示將前一個命令的處理結果輸出傳遞給后面的命令處理。
  • 基本語法:
    grep [選項] 查找內容 源文件
  • 常用選項:
  • 應用實例:
    案例1:請在 /etc/profile 文件中,查找 "if" 所在行,並且顯示行號。
      cat /etc/profile | grep -n if [在/etc/profile 中查找 if ,並顯示行,區別大小寫]
      cat /etc/profile | grep -ni if [在/etc/profile 中查找 if ,並顯示行,不區別大小寫]

9.8 壓縮和解壓類相關的指令

9.8.1 gzip/gunzip 指令

  • 說明:
    gzip 用於壓縮文件,gunzip 用於解壓文件。
  • 基本語法:
    gzip 文件 (功能描述:壓縮文件,只能將文件壓縮為*.gz文件)
    gunzip 文件.gz (功能描述:解壓縮文件命令)
  • 特別說明:
    當我們使用gzip對文件進行壓縮后,不會保留原來的文件。
  • 應用實例:
    案例1:gzip壓縮,將 /home/ 下的 hello.txt文件 進行壓縮
    案例2:gunzip壓縮,將 /home/ 下的 hello.txt.gz文件 進行解壓縮

9.8.2 zip/unzip 指令

  • 說明:
    zip 用於壓縮文件,unzip 用於解壓的,這個在項目打包發布中很有用的。
  • 基本語法:
    zip [選項] xxx.zip 需要壓縮的內容(功能描述:壓縮文件和目錄的命令)
    unzip [選項] xxx.zip 需要解壓縮的內容(功能描述:解壓縮文件的命令)
  • zip的常用選項:
    -r :遞歸壓縮,即壓縮目錄。
  • unzip的常用選項
    -d :指定解壓后文件的存放目錄。
  • 應用實例:
    案例1:將 /home/ 下的 所有文件進行壓縮成 mypackage.zip [退出home]
      zip -r mypackage.zip /home/
    案例2:將 mypackge.zip 解壓到 /opt/tmp/ 目錄下
      unzip –d /opt/tmp/ mypackage.zip [如果/opt/tmp/ 目錄不存在,會自動創建]

9.8.3 tar 指令

  • 說明:
    tar 是打包指令,最后打包后的文件是 xxx.tar.gz 的文件。[可以壓縮,和解壓縮]
  • 基本語法:
    tar [選項] xxx.tar.gz 打包的內容/目錄 (功能描述:打包目錄或文件,壓縮后的文件格式 xxx.tar.gz)
  • 選項說明:
  • 應用實例:
    案例1:壓縮多個文件,將 /home/a1.txt 和 /home/a2.txt 壓縮成 a.tar.gz,命令 tar -zcvf a.tar.gz a1.txt a2.txt
    案例2:將 /home/ 文件夾壓縮成 myhome.tar.gz,命令 tar -zcvf myhome.tar.gz /home/
    案例3:將 a.tar.gz 解壓到當前目錄,命令 tar -zxvf a.tar.gz
    案例4:將 myhome.tar.gz 解壓到 /opt/tmp2/目錄下,命令 tar -zxvf myhome.tar.gz -C /opt/tmp2/
  • 特別說明:
    解壓到指定目錄的前提:指定目錄先要存在!如果指定目錄沒有,會報錯!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM