專案二 管理與維護Linux系統

qq_41811529發表於2018-03-18

任務一   安裝與配置初始CentOS系統

已完成安裝

任務二   認識Linux的檔案系統

【子任務一】熟悉Linux系統中的目錄結構

第1步:理解Linux系統的目錄結構樹

Linux系統的目錄結構採用的是樹形結構。最上層是根目錄,其他的所有目錄都是有根目錄而生成的 。微軟的DOS和Windows也是採用樹形結構,但是在DOS和Windows中,這樣的樹形結構的跟是磁碟分割槽的碟符,有幾個分割槽就有幾個樹形結構,它們之間的關係是並列的。但是在Linux中,無論作業系統管理幾個磁碟分割槽,這樣的目錄樹只有一個。從結構上講,各個磁碟分割槽上的樹形目錄不一定是並列的。

第2步:對比理解Linux系統的文件結構

有一塊硬碟,分成了4個區,分別是/、/boot、/usr和Windows下的FAT,對於/和/boot或者/和/usr,它們是從屬關係;對於/boot和/usr,它們是並列關係。

如果把Windows下的FAT分割槽掛載到/mnt/winc下(掛載將【子任務4】中介紹),那麼對於/mnt/winc和/usr或/mnt/winc和/boot來說,它們是從屬於目錄樹上沒有任何關係的兩個分文。

因為Linux是一個多使用者系統,所以要定製一個固定的目錄規劃,這樣有助於對系統檔案和不同的使用者檔案進行統一管理。但就是這一點讓很多從Windows轉到Linux的初學者感到頭疼。

第3步:列出Linux下一些常用目錄的功能

/,根目錄。

/bin,存放必要的命令。

/boot,存放核心以及啟動所需要的檔案(最好佔一個分割槽)。

/dev,存放裝置檔案。

/etc,存放系統配置檔案(最好佔一個分割槽)。

/home,普通使用者的宿主目錄,使用者資料存放在其主目錄中(推薦佔一個分割槽)。

/lib,存放必要的執行庫。

/mnt,存放臨時的映象檔案系統,通常用來掛載。

/proc,存放儲存程式和系統資訊。

/root,超級使用者的主目錄(推薦佔一個分割槽)。

/sbin,存放系統管理程式。

/tmp,存放臨時檔案。

/usr,存放應用程式、命令程式檔案、程式庫、手冊和其他文件(推薦佔一個分割槽)。

/var,在正常操作中被改變的檔案。

【子任務二】瞭解Linux系統中的路徑規則

第1步:理解絕對路徑

絕對路徑:路徑的寫法一定由根目錄“/”寫起,例如/usr/local/mysql就是絕對路徑。

第2步:理解相對路徑

相對路徑:路徑的寫法不是由根目錄“/”寫起,例如,首先使用者進入到/,然後再進入到home,命令為【cd/home】,然後使用【cd test】命令,此時使用者所在的路徑為/home/test。第一個cd命令跟/home,第二個cd命令跟test,並沒有斜槓這個是相對於/home目錄而言的,所以叫相對路徑。

【子任務三】掌握Linux系統中的基本命令

對於一個Linux新手來說,使用Linux命令來幫助執行任務是一個最基本的要求。下面這些命令是每一個Linux系統管理員都必須掌握的基本命令。

第1步:使用【pwd】命令列印出當前所在目錄

在Linux系統中,只顯示當前工作的目錄,沒有顯示完整的路徑,使用【pwd】命令列印當前完整的工作路徑。

第2步:使用【cd】命令進入檔案的目錄

【cd】命令是Linux中最基本的命令語句,其他的命令語句要進行操作,都是建立在使用【cd】命令基礎之上的。所以,學習Linux常用命令,首先就要學好【cd】命令的使用方法與技巧。

【cd/usr/local】進入到/usr/local目錄。

【pwd】列印當前工作目錄。

【cd./】還是當前目錄。

【cd../】進入當前目錄的上級目錄。

在上面的命令中,首先進入/usr/local/lib目錄下,然後在進入./,其實還是進入到當前目錄下,用【pwd】命令檢視當前的工作路徑並沒有發生變化,然後再進入../,則是進入到/usr/local/目錄下,即/usr/local/lib目錄的上一級目錄。

路徑【./】指的是當前目錄,【../】指的是當前目錄的上一級目錄。

第3步:使用【ls】命令顯示檔案資訊

【ls】命令是列表的命令,在【ls】命令後加上-l就是以列表的形式顯示出來,內容較【ls】命令更加具體。

【ls-l】或【ll】顯示當前資料夾內檔案詳細資訊。

【ls-a】顯示當前資料夾內隱藏檔案。

【ls~】顯示使用者宿主目錄的檔案資訊。


第4步:使用【more】或【less】命令分屏顯示檔案與目錄

【more】以一頁一頁的形式顯示檔案;按Space鍵向後翻頁;按b鍵向前翻頁。

【less】命令作用與【more】命令相似,都可以用來瀏覽文字檔案的內容,不同的是【less】命令允許使用者往回捲動的方式檢視檔案,瀏覽速度較vi文字編輯器快;【j】以行為單位向下;【k】以行為單位向上。

同時,在使用【less】命令檢視檔案時,可以輸入vi命令進行文字翻譯。

【ls/etc|more】讓/etc中檔案與目錄分屏顯示,只能向下檢視。【ls/etc|less】讓/etc中檔案與目錄分屏顯示,可以上下檢視。

【less/etc/squid.conf】分屏顯示squid.conf中的內容。

第5步:使用【cat】命令檢視檔案內容

【cat】命令是Linux下的一個檔案輸出命令,通常是用於檢視某個檔案的內容。【cat】命令主要有3大功能。

(1)一次顯示整個檔案:【cat filename】。

(2)從鍵盤創作一個檔案:【cat>filename】,只能建立新檔案,不能編輯已有檔案。

(3)將幾個檔案合併為一個檔案:【cat file1 file2>file】。

【cat/etc/passwd】檢視檔案中的內容。

【cat/etc/passwd|less】檢視檔案passwd檔案中的內容,可以上下移動,按q鍵退出。

【cat/etc/fstab】檢視/etc/fstab檔案內容。

第6步【mkdir yhy】在當前路徑中建立yhy目錄。

【mkdir yhy1 yhy2 yhy3】在當前路徑中同時建立yhy1、 yhy2、 yhy3共3個目錄。

mkdir是Make Directory的縮寫,其語法為mkdir[-m或-p][目錄名稱]。其中-m、-p為其選項,-m用來指定要建立目錄的許可權,【mkdir -m 755 yhy】表示建立一個許可權為755的資料夾,該引數不常用,所以筆者不做重點解釋;-p很常用。輸入【mkdir/tmp/tmp/test/yhy】命令並執行,系統提示錯誤,無法建立。具體提示資訊如下:

[root@yhy~]# mkdir/tmp/test/yhy

mkdir:cannot creadirectory'/tmp/test/yhy':No such or directory

當我們想建立/tmp/test/yhy目錄,系統提示不能建立,原因是tmp/test目錄不存在,你會說,這個Linux怎麼這樣傻,tmp/test目錄不存在就自動建立不就可以了嗎?的確,Linux確實很傻,如果它發現要建立的目錄的上一級目錄不存在就會自動報錯。但是Linux也為我們想好了解決的方法,即引數-p。

執行帶引數-p的命令【mkdir-p/tmp/test/yhy】,系統將不再報錯。

至此,可發現引數-p的作用。沒錯,它的作用就是遞迴建立目錄,即使上一級目錄不存在。還有一種情況就是如果你想要建立的目錄存在,它也不會提示錯誤,在加上引數-p後,就不會報錯了。

第7步:使用【touch】命令建立檔案

【touch】命令用於建立新的空檔案或者修改已有檔案的時間戳,最常用的方法如下。

【touch fileA】如果fileA存在,使用【touch】指令可更改這個檔案或目錄的日期時間,包括存取時間和更改時間;若果fileA不存在,【touch】指令會在當前目錄下新建一個空白檔案fileA。

【touch file1 file2】在當前目錄下建立file1 和file2兩個檔案。

【touch/home/file1 file2】在/home目錄下建立檔案file1和file2兩個檔案。

【touch-t 201201142234.50 log.log】設定檔案的時間戳為201601142234.50。

【mkdir dir1 dir2】在當前目錄下建立子目錄dir1 和dir2,即兩個資料夾。

這兩個命令容易混淆,【touch】命令後跟的是檔案,【mkdir】命令後跟的是目錄。


第8步:使用【rmdir】刪除目錄

【rmdir /tmp/test/yhy】刪除yhy目錄。

【ls /tmp/test】檢視test目錄下的檔案及目錄。

rmdir 其實是rmove directory 縮寫,其只有一個選項-p 類似與【mkdir】命令,這個引數的作用是將上級目錄一起刪除。

【mkdir -p d1/d2/d3】依次建立d1/d2/d3資料夾。

【rmdir -p d1/d2/d3】依次刪除d3, d2, d1。

如果一個目錄中還有目錄,那麼當你直接【rmdir】 該目錄時,會提示該目錄不為空,不能刪除。如果你非要刪除不為空的目錄,那麼用【rm】命令。

第9步:使用【rm】刪除目錄或者檔案

【rmdir】只能刪除目錄但不能刪除檔案,要想刪除一個檔案,則要用【rm】命令了。【rm】同樣也有-f、-i、-r等很多選項。你可以通過【man rm】來獲得詳細幫助資訊。在這裡只列舉較常用的幾個選項。

【rm -f /root/dir2/myfile1】使用絕對路徑刪除檔案myfile1, -f強制的意思,如果不加這個選項,當刪除一個不存在的檔案時會報錯。

【rm -i /root/dir2/myfile2】-i這個選項的作用是,當使用者刪除myfile2檔案時會提示使用者是否真的刪除,如果刪除,輸入【y】 否則輸入 【n】。

【rm –rf /root/dir1】-r當刪除目錄時,加該選項,如果不加這個選項會報錯。rm是可以直接刪除不為空的目錄的。

【rm –rf /root/dir2】刪除dir2子目錄,包括裡面的檔案。

第10步:使用【cp】命令複製檔案

【cp】命令用於複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有檔案或目錄複製到此目錄中。若同時指定多個檔案或目錄,而最後的目的地並非一個已存在的目錄,則會出現錯誤資訊。

【cp  /etc/grub.conf  ./】將/etc/grub.conf檔案複製到當前目錄中。

【cp /etc/passwd /root/passwd.bak】複製/etc/passwd檔案到/root/中,並重新命名為passwd.bak。

【cp /root/*.mp3 /soft/ab】複製副檔名為mp3的所有檔案到/soft/ab目錄中。

【cp –r –f /root /soft/ab】複製一個目錄到另一個目錄,同時刪除前面已經存在的目錄。

【cp file1 file2 dir1】將file1 file2 複製到dir1中。

第11步:使用【mv】命令移動或重新命名檔案/目錄

mv是Move的縮寫,【mv】可以用來移動檔案或者將檔案改名(move (rename) files),是Linux系統下常用的命令,經常用來備份檔案或者目錄。

mv 1.txt  2.txt  3.txt test3命令將1.txt 2.txt3.txt 三個檔案移到 test3目錄中。

mv -t /opt/soft/test/test4/  1.txt  2.txt  3.txt 】命令又將三個檔案移動到test4目錄中。

【mv file1 file2 dir2】將檔案file1,file2從當前目錄移動至dir2中。

【mv /dir2/file1 /dir2/myfile1】將dir2中的檔案file1 改名為myfile1。

【mv /root/abc.jpg /etc/kk】將/root/abc.jpg檔案移動到/etc/kk資料夾下。

【mv at.doc abc.doc】將at.doc該名為abc.doc。

【mv kk.zip .kk.zip】將kk.zip檔案隱藏。

【mv .kk.zip kk.zip】將.kk.zip去除隱藏。

【mv -i 1.txt 2.txt】將檔案1.txt改名為2.txt,如果2.txt已經存在,則詢問是否覆蓋。。

第12步:重啟與關機

在linux下一些常用的關機/重啟命令有【shutdown】、【halt】、【reboot】、及【init】,它們都可以達到重啟系統的目的,但每個命令的內部工作過程是不同的 

重啟命令:

【reboot】重啟系統。

【shutdown -r now】立刻重啟(root使用者使用)  。

【shutdown -r 10】過10分鐘自動重啟(root使用者使用)  。

【shutdown -r 20:35】在時間為20:35時候重啟(root使用者使用)。

關機命令:

【halt】立刻關機。

【poweroff】立刻關機。

【shutdown -h now】立刻關機(root使用者使用)。

【shutdown -h 10】10分鐘後自動關機。

如果是通過shutdown命令設定關機的話,可以用【shutdown -c】命令取消重啟或關機。

第13步:檢視系統相關狀態

(1)【df】 命令顯示磁碟佔有空間。

         【df】命令可以顯示目前所有檔案系統的最大可用空間及使用情形,請看下列這個例子。

加了引數 -h 表示使用“Human-readable”的輸出,也就是在檔案系統大小使用 GB、MB 等易讀的格式。 

上面的命令輸出的第一個欄位及最後一個欄位分別是檔案系統及其掛入點。從中可以到/dev/mapper/vg_yhy-lv_root這個分割槽被掛在根目錄下,tmpfs這個分割槽被掛在/dev/shm目錄下,/dev/sda1這個分割槽被掛在/boot目錄下。

接下來的四個欄位 Size、Used、Avail、Use%以及Mounted on分別是該分割區的容量、已使用的大小、剩下的大小、使用的百分比及掛載。當硬碟容量已滿時,將步允許再寫東西到該分割槽中。

另外,我們還可以使用引數 -i 來檢視目前檔案系統 inode 的使用情形。有的時候雖然分割槽還有空間,但若沒有足夠的 inode 來存放檔案的資訊,一樣會不能增加新的檔案。請看下面這個例子。

我們可以看到根分割槽已經用掉的inode數量為 101K,還有 1.1M的可用inode。

備註:所謂的 inode 是用來存放檔案及目錄的基本資訊 (metadata),包含時間、檔名、使用者及群組等。在分割扇區時,系統會先做出一堆 inode 以供以後使用,inode 的數量關係著系統中可以建立的檔案及目錄總數。如果要存的檔案大部分都很小,則同樣大小的硬碟中會有較多的檔案,也就是說需要較多的inode來掛檔案及目錄。

(2)【free】命令能顯示系統使用記憶體情況的資訊。

  目前常用的Linux下檢視內容的專用工具是【free】命令。

下面是對記憶體檢視【free】命令輸出內容的解釋:

total:總計實體記憶體的大小為1 915 512B。

used:已使用的記憶體空間為173 548B。

free:可用的記憶體空間為1 741 964B。

Shared:多個程式共享的記憶體總額為0B。

Buffers/cached:磁碟的緩衝區記憶體空間為15 760B;快取記憶體的空間為65 256B。

(3)【cat /proc/meminfo】命令檢視記憶體使用的詳細資訊。 

    (4)【cat /proc/cpuinfo】檢視CPU資訊(型號) 

第14步:熟悉以下常用命令以及功能

   (1)【ls –al /root > file1】將使用者root的家目錄的所有目錄列表儲存至檔案file1中。

   (2)【ls –al /bin | grep in>file2】將/bin下的檔名中包含了in字元的檔名儲存至檔案file2中。

(3)【cat file1 fiel2】同時顯示file1  file2內容。

(4)【cat file1 fiel2 > fiel3】將file1  file2內容合併成新檔案file3。

(5)【head file3】顯示file3的前10行內容,head命令一般預設顯示檔案的前10行。

(6)【head 15 fiel3】顯示file3的前15行內容。

(7)【tail 3 file3】顯示file3的後3行內容。

(8)【wc –lw file1】統計file1中的行數、字數。

(9)【grep –c root file1】統計file3中包含root的行數。

(10)【find . –name “file*”】 查詢檔名中包含了file字元的檔案。

(11)【ls -l | grep –c “file”】 查詢當前目錄中有否檔名包含fiile的檔案。

(12)【find /bin –size -1000c > myresult】查詢/bin中有否1000位元組以下的檔案,並將查詢結果儲存至檔案myresult。

(13)【find /bin -size 100 –print】查詢有否100塊以上的檔案。

(14) 【find / –user test】查詢有否使用者test建立的檔案。

(15)【cp / config* /bak】將所有檔名中包含了字元config的檔案複製到目錄 /bak。

(16)【cut –d: -f1 /etc/passwd】從/etc/passwd中提取使用者名稱,統計個數,並將結果儲存至檔案中。

(17)【ls –al | wc –l】統計/bin目錄下的檔案目錄項數。

(18)【ls -al | perl -pi -e 's/root/wqaz/g'】將使用者當前目錄下的檔案目錄顯示列表中的所有root 替換成 wqaz,並理解變換結果。


【子任務四】掛載外部檔案到Linux系統中

  安裝linux系統以後,當我們插入u盤或放入光碟的時候linux系統是不可以自己識別的,是不能直接使用的,這是由Linux的檔案系統管理決定的。首先,Linux將所有的硬體裝置都當做檔案來處理,因此當使用光碟機、u盤等硬體裝置時,必須將其掛載到系統中,只有這樣Linux才能識別。

第1步:理解掛載的概念

  Linux系統中每個分割槽都是一個檔案系統,都有自己的目錄層次結構。Linux會將這些分屬不同分割槽的、單獨的檔案系統“按一定的方式”形成一個系統的總的目錄層次結構。這裡所說的“按一定方式”就是指的掛載。

  將一個檔案系統的頂層目錄掛到另一個檔案系統的子目錄上,使它們成為一個整體,稱為掛載。把該子目錄稱為掛載點。

  一個分割槽掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載後這個目錄下以前的內容將不可用。

  對於其他作業系統建立的檔案系統的掛載也是這樣。但是需要理解的是:光碟、軟盤、其他作業系統使用的檔案系統的格式與Linux使用的檔案系統格式是不一樣的。光碟是ISO9660;軟盤是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;win2000、winXP、win7、win8以及win10是fat32或NTFS。掛載前要了解Linux是否支援所要掛載的檔案系統格式。

第2步:使用掛載命令的引數

掛載時使用【mount】命令:格式:mount [-引數] [裝置名稱] [掛載點]

其中常用的引數有-t 指定裝置的檔案系統型別,常見的檔案系統如下。

 minix: Linux最早使用的檔案系統。

ext2 :Linux目前常用的檔案系統。
  msdos :MS-DOS的fat,就是fat16。
  vfat: windows98/win2000/winXP常用的fat32。
  nfs: 網路檔案系統。
  iso9660: CD-ROM光碟標準檔案系統。
  ntfs : winXP/win7/win8/win10的檔案系統。
  hpfs: OS/2檔案系統。
  auto: 自動檢測檔案系統。

第3步:使用掛載命令選項

-o 指定掛載檔案系統時的選項。有些也可用在/etc/fstab中。常用的如下。

  ro:以只讀方式掛載。

  rw:以讀寫方式掛載。

  nouser:使一般使用者無法掛載。

  user:可以讓一般使用者掛載裝置。

      需要注意的是,mount命令沒有建立掛載點的功能,因此你應該確保執行mount命令時,掛載點已經存在。也就是說要把檔案系統掛載到哪,首先要先建上個目錄。

      比如:要把win7系統掛載在hda1分割槽上,同時還要掛載光碟和U盤。

【mkdir /mnt/winc  】建立掛載點/mnt/winc。

【mount -t ntfs /dev/hda1 /mnt/winc】掛載win7的hda1分割槽。

【mkdir /mnt/usb】建立掛載點/mnt/usb。

【mount -t vfat /dev/sda1 /mnt/sub】掛載U盤。

【mkdir /mnt/cdrom】建立掛載點/mnt/cdrom。

【mount -t iso9660 /dev/cdrom /mnt/cdrom】掛載光碟。

    現在就可以進入/mnt/winc等目錄讀寫這些檔案系統了。

  要保證掛載U盤以及光碟的命令不出錯,首先要確保U盤存在以及光碟機裡有光碟。

  如果你的win7目錄裡有中文檔名,使用上面的命令掛載後,顯示的是一堆亂碼。這就要用到 -o 引數裡的codepage iocharset選項。codepage指定檔案系統的內碼表,簡體中文中文程式碼是936;iocharset指定字符集,簡體中文一般用cp936或 gb2312。

  當掛載的檔案系統Linux不支援時,mount一定報錯,可以重新編譯Linux核心以獲得對該檔案系統的支援。


【子任務五】掌握Linux系統中的自動掛載

  每次開機訪問windows分割槽或光碟機、U盤時都要執行【mount】命令顯然太煩瑣,為什麼訪問其他的Linux分割槽不用使用】【mount】命令呢?

  其實,每次開機時,Linux自動將需要掛載的Linux分割槽掛載上了。那麼我們是不是可以設定讓Linux在啟動的時候也掛載我們希望掛載的分割槽,如windows分割槽,以實現檔案系統的自動掛載呢?

  這是完全可以的。在/etc目錄下有個fstab檔案,它裡面列出了Linux開機時自動掛載的檔案系統的列表。

  在/etc/fstab檔案裡,如下圖所示。

 

 第一列是掛載的檔案系統的裝置名;第二列是掛載點;第三列是掛載的檔案系統型別;第四列是掛載的選項,選項間用逗號分隔;第五六列留作備用。

 引數defaults實際上包含了一組預設引數:rw 以可讀寫模式掛載;suid 開啟使用者ID和群組ID設定位;dev 可解讀檔案系統上的字元或區塊裝置;exec 可執行二進位制檔案;auto 自動掛載;nouser 使一般使用者無法掛載;async 以非同步方式執行檔案系統的輸入輸出操作;

光碟機和軟碟機是不自動掛載的,如果你非要設成自動掛載,引數設定為noauto,但要確保每次開機時光碟機和軟碟機裡都要有盤,否則系統無法啟動。

 例如,要把系統中 /root/examine.iso 映象文件掛載到 /mnt/iso 目錄下。並且使其在系統重啟後自動掛載(永久掛載),其步驟如下。

(1).先看看/mnt/iso掛載點在不在,若不在,通過命令建立:【#mkdir /mnt/iso】。

(2).掛載檔案:【mount -o loop /root/examine.iso /mnt/iso】。

(3).寫入/etc/fstab表。

使用【vim /etc/fstab】命令編輯/etc/fstab檔案,在最下面新增如下的內容:

 

 

 結果如下圖所示:

 

 當Linux下次啟動時,系統會讀取該檔案,Linux系統就會自動把/root/examine.iso 映象文件掛載到 /mnt/iso 目錄下面。









相關文章