LINUX培訓(xùn)實驗手冊_第1頁
LINUX培訓(xùn)實驗手冊_第2頁
LINUX培訓(xùn)實驗手冊_第3頁
LINUX培訓(xùn)實驗手冊_第4頁
LINUX培訓(xùn)實驗手冊_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

RedHatEnterprise

Linux5

基礎(chǔ)實驗

指南

實驗手冊目錄

RH033課程部分封面

任務(wù)11.0

如何切換使用Linux的控制臺1.1

在一個控制臺中使用startx

如何了解到其他用戶的信息1.2

如何修改自己的密碼13

如何切換到其他用戶1.4

任務(wù)22.0

查看Linux命令集幫助2.1

如何獲得mount

如何區(qū)分命令,參數(shù)和選項2.2

請敘述man手冊的1到8各自的幫助類型2.3

man5sysctlman8sysctlman2

任務(wù)33.0

請描述Linux下常用目錄以及目錄使用過程中注意事項3.1

如何快速切換到用戶主目錄3.2

能否不用切換到指定目錄而去查看目錄中的內(nèi)容3.3

請列舉五個以上描述/usr/bin和/sbin兩個目錄下的命令3.4

如何查看文件存放的節(jié)點位置3.5

如何查看叫文件3.6

如何列舉文件夾并按時間做排序3.7

如何查看/etc/文件夾本身的長格式信息3.8

什么情況下使用相對路徑和絕對路徑3.9

拷貝/etc/Ts開頭的conf文件到root主目錄中3.10

移動文件root主目錄中文件到/tmp目錄中3.11

如何快速建立一個6級的目錄夾3.12

使用rmdir和rm命令刪除空目錄和刪除有文件的目錄有什么不同3.13

任務(wù)44.0

1750權(quán)限設(shè)置給一個目錄夾會如何4.2

觀察chmodu+w,g+x,a-rwx命令改變文件權(quán)限存在什么問題4.3

如何同時修改文件夾的所有者和組4.4

如何手工創(chuàng)建一個用戶帳戶4.5

任務(wù)55.0

如何快速執(zhí)行曾經(jīng)執(zhí)行過的umount指令5.1

RH133課程吾B分封面

任務(wù)11.0

RH253課程部分封面

任務(wù)11.0

RH033課程部分

課程實驗?zāi)康模?/p>

RH033課程為廣大Linux初學(xué)者提供了非常好的入門指南,做為標(biāo)準(zhǔn)RHCE課程的補充,

實驗手冊提供了額外的知識補充,請學(xué)員按照對應(yīng)的章節(jié)先行獨立思考,查找Linux內(nèi)嵌聯(lián)機

文檔,解決實驗中的需求問題。在全部實驗完成后會實現(xiàn)一個非常大的提升。為將來的Linux

職業(yè)生涯奠定堅實的基礎(chǔ)。

1.1Linux提供了多個控制臺,可以提供我們在各個控制臺執(zhí)行不同的操作,那么如何切換使用Linux的控制

臺呢?

提示:Linux默認有6個文本控制臺和一個圖形控制臺,可以使用功能鍵的組合在各個控制臺之間切換

1.2在一個控制臺中使用startx命令不能登錄到圖形的原因是?

提示:請查看提示的錯誤信息,是沒有此命令嗎?

3.7默認文件列舉時按照文件名的首字母做排序,如果想知道最近生成的文件,那么要如何列舉文件夾并按時

間做排序呢?

提示:Is命令參數(shù)中帶有時間的選項,通過manIs杳詢。日期時間格式為

'+%Y-%m-%d%H:%M:%S'

3.7.1查看文件夾文件按時間方式逆序排序

解釋:Is-It默認為升序排序,并且顯示時間中不帶有年份,月信息也是按英文縮寫顯示

提示:查文檔找出reverse(反向)單詞,并找出選項開關(guān)

3.8Is命令提供了我們直看文件夾下的文件信息,但我們想知道文件夾本身的信息,要如何查看/etc/文件

夾本身的長格式信息呢?

提示:蟄文檔找出directory(目錄夾)單詞

目標(biāo):熟悉函數(shù)、語法和一些基本的文件和目錄的控制操作。

練習(xí)有效地組合這些命令完成一般的用戶任務(wù)

試驗的起點:安裝了RedHatLinux可運行系統(tǒng),有一個無特權(quán)用戶student,密碼:student

第一步:目錄和文件組織

場景/情節(jié)

在您的homo目錄下有一系列的文件,您決定到時間整理一下了,您計劃生成一些新的子目錄,然后根據(jù)您的計劃拷貝和移動這些文件到適當(dāng)?shù)哪?/p>

錄:另外,這些文件不是都有用的,有一些是要刪除掉的。

任務(wù):

1.以用戶名student密碼student在ttyl上登陸。

2.在您登陸系統(tǒng)以后,你將進入您的home目錄.你可以使用"打印工作目錄"檢查這一情況

$pwd

/home/student

3.使用如下每條命令檢查您是否還有文件在您的home目錄下:

$ls

$Is-a

$Is-al

為什么第一和第二條命令返回不同的文件數(shù)?

第三條命令返回的在您當(dāng)前的home目錄下最大的文件是多少?

您的home目錄下有子目錄嗎?

4.您現(xiàn)在使用touch為以后的步驟建立文件。這種擴展在接下來的命令中是如何工作的在以后的章

節(jié)中進行討論?,F(xiàn)在,僅僅按照下面的行鍵入就行了(在集合與集合之間使用包括花括號{}和下劃線

的字符)

$touch{report,memo,graph}_{sep,oct,no%dec}_{a,b,c}{l,2,3}

5.使用命令I(lǐng)s檢杳最后一條命令的結(jié)果,你會發(fā)現(xiàn)它在您的home目錄下生成了108個

新的空文件(您不必數(shù))。這些文件代表了您將使用的在這個步驟中的代表的數(shù)據(jù)文件。如果您看不到

這些文件,向教師尋找?guī)椭?,沒有這些文件,該試驗后面的步驟就無法進行。

6.為了組織您的文件,您必須先建立一些新目錄,使用mkdir在您的home目錄中直接

建立一些子目錄:

$mkdira_reports

$mkdirSeptemberOctobernovemberdecember

再使用Is檢杳您的工作。

7.使用如下命令在您的一個新的目錄中生成一些附加子目錄

$cda_reports

為了切換到目錄,接下來:

$mkdirl23

使用Is檢有你的子目錄a.reports下的名為1,2,3的三個新的子目錄。

8.首先把所有帶"b"的報告從home目錄中移出并且按月份分組,先驗證要使用的復(fù)雜的通配符模

式,是個好方法。這樣做以確保它對于正確的文件進行操作。如果你打算使用這種通配符模式,您可以

使用一個無害的命令來替換您的命令。

$cd

$Is-I*dec?b?

你將看到列出了9個"decemberH,"b"文件,把其中的一個移到december目錄中:

$mvgraph_dec_bldecember

用下面的語句移動其余的:

$mv*dec?b?december

列出december目錄的內(nèi)容驗證移動操作是否成功:

$Is-Idecember

total0

-rw-riA/-r-1studentstudent0Sep1817:45graph_dec_bl

-rw-ri/v-r-1studentstudent0Sep1817:45graph_dec_b2

-rw-riA/-r—1studentstudent0Sep1817:45graph_dec_b3

-rw-iw-r—1studentstudent0Sep1817:45memo_dec_bl

-rw-nA/-r—1studentstudent0Sep1817:45memo_dec_b2

-rw-nA/-r—1studentstudent0Sep1817:45memo_dec_b3

-rw-riA/-r—1studentstudent0Sep1817:45report_dec_bl

-rw-riA/-r—1studentstudent0Sep1817:45report_dec_b2

-rw-r^-r-1studentstudent0Sep1817:45report_dec_b3

9.把其余所有帶"b"的報告分別移動到各自對應(yīng)的目錄中:

$mv*oct?b?October

$mv*sep?b?September

10.現(xiàn)在你將把"a"報告收集到它們各自對應(yīng)的目錄中。注意使用~代替"你的home

目錄"。通配符和模式的組合指定了您的home目錄下所有以_al結(jié)尾的文件。

$cda_reports

$mv~/*_al1/

"September""al"文件陳舊并且不再需要,使用echo確定您已經(jīng)建立了一個只匹配該類文件的模

式,然后刪除它們,并且檢直剩下的"al”文件是否正確移動:

$cd1

$echo*sep*

$rm*sep*

$ls

graph_dec_algraph_oct_almemo_nov_alreport_dec_alreport_oct_algraph_nov_al

memo_dec_almemo_oct_alreport_nov_al

11.最后移動"a2"和"a3”報告到各自對應(yīng)的目錄中。為了使過程變得有趣,我們將把

它們移出當(dāng)前目錄,使用相對和絕對的的路徑名。第一步,使用pwd確定當(dāng)前目錄:

$pwd

/home/student/a_reports/l

用echo檢有涉及到"a2”文件的模式,然后使用絕對路徑名:

$echo/home/student/*a2*

$mv/home/student/*a2*/home/student/a_reports/2

即使您當(dāng)前在/home/student/a_reports/1目錄下,也能把文件從/home/student移動到

/home/student/a_reports/2目錄中,因為您指定了文件的路徑名稱(在本例中為絕對路徑名稱)

現(xiàn)在使用相對路徑移動"a3"文件。再一次的,首先確信模式指定的是正確的文件名稱。

$echo../../*a3*

$mv,./../*a3*../3

12.返回您的home目錄,并且使用Is來校驗僅存在該目錄中的文件都是文件(例如:

graph_dec_cl,graph_dec_c2,...)

13.“cl"和"c2"報告文件對于每個月來說都常重要,并且您打算把它們備份到另夕一個目錄:

$mkdir/tmp/archive

$cpreport*[12]/tmp/archive/

另外的,所有的對于十二月份的報告文件應(yīng)該備份到/tmp/archice目錄下面。注意,?i選項使得cp程

序在覆蓋彳土可文件之前進行提示:

$cp-ireport_dec*/tmp/archive/

cp:overwrite7tmp/archive/report_dec_cl'?n

cp:overwrite7tmp/archive/report_dec_c2'?n

14.現(xiàn)在您備份了一些對您重要的"c"文件,您現(xiàn)在要刪除位于您的home目錄下面所有的文件。使

用通配符"*c*"檢查剩下的含有c的文件。您為什么不想執(zhí)行命令rm*c*?

(作為提示:嘗試:歸*c*)

15.刪除您的home目錄下的剩余*c*文件。在發(fā)出一個破壞性的命令之前我們再次使用echo命令。

$echo*c[l-3]

$rm*c[l-3]

$ls

a_reportsdecembernovemberOctoberSeptember

試驗的結(jié)果

一個組織良好的home目錄,文件放置在合理的位置,一些文件備份到了/tmp/archive目錄中

第二步:決定磁盤的使用率

場景/情節(jié)

您想記錄您的系統(tǒng)中的每一個文件系統(tǒng)總共有多少剩余空間。

另外,您想有一個關(guān)于哪些目錄消耗了系統(tǒng)的多數(shù)的空間的列表。

任務(wù)

1.使用df獲取文件系統(tǒng)總的剩余空間,您的輸出應(yīng)該是類似于下面的例子(盡管輸出

依賴于您的特定的安裝,輸出可能不同)

$df

Filesystemlk-blocksUsedAvailableUse%Mountedon

/dev/hdc21412956818097281160209614%/

/dev/hdcl4974388473832819%/boot

none633120633120%/dev/shm

2.注意缺省的命令df操作是以塊為單位報告信息,試用-h,-H選項,則是用"用戶可讀的"形式報告

$df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/hdc213G1.8G11G14%/

/dev/hdcl49M8.7M37M19%/boot

none62M061M0%/dev/shm

$df-H

FilesystemSizeUsedAvailUse%Mountedon

/dev/hdc214G1.9G11G14%/

/dev/hdcl51M9.1M39M19%/boot

none65M064M0%/dev/shm

這兩個開關(guān)有什么不同(使用mandf)?

2.在您的home目錄使用du(磁盤使用率)命令來決定您所有的文件消耗的空間。確保嘗試-h選項獲

得更可讀的輸出。

第三步:檢視文本文件

任務(wù)

1.我們需要一個可供我們工作的文本文件:

$cd

$cp/usr/share/dict/words

2.使用cat顯示文件:

$catwords

Aarhus

Aaron

Ababa

…輸出省略????

Zulu

Zulus

Zurich

3.在這種情況下cat是一個壞的選擇,因為很多輸出快速的滾屏,試用less:

$lesswords

Aarhus

Aaron

Ababa

…輸出省略…

abiding

Abidjan

Abigail

…輸出省略…

使用less的時候,您可以向前翻頁(使用切,向后翻頁(使用空格鍵)在整個輸出中,每次一屏.

4.如果你只需要快速的看看某個文件的最前幾行和最后幾行,你要使用head或者tait

$headwords

Aarhus

Aaron

Ababa

aback

abaft

abandon

abandoned

abandoning

abandonment

abandons

$tailwords

zoologically

zoom

zooms

zoos

Zorn

Zoroaster

Zoroastrian

Zulu

Zulus

Zurich

您可以使用man幫助頁面發(fā)現(xiàn)能使用head和tail中的哪個開關(guān)修改行號或是顯示的行的相關(guān)的位置.

哪個命令你能使用顯示文本的前50行?

哪個命令您能使用顯示文件從第25,000行到結(jié)束的內(nèi)容?

試驗4

用戶信息

估計時間:30分鐘

目標(biāo):臧一些用戶標(biāo)識和帳戶轉(zhuǎn)換基本的控制操作。

試驗的起點:安裝了RedHatLinux可運行系統(tǒng),并且是成功完成試驗系統(tǒng)。有另夕I—個無特權(quán)用

戶visitor,密碼:visitor帳戶的存在。請教師檢杳您的系統(tǒng)中是否已經(jīng)建立這個帳戶。如果這個visitor

用戶帳戶沒有建立,按照以下步驟進行

1,用root帳戶登陸虛擬控制臺。

2.在提示符下鍵入以下命令

#useraddvisitor

3.現(xiàn)在鍵入

#passwdvisitor

Changingpasswordforuservisitor.

Newpassword:{輸入visitor}

BADPASSWORD:itisbasedonadictionaryword

Retypenewpassword:{輸入visitor)

passwd:allauthenticationtokensupdatedsuccessfully.

第一步:本地用戶登陸

任務(wù):

1.完全從工作站中退出。確定您已經(jīng)推出所有虛擬終端和XWindows系統(tǒng)

2.轉(zhuǎn)浜到虛擬終端1(ttyl)通過按:

3.使用密碼redhat進入root帳號登陸您的工作站

4.確定指定的登陸信息,使用下列命令:

#whoami

#groups

#id

檢直這些命令的輸出。

5.獲取工作站當(dāng)前所有登陸者信息,當(dāng)前,應(yīng)該只有一個用戶登陸系統(tǒng),按婦下順序鍵入的命令的輸出

是很有趣的。

#users

#who

#w

檢有這些命令的輸出。

6.轉(zhuǎn)浜到虛擬終端2(tty2)通過按

7.以用戶student,密碼:student登陸你的工作站。

8.獲取指定登陸者的信息,運行下列命令:

$whoami

$groups

$id

檢杳這些命令的輸出。

9.獲取工作站上當(dāng)前所有登陸者的信息:

$users

$who

$w

檢查這些命令的輸出。

10.轉(zhuǎn)換到虛擬終端3(tty3)通過按

11.以用戶visitor,密碼:visitor登陸你的工作站

12.獲取指定登陸者的信息,運行下列命令:

$whoami

$groups

$id

檢查這些命令的輸出。

13.獲取工作站上當(dāng)前所有登陸者的信息:

$users

$who

$w

檢查這些命令的輸出。

步驟2:切換帳戶

彳鎊:

1.按下如下的鍵切換到虛擬終端3(tty3)

2.運行id命令來決定您的用戶信息,pwd來喜愛能使您目前的工作目錄

$id

$pwd

記錄結(jié)果:

id=________________________________

pwd=_______________________________

3.使用su-來切換到root用戶,運行id和pwd來獲取您的當(dāng)前的目錄

$SU-

#id

#pwd

記錄結(jié)果:

id=________________________________

pwd=_______________________________

4.從root帳戶退出,返回到visitor帳戶

#exit

5.使用不含?的su切換到root用戶,運行pwd和id。

$su

#id

#pwd

記錄結(jié)果:

id=___________________________________________

pwd=__________________________________________

為什么和第3步驟的結(jié)果不同呢?

6.登出所有您在這個步驟中本地的和遠程的shell.

試驗6

Linux文件系統(tǒng)的要點

估計時間:90分鐘

目標(biāo):深入了解linux文件系統(tǒng)知識包括創(chuàng)建和使用links使用slocate和find,

歸檔壓縮文件。

試驗的起點:一個RedHatLinux系統(tǒng)。

第一步:創(chuàng)建和使用links

任務(wù):

1.在早些時候的試驗,你已經(jīng)拷貝了一個文件/usr/share/dict/words到你使用的用戶student的主目

錄~/words.在這個案例里,你不需要編輯文件-拷貝一個文件到你的主目錄就可以在試驗的期間使用

To

2.為了要避免原始文件和副本之間的混亂,在student's主目錄中刪除words的副本

$cd

$rmwords

3.雖然你可能沒有在那時了解它,這個文件/usr/share/dict/words的副本實際上是一個軟link。列出內(nèi)

容下面目錄/usr/share/dict的內(nèi)容查看link和它的參數(shù)。

$Is-I/usr/share/dict

total404

-rw-r—r—1rootroot409305Apr310:29linux.words

Irwxrwxrwx1rootroot11Apr2017:33words->linux.words

a.你能告訴我words是一個軟鏈接嗎?

b.為什么words的文件大小是11?

c.words允許所有人訪問。這和linux.v/ords文件用什么沖突?除了root用戶,其他用戶能夠能在

linux.words上面寫數(shù)據(jù)嗎?

4.再一次列出文件,這次顯示相應(yīng)的indeds號。為什么兩個文件會有相同或不同的inodes號?

$Is-I/usr/share/dict

5.現(xiàn)在在你的主目錄中產(chǎn)生兩個的代號和硬鏈接到/usr/share/dict/linux.words:

$In-s/usr/share/dict/linux.wordssoft

$In/usr/share/dict/linux.wordshard

6.測試一下,你新建的鏈接兩者都指到linux.words文件:

$headhardsoft

7.檢直你所有文件的link,然后在下面回答問題:

$Is-ilhardsoft

$stathadsoft

報告文件大小,hard和soft.

被占月的真實的空間,hard_____和soft.

你怎樣解釋這兩個link占用空間的差別。

列出鏈接的記數(shù),hard和soft.

所有權(quán),hard_____和soft.

文件硬鏈接的所有者和root用戶可以完全訪問,其他用戶是只讀權(quán)限。學(xué)生將會可以刪除這個新的文件

嗎?為什么?

8.更多的挑戰(zhàn):如果時間許可,探究一下下面的問題:

a.你能創(chuàng)建一個目標(biāo)文件并不存在的軟連接嗎?看看Is命令的輸出能否給你一些提示。

b.你能創(chuàng)建一個目標(biāo)文件并不存在的軟連接嗎?為什么?

c你能創(chuàng)建一個軟連接的硬連接嗎?當(dāng)你嘗試的時候有什么問題嗎?

d.在創(chuàng)建了幾個硬連接后,你能說出哪個是更加真實的文件嗎?

步驟2:使用find命令

任務(wù):

作為student登錄。設(shè)計完成find命令提出結(jié)果

直看你當(dāng)前的umask.設(shè)計并且運行find命令在每下列各項被描述的結(jié)果指令里。然后寫下提供的空格

里。

你可能需要在在find的manpage里密F找。記得你能用/stringzmanpage里查找。

第一個答案已經(jīng)為你列出。

1.在/var/lib目錄下查找所有文件其所有者是games用戶的文件

$find/var/lib-usergames2>/dev/null

2.在/var目錄下查找所有文件其所有者是root用戶的文件。

3.杳找所有文件其所有者不是root,bin和student用戶并用長格式顯示(如Is-I的顯示結(jié)果)。

4.杳找/usr/bin目錄下所有大小超過一百萬byte的文件并用長格式顯示(如Is-I的顯示結(jié)果)。

5.對/etc/mail目錄下的所有文件使用file命令.

6.查找/tmp目錄下屬于student的所有普通文件,這些文件的修改時間為120分鐘以前,查詢結(jié)果用

長格式顯示(如Is-I的顯示結(jié)果)。

7.對于杳到的上述文件,用-ok選項刪除。

步驟3:歸檔和壓縮

情景/故事:

你的系統(tǒng)上的主硬盤在你使用它的時候有可怕的噪音,但是它上面有有價值的數(shù)據(jù)。自從系統(tǒng)在兩年半

以前備份過,你有決定手動備份少數(shù)幾個你最緊要的文件。那/tmp目錄里諸存在不同的硬盤的分區(qū)上

快懷的分區(qū)這樣你想臨時的把文件備份至J那里。

任務(wù):

1.在/home目錄里,用find命令定位文件所有者是student的文件。然后將其壓縮。

$find/home-userstudent-exectarrvf/tmp/backup.tar{}V

2.保存/etc目錄下的文件到/tmp目錄下:

$tarcvf/tmp/confbackup.tar/etc

3.列出兩個文件的大小

$Is-lh/tmp/*.tar

-rw-rw-r-1studentstudent1.9MOct1723:06/tmp/backup.tar

-rw-r^-r—1studentstudent5.4MOct1800:27/tmp/confbackup.tar

backup.tar文件的大小

confbackup.tar文件的大小

4.使用gzip壓縮你的文檔。然后報告文件的大?。?/p>

$cd/tmp

$gzip-v*.tar

$Is-lh*tar*

-rw-riA/-r—1studentstudent580KOct1723:06backup.tar.gz

-rw-rw-r-1studentstudent913KOct180:27confbackup.tar.gz

backup.tar.gz文件大小為

backup.tar.gz文件的壓縮百分比

confbackup.tar.gz文件大小為

confbackup.tar.gz文件的壓縮百分比

5.先解壓縮bzip2文件然后在壓縮,然后比較新文件的大小:

$gunzip*.gz

$Is-Ih*tar

-rw-rw-r—11studentstudent1.9MOct1723:06backup.tar

-rw-rw-r—11studentstudent5.4MOct1800:27confbackup.tar

$bzip2-v*tar

$Is-Ih*tar

-rw-n/v-r—11studentstudent510KOct1723:06backup.tar.bz2

-rw-n/v-r—

backup.tar.bz2文件大小為

backup.tar.bz2文件的壓縮百分比

confbackup.tar.bz2文件大小為

confbackup.tar.bz2文件的壓縮百分比

6.在傳統(tǒng)UNIX系統(tǒng),

$rmconfbackup.tar.bz2

$tarczftestl.tgz/etc

$tarcjftest2.tbz/etc

$filetest*

testl.tgz:gzipcompresseddata,deflated,lastmodified:WedOct1801:52:112000,os:llnix

test2.tbz:bzip2compresseddata,blocksize=900K

結(jié)果:

你的"重要數(shù)據(jù)"被壓縮備份到/tmp目錄里了。

問題答案2

2.find/var-userroot-groupmail2>/dev/mull

3.find/-not-userroot-not-userbin-not-userstudent-Is2>/dev/null

or

find/!-userroot!-userbin!-userstudent-execIs-Id{}\;2>/dev/null

4.find/usr/bin-size+1000000c-Is2>/dev/null

5.find/etc/maill-execfile{}V2>/dev/null

6.find/tmp-userstudent-and-mmin+120-and-typef-Is2>/dev/null

7.find/tmp-userstudent-and-mmin+120-and-typef-okrm{}V

(end)

試驗7

bashShell

估計時間:45分鐘

目標(biāo):深入了解bashshell,包括創(chuàng)建定制。

試驗的起點:一個RedHatLinux系統(tǒng)。

第一步:使用Aliases

任務(wù):

1.你決定創(chuàng)建一個alias,當(dāng)你使用cis的時候,系統(tǒng)能夠運行clear命令清除你的屏幕。使用student

身份在ttyl登錄,然后輸入下列命令.

$aliascls='clear'

$alias

$cis

2.當(dāng)你重新登錄的時候這個別名就丟失了,確信新的別名在用戶student每次登錄的時候都能夠使用,

可以執(zhí)行一下幾步。

$cd

$vi.bashrc

查找包含下列的文字:#Userspecificaliasesandfunctions添加到你的別名命令行:

aliascls=zclear*

保存并推出。

3.測試你的改變當(dāng)你注銷的時候,重新登錄到ttyl上的時候,試下面的命令:

$alias

$cis

4.現(xiàn)在使用Is的manpage去創(chuàng)建一個叫l(wèi)r的別名利用Is的五個開關(guān)。測試并添加你的別名到.bashrc

中.這個別名能夠:

a)用長格式顯示文件

b)顯示隱含文件

c)給文件分類

d)用相反的順序顯示文件

e)按文件修改時間顯示文件。

目標(biāo):

一條新的清屏命令和一條新的列文件命令。(都是別名)

步驟2:改變你的bash提示

情景/故事:

你決定定制你的bash提示以能夠顯示完全的路徑和命令的序列號。

任務(wù):

5.在終端窗口,顯示當(dāng)前主要提示符的值。

$echo$PS1

6.改變你的提示符為一個字符串。

$PS1='RedHatLinux->/

7.這個不常使用,因此恢復(fù)到有$提示符的情況下,同時加上主機名。

$PS1='\h$'

8.在主機名和$符號之間插入bash表示歷史紀(jì)錄提示符的特殊字符\!。

9.直找bash的man手冊,把當(dāng)前的工作目錄放入提示符中。

10.你定制的提示符顯示實例,如不同請繼續(xù)修改。

stationl:-21$cd/tmp

stationl:/tmp22$

11.編輯你重新定義的PS1到你的.bashrc,然后打開新的終端窗口看看結(jié)果如何.

步驟3:配置shell選項

情景/故事:

使用set和shopt你定制幾個bashshell。

任務(wù):

12以student身份登錄ttyl界面上.查看許多普遍的配置shell選項:

$set-o

allexportoff

braceexpandon

emacson

errexitoff

hashallon

...outputtruncated...

13.察看目前ignoreeof的屬性,用ctrl+d鍵看是否能logout.

14.用student身份在ttyl上登錄,執(zhí)行下面的改變,然后測試ignoreeof選項:

$set-oignoreeof

$

$用"logout”退出shell

$set+oignoreeof

$

15.當(dāng)試圖執(zhí)行命令的時候可以看到提示信息.使用type的命令:

$typecat

catishashed(/bin/cat)

$typecis

cisisaliasedto'clear'

$typeset

shoptisashellbuiltin

$typewhile

whileisashellkeyword

結(jié)果:

現(xiàn)在你有一個更好的shelloptions.

問題答案4:命令替代

1.確定完全路徑名

$whichmetacity

$which.-message

$AmessageAwindow-demo

2.重復(fù)執(zhí)行上一個包含字符串ig的命令:

$ig

3.當(dāng)一個命令在另一個命令的后面用(’’)起來的時候,bash會先執(zhí)行后面的命令并把執(zhí)行的結(jié)果作為

第一個命令的輸入.使用這個技術(shù),看看下面命令的執(zhí)行結(jié)果.

$Is-I'whichnautilus'

(end)

試驗8

定制圖形化界面

估計時間:15分鐘

目標(biāo):探索Redhatliunx多種多樣的圖形化桌面環(huán)境..

試驗的起點:一個RedHatLinux系統(tǒng)。

第一步:定制窗口管理

任務(wù):

1.在你的桌面的左邊點擊RedHat圖標(biāo),選擇"屬性"然后點擊"控制中心".Nautilus將打開顯示的可

以定制你的桌面環(huán)境的窗口.

2.雙擊"背景”圖標(biāo).點擊"選擇圖片"按鈕,可用的圖片在/usr/share/backgrounds下,有一些圖片作為

墻紙很漂亮;你可以在"圖片選項"中選擇居中拉伸.

選擇一個你喜歡的,或者選"沒有圖片"然后你可以使用"背景風(fēng)格"顏色和屬性.當(dāng)你完成的后,關(guān)閉“背

景屬性”對話框.

3.雙擊"鼠標(biāo)”的圖標(biāo),這個參數(shù)面板你能夠調(diào)整雙擊的時間延遲,速度和靈敏度.

假如你伸左撇子,你也可以在這里選擇左收習(xí)慣

當(dāng)完成后選擇關(guān)閉“鼠標(biāo)屬性"對話框.

4.打開"桌面主題"面板.你可以選擇一個主題,默認的主題是"Bluecurve”.選一個你喜歡的,然后關(guān)閉

這個面板.

5.最后打開"工具欄",你能夠選擇你可以選擇下列特性中的一個:顯示工具條,或小的圖標(biāo).然后關(guān)閉面板.

目標(biāo):

RedHatLinux的桌面環(huán)境已經(jīng)按你的要求定制好了。

試驗9

標(biāo)準(zhǔn)輸入輸出和管道

估計時間:30分鐘

目標(biāo):熟悉RedHatLinux中的標(biāo)準(zhǔn)輸入輸出和管道

試驗的起點:標(biāo)準(zhǔn)的RedHatLinux安裝

步驟1:標(biāo)準(zhǔn)輸入和輸出

任務(wù):

1.使用你熟悉的編輯器創(chuàng)建兩個文件:

packagesl.txt應(yīng)該包含以下八行:

amanda

galleon

metacity

mozilla

postgresql

procinfo

rpmfind

squid

packages2.txt應(yīng)該包含以下6行

anaconda

openssh

gnome-core

samba

sendmail

xscreensaver

2.cat工具是最簡單的linux過濾器,它會默認把跟在后面的參數(shù)當(dāng)作文件名,并把這個文件作為輸入,

如果沒有文件名則把標(biāo)準(zhǔn)的輸入作為自己的輸入,然后將它們發(fā)送到標(biāo)準(zhǔn)的輸出上去?,F(xiàn)在我們來實驗

一下:

$catpackagesl.txt

3.如果cat后沒有參數(shù),則它會等待標(biāo)準(zhǔn)的輸入,所以當(dāng)你輸入cat命令后,再回車,然后什么也沒

有顯示。輸入cat后,cat命令會監(jiān)視標(biāo)準(zhǔn)輸入,等待輸入的到達。如果這個時候輸入一些文本,再按回

車,cat就會把輸入的內(nèi)容當(dāng)作自己的輸入,然后輸出到標(biāo)準(zhǔn)的輸出一顯示器上,結(jié)束cat的命令為

按下ctrl-d,這是結(jié)束輸入的標(biāo)志。

$cat

輸入一些文字,然后按回車。

Ad(就是按ctrl-d)

4.大多數(shù)的文本處理命令是執(zhí)行過濾操作,他們可以讀標(biāo)準(zhǔn)輸入,對輸入做一些動作,然后把結(jié)果發(fā)

送到標(biāo)準(zhǔn)輸出去。這些命令就向cat一樣,只是對輸入的處理不太一樣。

甘命令,也是過濾器命令,如果給tr后加兩個字符串做為參數(shù),它會讀取標(biāo)準(zhǔn)輸入,然后把輸入中包含

著前一個字符串的字符變成第二個字符串,然后輸出到標(biāo)準(zhǔn)輸出去。

把剛才的命令換成tr,tr將把字符串中有的字符變成大寫的。

$tr'aeiou''AEIOU'

輸入一些文字,然后按回車。

八d

5.定義shell不要把命令的輸出發(fā)到標(biāo)準(zhǔn)輸出上,而是重定向到一個文件中,我們使用>來重定向

重復(fù)cat的例子重定向標(biāo)準(zhǔn)的輸出到packagesl.catfile,這樣把輸出到屏幕的東西輸出到了文件中,效

果就和重新copy了一份文件是一樣的,cat這個輸出文件,然后用diff和Is確認原文件與

packagel.catfile內(nèi)容一樣。

$catpackagesl.txt>packagesl.catfile

$catpackagesl.catfile

$diffpackagesl.txtpackagesl.catfile

$Is-Ipackagesl*

6.使用>>來重定向會把輸出附加到已存在的文件的末尾。

把packages2.txt文件中的內(nèi)容附加到packagesl.catfile之后,然后檢驗結(jié)果。

$catpackages2.txt>>packagesl.catfile

$catpackagesl.catfile

7.如果輸出重定向時cat沒有直接跟文件名的參數(shù),那么cat就會等待標(biāo)準(zhǔn)的輸入,直到按下ctrl-d

作為結(jié)束,然后把所有輸入的東西重定向到這個文件中去。這樣可以很容易的創(chuàng)建一個文本文件,

$cat>typedin.txt

Thistime,whentextistypedatthekeyboard,

Itisnotechoedbacktothescreen.

Instead,itisredirectedtothefiletypedin.txt.

Ad

$Is-Itypedin.txt

$cattypedin.txt

8.使用tr取代cat,重復(fù)剛才的命令

$tr'aeiou''AEIOU'>trfile.txt

Thistime,whentextistypedatthekeyboard,

Itisnotechoedbacktothescreen.

Instead,itisredirectedtothefiletypedin.txt.

Ad

$Is-Itrfile.txt

$cattrfile.txt

9.使用set-o命令,確認顯示出目前bash的noclobber選項是關(guān)閉狀態(tài),確認當(dāng)輸出重定時向你

可以重寫文件

$set-o

$Is-I/tmp>trifle.txt

$Is-Itrfile.txt

$cattrifle.txt

10.使用set命令更改noclobber選項,如下操作:

$set-onoclobber

$echo"newcontents*1>trfile.txt

bash:trfile.txt:cannotoverwriteexistingfile

11.cat可以接受一個文件名或者是一個輸入重定向的文件,測試以下兩個命令:

$catpackagesl.txt

$cat<packagesl.txt

12.但是甘不能接受文件名作為參數(shù),它只希望輸入是標(biāo)準(zhǔn)輸入。

$tr'aeiou*'AEIOU'<packagesl.txt

13.下面的例子中標(biāo)準(zhǔn)輸入和輸出都被重定向,輸入還是packagesl.txt文件,這回改為輸出到文件

packagesl.trfile.txt中去了。

$tr'aeiou''AEIOU'<packagesl.txt>packagesl.trfile.txt

$Is-Ipackagesl.txtpackagesl.trfile.txt

$catpackagesl.trfile.txt

步驟2:管道

1.把一個命令的標(biāo)準(zhǔn)輸出直接傳輸給另一個命令作為它的標(biāo)準(zhǔn)輸入,這樣特殊的機制叫做管道。

如果沒有管道,你要想打印你的目錄中文件的列表至少要兩步,還需要把沒用的文件刪除,(Ipr命令可

以把文件的內(nèi)容發(fā)給默認的打印機,它的用法會在第12章講)(注意只有當(dāng)你沒有打印機時可以使用以

下的例子)

$Is-I>/tmp/ls.txt

$Ipr/tmp/ls.txt

$rm/tmp/ls.txt

使用管道,這些命令可以僅僅用以下短短的一條命令,將Is-I的輸出直接發(fā)送給Ipr作為輸入,Ipr也

不需要別的參數(shù)。

$Is-I|Ipr

2.管道經(jīng)常的用法是一個命令產(chǎn)生了很多頁的輸出,可以把這些輸出直接給less,管道左邊是你的命

令/右邊是less,less不需要參數(shù)。(空格鍵是翻頁,q鍵是退出less)

$Is-I/usr/bin|less

步驟3:練習(xí)

答案在下面,可以使用manpage來幫助你解決問題

1.拷貝一份cal命令的manpage,放在你的主目錄下,取名叫caiman。

2.只在一行上輸入什么樣的命令,可以使你從鍵盤上輸入的文本輸出到打印機上

3.怎樣把/usr/bin下以c或d開頭的文件列表發(fā)送到打印機上?

步驟3:練習(xí)-答案

1.mancal>cal.man

2.Ipr

Ipr打印出以后面的參數(shù)命名的文件中的內(nèi)容,如果沒有參數(shù)"pr就會從標(biāo)準(zhǔn)輸入中讀取,標(biāo)準(zhǔn)的輸入

是鍵盤,直到你按下ctrl-d表示鍵盤輸入結(jié)束。

3.Is-I/usr/bin/[cd]*|Ipr

試驗10

字符自處理

估計時間:60分鐘

目標(biāo):熟悉字符串處理

試驗的起點:一個RedHatLinux系統(tǒng)把/etc/passwd拷貝到你的主目錄下。

第一步:字符串處理基本知識

任務(wù):

L拷貝/etc/passwd到你的主目錄下:

$cd

$cp/etc/passwd

2.在/etc/passwd里面有系統(tǒng)里的每一人帳戶.使用wc,在passwd文件里計算有多少行。

$wc-Ipasswd

在你的系統(tǒng)里有多少個帳戶

3.找出本機中所有用戶使用的各種shell并把其放置在一個文件內(nèi):

$cut-d:-f7passwd>shells

4.使用cat命令查看你新的shells文件的內(nèi)容,為了使輸出結(jié)果更為友好.用sort命令輸出這些數(shù)據(jù)在

一個新的文件里:

$sortshells>sorted.shells

5.你的文件包含許多同樣的內(nèi)容.使用uniq命令可以計算出有多少個相同的行:

$uniq-

為什么在使用uniq之前要使用sort命令

6.按照數(shù)字由大到小的順序列出在你的機器上使用的各種shell:

$sort-nruniq.sorted.shells

i./sbin/nologin

6/bin/bash

1/sbin/shutdown

1/sbin/halt

1/bin/sync

結(jié)果:

按照數(shù)字由大到小的順序列出你機器上所有用戶使用的各種shell:

步驟2:更多的練習(xí)

為每一個練習(xí)寫下解決辦法.記住,答案是一個你想出辦法的命令,不是輸出.答案在實驗的最后被列出來了,

但是在對答案之前你可以試著完成每個任務(wù)每個答案將顯示單獨的一行這個命令aspell沒有man

page;你將怎樣獲得幫助呢?

7.有多少文件在/usr/bin目錄下?輸出是一個單一的整數(shù).提示:設(shè)計一個命令列出文件名到每

一行,然后計算一共有多少行.

8.歹U出下歹11文件/usr/share/doc/nautilus-*/NEWS中拼錯的單詞.

12.多少唯一的單詞從上述練習(xí)中輸出?

步驟2答案:

1Is-1/usr/bin|wc-I(注意Is的參數(shù)是數(shù)字1)

2aspell-I</usr/shar/doc/nautilus-*/NEWS

3aspell-I</usr/share/doc/nautilus-*/NEWS|sort|uniq|wc-I

試驗11

使用正則表達式進行字符處理

估計時間:60分鐘

目標(biāo):熟悉RedHatLinux中進行字符處理的幾個工具

試驗的起點:安裝RedHatLinux,并且能正常工作,拷貝/etc/passwd到

你的主目錄中

步驟1:使用grep進行字符處理

任務(wù):

1.在copy到你主目錄中的/etc/passwd文件的副本中,使用grep顯示出所有以"g"開頭的帳戶:

2.顯示出所有使用bashshell的帳戶:

$grep'bash$'passwd

3.顯示出沒有使用bash作為shell的帳戶:

$grep-v,bash$,passwd

4.為了做一使用diff的例子,我們要更改這個passwd文件的拷貝,先用grep把原文件中所有含有

"N"和"P"的行刪除:

$grep-v'[NP]'passwd>modified.passwd

5.最后再用tr將含有的所有大寫字母變成小寫:

$tr"A-Z""a-z"<modified.passwd>modified2.passwd

6.這時使用cat命令看原來的passwd文件和改過的modified2.passwd文件,不仔細看看不出其中的

區(qū)別,這只是小文件,如果文件大一些,想象一下?lián)碛袔浊€用戶的文件。使用diff可以產(chǎn)生兩個文件

中不同之處的列表。

$diffmodified2.passwdpasswd

14al5,16

>ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin

>nobody:x:99:99:Nobody:/:/sbin/nologin

步驟2:正則表達式及字符處理

在任務(wù)下面的橫線上寫下你的解決方案,你要寫出你的命令而不是命令的輸出,答案在實驗最后,但是

要先試著自己解決,可以使用manpage來幫助你解決問題。

任務(wù):

1.使用grep顯示出/usr/share/dict/words文件中還有某參數(shù)的行,例如顯示出所有含有fish的行:

$grepfish/usr/share/dict/words

blowfish

bluefish

codfish

...outputtruncated...

unselfish

unselfishly

unselfishness

2.使用grep的manpage作為幫助,輸出任何包含fish的所有行,還要輸出緊接著這行的上下各兩

行的內(nèi)容:

3.使用grep的manpage作為幫助,找出相應(yīng)的命令,來顯示出在words文件中有多少行含有fish。

4.使用grep的幫助文件找出相應(yīng)的命令,顯示出那些行含有fish,并將行號一塊輸出看一看starfish

在哪行?

5.想列出/usr/share/dict/words中包含先有字母t然后有一個元音字母,之后是sh的單詞,命令為:

6.在/usr/share/dict/words文件中,創(chuàng)建可以符合abominable,abominate,anomie和atomize

的正則表達式,但是不要選到別的單詞。

7.S/usr/share/dict/words文件中包含多少先有字母t然后有一個元音字母,之后是sh的單詞,只

輸出數(shù)量。

8.列出/usr/share/dict/words中剛好包含16個字母的單詞:

9.我們將要使用/usr/share/doc文件夾來完成我們的下幾個任務(wù)。

歹U出/usr/share/doc/bash-2.05b文件夾中,所有包含單詞expansion的文件,

10.顯示出"Linux"在/usr/share/doc/bash-2.05b文件夾的文件中出現(xiàn)的次數(shù),但是不要顯示沒有

這個里詞的文件。提示:先列出所有的文件,然后想如何使輸出符合要求:

11.列出所有包含Havoc的文件名:

步驟3:使用正則表達進行文本流編輯

任務(wù):

想象你創(chuàng)建一個了名叫"cats”的文件包含以下單詞:

cat

catalog

concatenate

polecat

Cat

猜想執(zhí)行以下每個sed命令之后,把cats文件的每一行的執(zhí)行后的結(jié)果寫在后面:

1.sed's/cat/dog/'cats

cat__________

catalog__________

concatenate

polecat__________

Cat__________

2.sed's/[Cc]at/dog/'cats

cat__________

catalog__________

concatenate

polecat_______

Cat_______

3.sed'sA<[Cc]cat/dog/'cats

cat_______

catalog_______

concatenate

polecat_______

Cat_______

4.sed's/[Cc]at\>/dog/'cats

cat_______

catalog_______

concatenate

polecat_______

Cat_______

5.sed'sA<[Cc]at\>/dog/'cats

cat_______

catalog_______

concatenate

polecat_______

Cat.

6.sed'sA<[Cc]at\>/&anddog/'cats

cat__________

catalog__________

concatenate

polecat__________

Cat__________

7.創(chuàng)建一個‘cats'文件,運行sed命令,測試你的答案。

步驟2的答案:

2.grep-B2-A2"fish"/usr/share/dict/words

3.grep-c"fish"/usr/share/dict/words

4.grep-n-fish"/usr/share/dict/words

5.grep"t[aeiou]sh"/usr/share/dict/words

6."Aa.omi.*e$"

訣竅是判斷哪些字母是變化的哪些是不變的,注意想代替任意個任意字符要使用

7.grep-c"t[aeiou]sh$"/usr/share/dict/words

8.grep"A$"/usr/share/dict/words

或者:

grep-c"A.\{16\}$"/usr/share/dict/words

9.grep-Iexpansion/usr/share/doc/bash-2.05b/*

10.grep-c"Linux"/usr/share/doc/bash-2.05b/*|grep-v":0"

11.grep-R-I"Havoc"/usr/share/doc

試驗12

進程控制

估計時間:30分鐘

目標(biāo):練習(xí)與進程控制有關(guān)的不同命令

試驗的起點:安裝RedHatLinux,并且能正常工作,有一個用戶名和密

碼都為student的用戶

步驟1:進程控制

場景描述:

在這個任務(wù)中,大家會啟用幾個進程,然后使用bash的進程控制方法來控制它們。你將會在幾個控制

臺間切換,注意你在哪個控制臺上運行命令。

任務(wù):

1.開始使用student用戶在第一、二個控制臺(ttyl.tty2)上登陸

2.到ttyl上,然后運行以下命令:

$(whiletrue;doecho-nA>>log;sleepl;done)

3.注意這個控制臺現(xiàn)在因為在運行你的進程,所以處于忙的狀態(tài)(進程在前臺運行),這個進程不斷

把字母"A"添加進~/log文件中去,至Utty2上運行以下命令:

$tail-flog

你會看到"A"不斷增長

4.切換回控制臺ttyl,按下,shell會告訴你進程停止了,告訴你job號碼為1,切換回控制臺2,你

會看到文件不變了。

5.回到ttyl,再次啟動進程,運行jobs會顯示job[l]在運行了,到tty2上看到文件繼續(xù)增長了:

$bg

$jobs

6.到ttyl上,按向上的箭頭,重新找回第二步時的命令,把A換成B,在最后加上&,然后在把B換

成C:

$(whiletrue;doecho-nB>>log;sleepl;done)

$ABAC

7.輸入jobs確認三個進程都在運行,到tty2上看到每秒鐘會有三個字母增長。

8.在第4步你按ctrl-z時,實際上是給進程發(fā)一個信號,使用kill命令也可以給它們發(fā)信號,使用kill

來顯示信號列表和標(biāo)號,然后發(fā)一個SIGSTOP(19)的信號給job[l],到ttyl上執(zhí)行:

$kill-I

$k

溫馨提示

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

評論

0/150

提交評論