Linux基本命令、檔案目錄管理
任務:2.1-2.13 目錄結構,檔案系統,檔案型別,相對和絕對路徑,環境變數PATH,ls, cd, alias, mkdir, rmdir, cp, mv, cat, more, less, head, tail。
目錄結構
Linux的檔案和磁碟目錄結構與windows完全不同,Linux下沒有C盤、D盤、E盤的概念,所有的磁碟都以資料夾的形式存在。
/ 稱為根目錄(root),是Linux下最重要的目錄,所有的檔案和目錄全在他下面。
/bin 是binary的縮寫,存放是常用的命令檔案。
/boot 含義是引導,存放的是啟動檔案。包括一些連線檔案以及映象檔案。
/dev 是device的縮寫,該目錄下存放的是Linux的外部裝置。在Linux中訪問裝置的方式和訪問檔案的方式是一樣的。
/etc 該目錄下存放的是系統的配置檔案。
/home 這是使用者的家目錄,在Linux下每個使用者都有一個自己的home目錄,一般該目錄是以使用者自己的賬戶名命名的。
/lib和/lib64 這兩個目錄存放的是系統最基本的動態連線共享庫。
/media 系統會自動識別一些裝置,如u盤和光碟機等,當識別後,Linux會把這些裝置掛在在此目錄下。
/mnt 是mount的縮寫,可以掛在其他的檔案系統在此目錄下,如新的硬碟以及光碟機。
/opt 是optional的縮寫,是給主機安裝額外的軟體時存放的目錄。
/root 是系統管理員的家目錄。
/sbin 是super User bin,存放的是系統管理員可以使用的命令。
/sys 存放的是與硬體驅動程式有關的資訊。
/tmp 臨時資料夾
/usr 類似於windows下的program files資料夾,使用者的很多應用程式和檔案都放在該目錄下。
/usr/bin 該目錄存放的是系統使用者使用的應用程式
/usr/sbin 該目錄存放的是超級使用者使用的比較高階的管理程式和系統守護程式
/usr/src 改目錄是核心原始碼預設的放置位置
/var 存放的是不斷擴充且經常修改的目錄,包括各種檔案或者pid檔案
檔案系統
檔案系統通俗的講就是磁碟的格式,同時一個檔案系統就是一個單獨的分割槽。windows的檔案系統是FAT和NTFS,Linux的檔案系統有ext3,ext4,以及現在centos7使用的xfs,ext4已經很完美了,但xfs比ext4要更強大,所以centos7預設使用xfs格式。
可以使用命令cat /etc/filesystems
檢視你的系統所支援的檔案系統。
檔案型別
Linux下常見的檔案型別有普通檔案,目錄,連結檔案和裝置。
普通檔案:用
ls -l
檢視檔案列表時,以”-” 開頭的檔案即為普通檔案。分為文字檔案和二進位制檔案,文字檔案可以用cat、more、less進行檢視,二進位制bin檔案則是一個命令,可以直接執行。目錄:用
ls -l
檢視檔案列表時,以d開頭的檔案即為目錄。連結:用
ls -l
檢視檔案列表時,以l開頭的檔案即為連結。類似於windows下的快捷方式。裝置: 通常都存放在/dev資料夾下,裝置分為兩種,一種是塊裝置(block)如硬碟,另一種是字元裝置(character)如滑鼠鍵盤等。用
ls -l
檢視檔案列表時,以b開頭的是塊裝置,以c開頭的是字元裝置。
檔案字尾名在windows下有直接意義,他可以指定對應的程式開啟這個檔案。但是在Linux下副檔名的作用僅僅是為了便於讓程式設計師識別那個檔案的型別。如.sh是shell指令碼,.tar.gz是壓縮包,.cfg是配置檔案,.zip是壓縮檔案。
硬連結軟連結
硬連結 是直接對應檔案的inode索引,所以每個硬連結檔案之間都是相互獨立的,互不影響。刪除一個硬連結檔案並不影響另一個硬連結的使用。但是硬連結的缺點是,不能跨檔案系統(即不能跨分割槽),不能對目錄做連結。
軟連結 相當於windows系統下的快捷方式,軟連結檔案的使用依賴於原檔案的存在,如果原檔案刪除或者損壞,軟連結也將無法使用。但軟連結沒有硬連結的這些使用限制,可以跨檔案系統,可以對目錄做連結,所以使用比硬連結更廣泛。
建立連結的時的命令如下:
ln abc efg //建立硬連結
ln -s 123 456 //建立軟連結
相對路徑和絕對路徑
絕對路徑 是從根寫起的,如 /usr/local/mysql
相對路徑 不是從根目錄寫起,如使用者首先進入到/home目錄下,然後再進入到test目錄下,執行的命令為:
cd /home
cd test
此時使用者所在的目錄是 /home/test, 第二個命令test前沒有 / ,這個test是相當於/home來講的,所以稱為相對路徑。
在Linux中,有兩個特殊的符號也可以表示目錄,”.”表示當前目錄,”..”表示上一級目錄。
環境變數PATH
環境變數的作用是全域性的對系統裡的應用程式提供值和執行環境,Linux下的環境變數PATH則可以讓指定路徑的命令檔案是否可以呼叫。
例如,之所以命令ls可以生效,是因為ls的路徑/usr/bin被新增到了環境變數PATH中。如果/usr/bin路徑被從環境變數PATH中移除,ls就不會再生效。
想讓命令檔案所在的路徑在全域性中生效,可以用如下命令:
PATH=$PATH: /samplepath
這樣samplepath資料夾下的命令檔案就可以生效。
另一種方法是使用絕對路徑執行命令檔案,這樣也可以讓ls在全域性生效。
/samplepath/ls
ls
-l //列出檔案的詳細資訊
-a //列出包括.a開頭的隱藏檔案的所有檔案
-d //顯示指定目錄的屬性,如果不加的話則會顯示目錄裡面內容的屬性
-A //通-a,但不列出"."和".."
-c //根據ctime排序顯示
-t //根據檔案修改時間排序
cd
- //返回上層目錄
.. //返回上層目錄
回車 //返回主目錄
/ //根目錄
alias
alias ii = “ls -l” //示例
unalias li //取消別名
mkdir
-p //遞迴建立目錄,若父目錄不存在則依次建立
-m //自定義建立目錄的許可權 `mkdir -m 777 abc`
rmdir
-v //顯示執行過程
-p //若自父母刪除後父目錄為空則一併刪除
cp
-r -R //遞迴複製該目錄及其子目錄內容
-f //不詢問而強制複製
-i //安全選項,如果遇到檔案已存在,詢問是否覆蓋
mv
當目標檔案是目錄時,如果目標不存在,則把源目錄更名為給定的目標檔名
當目標目錄存在時,則是把源目錄移動到目標目錄下
當目標檔案是檔案,且存在時將會詢問是否覆蓋目標
當目標檔案是檔案且不存在時,則直接重新命名為目標檔案
cat
-n //顯示行號
-A //顯示所有內容,包括特殊字元
more, less
more和less的作用都是分屏一頁一頁的顯示文字內容,不像cat是一次把文字的所有內容全部顯示出來。
head, tail
head和tail的作用分別是預設顯示文字的前10行或者後10行,同時也可以新增引數-n
指定顯示頭n行或者末尾n行,n為阿拉伯數字。
head -3 abc.txt
//顯示文字檔案abc.txt的頭三行