1、目錄與路徑
1.1、相對(duì)路徑與絕對(duì)路徑
- 相對(duì)路徑:路徑的寫法一定由根目錄/寫起,例如/usr/share/doc
- 絕對(duì)路徑:路徑的寫法不是由/寫起;
絕對(duì)路徑的正確度比較好。
1.2、目錄的相關(guān)操作:cd,pwd,mkdir,rmdir
- . 代表此層目錄
- .. 代表上一層目錄
- - 代表前一個(gè)工作目錄
- ~ 代表目前用戶身份所在的家目錄
-~ account 代表account這個(gè)用戶的家目錄(account是這個(gè)賬號(hào)的名稱)
cd:變換目錄
pwd:顯示目前所在的目錄 pwd 【-P】
mkdir:建立新目錄 mkdir 【-mp】
mkdir test1
mkdir -m 711 testing
rmdir:刪除空的目錄 mkdir 【-p】
rmdir test1
注意:rmdir只能刪除空的目錄
1.3、關(guān)于執(zhí)行文件路徑的變量:$PATH
1)當(dāng)我們執(zhí)行一個(gè)指令的時(shí)候,例如ls,系統(tǒng)會(huì)依照PATH的設(shè)定去每個(gè)PATH的定義的目錄下搜尋文件名為ls的可執(zhí)行文件,如果在PATH定義的目錄中含有多個(gè)文件名為ls的可執(zhí)行文件,那么先搜尋到的同名指令先被執(zhí)行
2)echo $PATH 查看哪些目錄被定義出來了,$表示后面接的是變量
3)將/root 加入到PATH目錄:PATH="$PATH":/root
注意:
- 不同身份使用者預(yù)設(shè)的PATH不同,默認(rèn)能夠隨意執(zhí)行的指令也不同;
- PATH是可以修改的,所以一般使用者還是可以透過修改PATH來執(zhí)行位于/sbin或/usr/sbin下的指令來查詢;
- 使用絕對(duì)路徑或相對(duì)路徑直接指定某個(gè)指令的文件名來執(zhí)行,會(huì)比搜索PATH來的正確;
- 指令應(yīng)該放置到正確的目錄下,執(zhí)行才會(huì)比較方便;
- 本目錄(.)最好不要放置到PATH當(dāng)中;
2、檔案與目錄管理
檔案與目錄的管理,主要包括顯示屬性、拷貝、刪除檔案以及移動(dòng)檔案或目錄;
2.1、檔案與目錄的檢視:ls
ls 【-aAdfFhilnrRSt】 目錄名稱
ls 【--color={never,auto,always}】 目錄名稱
ls 【--full-time】 目錄名稱
2.2、復(fù)制、刪除與移動(dòng):cp,rm,mv
- cp:復(fù)制檔案或目錄
cp 【-adfilprsu】來源文件 目標(biāo)文件
cp ~/.bashrc /tmp/bashrc- rm:移除檔案或目錄
rm 【fir】檔案或目錄- mv:移動(dòng)檔案與目錄,或更名
mv 【fiu】source destination
注:mv還可以用于變更檔名 mv mvtest mvtest2
2.3、取得路徑的文件名與目錄名稱
用斜線"/"來分辨檔案和目錄;
basename /etc/sysconfig/network 獲取到最后的檔名
dirname /etc/sysconfig/network 取得目錄名
3、檔案內(nèi)容查閱
最長使用的顯示檔案內(nèi)容的指令可以說是cat,more和less了。此外,如果要查看一個(gè)很大型對(duì)的檔案(好幾百兆),但是我們只需要后端的幾行字而已,用tail,才外tac這個(gè)指令也可以達(dá)到;
- cat 由第一行開始顯示檔案內(nèi)容;
- tac 從最后一行開始顯示,可以看出tac是cat的倒著寫;
- nl 顯示的時(shí)候,順道輸出行號(hào);
- more 一頁一頁的顯示檔案內(nèi)容;
- less與more類似,但比more更好的是,可以往前翻頁;
- head 只看頭幾行;
- tail 只看尾巴幾行;
- od 以二進(jìn)制的方式讀取檔案內(nèi)容
3.1、直接檢視檔案內(nèi)容:cat,tac,nl
- cat cat 【-AbEnTv】檔案
- nl:添加行號(hào)打印 nl 【-bnw】 檔案
3.2、可翻頁檢視:more,less
- more:一頁一頁翻動(dòng)
例如:more /etc/man.config
空格鍵(space):代表向下翻一頁
Enter:代表向下翻一行
/字符串:代表在這個(gè)現(xiàn)實(shí)的內(nèi)容當(dāng)中,向下搜尋字符串
:f 立刻顯示出文件名機(jī)目前顯示的行數(shù)
q:離開
b:代表往回翻頁,只對(duì)檔案有用,對(duì)管線無用- less:一頁一頁翻動(dòng)
例如:less /etc/man.config
空格鍵:向下翻動(dòng)一頁
pagedown:向下翻動(dòng)一頁
pageup:向上翻動(dòng)一頁
/字符串:向下搜尋字符串的功能;
?字符串:向上搜尋字符串的功能;
n:重復(fù)前一個(gè)搜尋
N:反向的重復(fù)前一個(gè)搜尋
q:離開
3.3、資料截取:head,tail
- head:取出前面幾行
head 【-n number】 檔案
例如:head -n 20 /ect/man.config- tail:取出后面幾行
tail 【-n number】 檔案
例如:tail /etc/man.config
3.4、非純文本:od
od 【-t TYPE】 檔案
-t:后面可接各種類型的輸出;
a:利用默認(rèn)的字符來輸出;
c:使用ASCII字符來輸出;
d:利用十進(jìn)制來輸出數(shù)據(jù);
f:利用浮點(diǎn)數(shù)來輸出數(shù)據(jù);
o:利用八進(jìn)制來輸出數(shù)據(jù);
x:利用十六進(jìn)制來輸出數(shù)據(jù);
3.5、修改檔案時(shí)間與建制新檔:touch
- modification time (mtime):當(dāng)改檔案的內(nèi)容數(shù)據(jù)變更時(shí),就會(huì)更新這個(gè)時(shí)間,內(nèi)容數(shù)據(jù)指的是檔案的內(nèi)容,而不是檔案的屬性或權(quán)限;
- status time (ctime):當(dāng)該檔案狀態(tài)改變時(shí),就會(huì)更新這個(gè)時(shí)間,舉例來說,像是權(quán)限與屬性被更改了,都會(huì)更新這個(gè)時(shí)間;
- access time (atime)當(dāng)該檔案的內(nèi)容被取用時(shí),就會(huì)更顯這個(gè)讀取時(shí)間;
touch 【acdmt】 檔案
功能:建立一個(gè)空的檔案;將某個(gè)檔案日期修訂為目前(mtime與atime)
4、檔案與目錄的默認(rèn)權(quán)限與隱藏權(quán)限
除了基本r,w,x權(quán)限外,在Linux的Ext2、Ext3文件系統(tǒng)下,我們還可以設(shè)定其他的系統(tǒng)隱藏屬性,這部分可以使用chattr來設(shè)定,而以lsattr來查看,最重要的屬性就是可以設(shè)定其不可修改的特性,讓檔案的擁有者都不能進(jìn)行修改;
4.1、檔案預(yù)設(shè)權(quán)限:umask
umask:就是指定用戶在建立檔案或目錄時(shí)候的權(quán)限默認(rèn)值;
umask
umask -S
umask的分?jǐn)?shù)指的是該默認(rèn)值需要減掉的權(quán)限;
預(yù)設(shè)情況:
- 若使用者建立為檔案,則預(yù)設(shè)沒有可執(zhí)行x權(quán)限,即只有rw這兩個(gè)項(xiàng)目,也就是最大為666,預(yù)設(shè)權(quán)限:-rw-rw-rw
- 若用戶建立為目錄,則由于x與是否可以進(jìn)入此目錄有關(guān),因此默認(rèn)所有權(quán)限均開啟,即777分,預(yù)設(shè)權(quán)限:drwxrwxrwx
例如:umask 002
4.2、檔案隱藏權(quán)限:chattr,lsattr
- chattr:配置文件案隱藏屬性
chattr 【+-=】【ASacdistu】檔案或目錄名稱- lsattr:顯示檔案隱藏屬性
lsattr 【-adR】檔案或目錄
4.3、檔案特殊權(quán)限:SUID,SGID,SBIT權(quán)限設(shè)定
- SUID:Set UID
當(dāng) s 這個(gè)標(biāo)志出現(xiàn)在檔案擁有者的 x 權(quán)限上時(shí)
例如: -rwsr-xr-x
SUID 權(quán)限僅對(duì)二進(jìn)制程序(binary program)有效;
執(zhí)行者對(duì)于該程序需要具有 x 的可執(zhí)行權(quán)限;
本權(quán)限僅在執(zhí)行該程序的過程中有效 (run-time);
執(zhí)行者將具有該程序擁有者 (owner) 的權(quán)限- Set GID
當(dāng)s標(biāo)志在檔案擁有者的x項(xiàng)目為SUID,那s在群組的x時(shí)則稱為SGID
例如:-rwx--s--x
與 SUID 不同的是,SGID 可以針對(duì)檔案或目錄來設(shè)定!如果是對(duì)檔案來說, SGID 有如下的功能:
SGID 對(duì)二進(jìn)制程序有用;
程序執(zhí)行者對(duì)于該程序來說,需具備 x 癿權(quán)限;
執(zhí)行者在執(zhí)行的過程中將會(huì)獲得該程序群組的支持!
除了 binary program 之外,事實(shí)上 SGID 也能夠用在目錄上,這也是非常常見的一種用途! 當(dāng)一個(gè) 目錄設(shè)定了 SGID 的權(quán)限后,他將具有如下的功能:
用戶若對(duì)于此目錄具有 r 不 x 的權(quán)限時(shí),該用戶能夠進(jìn)入此目錄;
用戶在此目錄下的有效群組(effective group)將會(huì)變成該目錄的群組;
用途:若用戶在此目錄下具有 w 的權(quán)限(可以新建檔案),則使用者所建立的新檔案,該新檔案的群組與此目錄的群組相同。- SBIT:只針對(duì)檔案有效,對(duì)目錄已經(jīng)沒有效果了
當(dāng)用戶對(duì)于此目錄具有 w, x 權(quán)限,亦卲具有寫入的權(quán)限時(shí);
當(dāng)用戶在該目錄下建立檔案或目錄時(shí),僅有自己不 root 才有權(quán)力刪除該檔案- SUID/SGID/SBIT權(quán)限的設(shè)定
在三個(gè)數(shù)字之前在加上一個(gè)數(shù)字的話,最前面的那個(gè)數(shù)字即代表這幾個(gè)權(quán)限了
SUID:4,SGID:2,SBIT:1
例如:chmod 4755 filename
另外還有大S和大T產(chǎn)生的
4.4、觀察文件類型:file
如果想要知道某個(gè)檔案的基本數(shù)據(jù),例如是屬于ASCII或者是data檔案,或者是binary,且其中有沒有用到動(dòng)態(tài)函式庫等信息,就可以用file這個(gè)指令來檢閱;
例如:file ~/.bashrc
5、指令與檔案的搜尋
5.1、腳本文件名的搜尋:which
which:尋找執(zhí)行檔
which 【a】 commod
5.2、檔案檔名的搜尋:whereis,locate,find
- whereis:尋找特定檔案
whereis 【-bmsu】 檔案或目錄名
Linux系統(tǒng)會(huì)將系統(tǒng)內(nèi)的所有檔案都記錄在一個(gè)數(shù)據(jù)庫檔案里面,而當(dāng)使用whereis或者locate時(shí),都會(huì)以此數(shù)據(jù)庫檔案的內(nèi)容為準(zhǔn);- locate
locate 【-ir】keyword
使用locate是有限制的:
因?yàn)樗墙?jīng)由數(shù)據(jù)庫來搜尋的,而數(shù)據(jù)庫的建立默認(rèn)是在每天執(zhí)行一次 (每個(gè) distribution 都不同,CentOS 5.x 是每天更新數(shù)據(jù)庫一次!),所以當(dāng)你新建立起來的檔案, 即還在數(shù) 據(jù)庫更新之前搜尋該檔案,那么 locate 會(huì)告訴你『找不到!』呵呵!因?yàn)楸仨氁聰?shù)據(jù)庫呀!
更新數(shù)據(jù)庫方法:updatedb- find
find 【PATH】【option】【action】
6、權(quán)限與指令間的關(guān)系(極其重要)
- 讓用戶能進(jìn)入某目錄稱為可工作目錄的基本權(quán)限
可使用的指令:例如 cd 等變換工作目錄指令;
目錄所需權(quán)限:用戶對(duì)這個(gè)目錄至少需要具有 x 的權(quán)限
額外需求:如果用戶想要在這個(gè)目錄內(nèi)利用 ls 查閱文件名,則用戶對(duì)此目錄還需要 r 的權(quán)限。- 用戶在某個(gè)目錄內(nèi)讀取一個(gè)檔案的基本權(quán)限為何?
可使用的指令:例如本章談到的 cat, more, less 等等
目錄所需權(quán)限:用戶對(duì)這個(gè)目錄至少需要具有 x 權(quán)限;
檔案所需權(quán)限:使用者對(duì)檔案至少需要具有 r 的權(quán)限才行!- 讓使用者可以修改一個(gè)檔案的基本權(quán)限為何?
可使用的指令:例如 nano 或未來要介紹的 vi 編輯器等;
目錄所需權(quán)限:用戶在該檔案所在的目錄至少要有 x 權(quán)限;
檔案所需權(quán)限:使用者對(duì)該檔案至少要有 r, w 權(quán)限- 讓一個(gè)使用者可以建立一個(gè)檔案的基本權(quán)限為何?
目錄所需權(quán)限:用戶在該目錄要具有 w,x 的權(quán)限,重點(diǎn)在 w 啦!- 讓用戶進(jìn)入某目錄并執(zhí)行該目錄下的某個(gè)指令之基本權(quán)限為何?
目錄所需權(quán)限:用戶在該目錄至少要有 x 的權(quán)限;
檔案所需權(quán)限:使用者在該檔案至少需要有 x 的權(quán)限