Linux系統(tǒng)是一種典型的多用戶系統(tǒng),不同的用戶處于不同的地位,擁有不同的權(quán)限。為了保護(hù)系統(tǒng)的安全性,Linux系統(tǒng)對不同的用戶訪問同一文件(包括目錄文件)的權(quán)限做了不同的規(guī)定。
創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站制作與策劃設(shè)計(jì),坊子網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:坊子等地區(qū)。坊子做網(wǎng)站價(jià)格咨詢:18980820575
在Linux中我們可以使用ll或者ls –l命令來顯示一個(gè)文件的屬性以及文件所屬的用戶和組,如:
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
實(shí)例中,bin文件的第一個(gè)屬性用"d"表示。"d"在Linux中代表該文件是一個(gè)目錄文件。
在Linux中第一個(gè)字符代表這個(gè)文件是目錄、文件或鏈接文件等等。
接下來的字符中,以三個(gè)為一組,且均為『rwx』 的三個(gè)參數(shù)的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執(zhí)行(execute)。 要注意的是,這三個(gè)權(quán)限的位置不會改變,如果沒有權(quán)限,就會出現(xiàn)減號[ - ]而已。
每個(gè)文件的屬性由左邊第一部分的10個(gè)字符來確定(如下圖)。
從左至右用0-9這些數(shù)字來表示。
第0位確定文件類型,第1-3位確定屬主(該文件的所有者)擁有該文件的權(quán)限。
第4-6位確定屬組(所有者的同組用戶)擁有該文件的權(quán)限,第7-9位確定其他用戶擁有該文件的權(quán)限。
其中,第1、4、7位表示讀權(quán)限,如果用"r"字符表示,則有讀權(quán)限,如果用"-"字符表示,則沒有讀權(quán)限;
第2、5、8位表示寫權(quán)限,如果用"w"字符表示,則有寫權(quán)限,如果用"-"字符表示沒有寫權(quán)限;第3、6、9位表示可執(zhí)行權(quán)限,如果用"x"字符表示,則有執(zhí)行權(quán)限,如果用"-"字符表示,則沒有執(zhí)行權(quán)限。
語法:
chgrp [-R] 屬組名 文件名
參數(shù)選項(xiàng)
語法:
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
進(jìn)入 /root 目錄(~)將install.log的擁有者改為bin這個(gè)賬號:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
將install.log的擁有者與群組改回為root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
Linux文件屬性有兩種設(shè)置方法,一種是數(shù)字,一種是符號。
Linux文件的基本權(quán)限就有九個(gè),分別是owner/group/others三種身份各有自己的read/write/execute權(quán)限。
先復(fù)習(xí)一下剛剛上面提到的數(shù)據(jù):文件的權(quán)限字符為:『-rwxrwxrwx』, 這九個(gè)權(quán)限是三個(gè)三個(gè)一組的!其中,我們可以使用數(shù)字來代表各個(gè)權(quán)限,各權(quán)限的分?jǐn)?shù)對照表如下:
每種身份(owner/group/others)各自的三個(gè)權(quán)限(r/w/x)分?jǐn)?shù)是需要累加的,例如當(dāng)權(quán)限為: [-rwxrwx---] 分?jǐn)?shù)則是:
所以等一下我們設(shè)定權(quán)限的變更時(shí),該文件的權(quán)限數(shù)字就是770啦!變更權(quán)限的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項(xiàng)與參數(shù):
舉例來說,如果要將.bashrc這個(gè)文件所有的權(quán)限都設(shè)定啟用,那么命令如下:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要將權(quán)限變成 -rwxr-xr-- 呢?那么權(quán)限的分?jǐn)?shù)就成為 [4+2+1][4+0+1][4+0+0]=754。
還有一個(gè)改變權(quán)限的方法,從之前的介紹中我們可以發(fā)現(xiàn),基本上就九個(gè)權(quán)限分別是:
那么我們就可以使用 u, g, o 來代表三種身份的權(quán)限!
此外, a 則代表 all ,即全部的身份。讀寫的權(quán)限可以寫成 r, w, x ,也就是可以使用下表的方式來看:
colgroupcol span="1" width="166"col span="1" width="166"col span="1" width="166"col span="1" width="166"col span="1" width="166"/colgroup
| chmod | u
g
o
a | +(加入)
-(除去)
=(設(shè)定) | r
w
x | 文件或目錄 |
如果我們需要將文件權(quán)限設(shè)置為 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 來設(shè)定:
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
而如果是要將權(quán)限去掉而不改變其他已存在的權(quán)限呢?例如要拿掉全部人的可執(zhí)行權(quán)限,則:
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
grep命令:
grep命令是非常重要的命令,可以對文本進(jìn)行查找和搜索
常用參數(shù)如下:
常用實(shí)例:
1、在多個(gè)文件中查找:
grep "file" file_1 file_2 file_3
2、輸出除之外的所有行 -v 選項(xiàng):
grep -v "file" file_name
3、標(biāo)記匹配顏色 --color=auto 選項(xiàng):
grep "file" file_name --color=auto
4、使用正則表達(dá)式 -E 選項(xiàng):
grep -E "[1-9]+"
egrep "[1-9]+"
5、只輸出文件中匹配到的部分 -o 選項(xiàng):
echo this is a test line. | grep -o -E "[a-z]+."
line.
echo this is a test line. | egrep -o "[a-z]+."
line.
6、統(tǒng)計(jì)文件或者文本中包含匹配字符串的行數(shù)-c 選項(xiàng):
grep -c "text" file_name
2
7、輸出包含匹配字符串的行數(shù) -n 選項(xiàng):
grep "text" -n file_name
或
cat file_name | grep "text" -n
8、多個(gè)文件
grep "text" -n file_1 file_2
9、搜索多個(gè)文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
10、grep遞歸搜索文件
在多級目錄中對文本進(jìn)行遞歸搜索:
grep "text" . -r -n
11、忽略匹配樣式中的字符大小寫:
echo "hello world" | grep -i "HELLO"
hello
12、選項(xiàng) -e 指定多個(gè)匹配樣式:
echo this is a text line | grep -e "is" -e "line" -o
is
line
13、也可以使用 -f 選項(xiàng)來匹配多個(gè)樣式,在樣式文件中逐行寫出需要匹配的字符。
cat patfile
aaa
bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o
14、在grep搜索結(jié)果中包括或者排除指定文件:
只在目錄中所有的.php和.html文件中遞歸搜索字符"main()"
grep "main()" . -r --include *.{php,html}
15、在搜索結(jié)果中排除所有README文件
grep "main()" . -r --exclude "README"
16、在搜索結(jié)果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist
touch abc.txt 創(chuàng)建一個(gè)名為abc.txt的文件
touch -r 指定文件時(shí)間與參考文件相同
touch -t 201608012234.55[yyyymmddhhmm.ss] abc.txt 更改文件為指定的時(shí)間
touch temp 創(chuàng)建一個(gè)名為temp的文件
vi編輯器有三種模式,命令行模式、編輯模式、底行模式。
vi 文件名進(jìn)入命令行模式,Insert進(jìn)入編輯模式,編輯完成Esc退出編輯模式,:wq進(jìn)入底行模式并保存修改,:q直接退出保存。
tar命令用于打包壓縮文件,常用的壓縮命令還有bzip2,gzip
bunzip2 file1.bz2 解壓一個(gè)叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個(gè)叫做 'file1' 的文件
gunzip file1.gz 解壓一個(gè)叫做 'file1.gz'的文件
gzip file1 壓縮一個(gè)叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創(chuàng)建一個(gè)叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時(shí)壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創(chuàng)建一個(gè)非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創(chuàng)建一個(gè)包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個(gè)包中的內(nèi)容
tar -xvf archive.tar 釋放一個(gè)包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創(chuàng)建一個(gè)bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個(gè)bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創(chuàng)建一個(gè)gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個(gè)gzip格式的壓縮包
zip file1.zip file1 創(chuàng)建一個(gè)zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個(gè)文件和目錄同時(shí)壓縮成一個(gè)zip格式的壓縮包
unzip file1.zip 解壓一個(gè)zip格式壓縮包
which命令用于用戶查找命令所有路徑
命令格式
file命令用于獲取文件屬性
命令格式
file 文件名或目錄名
命令示例:
使用說明
命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName
cat file1 從第一個(gè)字節(jié)開始正向查看文件的內(nèi)容
-n 或 --number:由 1 開始對所有輸出的行數(shù)編號。
-b 或 --number-nonblank:和 -n 相似,只不過對于空白行不編號。
-s 或 --squeeze-blank:當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符號,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行結(jié)束處顯示 $。
-T 或 --show-tabs: 將 TAB 字符顯示為 ^I。
-A, --show-all:等價(jià)于 -vET。
-e:等價(jià)于"-vE"選項(xiàng);
-t:等價(jià)于"-vT"選項(xiàng);
使用示例
把 textfile1 的文檔內(nèi)容加上行號后輸入 textfile2 這個(gè)文檔里
cat -n textfile1 textfile2
把 textfile1 和 textfile2 的文檔內(nèi)容加上行號(空白行不加)之后將內(nèi)容附加到 textfile3 文檔里
cat -b textfile1 textfile2 textfile3
清空 /etc/test.txt 文檔內(nèi)容
cat /dev/null /etc/test.txt
tac [filename]
從最后一行開始反向查看一個(gè)文件的內(nèi)容,ac與cat命令剛好相反,文件內(nèi)容從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫。
nl [-bnw] 文件
選項(xiàng)與參數(shù):
-b: 指定行號指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認(rèn)值);
-n :列出行號表示的方法,主要有三種:
-n ln :行號在熒幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示,且加 0 ;
-w :行號欄位的占用的位數(shù)。
more file1 查看一個(gè)長文件的內(nèi)容,支持一頁一頁翻動
運(yùn)行的時(shí)候,支持以下幾個(gè)按鍵:
空白鍵 (space):代表向下翻一頁;
Enter :代表向下翻『一行』;
/字串 :代表在這個(gè)顯示的內(nèi)容當(dāng)中,向下搜尋『字串』這個(gè)關(guān)鍵字;
:f :立刻顯示出檔名以及目前顯示的行數(shù);
q :代表立刻離開 more ,不再顯示該文件內(nèi)容。
b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。
less file1 類似于 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
less運(yùn)行時(shí)可以輸入的命令有:
空白鍵 :向下翻動一頁;
[pagedown]:向下翻動一頁;
[pageup] :向上翻動一頁;
/字串 :向下搜尋『字串』的功能;
?字串 :向上搜尋『字串』的功能;
n :重復(fù)前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
N :反向的重復(fù)前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
q :離開 less 這個(gè)程序;
head [-n number]
head -2 file1 查看一個(gè)文件的前兩行
tail [-n number]
tail -2 file1 查看一個(gè)文件的最后兩行
tail -f /var/log/messages 實(shí)時(shí)查看被添加到一個(gè)文件中的內(nèi)容
文件權(quán)限列中三位為一組,分別代表相關(guān)的用戶、組、其它用戶的權(quán)限
權(quán)限列中三位為一組,分別代表相關(guān)的用戶、組、其它用戶的權(quán)限
所以修改權(quán)限可以分別修改或一同修改,系統(tǒng)中權(quán)限分為數(shù)字權(quán)限與字符權(quán)限
數(shù)字權(quán)限:r=4,w=2,x=1
字符權(quán)限:+ 增加 -去除 a取消所有加上給定的
修改權(quán)限的命令chmod,命令格式:
chmod 權(quán)限 文件名或目錄名 修改權(quán)限格式
chmod -R 權(quán)限 目錄名 遞歸將目錄及其下面所有內(nèi)容權(quán)限全部修改
chown 改變文件或目錄的屬主(所有者)
chown 用戶名 文件名或目錄名
chown 用戶名.組名 文件名或目錄名
修改所屬組也可用chgrp 命令來完成
當(dāng)你用ls -l 查看到文件的屬主、屬組為數(shù)字時(shí),就表明該文件的創(chuàng)建用戶已被刪除。
文件的特殊權(quán)限
chattr +i(-i) 文件名 鎖定文件(取消鎖定)不可刪除與清空
chattr +a(-a) 文件名 添加內(nèi)容(只可添加內(nèi)容)
使用lsattr 文件名 查看文件的特殊權(quán)限
由此可以看出
root用戶默認(rèn)創(chuàng)建的目錄權(quán)限是755,文件權(quán)限是644
普通用戶默認(rèn)創(chuàng)建的目錄權(quán)限是775,文件權(quán)限是664
這也是系統(tǒng)默認(rèn)的比較安全的權(quán)限分配,其實(shí)這些默認(rèn)權(quán)限全部都是由umask值來決定的
系統(tǒng)規(guī)定了
文件的權(quán)限值是從666開始計(jì)算(默認(rèn)權(quán)限=權(quán)限值-umask值)
目錄的權(quán)限值是從777開始計(jì)算(默認(rèn)權(quán)限=權(quán)限值-umask值)
文件1的權(quán)限=444 (666-232=434——43(3+1)4)
linux編輯文件命令有如下:
1、cp命令,作用復(fù)制,參數(shù)如下:
-a:將文件的特性一起復(fù)制。
-p:連同文件的屬性一起復(fù)制,而非使用默認(rèn)方式,與-a相似,常用于備份。
-i:若目標(biāo)文件已經(jīng)存在時(shí),在覆蓋時(shí)會先詢問操作的進(jìn)行。
-r:遞歸持續(xù)復(fù)制,用于目錄的復(fù)制行為。
-u:目標(biāo)文件與源文件有差異時(shí)才會復(fù)制。
2、rm命令作用為刪除,參數(shù):
-f:就是force的意思,忽略不存在的文件,不會出現(xiàn)警告消息。
-i:互動模式,在刪除前會詢問用戶是否操作。
-r:遞歸刪除,最常用于目錄刪除,它是一個(gè)非常危險(xiǎn)的參數(shù)。
3、mv命令作用為移動文件:
-f:force強(qiáng)制的意思,如果目標(biāo)文件已經(jīng)存在,不會詢問而直接覆蓋。
-i:若目標(biāo)文件已經(jīng)存在,就會詢問是否覆蓋。
-u:若目標(biāo)文件已經(jīng)存在,且比目標(biāo)文件新,才會更新。
4、pwd命令,作用為查看”當(dāng)前工作目錄“的完整路徑。
pwd-P#顯示出實(shí)際路徑,而非使用連接(link)路徑;pwd顯示的是連接路徑。
5、rmdir命令刪除目錄:
rmdir [選項(xiàng)]... 目錄...
-p:遞歸刪除目錄dirname,當(dāng)子目錄刪除后其父目錄為空時(shí),也一同被刪除。如果整個(gè)路徑被刪除或者由于某種原因保留部分路徑,則系統(tǒng)在標(biāo)準(zhǔn)輸出上顯示相應(yīng)的信息。
-v:verbose顯示指令執(zhí)行過程。