專案二
任務一 安裝與配置初始CentOS系統(已完成安裝)
任務二 認識Linux的檔案系統;
檔案結構是檔案存放在磁碟等儲存裝置上的的組織方法,目錄提供了一個方便而有效的途徑。
第一步 理解linux系統的目錄結構樹
/根目錄(下圖所示)
ls -a 列出檔案下所有的檔案,包括以“.“開頭的隱藏檔案(linux下檔案隱藏檔案是以.開頭的,如果存在..代表存在著父目 錄)。
ls -l 列出檔案的詳細資訊,如建立者,建立時間,檔案的讀寫許可權列表等等。
ls -F 在每一個檔案的末尾加上一個字元說明該檔案的型別。”@”表示符號連結、”|”表示FIFOS、”/”表示目錄、”=”表示套接字。
ls -s 在每個檔案的後面列印出檔案的大小。 size(大小)
ls -t 按時間進行檔案的排序 Time(時間)
ls -A 列出除了”.”和”..”以外的檔案。
ls -R 將目錄下所有的子目錄的檔案都列出來,相當於我們程式設計中的“遞迴”實現
ls -L 列出檔案的連結名。Link(連結)
ls -S 以檔案的大小進行排序
第二步 對比理解linux的文件結構
有一塊硬碟,分成了四個分割槽,分別是/、boot、/usr和windows下的FAT。 在linux系統裡面,分割槽被稱作“掛載點”,簡單明瞭的說,“掛載點”意思就是:把一部分硬碟容量,“分”成一個資料夾的形式,用來幹什麼事情。這個資料夾的名字,就叫做:“掛載點”。所以,和Windows有著本質上的超級大的區別,你在任何linux發行版系統裡面,絕對不會看到C盤,D盤,E 盤這樣的,你能看到的,只有“資料夾”形式存在的“掛載點”。
第三步 列出linux下一些常用目錄的功能
/bin 該目錄中存放Linux的常用命令。
/boot 該目錄預設下存放的是Linux的啟動檔案和核心。
/cdrom 該目錄在剛安裝系統時是空的,你可以將光碟機檔案系統掛在這個目錄下。
/dev 該目錄包含了Linux系統中使用的所有外部裝置,它實際上是訪問這些外部裝置的埠,你可以訪問這些外部裝置,與訪問一個檔案或一個目錄沒有區別。例如在系統中鍵入“cd /dev/cdrom”,就可以看到光碟機中的檔案;鍵入“cd /dev/mouse”即可看滑鼠的相關檔案。
/etc 該目錄存放系統管理時要用到的各種配置檔案和子目錄,例如網路配置檔案、檔案系統、X系統配置文
件、裝置配置資訊、設定使用者資訊等。
/home 如果建立一個名為“xx”的使用者,那麼在/home目錄下就有一個對應的“/home/xx”路徑,用來存放該
使用者的主目錄。
/lib 該目錄用來存放系統動態連結共享庫,幾乎所有的應用程式都會用到該目錄下的共享庫。
/media:提供掛載(mounting)和自動掛載裝置的標準位置,如遠端檔案系統和可移動介質(目錄名為cdrecorder、floppy等)。
/mnt 臨時將別的檔案系統掛在該目錄下。
/opt 第三方軟體在安裝時預設會找這個目錄,所以你沒有安裝此類軟體時它是空的,但如果你一旦把它刪除了
,以後在安裝此類軟體時就有可能碰到麻煩。
/proc 可以在該目錄下獲取系統資訊,這些資訊是在記憶體中由系統自己產生的,該目錄的內容不在硬碟上而在記憶體裡。
/root 如果你是以超級使用者的身份登入的,這個就是超級使用者的主目錄。
/sbin 該目錄用來存放系統管理員使用的管理程式。初始化的記憶體盤。在linux核心啟動前,boot loader會將儲存介質(一般是硬碟)中的
/sys:一個類似與/proc的檔案系統,在Linux2.6核心中最新出現的,包含的檔案用於獲得硬體狀態並反映核心看到的系統裝置樹。它使用了/proc中的很多幫助。
/tmp 用來存放不同程式執行時產生的臨時檔案,該目錄會被系統自動清理乾淨。
/usr 使用者的應用程式和檔案幾乎都存放在該目錄下。
/var 該目錄存放那些經常被修改的檔案,包括各種日誌、資料檔案。
/initrd 它的英文含義是boot loader initialized RAM disk,就是由boot loader,檔案載入到記憶體,核心啟動時會在訪問真正的根檔案系統前先訪問該記憶體中的initrd檔案系統。
【子任務二】 瞭解linux系統的路徑規則
linux系統中,路徑就是一個檔案存在的地方,如果告訴系統的這個路徑,那麼系統就可以找到這個檔案,在linux中,存在著絕對路徑和相對路徑。
第一步 理解絕對路徑
絕對路徑:路徑的寫法一定是由根目錄“/”寫起,例如/usr/local/mysql就是絕對路徑。
第二步 理解相對路徑
相對路徑:路徑的寫法不是由根目錄“/”寫起,例如,使用者進入到/然後在進入到home,命令為【cd /home】,然後再使用【cd/test】命令,此時使用者所在的路徑為/home/test。第一個cd命令後/home,第二個cd命令後跟test,並沒有/,這個test是相對/home目錄而言的,所以叫相對路徑。
【子任務三】 掌握linux系統中的基本命令
第一步:使用【pwd】命令列印出當前所在目錄
第二步:使用【cd】命令進入檔案的目錄
【cd/usr/local】進入到/usr/local目錄。
【pwd】列印當前工作目錄。
【cd./】還是當前目錄。
【cd../】進入當前目錄的上級目錄。
在上面的命令中,首先進入/usr/local/lib/目錄下,然後再進入./,其實還是進入到當前目錄下,用【pwd】命令檢視當前的工作路徑,並沒有發生變化,然後再進入../,則是進入到/usr/local/目錄下,即/usr/local/lib目錄的上一級目錄。
路徑【./】指的是當前目錄,【../】指的是當前目錄的上一級目錄。
第三步:使用【ls】命令顯示檔案資訊
【ls】命令是linux下最常用的命令之一,ls跟dos下的dir命令是一樣的都是用來列出目錄下的檔案,下面我們就來一起看看ls的用法
英文全名:List即列表的意思,當我們學習某種東西的時候要做到知其所以然,當你知道了這個東西大概是個什麼了以後你的思維就會聯想到很多的東西學習的就會很快。
【ls -l 】列出檔案的詳細資訊,如建立者,建立時間,檔案的讀寫許可權列表等等。
【ls -a】 列出檔案下所有的檔案,包括以“.“開頭的隱藏檔案(linux下檔案隱藏檔案是以.開頭的,如果存在..代表存在著父目錄)。
【ls ~】顯示使用者宿主目錄的檔案資訊。
第四步:使用【more】或【less】命令分屏顯示檔案與目錄
【more】以一頁一頁的形式顯示檔案。
【less】命令作用與【more】命令相似,都可以用來瀏覽文字檔案的內容。
【j】以行為單位向下;【k】以行為單位向上。
【ls/etc/more】讓/etc中檔案與目錄分屏顯示,只能向下檢視。【ls/etc|less】讓/etc中檔案與目錄分屏顯示,可以上下檢視。
【less/etc/squid/squid.conf】分屏顯示squid.conf中的內容。
第五步:使用【cat 】命令檢視檔案內容
【cat】通常用於檢視某個檔案的內容,主要有三大功能:
(1)一次性顯示整個檔案:【cat filename】。
(2)從鍵盤建立一個檔案:【cat>filename】。
(3)將幾個檔案合併為一個檔案:【cat lilel file2>file】。
【cat/etc/passwd】檢視檔案passwd檔案中的內容。
【cat/etc/passwd|less】檢視檔案passwd檔案中的內容,可以上下移動,按q鍵退出。【cat/etc/fstab】檢視/etc/fstab檔案中的內容。
【mkdir yhy】在當前路徑中建立yhy目錄。
【mkdir yhy1 yhy2 yhy3】在當前路徑中同時建立yhy1、yhy2、yhy3共三個目錄。
第七步:使用【touch】命令建立檔案
【touch】命令用於建立的空檔案或者修改已有的檔案的時間戳,常用方法如下。
【touch fileA】如果fileA存在,使用【touch】指令可更改這個檔案或目錄的日期時間;如果其不存在,指令會在當前目錄下新建一個空白檔案fileA。
【touch file1 file2】在當前目錄下建立檔案file1和file2兩個。
【touch/home/file1 file2】在/home目錄下建立兩個檔案。
【touch -t 201601142234.50 log.log】設定檔案的時間戳。
【mkdir dirl dir2】在當前目錄下建立子目錄。
第八步:使用【rmdir】命令刪除目錄
【rmidr/tmp/test/yhy】刪除yhy目錄。
【ls/tmp/test】檢視目錄下的檔案及目錄。
【mkdir-p d1/d2/d3】依次建立資料夾。
【rmdir-p d1/d2/d3】依次刪除資料夾。
第九步:使用【rm】命令刪除目錄或者檔案
【rmdir】命令只能刪除目錄但不能刪除檔案或非空目錄,要想刪除一個檔案,則要用【rm】命令。
【rm-f/root/dir2/myfile1】使用絕對路徑刪除檔案。
【rm-i/root/dir2/myfile2】-i當刪除檔案時會提示使用者是否真的刪除,如果刪除,輸入【y】,否則輸入【n】。
【rm-rf/root/dir1】當刪除目錄時加-r選項。
【rm-rf/root/dir2】刪除dir2子目錄,包括裡面的檔案。
第十步:使用【cp】命令複製檔案。
【cp】命令用於複製檔案或目錄。
【cp/etc/grub.conf./】將/etc/grub.conf檔案複製到當前目錄中。
【cp/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中。
第十一步:使用【mv】命令移動或重新命名檔案/目錄
【mv】用來移動檔案或將檔案改名。
【mv1.txt2.txt3.txt test3】移動檔案。
【mv-t/opt/soft/test/test4/1.txt2.txt3.txt】移動檔案。
【mv file1 file2 dir2】將檔案從當前目錄移動至dir2。
【mv/dir2/file1/dir2/myfile1】將檔案改名為myfile1。
【mv/root/abc.jpg/etc/kk】將檔案移動到/etc資料夾下。
【mv at.doc abc.doc】將檔案at.doc改名為abc.doc。
【mv kk.zip.kk.zip】將檔案隱藏。
【mv .kk.zip kk.zip】將檔案除去隱藏。
【mb-i1.txt 2.txt】將檔案改名,如果檔案已存在,則詢問是否覆蓋。
【reboot】重啟系統。
【shutdown-r now】立刻重啟(root使用者使用)。
【shutdown-r 10】過十分鐘自動重啟。
【shutdown-r 20:35】在時間為20:35時重啟。
關機命令
【halt】立刻關機。
【poweroff】立刻關機。
【shutdown-h now】立刻關機(root使用者使用)。
【shutdown-h 10】十分鐘後自動關機。
第十三步:檢視系統相關狀態
(1)【df】命令顯示磁碟佔用空間。
(2)【free】命令用於顯示系統記憶體的使用情況資訊。
(3)【cat/proc/meminfo】命令檢視記憶體使用的詳細資訊。
(4)【cat/procuinfo】命令檢視CPU資訊。
(1)【ls-al/root>file1】將使用者root的家目錄的所有目錄列表儲存至檔案file1中。
(2)【ls-al/bin|grep in>file2】將檔名中包含in字元的檔名儲存至檔案file2中。
(3)【cat file1 file2】同時顯示檔案的內容。
(4)【cat file1 file2>file3】將檔案1、2中的內容合併成新檔案3。
(5)【head file3】顯示檔案file3的前十行內容。
(6)【head 15 file3】顯示檔案的前十五行內容。
(7)【tail 3 file3】顯示檔案的後三行內容。
(8)【wc-lw file1】統計檔案中的行數、字數。
(9)【grep-c root file1】統計檔案中包含root的行數。
(10)【find.-name“file*”】查詢檔名中包含了file的檔案。
(11)【ls-1|grep-c“file”】查詢當前目錄中是否有檔名包含file的檔案。
(12)【find/bin-size-1000c>myresult】查詢是否有1000位元組以下的檔案,並將查詢結果儲存。
(13)【find/bin-size100-print】查詢是否有100塊以上的檔案。
(14)【find/-user test】查詢是否有使用者test建立的檔案。
(15)【cp/config*/bak】將所有檔名中包含了字元config的檔案複製到目錄/bak中。
(17)【ls/bin-al|wc-l】統計/bin目錄下的檔案目錄項數。
(18)【ls-al|per-pi-e's/rootaz/g'】將使用者當前目錄下的檔案目錄顯示列表中的所有root替換成wqaz,並顯示替換結果。
【子任務四】掛載外部檔案到Linux系統中
第一步:理解掛載的概念
Liunx採用樹形的檔案管理系統,也就是在Linux系統中,可以說已經沒有分割槽的概念了。分割槽在Linux和其他裝置一樣都只是一個檔案。要使用一個分割槽必須把它載入到檔案系統中。Linux中樹形的檔案結構,最頂層是/ 目錄。在安裝系統時,必須選擇把一個主分割槽掛載在/ 目錄下,因為系統需要安裝在/掛載的主分割槽下。否則系統會提示。所以掛載就是把目錄和分割槽連線起來,Linux的檔案系統是樹形的,安裝的系統必須是在/ 目錄下,因為/目錄下掛載了一個主分割槽。/目錄是樹形的根,其他所有目錄都是他的子節點。 我們安裝系統的時候已經把分割槽1掛載到 / 目錄下了, 而這個時候沒有掛載其他任何分割槽,所以/ 目錄下的所有其他目錄都在這個分割槽下,也就是說,在任何目錄下讀寫操作實際都是操作的這個1號分割槽。如果我們想使用其他分割槽,就必須把這個分割槽掛載到一個目錄下,這個目錄可以是已經存在的目錄。
第二步:使用掛載命令的引數
掛載時使用【mount】命令;命令格式:mount [-t vfstype] [-o options] device dir
-t vfstype 指定檔案系統的型別,通常不必指定。mount 會自動選擇正確的型別。
Linux最早使用的檔案系統:minix
Linux目前常用的檔案系統:ext4、ext3、ext2
光碟或光碟映象:iso9660
DOS fat16檔案系統:msdos
Windows 9x fat32檔案系統:vfat
Windows NT ntfs檔案系統:ntfs
Mount Windows檔案網路共享:smbfs
UNIX(LINUX) 檔案網路共享:nfs
OS/2檔案系統常用:hpfs
自動檢測檔案常用:auto
OS/2檔案系統常用:hpfs
第三步:使用掛載命令選項
-o,指定掛載檔案系統時的選項
ro :採用只讀方式掛接裝置
rw :採用讀寫方式掛接裝置
user:可以讓一般使用者掛載裝置
nouser:使用一般使用者無法掛載.
使用例項:
Windows 7系統掛載在hdal分割槽上,同時還掛載光碟和U盤。
【mkdir/mnt/winc】建立掛載點/mnt/winc。
【mount-t ntfs/deval /mnt/winc】掛載Windows 7的hdal分割槽
【mkdir/mnt/usb】建立掛載點/mnt/usb。
【mount-t vft /dev/sdal/mnt/sub】掛載U盤。
【mkdir/mntrom】建立掛載點/mntrom。
【mount-t iso9660/devrom/mntrom】掛載光碟。
要保證掛載U盤以及光碟的命令不出錯,首先要確保U盤存在以及光碟機裡有光碟。
1.修改/etc/fstab檔案
用vim開啟 fstab檔案,可以看到檔案格式如下:
如果磁碟是SATA介面,且有多個磁碟,則每個磁碟被標記為 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此類推;而每個磁碟的分割槽被標記為 /dev/hda1、 /dev/hda2等。
如果磁碟是SCSI型別,則多個磁碟會被分別標記為 /dev/sda、/dev/sdb等等。分割槽同理。
如果使用標籤來表示,則格式如:1 LABLE=/
第二列是掛載點。
掛載點必須為當前已經存在的目錄,為了相容起見,最好在建立需要掛載的目標目錄後,將其許可權設定為777,以開放所有許可權。
第三列為此分割槽的檔案系統型別。
Linux可以使用ext2、ext3等型別,此欄位須與分割槽格式化時使用的型別相同。也可以使用 auto 這一特殊的語法,使系統自動偵測目標分割槽的分割槽型別。auto通常用於可移動裝置的掛載。
第四列是掛載的選項,用於設定掛載的引數。
常見引數如下:
auto: 系統自動掛載,fstab預設就是這個選項
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 開機不自動掛載
nouser 只有超級使用者可以掛載
ro 按只讀許可權掛載
rw 按可讀可寫許可權掛載
user 任何使用者都可以掛載
請注意光碟機和軟碟機只有在裝有介質時才可以進行掛載,因此它是noauto
第五列是dump備份設定。
當其值設定為1時,將允許dump備份程式備份;設定為0時,忽略備份操作;
第六列是fsck磁碟檢查設定。
其值是一個順序。當其值為0時,永遠不檢查;而 / 根目錄分割槽永遠都為1。其它分割槽從2開始,數字越小越先檢查,如果兩個分割槽的數字相同,則同時檢查。
將上面的命令新增進fstab後,為了避免可能的錯誤,我們可以使用mount -a 命令來檢驗編輯的內容是否有錯。執行mount -a命令後,用df -h檢視會發現磁碟已經掛載成功,說明輸入沒有錯誤。下次重啟的時候系統就可以自動進行掛載了。
例項圖如下所示:
通常使用者自動掛載的分割槽,第六列值應設定為2而不應該是1 。
注意:(1)根目錄必須優先於其他掛載點
(2)掛載點必須為已經存在的目錄
(3)解除安裝時必須保證當前磁碟沒有發生讀寫操作
2.修改/etc/rc.d/rc.local檔案
將mount命令新增進rc.local檔案是另一種實現開機自動掛載的方式
mount /dev/mapper/vg_study-lv_study /lvm_study
相關文章
- (原)專案管理之外談專案管理之二專案管理
- docker部署Web專案(二)DockerWeb
- 個人專案9/12(二)
- koajs 專案實戰(二)JS
- React專案實踐系列二React
- uwsgi + nginx 部署python專案(二)NginxPython
- Vue專案中生成二維碼Vue
- 通過VuePress管理專案文件(二)Vue
- MVVM框架的搭建(二)——專案搭建MVVM框架
- 用MyEclipse JPA建立專案(二)Eclipse
- 專案治理結構初探(二)(轉)
- 專案管理的前世今生(二)(轉)專案管理
- 探秘技術專案管理(二)(轉)專案管理
- TFS 2010 使用手冊(二)專案集合與專案
- 使用 Docker 開發 PHP 專案(二):配置DockerPHP
- webpack4構建vue專案(二)WebVue
- SpringBoot(二)_專案屬性配置Spring Boot
- 企業資料爬蟲專案(二)爬蟲
- 機器學習專案---預測心臟病(二)機器學習
- Avalonia開發(二)專案結構解析
- IDEA匯入專案筆記二Idea筆記
- App專案實戰之路(二):API篇APPAPI
- 團隊專案:二次開發
- 第二項任務——專案需求分析
- 探祕技術專案管理(二)(轉)專案管理
- 資訊系統專案管理系列之二:專案生命期和組織專案管理
- Vue+ Element Ui 搭建前端專案框架(二)VueUI前端框架
- 前端的flutter之路(二):專案前期準備前端Flutter
- vue-cli 專案下生成二維碼Vue
- serverless 專案配置及建立helloworld應用(二)Server
- SSM搭建專案,從前端到後臺(二)SSM前端
- FFmpeg—專案匯入FFmpeg動態庫(二)
- 專案經理成長之路-初入職場(二)
- vue專案部署(npm run build二級域名)VueNPMUI
- 從零開始React專案架構(二)React架構
- Play! Framework 系列(二):play 的專案結構Framework
- 專案二 建立鏈隊演算法庫演算法
- 實踐作業二—個人專案—Junit使用