1、目錄管理
1.1、linux的目錄結構
.:目前目錄
..:上一級目錄
/:根目錄
/bin:二進制,可執行的指令
/boot:引導,作業系統用于引導系統啟動的檔案,核心、grub
/dev:裝置檔案
linux的裝置類型:
字元裝置:c,線性裝置
塊裝置:b,随機裝置
/etc:配置檔案
/home:使用者的家目錄,/home/username,jerry,/home/jerry
/root:管理者的家目錄
/lib,lib64:庫檔案
/media:挂載點目錄,通常用于挂載便攜性裝置
/mnt:挂載點目錄,挂載額外的檔案系統
/misc:備份目錄
/opt:可選目錄,通常第三方軟體偶爾安裝于此路徑下
/proc:僞檔案系統:記憶體中核心的映射
/selinux:安全加強的linux
/srv:僞檔案系統,通常用于通路硬體裝置屬性資訊
/tmp:臨時檔案目錄
/usr:儲存隻讀檔案
/var:經常會發生變化的檔案:比方說日志等
1.2、linux下的檔案以及檔案的目錄命名規則:
1.長度不能超過255個字元
2.不能使用/(斜線)當檔案名, 建議不要使用特殊字元
3.嚴格區分大小寫
1.3、目錄管理常用指令
cd 更換工作目錄用法:cd [directory]
cd .. 傳回上級目錄
cd ~ 傳回家目錄
cd 回家目錄
cd - 在上個目錄和目前目錄之間切換
cd ~username 切換到username的家目錄
pwd:顯示目前目錄
dirname:顯示指定路徑的目錄
mkdir建立目錄用法:mkdir [option] directory
-p:父目錄 如果我們指定z的話,z的父目錄y不存在的話會自動先建立y,如果y的父目錄x不存
在的話會自動先建立x
-v:顯示建立過程
/mnt/test/x/m /mnt/test/y 這個怎麼同時建立?
rmdir(remove directory):删除目錄,隻能用于删除空目錄
-p:父目錄
-v:顯示詳細過程
注:加了-p後,隻能删除一線單傳的目錄:即把z删除後,y目錄 空了,就會把y目錄删除,當y 删除後,x目錄空了,就會把x 目錄删除,但是root不空,是以不能删除root目錄。
2、檔案的管理
2.1、檔案的類型
linux檔案類型:
普通檔案(-):a.html,b.txt,c.ppt,ls
目錄檔案(d):
特殊檔案:
塊裝置檔案(b):
字元裝置檔案(c):
符号連結檔案(l):
命名管道檔案(p):pipe
套接字檔案(s):socket
判斷普通檔案的内容類型,使用file指令:#file 指令
2.2、檔案的權限
目錄權限:
r:可以對目錄執行ls指令,但不允許使用-l選項,而且,不能cd到目錄中;
w:可以在目錄建立檔案;
x:可以對目錄執行ls -l 指令,且能夠cd進去。
檔案系統安全模型:
屬主 屬組 其它
u, g, o
---:000 --> 0
--x:001 --> 1
-w-:010 --> 2
-wx:011 --> 3
r--:100 --> 4
r-x:101 --> 5
rw-:110 --> 6
rwx:111 --> 7
3位二進制對應一個8進制
4位二進制對應一位16進制
0,9,a,b,c,d,e,f
f:1111
9:1001
2.3、檔案管理常用指令
cat、tac、more、less、head、tail 顯示檔案
cat 順序顯示整個檔案 cat filename
-n:顯示行号
從鍵盤建立一個檔案:cat > filename 隻能建立新檔案,不能編輯已有檔案.
将幾個檔案合并為一個檔案:cat file1 file2 > file
tac 逆序顯示檔案
more 滿屏顯示檔案内容,向後翻,在翻至檔案尾部之前允許向後翻 敲空格鍵:下一屏,按q結束
-n:顯示n行
+n:從第n行開始顯示
less:向前翻,在翻至檔案頭部之前允許向前翻敲b鍵:往前翻一屏Enter鍵,往前翻一行
head:檔案的前n行 n預設為10,且預設不顯示檔案名
-q:隐藏檔案名
-v:顯示檔案名
-n n或-n::顯示n行
-c n:顯示n個位元組
tail:檔案的後n行
-n n或-n::顯示n行
-f:檢視一個檔案的尾部内容後,不退出,等待并顯示新增的行; 退出使用ctrl+c結束
檔案的建立和删除:在linux下,目錄和檔案是不能同名的,在windows下,也不能,因為windows下的檔案都有字尾
touch
touch:主要指令不是用來建立檔案的,是用來修改時間戳的
時間戳:通路時間,修改時間,改變時間
-c:不建立任何檔案
-a:隻改變通路時間 通路時間改變,改變時間也會改變
-m:隻改變修改時間 修改時間改變,改變時間也會改變
-t:指定修改時間到某個指定時間,格式為[cc]yymmddhhmm.ss
stat:顯示檔案或檔案系統的狀态資訊
建立檔案,可以使用檔案編輯器 文本編輯器隻是編輯純ascii碼的
word不是檔案編輯器,隻是字處理器
nano、vim:文本編輯器
rm:删除檔案
-i:删除前提醒
-f:強行删除
-r:删除目錄 删除目錄下所有的檔案
注:為什麼會提示,因為這裡的rm指令不是源生的rm指令,是被修改後的rm指令,是rm -i的别名,(指令别名),-i 互動式,如果你删的話,就跟你互動一下,問你要不要删因為現在是管理者,為了避免誤删,是以有這個提示,普通使用者沒有提示
指令别名:
alias
\command:使用指令自身,而不使用與指令名稱同名的别名
cp:copy 複制和移動檔案 cp srcfile dest
-r 或 -r : 複制目錄及及目錄中的檔案的,實作遞歸複制
-f : 強行複制,如果目标檔案存在直接覆寫;如果檔案目标不能打開,先把它删了,再重試
-i : 互動式,覆寫前提醒确認
-p : 複制檔案後保留原有的屬主、屬組、權限以及時間戳
-a : 全部複制,歸檔
複制檔案能不能把一個檔案複制為另外一個檔案(能),能不能把一個檔案複制為多個檔案(不能),把一個檔案複制為多個目标(不能),可不可以把多個檔案複制為一個檔案(不能),可不可以把多個檔案複制到一個目錄(能),可不可以把多個檔案複制為多個檔案(cp不能,可以使用腳本實作)
cp file1 file2 file3
cp指令隻有最後一個是目标,此前的所有都是源,不允許一個源多個目标,也不允許多個源多個目标
注:如果目标test不存在,則複制到tmp下并命名為test。如果test存在的話,則看是目錄還是檔案,是檔案則提示我們 是不是覆寫掉,即删除原來的test檔案,将passwd複制過來重新命名為test;是目錄,則把passwd放到test目錄下,并儲存為原來的名字
cp指令預設下不會複制目錄,如果要複制目錄,cp有個遞歸選項:-r或-r都可以,即複制目錄及目錄下的所有檔案
注:建立了一個連結,而且是指向目前的連結檔案,但是是錯的,因為tmp下沒有init.d這個檔案在linux上顯示位紅色
mv 移動檔案及目錄 用法:mv [option]...source dest
-f:強行移動,如果目标檔案存在直接覆寫;如果檔案目标不能打開,先把它删了,再重試
-i:互動式,移動覆寫前提醒确認
-b:若需覆寫檔案,則覆寫前先行備份。
通配符:bash支援檔案名通配,globbing
*:任意長度的任意字元
?:任意單個字元
[]:指定範圍内的任意單個字元
[0-9]:所有的數字
[a-z]或[a-z]所有的字母
[0-9a-z]或[0-9a-z]所有的數字和字母
字元集和:
[:digit:] :所有的數字,相當于0-9 [0-9],[[:digit:]]
[:lower:] :所有的小寫字母
[:upper:] :所有的大寫字母
[:alpha:] :所有的數字
[:alnum:] :相當于[0-9a-z]所有的數字和字母
[:space:] :空白符号
[:punct:] :所有标點符号
[^]:脫字元,取反,指定範圍外的任意但個字元