管理linux系統(tǒng)的目錄和文件_第1頁
管理linux系統(tǒng)的目錄和文件_第2頁
管理linux系統(tǒng)的目錄和文件_第3頁
管理linux系統(tǒng)的目錄和文件_第4頁
管理linux系統(tǒng)的目錄和文件_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

情境2管理Hn

ux系統(tǒng)的目錄和文件文件權(quán)限用戶與組-強(qiáng)調(diào)文件所有者(Owner)

-root可以充當(dāng)如何文件的所有者-組(Group)有利于安全與管理Oracle—個(gè)組Bea一個(gè)組-權(quán)限管理分為三類:文件/文件夾所有者文件所屬組其他人-無權(quán)訪問的時(shí)候,通常會(huì)顯示"Permission

denied”這樣的錯(cuò)誤信息,對(duì)于無權(quán)執(zhí)行的命令,通常顯示“Operation

not

permitted”,在圖形界面上相應(yīng)的菜單項(xiàng)會(huì)變灰從而禁止使用。4096-rwxr-xr-xicensew-rw一—,w-rw-i—文件權(quán)限M母1*4旦08-3007-0306-0606-081II6hexyhexyhexyhexyhexyhexy-文件名稱,以圓但點(diǎn)開頭的文件為隱藏文件16:30|questiorT

|14:41

snI13:34

sn~10:47

sqlserver2000788j07-03

13:16>ITOnLiaL201|08-31

17:01|

question國4802459409611hexy

I

hexyw-rw-i—w-rw-r—jrwxrwxr-xIhexy^hexy

~]SLinux下的“dir”命令I(lǐng)s[hexy如hexy

~]S

Is-1總計(jì)14064drwxrwxr~x

2drwxrwxr-x|2cli"wxr-xr-x

2]

hexy

hex^7-15

1273hexy

Ihexy

|I

3054340

0&=1

hexyhexyhexyhexyhexyhexy文件權(quán)限文件屬性-rwxrwx■一-第一個(gè)屬性代表這個(gè)文件的類型為[d

]則是目錄為[?]則是文件為[I

]則表示為鏈接文件(link

file)為[b]則表示為設(shè)備文件中可供儲(chǔ)存的接口設(shè)備為[c]則云示為設(shè)備文件中的串行端口設(shè)備,例 如鍵盤、鼠標(biāo)。文件權(quán)限文件屬性所有者

組 其他人-rwxiwx-—接下來的屬性中,三個(gè)為一組,且均為“rwx”的三個(gè)參數(shù)的組合。,其中寸[<]代表可讀,[w]代表可寫代表可執(zhí)行,[一]代表無此屬性。文件權(quán)限問題1:若有一個(gè)文件的屬性為“?rwxr-xr??”, 那么代表什么意思?答:上面的屬性代表一個(gè)文件,這個(gè)文件的所有者可讀可寫可執(zhí)行、但同群組的人僅可讀與執(zhí)行,非同群組的使用者僅可讀。文件權(quán)限問題2:如果有下面的兩個(gè)文件:-rw-r—r- 1

root

root

238

Jun

18

17:22

test.txt

-rwxr-xr~

1testl

testgroup

5238

Jun

19

10:25

ping_tsai請(qǐng)說明兩個(gè)文件的所有者與其相關(guān)的權(quán)限是什么?答:文件test.txt的所有者為root,組為root,只有root這個(gè)賬號(hào)可以存取此文件,其它人則僅能讀此文件。另一個(gè)文件

ping_tsai的所有者為testl,而組為testgroup□其中,testl

可以車I?對(duì)此文件具有可讀可寫可執(zhí)行的權(quán)力,而同組的test2,test3兩個(gè)人與testl同樣是testgroup的群組賬號(hào),則僅可讀可執(zhí)行但不能偵亦即不能修改),至于非testgoup這一個(gè)組的人則僅可以讀,不能寫也不能執(zhí)行。如何改變文件權(quán)限.改變所屬組命令:chgrp-語法:chgrp組名稱文件名稱-注意:組名稱必須已經(jīng)存在,否則會(huì)報(bào)錯(cuò)“chgrp:invalidgroup

name”-在/home/hexy/test上做實(shí)驗(yàn)看看-實(shí)驗(yàn)準(zhǔn)備:?使用root來執(zhí)行該命令使用SU命令來切換用戶?使用whoami命令查看當(dāng)前用戶?使用exit來退出會(huì)話如何改變文件權(quán)限.改變所有者命令:chown-通常用在文件拷貝之后-語法:chown[-R]賬號(hào)名稱文件chown[-R]賬號(hào)名稱:群組名稱文件?R選項(xiàng)意味著遞歸修改子目錄或者文件-注意:組名稱和帳號(hào)名稱必須已經(jīng)存在-在/home/hexy/test上做實(shí)驗(yàn)看看-實(shí)驗(yàn)準(zhǔn)備:使用root來執(zhí)行該命令如何改變文件權(quán)限.改變權(quán)限命令:chmodrwx可以分別用數(shù)字表示.

r

-->

4.

w

->

2.

x

■■>

1-rwx的組合可以用這些數(shù)字的和表示(按位或)rwx

=

4+2+1

=

7.

r-x

=

4+0+1

=

5一=0+0+0=0rwx「?x…就可以用750來表示!-語法:chmod[?R]xyz

文件其中xy

z分珈為三組rwx屬性數(shù)值的和如何改變文件權(quán)限.改變權(quán)限命令:chmod-舉例1:[hexy@hexy

test]$

Is

-I總計(jì)20-rw-rw-r-

1

hexy

hexy

0

08-31

22:11

a.txtdr-xr-xr-x

2

hexy

hexy

4096

08-31

19:08

t1drwxrwxr-x

2

hexy

hexy

4096

08-31

19:08t2

[hexy@hexy

test]$

chmod

775

t1[hexy@hexy

test]$

Is

-I總計(jì)20-rw-rw-r~

1

hexy

hexy

0

08-31

22:11

a.txtdrwxrwxr-x

2

hexy

hexy

4096

08-31

19:08

t!drwxrwxr-x

2

hexy

hexy

4096

08-31

19:08

t2[hexy@hexy

test]$-舉例2:分析"Is?l/home”的結(jié)果如何改變文件權(quán)限改變權(quán)限命令:chmod-舉例3,目錄的特殊性:

[hexy@hexy

t1]$

Is-Idrwxrwxrwx

2

hexy

hexy

4096

Aug

31

22:35

t11[hexy@hexy

t1]$

chmod

774

t11[hexy@hexy

t1]$

Is

-Idrwxrwxr-

2

hexy

hexy

4096

Aug

31

22:35

t11[hexy@hexy

t1]$

su

wwwPassword:[www@hexy

t1]$

cd

t11??>這句話能夠執(zhí)行嗎?

bash:

cd:

t11:權(quán)限不夠注意:想要?jiǎng)e人訪問你的文件冃錄,一定要有X的權(quán)限!因?yàn)闆]有x權(quán)限,那么任何命令都不能執(zhí)行,包括cd

Is等,所以也無從訪問目錄。如果只有x,沒有r會(huì)怎樣?如何改變文件權(quán)限改變權(quán)限命令:chmod-可以通過符號(hào)類型改變文件權(quán)限,因?yàn)槿讓傩苑謩e是針對(duì)user

(所有者)、group

(組)、others(其他人)的,所以就可以分別用u

g。來代表三個(gè)對(duì)象,

a代表all,chmod也可以這樣用:』U

川川入)

r

Uchmod

"1

8

"/V:(除去)iQWlE

°

=(設(shè)定)x

"十舉例(a.txt開始是-rw-rw-r-):chmod

u-r3g+x,o=w

a.txt

chmoda+r

a.txt

chmod

ua+w

a.txtLinux支持的文件系統(tǒng)與文件.文件系統(tǒng)-如果內(nèi)核不支持文件系統(tǒng),那么就無法訪問?早期的DOS訪問不了FAT32Windows98

訪問不了NTFS-Linux的正統(tǒng)文作格式是ext2/ext3,較新的Linux版本都只支持ext3,因?yàn)閑xt3具有更好的速度、町用性和數(shù)據(jù)完整性。_-Linux支持的文件格式包括VFAT

FAT/FAT32,有些發(fā)行版本也支持NTFS,査看某個(gè)Linux支持的文件系統(tǒng)可以訪問:cd

/lib/modules/"uname

-r"/kernel/fsLinux支持的文件系統(tǒng)與文件Linux文件的后綴名GUI系統(tǒng)可以通過文件后綴名(擴(kuò)展名)來選擇打開文件 的軟件,這一點(diǎn)與Windows相同Windows下面的可執(zhí)行文件是通過后綴名來定的,通常是. exe.bat.com等,Linux下面文件是否可執(zhí)行是由有無 屬性x決定的Linux下面的常見后綴名:*.sh代表批處理文件(腳本)*.pl代表Perl腳本文件*.Z,*.tar,*.tar.gz,*.zip,*.tgz

等表示各種壓縮文件.*.html網(wǎng)頁文件Linux支持的文件格式與文件種類.文件種類-如果內(nèi)核不支持文件系統(tǒng),那么就無法訪問?早期的DOS訪問不了FAT32Windows98

訪問不了NTFS-Linux的正統(tǒng)文作格式是ext2/ext3,較新的Linux版本都只支持ext3,因?yàn)閑xt3具有更好的速度、町用性和數(shù)據(jù)完整性。_-Linux支持的文件格式包括VFAT

FAT/FAT32,有些發(fā)行版本也支持NTFS,査看某個(gè)Linux支持的文件系統(tǒng)可以訪問:cd

/lib/modules/"uname

-r"/kernel/fsLinux支持的文件格式與文件種類目錄結(jié)構(gòu)(1/9)Linux支持的文件格式與文件種類.目錄結(jié)構(gòu)(2/9)-/bin這里存放例如Is,mv,rm,mkdir,rmdir,gzip,tar,telnet及ftp等等常用的執(zhí)行文件的地方,有時(shí)候這個(gè)冃錄的內(nèi)容與/usr/bin-樣(常使用鏈接文件),專門用于放置一般用戶使用的執(zhí)行程序(為得到最小的系統(tǒng)操作性所需要的命谷)。-/boot這是放置Linux內(nèi)核與啟動(dòng)相關(guān)文件的地方,這個(gè)目錄底下的vmlinuz-xxx就是Linux的Kernel□如果引導(dǎo)加載程序選擇grub的話,那么這個(gè)目錄內(nèi)還有/boot/grub這個(gè)子H

錄。Linux支持的文件格式與文件種類.目錄結(jié)構(gòu)(3/9)/dev存放與設(shè)備有關(guān)的文件,Unix/Linux系統(tǒng)均把設(shè)備當(dāng)成是文件來看待,例如/dev/fd0代表軟盤,就像Windows系統(tǒng)下的AIX,Wdev/cdrom則代表光盤。這個(gè)目錄底下的

文件通常分為兩種,分別是管理磁盤I/O的塊文件和串行設(shè)備的字符文件。-/etc系統(tǒng)在引導(dǎo)過程中需要讀取的文件均在這個(gè)目錄中,例如

LILO的參數(shù)、用戶賬號(hào)與密碼、你所要啟動(dòng)的服務(wù)項(xiàng)等都在這個(gè)目錄中。/etc/rc.d這個(gè)目錄主要存放開關(guān)機(jī)過程中用到的腳本文件。/etc/rc.d/init.d所有服務(wù)默認(rèn)的啟動(dòng)腳本文件都是放在這里。Linux支持的文件格式與文件種類.目錄結(jié)構(gòu)(4/9)-

/etc/xinetd.d這個(gè)路徑在較新的Linux

distribution當(dāng)中才有。早期的版本用來啟動(dòng)服務(wù)的文件是inetd.conf,在較新的版本中,啟動(dòng)服務(wù)已經(jīng)變成使用xinetd.conf文件。如果需要啟動(dòng)一些額外的服務(wù)的話(如CVS),需要在/etc/xinetd.d這個(gè)目錄下進(jìn)行配置。-/etc/X11與X

Windows有關(guān)的配置文件所在的目錄,如配置分辨率、刷新頻率等?!?/p>

/home這是系統(tǒng)默認(rèn)的用戶根目錄(home

directory),新增用戶時(shí)默認(rèn)會(huì)在/home下建立與用戶名同名的子目錄。Linux支持的文件格式與文件種類目錄結(jié)構(gòu)(5/9)/lib在Linux中執(zhí)行或編譯一些程序的時(shí)候,均會(huì)使用到一些函式庫(library),就在這個(gè)冃錄下。-/lost+found系統(tǒng)發(fā)生異常/錯(cuò)誤時(shí),會(huì)將一些遺失的片段放置于此日 錄下,通常這個(gè)目錄會(huì)自動(dòng)出現(xiàn)在設(shè)備目錄下。例如你 在/disk中增加一塊硬盤,那在這個(gè)目錄下就會(huì)自動(dòng)產(chǎn)生 一個(gè)這樣的目錄/disk/lost+found—

/mnt這是軟盤和光盤或者其他外部I/O設(shè)備默認(rèn)的掛載點(diǎn),通常軟盤掛在/mnt/floppy下,而光盤掛在/mnt/cdrom

Fo不過,這只是默認(rèn)情況而已,用戶完全可以控制掛載到如何喜歡的目錄。Linux支持的文件格式與文件種類.目錄結(jié)構(gòu)(6/9)/proc用于放置系統(tǒng)核心與執(zhí)行程序所需的一些信息。這個(gè)目錄將在啟動(dòng)的時(shí)候自動(dòng)的被掛上,而且該目錄底下不會(huì)占去硬盤空間!因?yàn)槔锩娑际莾?nèi)存內(nèi)的數(shù)據(jù)。-/root系統(tǒng)管理員的根目錄-/sbin放置系統(tǒng)管理常用的程序,例如:fdisk,mke2fs3fsck,mkswap,mount等。與/bin不太一樣的地方,這個(gè)目錄下的程序通常是給root等系統(tǒng)管理員使用的程序。/tmp存放臨時(shí)文件的地方,重新引導(dǎo)后刪除。/va「/tmp下面的東西在重新引導(dǎo)之后都不刪除。Linux支持的文件格式與文件種類.目錄結(jié)構(gòu)(7/9)-

/usr非常重要的一個(gè)目錄,存放應(yīng)用程序與命令,類似于Windows的“Program

Files"-/usr/include程序用到的頭文件,通常在編譯時(shí)需要。-/usr/lib應(yīng)用程序需要的函數(shù)庫。-/usr/local升級(jí)后的軟件默認(rèn)安裝目錄,通常新安裝的軟件,其執(zhí)行文件在/usr/local/bin中,原來安裝的就在/binLinux支持的文件格式與文件種類.目錄結(jié)構(gòu)(8/9)-

/usr/share/doc放置一些系統(tǒng)說明文件的地方,例如如果安裝了grub,那么其下必然有g(shù)rub相關(guān)的冃錄,從中可以找到說明文檔。操作實(shí)例:[root@hexy

doc]#cd

"find

/usr/share/doc

-name

“grub*”[root@hexy

grub-0.97]#

IsAUTHORS

ChangeLog

COPYING

menu.lst

NEWSREADME

TODO[root@hexy

grub-0.97]#more

menu.lst

輸入/OS查詢grub中關(guān)于啟動(dòng)OS/2的配置-實(shí)驗(yàn)操作Linux支持的文件格式與文件種類.目錄結(jié)構(gòu)(9/9)-

/usr/share/man放置一些程序的說明文件的地方,就是使用man的時(shí)候,會(huì)去查詢的路徑。例如你使用man

Is這個(gè)指令時(shí),就會(huì)查出/usr/share/man/man1/ls.1

,bz2

(也可能是Is.I.gz)這個(gè)說明文件的內(nèi)容。-

/usr/src放置內(nèi)核源碼的默認(rèn)目錄,在編譯內(nèi)核的時(shí)候需要-/usr/X11R6放置X

Window系統(tǒng)文件的目錄,一般包括lib和bin兩個(gè)了目錄-

/var用于存儲(chǔ)各種快速增長或者變化的東西,如所有服務(wù)的登錄文件或者錯(cuò)誤口志都放在/va「/log下,用戶未讀郵件默認(rèn)存放地點(diǎn)是/var/spool/mail路徑與目錄相對(duì)路徑與絕對(duì)路徑-絕對(duì)路徑的寫法一定以“/”開始,例如/usr/share/doc-相對(duì)路徑的寫法不從開始,例如share/doc,

./share/doc,

../usr/share/doc-兒個(gè)特殊符號(hào)?代表當(dāng)前路徑.?代表上層目錄?代表用戶根目錄-user代表user的根目錄-系統(tǒng)登錄時(shí)候,用戶會(huì)自動(dòng)跳轉(zhuǎn)到其Home目錄,root用戶的Home是/root,其他用戶user的默認(rèn)Home

冃錄是/home/user路徑與目錄.改變當(dāng)前路徑的命令:cd-語法:cd

[相對(duì)路徑或絕對(duì)路徑]-舉例:cd

..cd

../homev=二回到上一層目錄

v==相對(duì)路徑的寫法cd

/var/www/html

v==絕對(duì)路徑的寫法cd v=回到使用者的Home目錄cd?

v=回到使用者的Home目錄cd?test

<==0到test這個(gè)用戶的Home目錄-顯示當(dāng)前路徑的命令:pwd相對(duì)路徑容易混淆,可以用pwd打印絕對(duì)路徑來確認(rèn)路徑與目錄建立目錄的命令:mkdir-語法:mkdir[-mp][目錄名稱]_?m選項(xiàng)可以改變默認(rèn)的文件屬性-P選項(xiàng)用于創(chuàng)建需要的目錄結(jié)構(gòu)m和p同時(shí)使用,則僅控制最后一個(gè)目錄的屬性-實(shí)驗(yàn):mkdir

t1/a在t1下建立子目錄a,如果t1不存在則報(bào)錯(cuò),目錄屬性默認(rèn)值一般為775

(參見第四講umask)mkdir-p

a/b/c創(chuàng)建目錄樹結(jié)構(gòu),如果沒有則創(chuàng)建,有則沉默mkdir-m

770

bb新建目錄bb,屬性設(shè)置為770路徑與目錄刪除目錄的命令:rmdir-語法:rmdir[?pv][目錄名稱]-P選項(xiàng)用于刪除整個(gè)目錄結(jié)構(gòu)-V選項(xiàng)用于顯式詳細(xì)信息一定要確保目錄非空,否則要報(bào)錯(cuò)刪除非空的目錄可以用「m命令-實(shí)驗(yàn):rmdir

aa/bb/cc刪除aa/bb0錄下的子目錄cc,

aa/bb保留

rmdir-pv

aa/bb/cc刪除aa/bb/cc整個(gè)目錄樹,顯示刪除的每一個(gè)目錄路徑與目錄環(huán)境變量:PATH

(1/2)-系統(tǒng)執(zhí)行命令時(shí),會(huì)到PATH環(huán)境變量里面的所有路徑進(jìn)行理索,首先搜索到的命令被執(zhí)行,如果找不到則顯示u

command

not

found"-用echo命令打印變量的值-語法:echo

$變量名稱舉例:echo

SPATHecho

java

home

is

:

$JAVA_HOME路徑與目錄環(huán)境變量:PATH

(2/2)-解決“command

not

found"的辦法?把新的路徑加入到PATH中,例如:exportPATH=$PATH:/home/hexy/hexybin

?直接使用

命令的絕對(duì)路徑,例如:/home/hexy/hexybin/test./Is-PATH里面一般不要加入./tmp的屬性一般是777

(使用命令I(lǐng)s-Id

/tmp查看),惡意代碼容易置入如果PATH里面加入?,并且惡意代碼的名稱是Is你在/tmp

F面執(zhí)行Is命令查看文件情況中標(biāo)!文件與目錄管理顯示屬性命令:Is-語法:Is[-aABdIS][路徑…]-參數(shù)說明:a全部的文件都列出(包括隱藏文件)

A忽略當(dāng)前路徑和上級(jí)路徑B忽略備份文件(以?結(jié)尾)I

一行一個(gè)文件,包含幾乎全部屬性S以文件大小排序d只顯示目錄的屬性,而不是路徑下的文件-color=never

不要顯示顏色-color=always

均顯示顏色~color=auto

由系統(tǒng)自行判斷文件與目錄管理.顯示屬性命令:Is

-實(shí)驗(yàn)-cd-Is-Is

-al-Is

-ABI-Is

-aid

/tmp

/proc

-Is

-color=never文件與目錄管理.拷貝命令:cp-語法:cp

[?iruv][源文件][目標(biāo)文件]-參數(shù)說明:-i在文件覆蓋之前顯示確認(rèn)信息.r拷貝整個(gè)目錄結(jié)構(gòu)-u,-update:如果源文件比較新,或者是沒有目標(biāo)文件,那么才會(huì)進(jìn)行copy的動(dòng)作,可用于備份。-V顯示詳細(xì)信息告訴用戶當(dāng)前執(zhí)行的動(dòng)作文件與目錄管理.拷貝命令:cp-實(shí)驗(yàn)cp

~/test/a.txt

/tmpcp

~/test/a.txt

/tmp/b.txt

cp

-i

~/test/a.txt

/tmp/b.txtcp

-rv

-/test

/tmp

cp

-ruv~/test

/tmp

echo

aabbcc?a.txt

cp

-ruv

~/test

/tmp文件與目錄管理.刪除命令:rm-語法:-rm[?firv][文件名稱]-參數(shù)說明:-i刪除前讓用戶確認(rèn),文件刪除時(shí)這是默認(rèn)值,如果使用遞歸刪除則不是默認(rèn)值。-r遞歸刪除?f強(qiáng)制刪除,忽略掉不存在的文件,且刪除前不需要用戶確認(rèn)-V顯示當(dāng)前操作的詳細(xì)信息文件與目錄管理.刪除命令:rm-實(shí)驗(yàn):

rm

arm

arm-f

arm

-i

a.txtrm

-r

t1rm

-rvf

b-問題:如何刪除“■”開頭的文件?rm

■■

-foorm

./-foo文件與目錄管理.移動(dòng)文件命令:mv-語法:-mv

[-fiuv][源文件][目標(biāo)文件]-參數(shù)說明:?f覆蓋文件前不需要用戶確認(rèn)?i覆蓋文件前讓用戶確認(rèn)-u當(dāng)源文件比目標(biāo)文件新或者目標(biāo)文件不存在的時(shí)候才會(huì)執(zhí)行動(dòng)作--V顯示當(dāng)前操作的詳細(xì)信息文件與目錄管理.移動(dòng)文件命令:mv

-實(shí)驗(yàn):cp

a.txt

aa.txt

mvaa.txt

/tmp

mv/tmp/aa.txt

b.t2

mv

-ib.txt

/tmp/aa.txt

mv

-uv

a

/tmp小結(jié)文件屬性chgrp

chown

chmod.Linux的目錄結(jié)構(gòu)cd

pwd

mkdir

rmdirIs

cp

rm

mvvi文本編輯器.Linux/Unix下的配置文件都是文本文件.vi是使用最廣泛的編輯器vi分為三種工作模式:-一般模式-編輯模式-命令模式vi文本編輯器vi的一般模式:-以vi處理一個(gè)文件的時(shí)候,一進(jìn)入該文件就是一般模式了(vi命令啟動(dòng)后的默認(rèn)狀態(tài))。在這個(gè)模氏中,可以使用上下左右鍵來移動(dòng)光標(biāo),也可以使用刪除字符或刪除整行來處理文件內(nèi)容,也可以使用宣制、籍貼。.vi的編輯模式:-在一般模式中可以處理刪除、復(fù)制、粘貼等動(dòng)作,但是卻無法編輯。-按下i丄0,0,a,A等字母之后才會(huì)進(jìn)入編輯模式,進(jìn)入該模式后,左下方會(huì)岀現(xiàn)INSERT或pppi

笙卓樣-按下ESC就可以曲到一般模式vi文本編輯器.Vi的進(jìn)入編輯模式的命令詳解i從光標(biāo)所在位置前開始插入文本I將光標(biāo)移到當(dāng)前行行首,然后在其前插入文本a用于在當(dāng)前光標(biāo)位置之后插入文本A把光標(biāo)移到行尾,從那里開始插入文本-。在光標(biāo)所在行的屈新開一行,并將光標(biāo)置于新行行首,等待輸入文本-0在光標(biāo)所在行的上面新開一行,并將光標(biāo)置于新行行首,等待輸入文本vi文本編輯器.vi的命令模式-在一般模式當(dāng)中,輸入:或/就可以將光標(biāo)移動(dòng)到最底下那一行,從而進(jìn)入命令模式。-在這個(gè)模式當(dāng)中,可以進(jìn)行搜索、保存、退出、讀取另外一個(gè)文件、顯示行號(hào)等動(dòng)作。vi文本編輯器編輯模式輸入字符命令模式圖解vi的三種模式I

0

a號(hào)戶勺取存涓讀保顯CSECSE式模般標(biāo)換料替動(dòng)找除制貼移查刪復(fù)粘vi文本編輯器vi的舉例:輸入vi

test.txt按下i,進(jìn)入編輯模式輸入hello按卜Esc進(jìn)入一般模式輸入:wq冋車保存退出vi文本編輯器.Vi一般模式下常用命令(1/3):hj

kl用于光標(biāo)左移、下移、上移、右移[Ctrl]+[f]屏卻向前移動(dòng)一頁

[Ctrl]+[b]屏昴冋后移動(dòng)一貝0$GnG移到行的第一個(gè)字符處移到行的最后一個(gè)字符處移到文件的最后一行移動(dòng)到文件的第n行n<Enter>光標(biāo)向下移動(dòng)n行nH

光標(biāo)移到當(dāng)前屏幕的第n行行首vi文本編輯器.Vi一般模式下常用命令(2/3):

x向后刪除一個(gè)字符nx

向后刪除n個(gè)字符X

向前刪除一個(gè)字符dd刪除光標(biāo)所在的行ndd刪除光標(biāo)所在行的向后n行yy復(fù)制光標(biāo)所在行nyy復(fù)制光標(biāo)所在行的向后n行p粘貼到光標(biāo)的下一行P粘貼到光標(biāo)的上一行vi文本編輯器Vi一般模式下常用命令(3/3):/word在光標(biāo)之后査找word?word在光標(biāo)之前査找wordn

向相同的方向移動(dòng)到有wo

rd的地方N

向相反的方向移動(dòng)到有word的地方u

撤銷上次操作.重做ZZ

存盤退出ZQ

不保存退出vi文本編輯器.Vi命令模式下常用命令(1/3)::n

跳到第n行:q

退出,如果有修改沒有保存會(huì)提示:wq

存盤退出:q!

不保存退出:W

存盤:w

file:r

file將當(dāng)前編輯內(nèi)容保存到file讀取另外一個(gè)文件file的數(shù)據(jù),插入到光標(biāo)所在行的后面:f

newfile將當(dāng)前文件重命名到newfile

(別忘了保存)vi文本編輯器.Vi命令模式下常用命令(2/3)::n1,

n2s/word

1

/word2/g在第n1與n2行之間尋找wordl這個(gè)字符申,并將該字符串替換為word2:1

,$s/word1/word2/g從第一行到最后一行尋找wordl字符串,并將該字符串替換為word2

(.可以表示當(dāng)前行,$可以表示最后一行):1

,$s/word1/word2/gc從第一行到最后一行尋找W0「d1字符串,并將該字符串替換為word2e且在替換前顯示提示字符給使用者確認(rèn)。vi文本編輯器顯示行號(hào)隱藏行號(hào)第n1行到n2行的內(nèi)容移動(dòng)到n3后刪除第n1行到n2行的內(nèi)容運(yùn)行Shell命令Cmd將命令行運(yùn)行的結(jié)果寫入當(dāng)前位置將第n

1行至U

n

2行的內(nèi)容作為的輸入運(yùn)行命令,如果沒有和n2,則將整個(gè)文件作為vi命令模式下常用命令(3/3)::n1,n2

co

n3第n1行到n2行的內(nèi)容拷貝到n3后:n1,n2

m

n3:n1,n2

d:!Cmd:r

!Cmd:n1,n2

w

!CmdCmd

指定n1

輸入。:set

nu:set

nonuvi文本編輯器.vi練習(xí):-將/etc/man.config拷貝到當(dāng)前目錄,用vi打開-顯示行號(hào),并移動(dòng)到第62行查看內(nèi)容-移動(dòng)到第一行,并且向下搜尋一下man-將50至U100行之間的man改為MAN,并且一個(gè)一個(gè)挑選是否需要修改-修改完之后,突然反悔了,全部復(fù)原-復(fù)制51到60行這十行的內(nèi)容,并且貼到最后一行之后-刪除11到30行之間的20行-將這個(gè)文件另存成man.test.config-保存退出什么是Shell?想要聽音樂需要什么?_首先需要聲卡-操作系統(tǒng)的核心可以支持這個(gè)聲卡(有相應(yīng)的聲卡驅(qū)動(dòng)程序)-用戶發(fā)出播放音樂的指令必須發(fā)出指令,硬件才會(huì)工作。如果可以直接同

硬件溝通,八那么不需要內(nèi)核《否則,用戶的指

令必須先發(fā)送給內(nèi)核,然后內(nèi)核再去控制硬彳牛。

shell正是用戶烏內(nèi)核溝通的平臺(tái):-用戶可以通過shell給內(nèi)核發(fā)送指令-內(nèi)核也可以把指令執(zhí)行的過程或者結(jié)果信息發(fā)送到shell給用戶看。什么是Shell?來自第一講的圖:用戶外殼(Shell,KDE,Application)內(nèi)核(Kernel)硬件(Hardware)什么是Shell?想要聽音樂需要什么?_首先需要聲卡-操作系統(tǒng)的核心可以支持這個(gè)聲卡(有相應(yīng)的聲卡驅(qū)動(dòng)程序)-用戶發(fā)出播放音樂的指令必須發(fā)出指令,硬件才會(huì)工作。如果可以直接同

硬件溝通,八那么不需要內(nèi)核《否則,用戶的指

令必須先發(fā)送給內(nèi)核,然后內(nèi)核再去控制硬彳牛。

shell正是用戶烏內(nèi)核溝通的平臺(tái):-用戶可以通過shell給內(nèi)核發(fā)送指令-內(nèi)核也可以把指令執(zhí)行的過程或者結(jié)果信息發(fā)送到shell給用戶看。BASH

Shell早年的Unix年代,Unix發(fā)展者眾多,所以shell有 很多不同版本,例如常聽到的Bourne

Shell(sh) 、在Sun中默認(rèn)的C

ShelL商業(yè)上常用的KSHell 以及TCSH等,每一種Shell都各有其特點(diǎn)。.Linux

使用的是Bourne

Again

Shell

(簡稱bash),這個(gè)Shell是Bourne

Shell的增強(qiáng)版本,也是基

于GNU的架構(gòu)下發(fā)展出來的。BASH

Shell第一個(gè)流行的shell是由Steven

Bourne開發(fā)出

來的,為了紀(jì)念他所以就稱為Bourne

shell,或 直接簡稱為sh。另一個(gè)廣為流傳的shell是由柏克萊大學(xué)的Bill Joy設(shè)計(jì)依賴于BSD版的Unix系統(tǒng)中的shell,這 個(gè)shell的語法有點(diǎn)類似C語言,所以才得名為Cshell/*簡稱cshQo^jn

COITIBASH

shell是GNU計(jì)劃中重要的工具軟件之一,目前也是GNU操作系統(tǒng)中標(biāo)準(zhǔn)的shell,與sh兼容。BASH

ShellBASH

Shell的特點(diǎn)(1/5):-命令記憶能力

Linux可以記憶以前輸入過的命令,只要使用上下鍵就可以找到以前執(zhí)行的指令來執(zhí)行。這些命令按照先后順序記錄在用戶Home目錄下的隱藏文 件.bash_history

中.bashhistory里而記錄了上一次登錄以前執(zhí)行過的命令,本次登錄執(zhí)行的命令都保存在內(nèi)存中,只有成功注銷之后,內(nèi)存數(shù)據(jù)才會(huì)刷新到.bash_history文件中有時(shí)候.bash_history文件中記錄了你包含祎指令屮的密 碼,可能引起安全向題(如sqlplus

sys/abcdefg

as

_ sysdba),所以最好還是設(shè)置命令的記錄數(shù)量不要太±0BASH

ShellBASH

Shell的特點(diǎn)(2/5):-命令補(bǔ)全補(bǔ)全功能.如果在執(zhí)行命令的時(shí)候不想按下太多的找鍵(例如命令pcprofiledump),在輸入了pcprofile

之后,再按下[Tab]鍵的話,那么bash馬上會(huì)自動(dòng)的將后面的dump

接上來。如果有重復(fù)的命令,那么按下兩次[Tab]將會(huì)把所有 重復(fù)的命令列出來。直接在提示字符后面連按兩次<tab>鍵,則系統(tǒng)會(huì)將所有 可以使用的命令都列出來。例如,如果想要知道冃前系統(tǒng)里面,所有以b開頭的命 令呢?就是按下b之后,連按兩次<tab>就ok。BASH

ShellBASH

Shell的特點(diǎn)(3/5):-文件名稱補(bǔ)全功能.如果用vi來讀取某個(gè)文件,例如/etc/man.config這個(gè)文件,那么可以輸入vi

/etc/man之后,直接按下vtab>鍵,該文件名稱就會(huì)被自動(dòng)的補(bǔ)上。同樣,岀現(xiàn)文件多個(gè)匹配項(xiàng)時(shí),可以按下兩個(gè)TAB鍵來 顯示所有匹配項(xiàng)。這樣大大增加了指令輸入的正確率。BASH

ShellBASH

Shell的特點(diǎn)(4/5):-命令別名設(shè)置功能假如我需要知道某個(gè)日錄底下的所有文件信息(包含隱 藏文件)及所有的文件屬性,那么我就必須要輸入Is?al 這樣的指令。每次都輸入多麻煩!可以通過為自己經(jīng)常使用的命令(包括參數(shù))定義別名 來避免過多輸入。例如:alias

Im-ls-al"(注意=兩邊不要有空格)那么以后Im就等于執(zhí)行Is-al

_直接輸入alias,可以顯示目前以及定義好的所有別名BASH

ShellBASH

Shell的特點(diǎn)(5/5):-任務(wù)控制,前臺(tái)、背景控制bg

fgCtrl+ZCtrl+C-

Shell

scripts變量與變量設(shè)置變量(1/2):-假設(shè)JAVA安裝在/usr/jdk1.5下面-其他很多程序(比如應(yīng)用服務(wù)器)的執(zhí)行都需要JRE,這些服務(wù)的啟動(dòng)可能形如:/usr/jdk1.5/bin/java

com.bea.WebLogicStart/usr/jdk1.5/bin/java

com.bea.EJBContainer/usr/jdk1.5/bin/java

com.bea.WebContainer-那么假如JAVA換了其他目錄,或者要使用其他版本(如jdk1.5->jdk6.0)呢?變量與變量設(shè)置變量(2/2):-通常的做法是定義變量,如:JAVA_HOME=/usr/jdk1.5-那么其他程序都用變量,而不用絕對(duì)值,如:$JAVA_HOME/bin/java

com.bea.WebLogicStart$JAVA_HOME/bin/java

com.bea.EJBContainer$JAVA_HOME/bin/java

com.bea.WebContainer

-那么假如JAVA換了其他目錄,或者要使用其他版本(如

jdk1.5-?>jdk6.0),那么只需要修改變量的值即可:JAVA_HOME=/usr/jdk6.0變量就是特定字符串值的別名變量與變量設(shè)置顯示變量值的命令:echo-用法:echo

$variable

-例如:

echo$PATH

echo

$HOME

echo

$MAILecho

$USER

echo

$HOSTNAME

_查看所冇Linux預(yù)定義變量的命令:env變量與變量設(shè)置重要的系統(tǒng)環(huán)境變量:HISTSIZE=1000

v二二當(dāng)前命令記憶數(shù)量

HOME=/home/test

v=二登錄用戶的Home

目錄

HOSTNAME二

v二二主機(jī)名稱

HOSTTYPE=i386

v=主機(jī)CPU等級(jí)(i386,i686...)LANGUAGE=zh_CN.UTF-8

v=默認(rèn)語言,要修改它可以修改/etc/sysco

nfig/i

18

n文件

MAIL=/var/spool/mail/root<==郵祥目錄LOGNAME=root

v二二登錄帳號(hào)PWD=/root

v==當(dāng)前路徑PS1=[\u@\h

\W]$

v==命令行提示符樣式變量與變量設(shè)置顯示所有變量的命令:set-set除了會(huì)顯示出目前的環(huán)境變量之外,也會(huì)顯示出用戶自定義變量。常見的用戶自定義變量有:BASH=/bin/bash<=BASH主程序所在路徑COLORS習(xí)etc/DIR_COLORS<=使用顏色COLUMNS=100<=終端的字符列數(shù)HISTFILE=/home/vbird/.bash_history

v=歷史命令文件MAILCHECK=60

v=每隔60S檢查一次郵PPID=24572

v二當(dāng)前bash

父進(jìn)程IDUID=500 v=當(dāng)前用戶的UID$ v=當(dāng)而shell的PID?v=最后一個(gè)命令的返回值,0表示成功,否則為1變量設(shè)置規(guī)則變量設(shè)置規(guī)則(1/2)-變量與變量內(nèi)容(值)用等號(hào)連接-等號(hào)兩邊不能直接接空格符-變量名稱只能是英文字母與數(shù)字,但是數(shù)字不能是開頭字符-若有空格符可以使用雙引號(hào)或單引號(hào)來將變量內(nèi)容括起來。注意:雙引號(hào)內(nèi)的特殊字符可以保有變量特性,但是單引

號(hào)內(nèi)的特殊字符則僅為一般字符-必要時(shí)需要轉(zhuǎn)義字符“\”來將特殊符號(hào)(如回車換行,$,\,空格符,單引號(hào)等)變成一般符號(hào)變量設(shè)置規(guī)則變量設(shè)置規(guī)則(2/2)-在命令中,如果需要其他命令的執(zhí)行結(jié)果信息,可以使用"command-若該變量為擴(kuò)增變量內(nèi)容時(shí),則需以雙引號(hào)(有些版本也不用)及$變量名稱(如:”$PATH”:/home)繼續(xù)累加內(nèi)容-若該變量需要在其它子程序執(zhí)行,則需要以export

來使變量生效,如export

PATH-通常大寫字符為系統(tǒng)變量,自定義變量可以使用小寫字符,方便區(qū)別(只是建議)-取消變量的方法為:unset變量名稱變量設(shè)置規(guī)則變量設(shè)置實(shí)戰(zhàn)(1/3)12name=VBrid

V==錯(cuò)誤!變量開頭不能是數(shù)字name=VBirdv==錯(cuò)誤!等號(hào)兩邊不能直接接空格name=VBirdv=正確!echo

$name顯示VBirdname=VBird

nameV*昔!帶空格需要加上雙引號(hào)!name=HVBird

name"V二正確!name="VBird,s

name"V==正確!變量設(shè)置規(guī)則變量設(shè)置實(shí)戰(zhàn)(2/3)aa=hexy

name=$aaisme v=達(dá)不到累加的效果,name與變量aaisme同值

name="$name"ismev==正確!echo

$name

顯示VBird"s

nameismePATH="$PATH":/home/testv=正確的!echo

$PATH將多了一段PATH="$PATH:/home/testn

_v==正確!這個(gè)形式對(duì)于PATH來說也是正確的變量設(shè)置規(guī)則變量設(shè)置實(shí)戰(zhàn)(3/3)[hexy@hexy

~]$ aa="abcd"[hexy@hexy~j$

bb="$aaHaabb

[hexy@hexy?j$

cc="$aa,aabb問題:現(xiàn)在aa

bb

cc的值是多少?

abedabedaabbSaaaabb變量設(shè)置規(guī)則export

命令-讓“局部變量"變成“全局變量”,這樣shell設(shè)置的變量在其子shell中同樣有效。但是不能跨越當(dāng)前會(huì)話-舉例:name=hexy

bash v==進(jìn)入子shellv=退出子shell<==3

入子shellecho

$name

v==顯示空exitexport

name

v=導(dǎo)出bashecho

$name

v=顯示hexy命令別名與歷史設(shè)置別名的命令:alias-可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論