一、Shell:提供用戶輸入的命令解釋器

一張圖就能很明確地表明Shell的作用。
二、Shell下的基本命令操作
- ls:默認(rèn)形式顯示當(dāng)前目錄下文件列表。

- ls -a:顯示所有文件包括隱藏文件

- ls -l:顯示當(dāng)前目錄下文件屬性:大小,權(quán)限,日期,符號(hào)連接。

權(quán)限->鏈接個(gè)數(shù)->用戶->用戶組->大小->日期->文件
權(quán)限詳解(以drwxrwxr-x為例):
- 第一個(gè)字符代表是目錄,文件或鏈接文件等:
【d】:目錄
【-】:文件
【l】:連接文件(linkfile)
【b】:表示設(shè)備文件里面可供存儲(chǔ)的接口設(shè)備。
【c】:表示設(shè)備文件里面的串行端口設(shè)備,例如鍵盤(pán),鼠標(biāo)等。
后面則三個(gè)為一組,r表示可讀,w表示可寫(xiě),x表示可執(zhí)行。這里注意,如果沒(méi)有x的權(quán)限,那么前兩個(gè)自然也是沒(méi)有的。。
- 第一組:文件所有者的權(quán)限。
- 第二組:同用戶組的權(quán)限。
- 第三組:其他非本用戶組的權(quán)限。
下面繼續(xù)介紹ls和其他指令的功能:
ls -lh:與ls -l類(lèi)似,文件大小以K,M,G顯示。
ls -t:按修改時(shí)間對(duì)文件進(jìn)行排序。
pwd:當(dāng)前目錄。
cd dir:修改當(dāng)前路徑為dir。
cd \:切換到主目錄。
cd ~:切換到用戶目錄。
touch test1:創(chuàng)建文件。
mkdir dir1:創(chuàng)建目錄。
mkdir -p dir1/dir2/dir3:創(chuàng)建多級(jí)目錄。
vi file:寫(xiě)文件內(nèi)容。
ln:創(chuàng)建連接
ln -s source target:創(chuàng)建軟連接(類(lèi)似快捷方式)。

ln source target:創(chuàng)建硬鏈接。

注意:軟鏈接在它鏈接的文件刪除后不可用,硬連接依舊可用。

因此,我們可以得出以下定義:
1)軟連接:類(lèi)似快捷方式,刪除源文件失效,可以跨文件系統(tǒng)。
2)硬鏈接:文件別名,刪除一個(gè)文件名實(shí)際文件不會(huì)刪除,只有當(dāng)文件的連接個(gè)數(shù)為0時(shí)才會(huì)被刪除。
3)如果修改軟連接和硬鏈接的內(nèi)容,原本內(nèi)容都會(huì)被修改,也即使用了同一塊內(nèi)存區(qū)域修改。
- 另外,硬鏈接不能鏈接目錄。

cp:拷貝命令
cp test1 test2:文件test1復(fù)制test2
cp /dir1/dir2/test1:復(fù)制/dir1/dir2/test1到當(dāng)前目錄。
cp -r dir1 dir2:目錄/dir1復(fù)制/dir2。rm:刪除命令
rm test1:刪除test1文件
rm -f test1:刪除文件不進(jìn)行提示
rm -r dir:刪除目錄
rm -rf dir:直接刪除目錄
改變文件屬性與權(quán)限
- chgrp:改變文件所屬用戶組。
注意:被改變的組名必須要在/etc/group文件內(nèi)存在才行,否則就會(huì)顯示錯(cuò)誤。
格式:chgrp [-R] groupname dirname/filename -R是對(duì)目錄而言進(jìn)行遞歸持續(xù)更改。 - chown:改變文件所有者。
注意:用戶必須是已經(jīng)存在系統(tǒng)的賬號(hào),即在/etc/passwd這個(gè)文件中有記錄。
格式:chown [-R] username filename/username - chmod:改變文件的權(quán)限。
權(quán)限的設(shè)置方法分兩種:1.使用數(shù)字 2.使用符號(hào)
1)使用數(shù)字:Linux的基本權(quán)限有9個(gè),每3個(gè)一組。r=4,w=2,x=1.
如果是rwx就是7,rw就是6,以此類(lèi)推。其實(shí)是二進(jìn)制的思想。三組比如就可以寫(xiě)成770(rwxrwx---)。
舉例:chmod 770 .bashrc,當(dāng)然也可以對(duì)目錄加-R。
2)使用符號(hào):可以使用u,g,o(user,group,others)來(lái)代表三種身份對(duì)應(yīng)的r,w,x。
舉例:chmod u=rwx,g=rx,o=r filename
如果我不知道原來(lái)的屬性,現(xiàn)在我只想添加某個(gè)filename文件每個(gè)人均可寫(xiě)入的權(quán)限,那么可以使用:chmod a+w(x,r) filename 來(lái)實(shí)現(xiàn)。
同理要將權(quán)限去掉的話:chmod a-w(x,r) filename。
注意ls的嵌套
如果我們做如下操作:

可以發(fā)現(xiàn)
ls -ald testing testing/testing
這個(gè)語(yǔ)句很長(zhǎng),其實(shí)它是一個(gè)嵌套語(yǔ)句。
表明的意思是:ls -a(顯示所有文件),-l(詳細(xì)信息),-d(顯示目錄而不顯示目錄下的文件),同時(shí)后面一個(gè)testing表示顯示的是testing目錄,而再后面跟著的testing/testing則表示我們創(chuàng)建的testing目錄下的testing文件,由于我們有-d的標(biāo)識(shí),因此要查看testing/testing必須多打一遍,因?yàn)橹挥幸粋€(gè)testing只會(huì)顯示目錄的信息。
同時(shí)要注意:目錄的權(quán)限只有r而沒(méi)有x,那么可以讀取目錄的文件名列表,但是詳細(xì)的信息是讀不到的,因?yàn)椴豢蓤?zhí)行。x在目錄中的作用是確定“用戶是否能進(jìn)入該目錄”。