- 論壇徽章:
- 0
|
我今天和老師學(xué)了點(diǎn)Linux 的基礎(chǔ)知識 覺得挺有收獲 所以我想這個(gè)對所有象我一樣的菜鳥一定很有用
所以就整理了一下,希望能夠與大家共同進(jìn)步 將來能夠?yàn)樽鎳幕暙I(xiàn)力量
· 文件/目錄許可
使用 ls –l 查看文件/目錄的許可
使用命令chown改變文件/目錄的所有權(quán)
使用chgrp命令修改文件/目錄的組
使用chmod改變文件/目錄的訪問特權(quán)。
(1)
運(yùn)行命令 :
ls -l
顯示
-rwxrw-r-x 1 root root 512 Feb 6 21:11 t.txt
其中含義如下:
-rwxrw-r-x :文件存取許可。
1 : 鏈接編號
root : 擁有者
root : 組
其余依次是文件大小,修改時(shí)間,文件名
使用touch命令新建文件。如:touch t.txt
4 2 1
用戶 Set-uid
(4) 讀(r) 寫(w) 執(zhí)行(x)
組 Set-gid
(2) 讀(r) 寫(w) 執(zhí)行(x)
其他 Sticky
-bit(1) 讀(r) 寫(w) 執(zhí)行(x)
(Sticky-bit:要求系統(tǒng)在內(nèi)存中保留可執(zhí)行程序的鏡像,降低大程序啟動(dòng)時(shí)間的外部措施。)
其中 數(shù)字4代表讀2代表寫1代表執(zhí)行 同樣 r w x 分別代表讀 寫 執(zhí)行
例如 d rwx r-x --x
第一位:它是目錄
2-4位 :用戶 所具有的權(quán)限
5-7為 :組 所擁有的權(quán)限
8-10為:其他用戶/組 的權(quán)限
(2)chown命令
命令格式如下:
chown 用戶 文件/目錄
例如:chown lianxj test.txt
或者用此命令:
chown 用戶/組 文件/目錄
例如:chown lianxj.lianxj test.txt
或者用此命令:
chown -R 用戶/組 目錄(目錄下所有文件/目錄)
例如:chown –R lianxj.lianxj /plans
(3)chgrp命令
使用方式:chgrp [-R] groupname name ( name 可為文件名或目錄名 )
例如:chgrp lianxj file1
將文件 file1 的群組擁有權(quán),改為 lianxj群組。
(4)chmod命令
兩種方法如下:
數(shù)字的形式,字符串的形式
第一種:讀:4 寫 :2 執(zhí)行:1
chmod 755 test.txt
擁有者:4+2+1=7 讀寫執(zhí)行
所處的組:4+1=5 讀執(zhí)行
其它:4+1=5 讀執(zhí)行
(1)chmod 666 test.txt
-rw-rw-rw- 。。。。 test.txt
(2)chmod 7666 test.txt
-rwSrwSrwT 。。。。test.txt
(3)chmod 555 test.txt
-r-xr-xr-x 。。。。test.txt
(4) chmod 7555 test.txt
-r-sr-sr-t 。。。。test.txt(如果具有可執(zhí)行權(quán)限會由x變成小寫s,t。
第二種:
擁有者(用戶):u 組:g 其它:o
所有用戶:用 a 表示
chmod u+rx,g+r,o+x test.txt 加號代表:使之擁有某權(quán)限
chmod u+x,g-r,o-x test.txt
chmod a+rx,u+w test.txt
chmod u+s,g+s,o+t test.txt
chmod u-s,g-s,o-t test.txt 此句會變成原來模式s的位變成x,t的位會變成x
鏈接問題
硬鏈接(占用空間)
ln source dist
例:ln test.txt plan
-rwxrw-r-x
plan和原文件具有相同大小,相同的設(shè)置。
軟鏈接(不占用空間)
ln –s source dist
例如:ln –s test.txt plan
改變對硬鏈接的所有權(quán)或許可,影響到原文件。
chown lianxj plan
然后用ls –l比較修改前后的不同(兩個(gè)都變)。
對與軟鏈接則不同。(互不影響)
chown lianxj plan
只改變了plan的擁有者,對原文件沒有起作用。但是lianxj用戶不能寫plan,除非文件在lianxj所屬的目錄。
對軟鏈接文件的許可設(shè)置會對plan文件產(chǎn)生新設(shè)置。
lrwxrw-r-x …….. plan->;test.txt
chmod 666 plan(對原文件起作用,不對plan起作用)
-rw-rw-rw- …….. test.txt
對于硬鏈接無論對哪個(gè)文件進(jìn)行chmod操作,都會對兩個(gè)文件起作用。
·常用命令
常用命令(1)-文件和目錄的基本命令
目錄和文件命令時(shí)使用的通配符
如ls ,cp,find等命令
* 匹配任意順序的一個(gè)或多個(gè)字符
? 匹配任意單個(gè)字符
[ ] 匹配一組封閉字符或范圍
t* 以t為開頭的文件
t*t 以t為開頭以t為結(jié)尾的文件
t*l*s.c 以t為開頭,包含l,以s.c結(jié)尾的文件
?.h 文件名以一個(gè)字符開始,以.h結(jié)尾的文件。
Doc[0-9] 名為Doc0到Doc9的文件
Doc[a-z] 名為Doca到Docz的文件
正則表達(dá)式基礎(chǔ)
. 匹配任意單個(gè)字符
* 匹配一個(gè)或多個(gè)字符
^ 匹配一行的開頭
$ 匹配一行的結(jié)尾
\< 匹配一個(gè)詞的開頭
\>; 匹配一個(gè)詞的結(jié)尾
[ ] 匹配一組封閉字符或一定范圍內(nèi)的字符
[^] 匹配沒有包含在內(nèi)的任意字符
\ 跟隨符號的字面含義
例如:
grep foo data.txt
grep ‘^foo’ data.txt
grep ‘hello$’ data.txt
grep ‘\<ki’ data.txt
grep ‘wee\>;’ data.txt
grep ‘C..h’ data.txt
grep ‘B[A-Za-z]h’ data.txt
接著我要介紹如下命令
cat
chmod
chown
clear
cmp
cp
cut
diff
du
file
find
grep
head
ln
ls
mkdir
mv
pwd
rm/rmdir
stat
tail
touch
wc
whatis/whereis/which
cat [-AbeEnstTuv] [--help] [--version] fileName
命令的作用:顯示文件內(nèi)容
參數(shù):
-n 或 –number: 由 1 開始對所有輸出的行數(shù)編號
-b 或 --number-nonblank: 和 -n 相似,只不過對于空白行不編號
-s 或 --squeeze-blank :當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
例子:
cat -n textfile1 >; textfile2
把 textfile1 的檔案內(nèi)容加上行號后輸入 textfile2 這個(gè)檔案里
cat -b textfile1 textfile2 >;>; textfile3
把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(空白行不加)之后將內(nèi)容附加到 textfile3
(2)clear
指令:clear 用途:清除屏幕用。
使用方法:輸入 clear。
(3)cmp
cmp –ls file1 file2(比較兩文件內(nèi)容)
參數(shù):
-l : 輸出不同字符的位置,并輸出字符的不同之處。
-s : 如果文件相同返回0,不同返回1,出錯(cuò)返回 >;1的數(shù)字
例如:
文件file1的內(nèi)容為: this is file 1.
文件file2的內(nèi)容為: this is file 2.
cmp file1 file2
會顯示如下信息:file1 file2 differ: char 14,line 1
cmp –l file1 file2
會顯示如下信息:14 61 62
(4)cp
名稱:cp 此命令的使用權(quán)限為所有使用者 通用
cp [options] source dest
cp [options] source directory
-a 盡可能將檔案狀態(tài)、權(quán)限等資料都照原狀予以復(fù)制。
-r 若 source 中含有目錄名,則將目錄下之檔案依序拷貝至目的地。
-f 若目的地已經(jīng)有相同檔名的檔案存在,則在復(fù)制前先予以刪除再行復(fù)制。
范例:
將檔案 aaa 復(fù)制(已存在),并命名為 bbb
cp aaa bbb
將所有的C語言程式拷貝至 test 目錄中
cp *.c test/
cp –r test1 test2(test1目錄下的文件復(fù)制到test2(如果不存在會生成test2目錄,復(fù)制文件到test2目錄下)目
錄。如果存在test2目錄會把整個(gè)test1放到test2。
(5)cut
名稱:cut 使用權(quán)限:所有使用者
用法:cut -cnum1-num2 filename
顯示每行從開頭算起 num1 到 num2 的文字。
cat test.txt
cut -c0-6 test.txt ## 輸出每一行的前 6 個(gè)字元 test 2 this i
(6)diff
diff –iqb file1 file2
與cmp相比cmp以字符為單位比較,diff以行為單位比較。
(7)du
du –ask filename或不寫
-a 逐步顯示每個(gè)目錄和文件大小
-s 顯示合計(jì)數(shù)
-k 所有文件的kb字節(jié)數(shù)
( file
file filename
確定文件類型
(9)find
find path –type fdl –name pattern 其他選項(xiàng)
path 指路經(jīng)
-type fdl f 指文件 d 指目錄 l 指鏈接
例如:
find . -type f -name *.txt
find . -type f -empty(當(dāng)前目錄結(jié)構(gòu)下所有空文件。)
(10)head
head -count | -n number filename
顯示文件的頭幾行
例如:
head -2 test.txt
會顯示頭兩行的內(nèi)容
(11)ls
使用方式 : ls [-alrtAFR] [name...]
-a 顯示所有檔案及目錄 (ls內(nèi)定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會列出) -l 檔案名稱,檔案型
態(tài)、權(quán)限、擁有者、檔案大小等資訊詳細(xì)列出 -r 將檔案以相反次序顯示(原定依英文字母次序) -t 將檔案依
建立時(shí)間之先后次序列出
-A 同 -a ,但不列出 “.” (目前目錄) 及 “..” (父目錄) -F 在列出的檔案名稱后加一符號;例如可執(zhí)行檔則加 “*”,
目錄則加 “/” -R 若目錄下有檔案,則以下之檔案依序列出
例如:
ls -al
(12)mkdir
創(chuàng)建目錄
mkdir dir
mkdir dir1 dir2 dir3
(13)mv
mv [options] source dest
mv [options] source directory
說明:將一個(gè)檔案移至另一檔案,或?qū)?shù)個(gè)檔案移至另一目錄。
參數(shù):-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
將檔案 aaa 更名為 bbb : mv aaa bbb
將所有的C語言程式移至 Finished 子目錄中 : mv -i *.c test/
(14)pwd
顯示當(dāng)前所處的位置
使用方法:輸入pwd
(15)rm
使用方式:rm [options] name
說明:刪除檔案及目錄。
-i 刪除前逐一詢問確認(rèn)。
-f 即使原檔案屬性設(shè)為只讀,也直接刪除,無需逐一確認(rèn)。
-r 將目錄及以下之檔案亦逐一刪除。
刪除前逐一詢問確認(rèn) : rm -i *.c
將 test 子目錄及子目錄中所有檔案刪除 : rm -rf test(結(jié)果test下文件和test目錄被刪除)
(16)rmdir
刪除目錄命令-只有這目錄空時(shí)刪除成功。
rmdir test
rmdir –p test(如果刪除test目錄后test所處的目錄也空,這是會刪除test的父目錄。
例如:test1目錄下有空目錄test2
rmdir –p test1/test2
(17)stat
顯示文件或目錄的各種統(tǒng)計(jì)
stat file
例如:
stat test.txt
(1 tail
tail -count | -fr filename
顯示文件尾的幾行
-f 監(jiān)視文件,寫新數(shù)據(jù)停止監(jiān)視用ctrl+c退出
-n 行數(shù)
例如:
tail -10 test.txt / tail –n 10 test.txt
(19)touch
更新文件或目錄的時(shí)間戳
touch file or directory
如果文件不存在新建空文件
touch test.txt(如果有會更新時(shí)間,如沒有會生成一個(gè)文件。可以用stat或ls -l命令查看)
(20)wc
wc –lwc filename
計(jì)算文件行數(shù),字符數(shù),單詞數(shù)。
-l 顯示行數(shù)
-w 顯示單詞數(shù)
-c 顯示字符數(shù)
(21) whatis/whereis/which
顯示命令的基本信息
例如:
whatis ls
whereis find
which cd |
|