linux學(xué)習(xí)筆記之linux文件管理
發(fā)布時(shí)間:2012-04-15 16:39:19 作者:佚名
我要評(píng)論

Linux系統(tǒng)采用虛擬文件系統(tǒng)技術(shù)(VFS)、結(jié)構(gòu)采用倒立樹型、VFS使Linux支持以下文件系統(tǒng)
內(nèi)容:
#文件系統(tǒng)及Shell的基本概念
#文件及目錄操作命令
#VI的使用
#軟件包的管理
一、文件系統(tǒng)及Shell的基本概念
1.文件系統(tǒng)的含義
文件系統(tǒng)是用來(lái)管理和組織保存在磁盤驅(qū)動(dòng)器上數(shù)據(jù)的系統(tǒng)軟件
2.Linux的文件系統(tǒng)
Linux系統(tǒng)采用虛擬文件系統(tǒng)技術(shù)(VFS)、結(jié)構(gòu)采用倒立樹型、VFS使Linux支持以下文件系統(tǒng):
EXT2: 二次擴(kuò)展
EXT3: 三次擴(kuò)展
SWAP: 交換文件系統(tǒng)
FAT、FAT32
NTFS (默認(rèn)不支持,需要特定的模塊)
VFAT: 虛擬FAT
SYSV: Unix的文件系統(tǒng)
HPFS: OS/2的文件系統(tǒng)
ISO9660: 光盤文件系統(tǒng)
NFS: 網(wǎng)絡(luò)文件系統(tǒng)
3.Linux中的文件分類
(1)普通文件
文本文件:采用ASCII編碼方式,可編輯,可修改
二進(jìn)制:不可查看,不可修改
(2)目錄文件
存放的內(nèi)容是目錄中的文件名和子目錄名
(3)設(shè)備文件(/dev)
用于用戶訪問物理設(shè)備所用,分為塊設(shè)備和字符設(shè)備文件
(4)鏈接文件
軟鏈接文件:目標(biāo)文件和鏈接文件可以跨越索引點(diǎn),相當(dāng)于文件的快捷方式
刪除原文件,則符號(hào)鏈接文件失去意義
刪除符號(hào)鏈接文件,不影響原文件
硬鏈接文件:鏈接同一索引點(diǎn)中的文件,相當(dāng)文件的副本
兩個(gè)文件指向同一存儲(chǔ)區(qū),內(nèi)容、長(zhǎng)度相同
刪除一個(gè)文件不影響,其它文件
(5)管道文件
FIFO緩存隊(duì)列
4.Shell的主要功能
~命令行解釋
交互模式
后臺(tái)運(yùn)行
~命令的多種執(zhí)行順序
~命令替換 (` `)
~I/O重定向(>,>>,<,<<)
~管道(|)
~通配符(*,?,[],[!])
~系統(tǒng)環(huán)境維護(hù)
~Shell編程
~歷史記錄(history)
~自動(dòng)補(bǔ)齊(TAB)
5.Shell的命令解釋過程

二、文件操作命令
1.pwd
功能:顯示當(dāng)前目錄
實(shí)例:
?# pwd
2.cd
功能:改變當(dāng)前目錄
實(shí)例:
?# cd /usr/sbin (進(jìn)入/usr/sbin)
# cd ../u1 (進(jìn)入父目錄下面的u1目錄)
# cd ..(返回父目錄)
# cd (進(jìn)入用戶主目錄)
# cd ~ (進(jìn)入用戶主目錄)
3.mkdir
功能:建立目錄
格式:mkdir [參數(shù)] <目錄名>
參數(shù):-m 屬性值:指定目錄的屬性 (r、w、x或4、2、1)
-p :循環(huán)建立目錄
實(shí)例:
# mkdir d1 (在當(dāng)前目錄下建立d1子目錄)
# mkdir /d1/d2 /d1/d3 /d1/d4(同時(shí)在/d1目錄中建立d2,d3,d4子目錄)
# mkdir –p /d1/d2 (在/d1目錄中建立d2子目錄,先建d1)
4.rmdir
功能:刪除空目錄
格式:rmdir [參數(shù)] <目錄名>
參數(shù):-p:循環(huán)刪除
實(shí)例:
# rmdir a1 (刪除當(dāng)前目錄下的a1子目錄)
# rmdir /etc/a2 (刪除/etc下a2子目錄)
# rmdir -p /a1/a2
5.ls
功能:顯示目錄中的文件及子目錄的名稱
格式:ls [參數(shù)] [文件名]
參數(shù):-a: 顯示所有文件(包括隱含文件,以“.”開頭的文件為隱含文件)
-l: 以長(zhǎng)格式顯示文件名及目錄名(顯示文件的詳細(xì)信息)
-F: 顯示文件名,同時(shí)顯示類型
-R: 顯示目錄中所有文件及子目錄中的文件結(jié)構(gòu)
-t: 按照修改時(shí)間排序顯示
-s: 顯示文件的大小,以block為單位
-S: 按照文件大小排序顯示
-m: 分列顯示文件名
實(shí)例:
# ls
# ls /bin/
# ls grub.conf 查找當(dāng)目錄下是否存在grub.conf
# ls -l
# ls --help 顯示ls的詳細(xì)的幫助信息
# ls -a
6.cp
功能:復(fù)制文件
格式:cp [參數(shù)] <源路徑> <目標(biāo)路徑>
參數(shù):-f:文件在目標(biāo)路徑中存在時(shí),則直接覆蓋
-i:文件在目標(biāo)路徑中存在時(shí), 提示是否覆蓋
-r:復(fù)制指定中所有內(nèi)容和結(jié)構(gòu)
-b:生成覆蓋文件的備份
-a:保持文件原有屬性
實(shí)例:
# cp /etc/* /a1/ 把/etc下的所有文件復(fù)制到a1目錄中
# cp /bin/ls /dir1 /bin/ls文件到/目錄取名為dir1
# cp -f /sbin/* /exe/ 直接將/sbin下的所有文件到/exe目錄中
# cp -r /soft /abc/
7.rm
功能:刪除文件
格式:rm [參數(shù)] <文件名>
參數(shù):-f: 不提示確認(rèn)刪除
-i: 提示確認(rèn)刪除
-r: 遞歸刪除
實(shí)例:
# rm /m1/f1 刪除/m1目錄下的f1
# rm –f /m1/* 刪除m1目錄下的所有文件
#rm -rf /m1 強(qiáng)制刪除一個(gè)目錄
8.mv
功能:移動(dòng)文件、重命名文件
格式:mv [參數(shù)] <源路徑> <目標(biāo)路徑>
參數(shù):-i: 如果存在文件重名則提示是否覆蓋
-b: 建立覆蓋文件的備份
-f: 如果存在文件重名則直接覆蓋
實(shí)例:
# mv /m1/f1 /m2/ 移動(dòng)/m1目錄下f1文件到/m2目錄下
# mv f1 f2 將當(dāng)前目錄下的f1文件改名f2
# mv -f /d1/* /d2/ 移動(dòng)/d1中的所有文件到/d2目錄中
9.file
功能:檢測(cè)文件類型
格式:file [參數(shù)] <文件名>
參數(shù): -z:檢測(cè)壓縮包文件
-L:跟隨符號(hào)鏈接
實(shí)例:
# file /etc/lilo.conf
# file -z 1.gz
10.顯示文本文件內(nèi)容
(1) cat
格式:cat [參數(shù)] <文件名>
參數(shù):-n 顯示行號(hào)
-b 顯示行號(hào),但空白行不顯示行號(hào)
實(shí)例:
#cat /etc/inittab
#cat -n /d1/f1 /d1/f2 >txt1
(2)more
格式:more [參數(shù)] <文件名>
實(shí)例:
# ls|more 將ls的顯示結(jié)果輸入到more中
# more /etc/rc.d/rc 顯示/etc/rc.d/rc文件的內(nèi)容
說(shuō)明:可以用回車鍵向下?lián)Q行,空格鍵向下?lián)Q頁(yè) 按Q鍵退出more
(3)less
實(shí)例:
# ls|less 將ls的顯示結(jié)果輸入到less中
# less /var/named/localhost.zore
說(shuō)明:Page up /Page Down鍵上下滾動(dòng)、Q鍵退出
(4)head、tail
實(shí)例:
# head -20 /a1 顯示a1中前20行
# tail -20 /a1 顯示中a1后20行
(5)cut
功能:顯示文件中指定數(shù)目的字符、字節(jié)或字段
格式:#cut 參數(shù) 數(shù)字 文件
參數(shù):-c 以字符為單位
-b 以字節(jié)為單位
-f 以字段為單位
-d 指定分隔符
實(shí)例:
#cut -c 3 /etc/passwd
#cut -f 1-6 -d :/etc/passwd
#cut -b -8 /etc/passwd
11.搜索文件
(1) find
格式:find 查找路徑 查找條件
條件: -name “文件名”:查找指定名稱文件
-lname “文件名”:查找指定文件所有的接文件
-user 用戶名:查找指定用戶擁有的文件
-group 組名:查找指定組擁有的文件
-links n:查找擁有n個(gè)鏈接的文件
-mtime n:查找在N天前被修改過的文件
-atime n:查找在N天前被訪問過的文件
-type d/f/b/l/p:查找指定類型的文件
-s n[bcwkMG]:查找指定大小的文件
-empty:查找為空的文件
-perm mode:查找指定屬性的文件
-exec command {}\; 查找指定的文件并執(zhí)行指定的命令
-newer 文件名 查找比指定文件新的文件
實(shí)例:
# find / -name “named*”
# find / -user root
#find ./ -type d -exec chmod 755 {} \;
#find . –empty
#find . -perm 644
#find . -newer oldfile ! -newer newfile
(2) whereis
功能:查找二進(jìn)制可執(zhí)行、手冊(cè)及源文件
實(shí)例:
# whereis umount
(3) locate
功能:在資料庫(kù)中查找指定的文件
格式:#locate [參數(shù)] 文件名
參數(shù):
-u /-U 建立資料庫(kù),-u 會(huì)由根目錄開始,-U 則可以指定開始位置
-e <目錄1…> 排除指定目錄在尋找范圍之外
-l <0/1> 設(shè)置安全級(jí)別,1啟用安全模式,0關(guān)閉安全模式
-f <文件類型> 在資料庫(kù)中排除特定類型文件排除在外
-n 至多顯示n個(gè)輸出
-r 使用正規(guī)運(yùn)算式做尋找的條件
-o 指定資料庫(kù)存的名稱。
-d 指定資料庫(kù)的路徑
實(shí)例:
#locate -u
#locate chdrv
#locate -n 100 a.out
(4) which
功能:查找指定命令文件
格式:#which 文件名
實(shí)例:
#which mount
12.grep
功能:在文本文件中查找匹配的字符串
格式:#grep [參數(shù)] “字符串” 文件
參數(shù): -? 同時(shí)顯示匹配行上下的?行
-b 在匹配行前面打印該行所在的塊號(hào)
-c 只打印匹配的行數(shù),不顯示匹配的內(nèi)容
-f File 從文件中提取模板,空文件中包含0個(gè)模板,所以什么都不匹配
-h 當(dāng)搜索多個(gè)文件時(shí),不顯示匹配文件名前綴
-I 忽略大小寫差別
-q 取消顯示,只返回退出狀態(tài)。0則表示找到了匹配的行
-l 打印匹配模板的文件清單
-L 打印不匹配模板的文件清單
-n 在匹配的行前面打印行號(hào)
-s 不顯示關(guān)于不存在或者無(wú)法讀取文件的錯(cuò)誤信息
-v 反檢索,只顯示不匹配的行
-w 如果被\<和\>引用,就把表達(dá)式做為一個(gè)單詞搜索
正則表達(dá)式元字符:
^ 錨定行的開始 如:'^grep'匹配所有以grep開頭的行
$ 錨定行的結(jié)束 如:'grep$'匹配所有以grep結(jié)尾的行
. 匹配一個(gè)非換行符的字符 如:'gr.p'匹配gr后接一個(gè)任意字符,然后是p
* 匹配零個(gè)或多個(gè)先前字符 如:'*grep'匹配所有一個(gè)或多個(gè)空格后緊跟grep的行。 .*一起用代表任意字符
[] 匹配一個(gè)指定范圍內(nèi)的字符,如'[Gg]rep'匹配Grep和grep
[^] 匹配一個(gè)不在指定范圍內(nèi)的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個(gè)字母開頭,緊跟rep的行
\(..\) 標(biāo)記匹配字符,如'\(love\)',love被標(biāo)記為1
\< 錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行
\> 錨定單詞的結(jié)束,如:'grep\>'匹配包含以grep結(jié)尾的單詞的行
x\{m\} 重復(fù)字符x,m次,如:'0\{5\}'匹配包含5個(gè)o的行
x\{m,\} 重復(fù)字符x,至少m次,如:'o\{5,\}'匹配至少有5個(gè)o的行
x\{m,n\} 重復(fù)字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10個(gè)o的行
\w 匹配文字和數(shù)字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零個(gè)或多個(gè)文字或數(shù)字字符,然后是p
\W \w的反置形式,匹配一個(gè)或多個(gè)非單詞字符,如點(diǎn)號(hào)句號(hào)等
\b 單詞鎖定符,如: '\bgrepb\'只匹配grep
+ 匹配一個(gè)或多個(gè)先前的字符。如:'[a-z]+able',匹配一個(gè)或多個(gè)小寫字母后跟able的串,如loveable,enable,disable等。
? 匹配零個(gè)或多個(gè)先前的字符。如:'gr?p'匹配gr后跟一個(gè)或沒有字符,然后是p的行。
a|b|c 匹配a或b或c。如:grep|sed匹配grep或sed
() 分組符號(hào),如:love(able|rs)ov+匹配loveable或lovers,匹配一個(gè)或多個(gè)ov。
x{m},x{m,},x{m,n} 作用同x\{m\},x\{m,\},x\{m,n\}
實(shí)例:
# ls -l | grep '^a'
通過管道過濾ls -l輸出的內(nèi)容,只顯示以a開頭的行。
# grep 'test' d*
顯示所有以d開頭的文件中包含test的行。
# grep 'test' aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
# grep '[a-z]\{5\}' aa
顯示所有包含每個(gè)字符串有5個(gè)連續(xù)小寫字符的字符串的行。
# grep 'w\(es\)t.*\1' aa
如果west被匹配,則es就被存儲(chǔ)到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.*),這些字符后面緊跟著另外一個(gè)es(\1),找到就顯示該行。如果用egrep或grep -E,就不用"\"號(hào)進(jìn)行轉(zhuǎn)義,直接寫成'w(es)t.*\1'就可以了。
13.文件壓縮操作
(1)gzip(*.gz)
功能:對(duì)單個(gè)文件壓縮
格式:gzip [參數(shù)] 壓縮(解壓縮)文件名
參數(shù): -d:用于解壓縮
-t:檢驗(yàn)壓縮文件是否損壞
-l:顯示壓縮文件壓縮比例
-r :遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮
-num: 用指定的數(shù)字 num 調(diào)整壓縮的速度,-1 或 --fast 表示最快壓縮方法(低壓縮比)
實(shí)例:
?# gzip /a1
# gzip -d /a1.gz
# gzip -dv /*.gz
# gzip -r /www
(2)zip
功能:壓縮文件
格式:#zip [參數(shù)] 文件或目錄名
-d 從壓縮文件內(nèi)刪除指定的文件。
-F 嘗試修復(fù)已損壞的壓縮文件。
-t<mmddyy> 把壓縮文件的日期設(shè)成指定的日期。
-u 更換較新的文件到壓縮文件內(nèi)。
-v 顯示指令執(zhí)行過程或顯示版本信息。
-z 替壓縮文件加上注釋。
-<壓縮效率> 壓縮效率是一個(gè)介于1-9的數(shù)值。
-P 口令 利用指定口令加密壓縮包
-m 添加文件到ZIP壓縮包中
實(shí)例:
?#zip abc.zip f1 f2 f3
#zip -r –P 123 soft.zip /soft/
#zip -d soft.zip soft/wb
#zip –u soft.zip abc.log
#zip -m soft.zip install.log
(3)unzip
功能: 解壓縮zip文件
格式: #unzip [.zip文件]
-l 顯示壓縮文件內(nèi)所包含的文件。
-P <密碼>
-d <目錄>指定文件解壓縮后所要存儲(chǔ)的目錄。
實(shí)例:
?#unzip f1.zip -d /f1
#unzip –l f1.zip
(4)tar(*.tar)
功能:為文件或目錄創(chuàng)建備份
格式:tar [參數(shù)] 文件/目錄名
參數(shù): -t:列出壓縮包中的文件(*.tar)
-x:解壓縮(*.tar)
-z:使用gzip的壓縮文件
-c:創(chuàng)建壓縮包
-f:指定文件名
-j:使用bzip的壓縮文件
-v:顯示操作信息
-C:指定解壓路徑(默認(rèn)路徑為當(dāng)前路徑)
-r: 向壓縮包添加文件
-u:更新壓縮包中的文件
-k:還原文件過程中,遇到相同文件不覆蓋
-m:還原文件過程中,修改文件的時(shí)間為當(dāng)前時(shí)間
實(shí)例:
?# tar -cvf all.tar *.jpg
# tar -uvf all.tar logo.gif
# tar -rf all.tar *.gif
# tar -cvfz etc.tar.gz /etc
# tar -xvf all.tar
# tar -xzvf etc.tar.gz -C /soft
除以上的壓縮工具外,還有compress(uncompress)、bzip2(unbzip2)
14.ln
功能:建立鏈接文件
格式:ln [參數(shù)] <源文件> <鏈接文件>
參數(shù):-s:建立軟鏈接文件
-i:提示是否覆蓋目標(biāo)文件
-f:直接覆蓋已存在的目標(biāo)文件
實(shí)例:
?# ln /etc/abc /abc
# ln -s /a1 /etc/a1
15. touch
功能:創(chuàng)建空文件或修改文件的時(shí)間
格式:#touch [參數(shù)] 文件名
參數(shù):-r 修改文件的時(shí)間為指定文件的日期時(shí)間
-d <yymmdd> 指定文件日期時(shí)間為yymmdd
-t <yymmddhhmm> 指定文件日期時(shí)間為yymmddhhmm
-c 不創(chuàng)建指定的文件
實(shí)例:
?#touch /f1 /f2
#touch -r /f1 /f2
#touch -d "6:03pm 05/06/2000" file
16. sort
功能:對(duì)文本文件進(jìn)行排序
格式:sort [參數(shù)] [文件]
參數(shù):-o 文件名 將排序結(jié)果保存到指定文件中
-u 去除重復(fù)行
實(shí)例:
?#sort /etc/passwd
#sort –o /etc/oldpass /etc/passwd
17. paste
功能:合并文本文件
實(shí)例:
?#paste f1 f2>f3
18. cmp
功能:比較兩個(gè)文件是否有差異
格式:#cmp [參數(shù)] 文件1 文件2
參數(shù):-l 顯示不同的字節(jié)位置
-s 不顯示不同之處,只顯示返回狀態(tài)
實(shí)例:
?#cmp f1 f2
#cmp -l f1 f2
18. diff
功能:顯示文件的不同之處
格式:#diff [參數(shù)] 文件1 文件2
參數(shù):-c 顯示全文,并標(biāo)出不同之處
-u 合并顯示,并標(biāo)出不同之處
實(shí)例:
?#diff f1 f2
#diff -c f1 f2
19. wc
功能:統(tǒng)計(jì)文件中的行數(shù)、單詞數(shù)、字符數(shù)
格式:#wc [參數(shù)] 文件名
參數(shù):-c 統(tǒng)計(jì)字符數(shù)
-w 統(tǒng)計(jì)單詞數(shù)
-l 統(tǒng)計(jì)行數(shù)
實(shí)例:
?#wc /etc/passwd
#wc -c /etc/passwd
注:
1.命令自動(dòng)補(bǔ)齊
按TAB鍵進(jìn)行自動(dòng)擴(kuò)充
2.命令歷史記錄
Linux系統(tǒng)采用.history文件存放命令歷史記錄,以下是與歷史記錄相關(guān)的操作:
! n:調(diào)用正序第n個(gè)命令
!! :調(diào)用上一條命令
history:查看命令歷史記錄
history -c:清除歷史記錄
history -w 文件名:保存歷史記錄到指定的文件中
3.命令重定向
“>”:將命令輸出結(jié)果保存到指定文件中,如果文件不存在先建立,存在就覆蓋
“>>”:將命令輸出結(jié)果保存到指定文件中,如果文件不在存先建立,存在就覆蓋
“<”:把文件內(nèi)容輸入指定命令
“<<”:將一對(duì)分隔之間的正文輸入給指定命令
實(shí)例:
?#ls>abc.txt
#ls /etc >>abc.txt
#wc</etc/passwd
#wc<<!
4.命令管道(前一個(gè)命令的輸出作為后一個(gè)命令的輸入)
實(shí)例:ls|more
5.命令替換(取指定命令的結(jié)果)
實(shí)例:# cat `ls abc`
6.多個(gè)命令執(zhí)行順序
“;”:順序執(zhí)行多個(gè)命令
“||”:前后命令的執(zhí)行存在“邏輯或”關(guān)系,只有||前面的命令執(zhí)行失敗后,它后面的命令才被執(zhí)行
“&&”:前后命令的執(zhí)行存在“邏輯與”關(guān)系,只有&&前面的命令執(zhí)行成功后,它后面的命令才被執(zhí)
實(shí)例:
?# ls /etc;cd /etc
# ls /d1/f1||touch f1
7.命令別名
實(shí)例:#alias [別名=’命令’]
三、vi編輯器的使用
1.vi 定義
Vi 是Unix/Linux系統(tǒng)中的一種文本編輯軟件
2.vi三種模式
命令模式:刪除字符、排版
插入模式:插入字符、刪除、修改字符
最后行模式:通過命令操作vi軟件
3.vi的使用
(1)啟動(dòng)VI
# vi [參數(shù)] [文件名]
(2)VI常用命令
~移動(dòng)光標(biāo)
左移一個(gè)字符:按h
右移一個(gè)字符:按l
下移一行: 按j
上移一行: 按k
移至行首: 按^
移至行尾: 按$
移至文件頂部:按H
移至文件尾部:按L
移至文件中部:按M
前翻一屏: 按ctrl+f
后翻一屏: 按ctrl+b
前翻半屏: 按ctrl+d
后翻半屏: 按ctrl+u
移動(dòng)光標(biāo)到指定行:輸入:數(shù)字
~插入文本
在光標(biāo)右邊插入文本: 按a
在一行的結(jié)尾處添加文本: 按A
光標(biāo)左邊插入文本: 按i
在行首插入文本: 按I
在光標(biāo)所在行的下一行插入新行:按o
在光標(biāo)所在行的上一行插入新行:按O
~撤消和重復(fù)操作
撤消上一個(gè)操作:按u
撤消光標(biāo)所在行的更改:按U
重復(fù)操作:輸入”.”
~刪除文本
刪除當(dāng)前字符: 按x
刪除一詞: 按dw
刪除一行: 按dd(剪切)
刪除行的部分內(nèi)容:按D(刪除光標(biāo)右的內(nèi)容)或按d0(刪除光標(biāo)左的內(nèi)容)
刪除到文件的結(jié)尾:按dG
dL :刪除直到屏幕上最后一行的內(nèi)容
dH :刪除直到屏幕上第一行的內(nèi)容
dG :刪除直到工作緩存區(qū)結(jié)尾的內(nèi)容(文尾)
d1G :刪除直到工作緩存區(qū)開始的內(nèi)容 (文頭
:n,md: 從第n行開始刪除m行
~復(fù)制和粘貼
復(fù)制一行內(nèi)容:按yy
粘貼: 按p
查找和替換命令
/string:向前查找字符串
?string:向后查找字符串
n:繼續(xù)上一次查找
shift+n:以與上一次相反的方向查找
:%s/字符串1/字符串2/g:在全文中替換字符串1為字符串2
n,ms/字符串1/字符串2/g:替換n到m行中的字符串1為字符串2
~保存和退出命令
:w:寫緩沖區(qū)
:w 文件名:把緩沖區(qū)寫入指定文件
:wq:保存退出
:q!:不保存退出
:wq!:保存退出,對(duì)擁有者忽略只讀權(quán)限
?。牛。喝∠陨洗伪4嬉詠?lái)所做的修改
ZZ:保存退出
~修改文本命令
cl :更改當(dāng)前字符
cw :修改到某個(gè)單詞的結(jié)尾位置
c3w :修改到第三個(gè)單詞的結(jié)尾位置
cb :修改到某個(gè)單詞的開始位置
c0 :修改到某行的結(jié)尾位置
c):修改到某個(gè)語(yǔ)句的結(jié)尾位置
c4):修改到第四個(gè)語(yǔ)句的結(jié)尾位置
c} :修改到某個(gè)段落的結(jié)尾位置
c2{ :修改到當(dāng)前段落起始位置之前的第2個(gè)段落位置
ctc :修改當(dāng)前行直到下一個(gè)字符c所出現(xiàn)位置之間的內(nèi)容
C :修改到某一行的結(jié)尾
cc :修改當(dāng)前行
~會(huì)話定制命令
:set: 顯示vi變量
:set all:顯示所有可能的vi變量和它們當(dāng)前的值
:set nu:顯示行號(hào)
:set nonu:隱藏行號(hào)
:set showmode:顯示當(dāng)前操作模式
:set noshowmode:隱藏當(dāng)前操作模式
:set ai:自動(dòng)對(duì)齊
:set dir=目錄:設(shè)置緩沖區(qū)的位置
4.VI的高級(jí)應(yīng)用
(1)編輯多個(gè)文件
#vi [-o]文件1 文件2 ………
-o:同一窗口打開多個(gè)文件
:next:編輯下一個(gè)文件
:prev:編輯上一個(gè)文件
:args:顯示所有打開的文件名稱
Ctrl+ww :切換窗口
:e 文件名:讀入另一文件
(2)高級(jí)復(fù)制
:start,end cp dest:將start到end行的內(nèi)容復(fù)制到dest行以下
:start,end m dest:將start到end行的內(nèi)容移動(dòng)到dest行以下
nY:將從光標(biāo)所在行開始的n行內(nèi)容暫存
:[m],[n]w<文件名>:把m到n內(nèi)容另存到指定文件中
(3)其它高級(jí)應(yīng)用
:X 輸入口令:以口令加密保存
:ctrl+s:鎖定VI(ctrl+q解鎖)
:r !<命令>:執(zhí)行指定命令,并將命令結(jié)果插入到當(dāng)前文件中
:J:合并上下兩行
四、軟件包的管理
1.Linux軟件包主要類型
(1)RPM包
由于RedHat公司開發(fā)的一種軟件封包方式,可以用于多種Linux系統(tǒng)
RPM包名稱格式為:軟件名-版本號(hào).運(yùn)行平臺(tái).rpm(foo-1.2.0-3.i386.rpm)
Linux系統(tǒng)會(huì)使用專用的數(shù)據(jù)庫(kù)記錄RPM包的安裝情況
(2)TAR包
TAR包封裝的通常是軟件源代碼,并且利用了gzip或其它方式進(jìn)行二次壓縮
2.RPM包的管理
(1)安裝RPM包
#rpm -ivh [詳細(xì)選項(xiàng)] RPM包名稱
詳細(xì)選項(xiàng):
--nodeps 忽略依賴關(guān)系
--rplacepkgs 強(qiáng)制覆蓋已存在的RPM包
實(shí)例:
?#rpm –ivh grub-0.93-7.i386.rpm
(2)升級(jí)RPM包
?#rpm -Uvh [--nodeps/--replacepkgs] 軟件包名稱
實(shí)例:
?#rpm –Uvh bind-9.2.20-8.i385.rpm
(3)查詢RPM包
#rpm -q[a/f 文件名/l/] [軟件名稱]
實(shí)例:
#rpm –q bind(查詢軟件名為bind的軟件包)
#rpm –qa(查詢系統(tǒng)中所有已安裝的RPM包)
#rpm –qf /boot/grub/grub.conf (查詢grub.conf文件所屬的RPM包)
#rpm -ql bind (查詢軟件名為bind軟件包并顯示軟件包的內(nèi)容)
(4)卸載RPM包
#rpm -e 軟件名稱
實(shí)例:#rpm -e bind
(5)檢驗(yàn)RPM包
#rpm –V 軟件名稱
實(shí)例:#rpm -V bind
3.TAR軟件包的管理
(1)安裝TAR包
解壓縮
配置安裝參數(shù)
編譯和安裝
實(shí)例:
#tar –xzvf bind-9.2.0.tar.gz
#cd bind-9.2.0
#./configure --prefix=/usr/named
#make
#make install
(2)卸載TAR包
直接刪除安裝
實(shí)例:
#rm -rf /usr/named
#文件系統(tǒng)及Shell的基本概念
#文件及目錄操作命令
#VI的使用
#軟件包的管理
一、文件系統(tǒng)及Shell的基本概念
1.文件系統(tǒng)的含義
文件系統(tǒng)是用來(lái)管理和組織保存在磁盤驅(qū)動(dòng)器上數(shù)據(jù)的系統(tǒng)軟件
2.Linux的文件系統(tǒng)
Linux系統(tǒng)采用虛擬文件系統(tǒng)技術(shù)(VFS)、結(jié)構(gòu)采用倒立樹型、VFS使Linux支持以下文件系統(tǒng):
EXT2: 二次擴(kuò)展
EXT3: 三次擴(kuò)展
SWAP: 交換文件系統(tǒng)
FAT、FAT32
NTFS (默認(rèn)不支持,需要特定的模塊)
VFAT: 虛擬FAT
SYSV: Unix的文件系統(tǒng)
HPFS: OS/2的文件系統(tǒng)
ISO9660: 光盤文件系統(tǒng)
NFS: 網(wǎng)絡(luò)文件系統(tǒng)
3.Linux中的文件分類
(1)普通文件
文本文件:采用ASCII編碼方式,可編輯,可修改
二進(jìn)制:不可查看,不可修改
(2)目錄文件
存放的內(nèi)容是目錄中的文件名和子目錄名
(3)設(shè)備文件(/dev)
用于用戶訪問物理設(shè)備所用,分為塊設(shè)備和字符設(shè)備文件
(4)鏈接文件
軟鏈接文件:目標(biāo)文件和鏈接文件可以跨越索引點(diǎn),相當(dāng)于文件的快捷方式
刪除原文件,則符號(hào)鏈接文件失去意義
刪除符號(hào)鏈接文件,不影響原文件
硬鏈接文件:鏈接同一索引點(diǎn)中的文件,相當(dāng)文件的副本
兩個(gè)文件指向同一存儲(chǔ)區(qū),內(nèi)容、長(zhǎng)度相同
刪除一個(gè)文件不影響,其它文件
(5)管道文件
FIFO緩存隊(duì)列
4.Shell的主要功能
~命令行解釋
交互模式
后臺(tái)運(yùn)行
~命令的多種執(zhí)行順序
~命令替換 (` `)
~I/O重定向(>,>>,<,<<)
~管道(|)
~通配符(*,?,[],[!])
~系統(tǒng)環(huán)境維護(hù)
~Shell編程
~歷史記錄(history)
~自動(dòng)補(bǔ)齊(TAB)
5.Shell的命令解釋過程

二、文件操作命令
1.pwd
功能:顯示當(dāng)前目錄
實(shí)例:
?# pwd
2.cd
功能:改變當(dāng)前目錄
實(shí)例:
?# cd /usr/sbin (進(jìn)入/usr/sbin)
# cd ../u1 (進(jìn)入父目錄下面的u1目錄)
# cd ..(返回父目錄)
# cd (進(jìn)入用戶主目錄)
# cd ~ (進(jìn)入用戶主目錄)
3.mkdir
功能:建立目錄
格式:mkdir [參數(shù)] <目錄名>
參數(shù):-m 屬性值:指定目錄的屬性 (r、w、x或4、2、1)
-p :循環(huán)建立目錄
實(shí)例:
# mkdir d1 (在當(dāng)前目錄下建立d1子目錄)
# mkdir /d1/d2 /d1/d3 /d1/d4(同時(shí)在/d1目錄中建立d2,d3,d4子目錄)
# mkdir –p /d1/d2 (在/d1目錄中建立d2子目錄,先建d1)
4.rmdir
功能:刪除空目錄
格式:rmdir [參數(shù)] <目錄名>
參數(shù):-p:循環(huán)刪除
實(shí)例:
# rmdir a1 (刪除當(dāng)前目錄下的a1子目錄)
# rmdir /etc/a2 (刪除/etc下a2子目錄)
# rmdir -p /a1/a2
5.ls
功能:顯示目錄中的文件及子目錄的名稱
格式:ls [參數(shù)] [文件名]
參數(shù):-a: 顯示所有文件(包括隱含文件,以“.”開頭的文件為隱含文件)
-l: 以長(zhǎng)格式顯示文件名及目錄名(顯示文件的詳細(xì)信息)
-F: 顯示文件名,同時(shí)顯示類型
-R: 顯示目錄中所有文件及子目錄中的文件結(jié)構(gòu)
-t: 按照修改時(shí)間排序顯示
-s: 顯示文件的大小,以block為單位
-S: 按照文件大小排序顯示
-m: 分列顯示文件名
實(shí)例:
# ls
# ls /bin/
# ls grub.conf 查找當(dāng)目錄下是否存在grub.conf
# ls -l
# ls --help 顯示ls的詳細(xì)的幫助信息
# ls -a
6.cp
功能:復(fù)制文件
格式:cp [參數(shù)] <源路徑> <目標(biāo)路徑>
參數(shù):-f:文件在目標(biāo)路徑中存在時(shí),則直接覆蓋
-i:文件在目標(biāo)路徑中存在時(shí), 提示是否覆蓋
-r:復(fù)制指定中所有內(nèi)容和結(jié)構(gòu)
-b:生成覆蓋文件的備份
-a:保持文件原有屬性
實(shí)例:
# cp /etc/* /a1/ 把/etc下的所有文件復(fù)制到a1目錄中
# cp /bin/ls /dir1 /bin/ls文件到/目錄取名為dir1
# cp -f /sbin/* /exe/ 直接將/sbin下的所有文件到/exe目錄中
# cp -r /soft /abc/
7.rm
功能:刪除文件
格式:rm [參數(shù)] <文件名>
參數(shù):-f: 不提示確認(rèn)刪除
-i: 提示確認(rèn)刪除
-r: 遞歸刪除
實(shí)例:
# rm /m1/f1 刪除/m1目錄下的f1
# rm –f /m1/* 刪除m1目錄下的所有文件
#rm -rf /m1 強(qiáng)制刪除一個(gè)目錄
8.mv
功能:移動(dòng)文件、重命名文件
格式:mv [參數(shù)] <源路徑> <目標(biāo)路徑>
參數(shù):-i: 如果存在文件重名則提示是否覆蓋
-b: 建立覆蓋文件的備份
-f: 如果存在文件重名則直接覆蓋
實(shí)例:
# mv /m1/f1 /m2/ 移動(dòng)/m1目錄下f1文件到/m2目錄下
# mv f1 f2 將當(dāng)前目錄下的f1文件改名f2
# mv -f /d1/* /d2/ 移動(dòng)/d1中的所有文件到/d2目錄中
9.file
功能:檢測(cè)文件類型
格式:file [參數(shù)] <文件名>
參數(shù): -z:檢測(cè)壓縮包文件
-L:跟隨符號(hào)鏈接
實(shí)例:
# file /etc/lilo.conf
# file -z 1.gz
10.顯示文本文件內(nèi)容
(1) cat
格式:cat [參數(shù)] <文件名>
參數(shù):-n 顯示行號(hào)
-b 顯示行號(hào),但空白行不顯示行號(hào)
實(shí)例:
#cat /etc/inittab
#cat -n /d1/f1 /d1/f2 >txt1
(2)more
格式:more [參數(shù)] <文件名>
實(shí)例:
# ls|more 將ls的顯示結(jié)果輸入到more中
# more /etc/rc.d/rc 顯示/etc/rc.d/rc文件的內(nèi)容
說(shuō)明:可以用回車鍵向下?lián)Q行,空格鍵向下?lián)Q頁(yè) 按Q鍵退出more
(3)less
實(shí)例:
# ls|less 將ls的顯示結(jié)果輸入到less中
# less /var/named/localhost.zore
說(shuō)明:Page up /Page Down鍵上下滾動(dòng)、Q鍵退出
(4)head、tail
實(shí)例:
# head -20 /a1 顯示a1中前20行
# tail -20 /a1 顯示中a1后20行
(5)cut
功能:顯示文件中指定數(shù)目的字符、字節(jié)或字段
格式:#cut 參數(shù) 數(shù)字 文件
參數(shù):-c 以字符為單位
-b 以字節(jié)為單位
-f 以字段為單位
-d 指定分隔符
實(shí)例:
#cut -c 3 /etc/passwd
#cut -f 1-6 -d :/etc/passwd
#cut -b -8 /etc/passwd
11.搜索文件
(1) find
格式:find 查找路徑 查找條件
條件: -name “文件名”:查找指定名稱文件
-lname “文件名”:查找指定文件所有的接文件
-user 用戶名:查找指定用戶擁有的文件
-group 組名:查找指定組擁有的文件
-links n:查找擁有n個(gè)鏈接的文件
-mtime n:查找在N天前被修改過的文件
-atime n:查找在N天前被訪問過的文件
-type d/f/b/l/p:查找指定類型的文件
-s n[bcwkMG]:查找指定大小的文件
-empty:查找為空的文件
-perm mode:查找指定屬性的文件
-exec command {}\; 查找指定的文件并執(zhí)行指定的命令
-newer 文件名 查找比指定文件新的文件
實(shí)例:
# find / -name “named*”
# find / -user root
#find ./ -type d -exec chmod 755 {} \;
#find . –empty
#find . -perm 644
#find . -newer oldfile ! -newer newfile
(2) whereis
功能:查找二進(jìn)制可執(zhí)行、手冊(cè)及源文件
實(shí)例:
# whereis umount
(3) locate
功能:在資料庫(kù)中查找指定的文件
格式:#locate [參數(shù)] 文件名
參數(shù):
-u /-U 建立資料庫(kù),-u 會(huì)由根目錄開始,-U 則可以指定開始位置
-e <目錄1…> 排除指定目錄在尋找范圍之外
-l <0/1> 設(shè)置安全級(jí)別,1啟用安全模式,0關(guān)閉安全模式
-f <文件類型> 在資料庫(kù)中排除特定類型文件排除在外
-n 至多顯示n個(gè)輸出
-r 使用正規(guī)運(yùn)算式做尋找的條件
-o 指定資料庫(kù)存的名稱。
-d 指定資料庫(kù)的路徑
實(shí)例:
#locate -u
#locate chdrv
#locate -n 100 a.out
(4) which
功能:查找指定命令文件
格式:#which 文件名
實(shí)例:
#which mount
12.grep
功能:在文本文件中查找匹配的字符串
格式:#grep [參數(shù)] “字符串” 文件
參數(shù): -? 同時(shí)顯示匹配行上下的?行
-b 在匹配行前面打印該行所在的塊號(hào)
-c 只打印匹配的行數(shù),不顯示匹配的內(nèi)容
-f File 從文件中提取模板,空文件中包含0個(gè)模板,所以什么都不匹配
-h 當(dāng)搜索多個(gè)文件時(shí),不顯示匹配文件名前綴
-I 忽略大小寫差別
-q 取消顯示,只返回退出狀態(tài)。0則表示找到了匹配的行
-l 打印匹配模板的文件清單
-L 打印不匹配模板的文件清單
-n 在匹配的行前面打印行號(hào)
-s 不顯示關(guān)于不存在或者無(wú)法讀取文件的錯(cuò)誤信息
-v 反檢索,只顯示不匹配的行
-w 如果被\<和\>引用,就把表達(dá)式做為一個(gè)單詞搜索
正則表達(dá)式元字符:
^ 錨定行的開始 如:'^grep'匹配所有以grep開頭的行
$ 錨定行的結(jié)束 如:'grep$'匹配所有以grep結(jié)尾的行
. 匹配一個(gè)非換行符的字符 如:'gr.p'匹配gr后接一個(gè)任意字符,然后是p
* 匹配零個(gè)或多個(gè)先前字符 如:'*grep'匹配所有一個(gè)或多個(gè)空格后緊跟grep的行。 .*一起用代表任意字符
[] 匹配一個(gè)指定范圍內(nèi)的字符,如'[Gg]rep'匹配Grep和grep
[^] 匹配一個(gè)不在指定范圍內(nèi)的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個(gè)字母開頭,緊跟rep的行
\(..\) 標(biāo)記匹配字符,如'\(love\)',love被標(biāo)記為1
\< 錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行
\> 錨定單詞的結(jié)束,如:'grep\>'匹配包含以grep結(jié)尾的單詞的行
x\{m\} 重復(fù)字符x,m次,如:'0\{5\}'匹配包含5個(gè)o的行
x\{m,\} 重復(fù)字符x,至少m次,如:'o\{5,\}'匹配至少有5個(gè)o的行
x\{m,n\} 重復(fù)字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10個(gè)o的行
\w 匹配文字和數(shù)字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零個(gè)或多個(gè)文字或數(shù)字字符,然后是p
\W \w的反置形式,匹配一個(gè)或多個(gè)非單詞字符,如點(diǎn)號(hào)句號(hào)等
\b 單詞鎖定符,如: '\bgrepb\'只匹配grep
+ 匹配一個(gè)或多個(gè)先前的字符。如:'[a-z]+able',匹配一個(gè)或多個(gè)小寫字母后跟able的串,如loveable,enable,disable等。
? 匹配零個(gè)或多個(gè)先前的字符。如:'gr?p'匹配gr后跟一個(gè)或沒有字符,然后是p的行。
a|b|c 匹配a或b或c。如:grep|sed匹配grep或sed
() 分組符號(hào),如:love(able|rs)ov+匹配loveable或lovers,匹配一個(gè)或多個(gè)ov。
x{m},x{m,},x{m,n} 作用同x\{m\},x\{m,\},x\{m,n\}
實(shí)例:
# ls -l | grep '^a'
通過管道過濾ls -l輸出的內(nèi)容,只顯示以a開頭的行。
# grep 'test' d*
顯示所有以d開頭的文件中包含test的行。
# grep 'test' aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
# grep '[a-z]\{5\}' aa
顯示所有包含每個(gè)字符串有5個(gè)連續(xù)小寫字符的字符串的行。
# grep 'w\(es\)t.*\1' aa
如果west被匹配,則es就被存儲(chǔ)到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.*),這些字符后面緊跟著另外一個(gè)es(\1),找到就顯示該行。如果用egrep或grep -E,就不用"\"號(hào)進(jìn)行轉(zhuǎn)義,直接寫成'w(es)t.*\1'就可以了。
13.文件壓縮操作
(1)gzip(*.gz)
功能:對(duì)單個(gè)文件壓縮
格式:gzip [參數(shù)] 壓縮(解壓縮)文件名
參數(shù): -d:用于解壓縮
-t:檢驗(yàn)壓縮文件是否損壞
-l:顯示壓縮文件壓縮比例
-r :遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮
-num: 用指定的數(shù)字 num 調(diào)整壓縮的速度,-1 或 --fast 表示最快壓縮方法(低壓縮比)
實(shí)例:
?# gzip /a1
# gzip -d /a1.gz
# gzip -dv /*.gz
# gzip -r /www
(2)zip
功能:壓縮文件
格式:#zip [參數(shù)] 文件或目錄名
-d 從壓縮文件內(nèi)刪除指定的文件。
-F 嘗試修復(fù)已損壞的壓縮文件。
-t<mmddyy> 把壓縮文件的日期設(shè)成指定的日期。
-u 更換較新的文件到壓縮文件內(nèi)。
-v 顯示指令執(zhí)行過程或顯示版本信息。
-z 替壓縮文件加上注釋。
-<壓縮效率> 壓縮效率是一個(gè)介于1-9的數(shù)值。
-P 口令 利用指定口令加密壓縮包
-m 添加文件到ZIP壓縮包中
實(shí)例:
?#zip abc.zip f1 f2 f3
#zip -r –P 123 soft.zip /soft/
#zip -d soft.zip soft/wb
#zip –u soft.zip abc.log
#zip -m soft.zip install.log
(3)unzip
功能: 解壓縮zip文件
格式: #unzip [.zip文件]
-l 顯示壓縮文件內(nèi)所包含的文件。
-P <密碼>
-d <目錄>指定文件解壓縮后所要存儲(chǔ)的目錄。
實(shí)例:
?#unzip f1.zip -d /f1
#unzip –l f1.zip
(4)tar(*.tar)
功能:為文件或目錄創(chuàng)建備份
格式:tar [參數(shù)] 文件/目錄名
參數(shù): -t:列出壓縮包中的文件(*.tar)
-x:解壓縮(*.tar)
-z:使用gzip的壓縮文件
-c:創(chuàng)建壓縮包
-f:指定文件名
-j:使用bzip的壓縮文件
-v:顯示操作信息
-C:指定解壓路徑(默認(rèn)路徑為當(dāng)前路徑)
-r: 向壓縮包添加文件
-u:更新壓縮包中的文件
-k:還原文件過程中,遇到相同文件不覆蓋
-m:還原文件過程中,修改文件的時(shí)間為當(dāng)前時(shí)間
實(shí)例:
?# tar -cvf all.tar *.jpg
# tar -uvf all.tar logo.gif
# tar -rf all.tar *.gif
# tar -cvfz etc.tar.gz /etc
# tar -xvf all.tar
# tar -xzvf etc.tar.gz -C /soft
除以上的壓縮工具外,還有compress(uncompress)、bzip2(unbzip2)
14.ln
功能:建立鏈接文件
格式:ln [參數(shù)] <源文件> <鏈接文件>
參數(shù):-s:建立軟鏈接文件
-i:提示是否覆蓋目標(biāo)文件
-f:直接覆蓋已存在的目標(biāo)文件
實(shí)例:
?# ln /etc/abc /abc
# ln -s /a1 /etc/a1
15. touch
功能:創(chuàng)建空文件或修改文件的時(shí)間
格式:#touch [參數(shù)] 文件名
參數(shù):-r 修改文件的時(shí)間為指定文件的日期時(shí)間
-d <yymmdd> 指定文件日期時(shí)間為yymmdd
-t <yymmddhhmm> 指定文件日期時(shí)間為yymmddhhmm
-c 不創(chuàng)建指定的文件
實(shí)例:
?#touch /f1 /f2
#touch -r /f1 /f2
#touch -d "6:03pm 05/06/2000" file
16. sort
功能:對(duì)文本文件進(jìn)行排序
格式:sort [參數(shù)] [文件]
參數(shù):-o 文件名 將排序結(jié)果保存到指定文件中
-u 去除重復(fù)行
實(shí)例:
?#sort /etc/passwd
#sort –o /etc/oldpass /etc/passwd
17. paste
功能:合并文本文件
實(shí)例:
?#paste f1 f2>f3
18. cmp
功能:比較兩個(gè)文件是否有差異
格式:#cmp [參數(shù)] 文件1 文件2
參數(shù):-l 顯示不同的字節(jié)位置
-s 不顯示不同之處,只顯示返回狀態(tài)
實(shí)例:
?#cmp f1 f2
#cmp -l f1 f2
18. diff
功能:顯示文件的不同之處
格式:#diff [參數(shù)] 文件1 文件2
參數(shù):-c 顯示全文,并標(biāo)出不同之處
-u 合并顯示,并標(biāo)出不同之處
實(shí)例:
?#diff f1 f2
#diff -c f1 f2
19. wc
功能:統(tǒng)計(jì)文件中的行數(shù)、單詞數(shù)、字符數(shù)
格式:#wc [參數(shù)] 文件名
參數(shù):-c 統(tǒng)計(jì)字符數(shù)
-w 統(tǒng)計(jì)單詞數(shù)
-l 統(tǒng)計(jì)行數(shù)
實(shí)例:
?#wc /etc/passwd
#wc -c /etc/passwd
注:
1.命令自動(dòng)補(bǔ)齊
按TAB鍵進(jìn)行自動(dòng)擴(kuò)充
2.命令歷史記錄
Linux系統(tǒng)采用.history文件存放命令歷史記錄,以下是與歷史記錄相關(guān)的操作:
! n:調(diào)用正序第n個(gè)命令
!! :調(diào)用上一條命令
history:查看命令歷史記錄
history -c:清除歷史記錄
history -w 文件名:保存歷史記錄到指定的文件中
3.命令重定向
“>”:將命令輸出結(jié)果保存到指定文件中,如果文件不存在先建立,存在就覆蓋
“>>”:將命令輸出結(jié)果保存到指定文件中,如果文件不在存先建立,存在就覆蓋
“<”:把文件內(nèi)容輸入指定命令
“<<”:將一對(duì)分隔之間的正文輸入給指定命令
實(shí)例:
?#ls>abc.txt
#ls /etc >>abc.txt
#wc</etc/passwd
#wc<<!
4.命令管道(前一個(gè)命令的輸出作為后一個(gè)命令的輸入)
實(shí)例:ls|more
5.命令替換(取指定命令的結(jié)果)
實(shí)例:# cat `ls abc`
6.多個(gè)命令執(zhí)行順序
“;”:順序執(zhí)行多個(gè)命令
“||”:前后命令的執(zhí)行存在“邏輯或”關(guān)系,只有||前面的命令執(zhí)行失敗后,它后面的命令才被執(zhí)行
“&&”:前后命令的執(zhí)行存在“邏輯與”關(guān)系,只有&&前面的命令執(zhí)行成功后,它后面的命令才被執(zhí)
實(shí)例:
?# ls /etc;cd /etc
# ls /d1/f1||touch f1
7.命令別名
實(shí)例:#alias [別名=’命令’]
三、vi編輯器的使用
1.vi 定義
Vi 是Unix/Linux系統(tǒng)中的一種文本編輯軟件
2.vi三種模式
命令模式:刪除字符、排版
插入模式:插入字符、刪除、修改字符
最后行模式:通過命令操作vi軟件
3.vi的使用
(1)啟動(dòng)VI
# vi [參數(shù)] [文件名]
(2)VI常用命令
~移動(dòng)光標(biāo)
左移一個(gè)字符:按h
右移一個(gè)字符:按l
下移一行: 按j
上移一行: 按k
移至行首: 按^
移至行尾: 按$
移至文件頂部:按H
移至文件尾部:按L
移至文件中部:按M
前翻一屏: 按ctrl+f
后翻一屏: 按ctrl+b
前翻半屏: 按ctrl+d
后翻半屏: 按ctrl+u
移動(dòng)光標(biāo)到指定行:輸入:數(shù)字
~插入文本
在光標(biāo)右邊插入文本: 按a
在一行的結(jié)尾處添加文本: 按A
光標(biāo)左邊插入文本: 按i
在行首插入文本: 按I
在光標(biāo)所在行的下一行插入新行:按o
在光標(biāo)所在行的上一行插入新行:按O
~撤消和重復(fù)操作
撤消上一個(gè)操作:按u
撤消光標(biāo)所在行的更改:按U
重復(fù)操作:輸入”.”
~刪除文本
刪除當(dāng)前字符: 按x
刪除一詞: 按dw
刪除一行: 按dd(剪切)
刪除行的部分內(nèi)容:按D(刪除光標(biāo)右的內(nèi)容)或按d0(刪除光標(biāo)左的內(nèi)容)
刪除到文件的結(jié)尾:按dG
dL :刪除直到屏幕上最后一行的內(nèi)容
dH :刪除直到屏幕上第一行的內(nèi)容
dG :刪除直到工作緩存區(qū)結(jié)尾的內(nèi)容(文尾)
d1G :刪除直到工作緩存區(qū)開始的內(nèi)容 (文頭
:n,md: 從第n行開始刪除m行
~復(fù)制和粘貼
復(fù)制一行內(nèi)容:按yy
粘貼: 按p
查找和替換命令
/string:向前查找字符串
?string:向后查找字符串
n:繼續(xù)上一次查找
shift+n:以與上一次相反的方向查找
:%s/字符串1/字符串2/g:在全文中替換字符串1為字符串2
n,ms/字符串1/字符串2/g:替換n到m行中的字符串1為字符串2
~保存和退出命令
:w:寫緩沖區(qū)
:w 文件名:把緩沖區(qū)寫入指定文件
:wq:保存退出
:q!:不保存退出
:wq!:保存退出,對(duì)擁有者忽略只讀權(quán)限
?。牛。喝∠陨洗伪4嬉詠?lái)所做的修改
ZZ:保存退出
~修改文本命令
cl :更改當(dāng)前字符
cw :修改到某個(gè)單詞的結(jié)尾位置
c3w :修改到第三個(gè)單詞的結(jié)尾位置
cb :修改到某個(gè)單詞的開始位置
c0 :修改到某行的結(jié)尾位置
c):修改到某個(gè)語(yǔ)句的結(jié)尾位置
c4):修改到第四個(gè)語(yǔ)句的結(jié)尾位置
c} :修改到某個(gè)段落的結(jié)尾位置
c2{ :修改到當(dāng)前段落起始位置之前的第2個(gè)段落位置
ctc :修改當(dāng)前行直到下一個(gè)字符c所出現(xiàn)位置之間的內(nèi)容
C :修改到某一行的結(jié)尾
cc :修改當(dāng)前行
~會(huì)話定制命令
:set: 顯示vi變量
:set all:顯示所有可能的vi變量和它們當(dāng)前的值
:set nu:顯示行號(hào)
:set nonu:隱藏行號(hào)
:set showmode:顯示當(dāng)前操作模式
:set noshowmode:隱藏當(dāng)前操作模式
:set ai:自動(dòng)對(duì)齊
:set dir=目錄:設(shè)置緩沖區(qū)的位置
4.VI的高級(jí)應(yīng)用
(1)編輯多個(gè)文件
#vi [-o]文件1 文件2 ………
-o:同一窗口打開多個(gè)文件
:next:編輯下一個(gè)文件
:prev:編輯上一個(gè)文件
:args:顯示所有打開的文件名稱
Ctrl+ww :切換窗口
:e 文件名:讀入另一文件
(2)高級(jí)復(fù)制
:start,end cp dest:將start到end行的內(nèi)容復(fù)制到dest行以下
:start,end m dest:將start到end行的內(nèi)容移動(dòng)到dest行以下
nY:將從光標(biāo)所在行開始的n行內(nèi)容暫存
:[m],[n]w<文件名>:把m到n內(nèi)容另存到指定文件中
(3)其它高級(jí)應(yīng)用
:X 輸入口令:以口令加密保存
:ctrl+s:鎖定VI(ctrl+q解鎖)
:r !<命令>:執(zhí)行指定命令,并將命令結(jié)果插入到當(dāng)前文件中
:J:合并上下兩行
四、軟件包的管理
1.Linux軟件包主要類型
(1)RPM包
由于RedHat公司開發(fā)的一種軟件封包方式,可以用于多種Linux系統(tǒng)
RPM包名稱格式為:軟件名-版本號(hào).運(yùn)行平臺(tái).rpm(foo-1.2.0-3.i386.rpm)
Linux系統(tǒng)會(huì)使用專用的數(shù)據(jù)庫(kù)記錄RPM包的安裝情況
(2)TAR包
TAR包封裝的通常是軟件源代碼,并且利用了gzip或其它方式進(jìn)行二次壓縮
2.RPM包的管理
(1)安裝RPM包
#rpm -ivh [詳細(xì)選項(xiàng)] RPM包名稱
詳細(xì)選項(xiàng):
--nodeps 忽略依賴關(guān)系
--rplacepkgs 強(qiáng)制覆蓋已存在的RPM包
實(shí)例:
?#rpm –ivh grub-0.93-7.i386.rpm
(2)升級(jí)RPM包
?#rpm -Uvh [--nodeps/--replacepkgs] 軟件包名稱
實(shí)例:
?#rpm –Uvh bind-9.2.20-8.i385.rpm
(3)查詢RPM包
#rpm -q[a/f 文件名/l/] [軟件名稱]
實(shí)例:
#rpm –q bind(查詢軟件名為bind的軟件包)
#rpm –qa(查詢系統(tǒng)中所有已安裝的RPM包)
#rpm –qf /boot/grub/grub.conf (查詢grub.conf文件所屬的RPM包)
#rpm -ql bind (查詢軟件名為bind軟件包并顯示軟件包的內(nèi)容)
(4)卸載RPM包
#rpm -e 軟件名稱
實(shí)例:#rpm -e bind
(5)檢驗(yàn)RPM包
#rpm –V 軟件名稱
實(shí)例:#rpm -V bind
3.TAR軟件包的管理
(1)安裝TAR包
解壓縮
配置安裝參數(shù)
編譯和安裝
實(shí)例:
#tar –xzvf bind-9.2.0.tar.gz
#cd bind-9.2.0
#./configure --prefix=/usr/named
#make
#make install
(2)卸載TAR包
直接刪除安裝
實(shí)例:
#rm -rf /usr/named
相關(guān)文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來(lái)大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過程中,查看和了解硬盤信息是非常重要的工作,尤其是對(duì)于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細(xì)信息? 3招輕松查看CPU型號(hào)、核心數(shù)和溫度
在日常運(yùn)維工作中,獲取 CPU 信息是系統(tǒng)運(yùn)維管理員常見的工作內(nèi)容,無(wú)論是為了性能調(diào)優(yōu)、硬件升級(jí)還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨(dú)樹一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡(jiǎn)化,優(yōu)化,現(xiàn)代化,實(shí)用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來(lái)簡(jiǎn)要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機(jī)U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個(gè)win11裝機(jī)u盤,詳細(xì)如下2025-02-17Rsnapshot怎么用? 基于Rsync的強(qiáng)大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過 SSH 備份遠(yuǎn)程文件,接下來(lái)詳細(xì)介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時(shí)、每天、每周和每月的本地備份,以及如何進(jìn)2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡(jiǎn)化內(nèi)核搶占邏輯,通過減少與調(diào)度器相關(guān)的調(diào)用次數(shù),讓內(nèi)核在運(yùn)行時(shí)表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領(lǐng)創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預(yù)覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來(lái)了諸多優(yōu)化和改進(jìn),進(jìn)一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領(lǐng)域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來(lái)看看詳細(xì)安裝指南2025-01-16