操作系統(tǒng)原理實(shí)驗(yàn) 實(shí)驗(yàn)1 linux基礎(chǔ)操作

操作系統(tǒng)原理實(shí)驗(yàn)

實(shí)驗(yàn)1 linux基礎(chǔ)操作

!本文為個(gè)人的實(shí)驗(yàn)總結(jié),僅包含在校時(shí)上機(jī)實(shí)驗(yàn)所涉及的操作,并不包含所有的linux命令候味!

一、Linux基本命令

????任務(wù)1:使用pwd命令查看當(dāng)前目錄隔心。

? ? 任務(wù)2:使用ls命令以詳細(xì)列表的形式查看有關(guān)當(dāng)前目錄的信息白群。

????執(zhí)行命令:

? ??????$ pwd

? ????? $ ls -l -h?

(-l 中 l 代表long 意為詳細(xì)展示,-h 中 h 意味以人類易理解的方式展示 比如內(nèi)存顯示以k為單位)硬霍。

? ? 命令執(zhí)行結(jié)果截圖:

任務(wù)1帜慢、2 命令執(zhí)行結(jié)果截圖


????任務(wù)3:使用man命令獲取less命令的幫助信息,并將其保存到文件less.txt唯卖。

? ? 執(zhí)行命令:

? ??? ??$ man less

? ??? ??$ man less > less.txt

" > (文件名)" 意為將前者的運(yùn)行重定向到指定文件中粱玲,在這里指的是創(chuàng)建less.txt并將前者的運(yùn)行結(jié)果保存在less.txt中

? ? 命令執(zhí)行結(jié)果截圖:

執(zhí)行man less后終端顯示的內(nèi)容
輸出的less.txt文件


????任務(wù)4:在當(dāng)前目錄中創(chuàng)建D1子目錄。

????執(zhí)行命令:

? ??? ??$ mkdir D1

默認(rèn)是在當(dāng)前終端所在目錄下創(chuàng)建文件夾拜轨。

? ? 命令執(zhí)行結(jié)果截圖:

右側(cè)主文件夾中第一個(gè)即為創(chuàng)建的D1文件夾


????任務(wù)5:使用cp命令將/etc/profile文件復(fù)制到D1目錄抽减,文件名為profile.bak。

????執(zhí)行命令:

????????$ cp ../../etc/profile profile.bak

" ../../etc/profile" 指的是所在文件的地址橄碾。

" profile.bak" 為粘貼后的文件名卵沉,此文件默認(rèn)是在終端所在文件夾中創(chuàng)建。

? ? 命令執(zhí)行結(jié)果截圖:

第六行的ls結(jié)果即為文件粘貼成功


????任務(wù)6:使用less命令查看profile.bak文件的內(nèi)容

????執(zhí)行命令:

? ??? ??$ less profile.bak

? ? 命令執(zhí)行結(jié)果截圖:

less profile.bak 執(zhí)行后在終端顯示的文件內(nèi)容


????任務(wù)7:在現(xiàn)有系統(tǒng)上查找后綴為.cfg的所有文件堪嫂,并將結(jié)果保存在/root/cfginfo.txt中偎箫。

????執(zhí)行命令:

? ??????$ find ../ -name ‘*.cfg’ > cfginfo.txt

" find "為尋找指定類型的文件

" ../ " 表示定義到根目錄(當(dāng)前為/root木柬,上一層為根目錄)

" -name ‘*.cfg’ "意思為以指定后綴為.cfg的文件

" > cfginfo.txt " 意思為將前面代碼的運(yùn)行結(jié)果輸出到當(dāng)前終端所在目錄下的cfginfo.txt中

? ? 命令執(zhí)行結(jié)果截圖:

存儲(chǔ)在cfginfo.txt中的所有后綴為.cfg的文件的地址


????任務(wù)8:編輯上述cfginfo.txt皆串,在vim編輯器的txt文件中,在文件的第一行插入“This is CFG file information”(這是CFG文件信息)并保存眉枕。

????執(zhí)行命令:

? ??? ??$ vi cfginfo.txt

" vi cfginfo.txt " 意思是用vim編輯器打開cfginfo.txt這個(gè)文件 恶复, 利用vim編輯器對(duì)該文件進(jìn)行編輯 怜森。

在vim編輯器中,按i谤牡、o副硅、a均可進(jìn)入編輯模式;Esc鍵為退出編輯模式翅萤;" :wq " 實(shí)現(xiàn)文件的保存+退出功能恐疲。

? ? 命令執(zhí)行結(jié)果截圖:

第一行為通過(guò)vim添加的文字


????任務(wù)9:使用cat命令查看編輯后的cfginfo.txt文件。

????執(zhí)行命令:

? ??????$ cat cfginfo.txt

? ? 命令執(zhí)行結(jié)果截圖:

cat cfginfo.txt執(zhí)行結(jié)果


二套么、基礎(chǔ)的Shell腳本與編程


注:1. Shell腳本的創(chuàng)建可以通過(guò)vi來(lái)創(chuàng)建和編寫的培己,要?jiǎng)?chuàng)建腳本文件需要將文件的后綴名改為.sh

2. 運(yùn)行腳本文件需要先賦予可執(zhí)行權(quán)限,在運(yùn)行前需要運(yùn)行 "chmod +x ./(文件名).sh "? chmod為賦予權(quán)限 +x為賦予執(zhí)行權(quán)限胚泌。

3. 運(yùn)行腳本:$ ./(文件名).sh

4. 每個(gè)腳本文件都需要在第一行表明運(yùn)行的Shell 一般都選用/bin/bash 代碼為:#!/bin/bash



????任務(wù)1:

????????編寫一個(gè)腳本省咨,用于打印當(dāng)前工作目錄中所有與文件相關(guān)的信息

????要求:

????????運(yùn)行腳本時(shí),顯示當(dāng)前工作目錄中的所有文件信息

展現(xiàn)當(dāng)前正在工作目錄中的文件玷室,運(yùn)用ls./ -l -h即可零蓉。

? ? 腳本代碼:

任務(wù)1 腳本文件

? ? 運(yùn)行結(jié)果:

ls 運(yùn)行結(jié)果


????任務(wù)2:

????????編寫兩個(gè)數(shù)字相加的腳本

????要求:

????????請(qǐng)用戶輸入兩個(gè)數(shù)字

????????用戶還可以輸入實(shí)數(shù)

????????使用bc命令和管道來(lái)完成

????兩數(shù)相加 我們首先要讀入用戶輸入的兩個(gè)變量并存儲(chǔ)起來(lái),再通過(guò)piping和bc實(shí)現(xiàn)數(shù)字相加穷缤,此處利用${num}來(lái)讀取用戶輸入變量的具體的數(shù)值

? ??腳本代碼:

兩數(shù)相加(包括小數(shù)點(diǎn))

? ? 運(yùn)行結(jié)果:

任務(wù)2 兩數(shù)相加腳本運(yùn)行結(jié)果


????任務(wù)3:

????????編寫腳本以逆序打印給定的數(shù)字

????要求:

????????從用戶處讀取一個(gè)多位數(shù)的數(shù)字敌蜂,并將其反轉(zhuǎn)。

????????不僅僅是按相反的順序打印

????????您必須提取每個(gè)數(shù)字并轉(zhuǎn)換為反向绅项。

????????當(dāng)“0”作為最后一位時(shí)紊册,請(qǐng)?jiān)诘管嚂r(shí)丟棄。

通過(guò)if來(lái)判斷最后一位是否為0快耿,并根據(jù)判斷結(jié)果調(diào)整讀取的首個(gè)數(shù)的位置(最后一項(xiàng)為0直接不讀), 之后利用for循環(huán)逆序打印即可.

????腳本代碼:

逆序打印數(shù)字腳本代碼

? ? 腳本運(yùn)行結(jié)果:

成功實(shí)現(xiàn)逆序打印要求

? ?

????任務(wù)4:

????????對(duì)于$PATH中的每個(gè)目錄囊陡,顯示該目錄中的可執(zhí)行文件數(shù)

????要求:

????????從PATH變量獲取每個(gè)目錄。

????????使用-x選項(xiàng)if-if條件檢查可執(zhí)行權(quán)限掀亥。

????????逐個(gè)打印目錄和可執(zhí)行文件的數(shù)量撞反。

????????最后打印可執(zhí)行文件總數(shù)。

????????僅計(jì)數(shù)具有可執(zhí)行權(quán)限的文件搪花。

通過(guò)IFS改變系統(tǒng)的分詞符遏片,使其能夠分割path中路徑與路徑之間的冒號(hào)

通過(guò)for循環(huán)將每個(gè)path打印出來(lái)撮竿,同時(shí)對(duì)每一個(gè)path下的所有文件進(jìn)行是否可執(zhí)行的篩選計(jì)數(shù)吮便,關(guān)鍵代碼為:ls $path -F | grep “*” | wc -l ,并將每個(gè)path中的可執(zhí)行文件數(shù)打印出來(lái)幢踏。

通過(guò)設(shè)置全局變量對(duì)總可執(zhí)行文件數(shù)進(jìn)行計(jì)數(shù)髓需,最后將總的可執(zhí)行文件數(shù)打印出來(lái)

最后別忘了重置IFS

? ??腳本代碼:

打印每個(gè)path 統(tǒng)計(jì)可執(zhí)行文件

? ??腳本運(yùn)行結(jié)果:

腳本運(yùn)行結(jié)果


三房蝉、個(gè)人總結(jié)與心得

????實(shí)驗(yàn)過(guò)程中僚匆,我個(gè)人認(rèn)為對(duì)于初學(xué)者來(lái)說(shuō)最難的還是四個(gè)shell腳本編程中的后三個(gè)微渠。


? ? 先說(shuō)說(shuō)第二個(gè)shell腳本,有三個(gè)注意點(diǎn):

? ? ????1咧擂、read 可以讀入用戶輸入

? ? ? ? 2逞盆、echo 想要識(shí)別轉(zhuǎn)義字符"\c"(不換行),需要先寫上"-e"來(lái)表示開啟轉(zhuǎn)義字符的識(shí)別松申。

????????3云芦、想要調(diào)用參數(shù)(注意,是參數(shù)的值贸桶,比如系統(tǒng)輸入的num1為10焕数,需要用到10),在shell編程中是用美元符$加參數(shù)名來(lái)實(shí)現(xiàn)的刨啸。花括號(hào)可加可不加堡赔,不過(guò)為了方便看代碼還是加上為好。


????第三個(gè)shell腳本有兩個(gè)注意點(diǎn):

? ? ? ? 1设联、本題對(duì)shell編程語(yǔ)法熟練度要求高于前兩題的之前所有的linux操作善已,需要熟悉對(duì)參數(shù)的調(diào)用結(jié)構(gòu)體的書寫离例,以及對(duì)字符串换团、數(shù)組的操作熟練度。

? ? ? ? 2宫蛆、在我自己寫的過(guò)程中經(jīng)常忘了給計(jì)算操作加上美元符$和雙引號(hào)艘包,同時(shí)我自己對(duì)shell中字符串的操作也很不熟悉,光是提取字符串的每一位這個(gè)操作我都想了很久耀盗,最后還是想到了用字符串的提取來(lái)進(jìn)行操作.??

eg. ${str:${pos}:1}

意為str字符串中第${pos}位(第一位為0)開始的第一個(gè)數(shù)(包括這一位)

? ??

? ? 第四個(gè)腳本困擾我的問題有兩個(gè)想虎。

????????一個(gè)是如何對(duì) $PATH 那一大串連起來(lái)的進(jìn)行劃分。通過(guò)echo可以發(fā)現(xiàn)這些地址都通過(guò) " :" 冒號(hào)連接叛拷,通過(guò)上網(wǎng)查找資料才知道shell自帶分隔符IFS (默認(rèn)為空格等)舌厨,但這是可以進(jìn)行修改的,所以經(jīng)過(guò)對(duì)IFS再賦值忿薇,我還是成功的把每個(gè)地址都分別打印了出來(lái)裙椭。

? ? ????第二是如何統(tǒng)計(jì)可執(zhí)行文件的數(shù)量,通過(guò)上網(wǎng)我還是找到了答案署浩,利用管道將ls grep wc這三個(gè)操作連在一起揉燃,也就是先將每一個(gè)path中的文件通過(guò) " ls -l " 讓文件一行一行列出來(lái),再通過(guò)grep篩選并顯示可執(zhí)行文件的每一行( "*" 為可執(zhí)行文件)筋栋, " wc -l " 用于統(tǒng)計(jì)上個(gè)操作的行數(shù)炊汤,最后通過(guò)$()讀取行數(shù),并賦給參數(shù)輸出即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末婿崭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肴颊,更是在濱河造成了極大的恐慌氓栈,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婿着,死亡現(xiàn)場(chǎng)離奇詭異授瘦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)竟宋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門提完,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人丘侠,你說(shuō)我怎么就攤上這事徒欣。” “怎么了蜗字?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵打肝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我挪捕,道長(zhǎng)粗梭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任级零,我火速辦了婚禮断医,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奏纪。我一直安慰自己鉴嗤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布序调。 她就那樣靜靜地躺著躬窜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炕置。 梳的紋絲不亂的頭發(fā)上荣挨,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音朴摊,去河邊找鬼默垄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛甚纲,可吹牛的內(nèi)容都是我干的口锭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹃操!你這毒婦竟也來(lái)了韭寸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤荆隘,失蹤者是張志新(化名)和其女友劉穎恩伺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椰拒,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晶渠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了燃观。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褒脯。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缆毁,靈堂內(nèi)的尸體忽然破棺而出番川,到底是詐尸還是另有隱情,我是刑警寧澤脊框,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布爽彤,位于F島的核電站,受9級(jí)特大地震影響缚陷,放射性物質(zhì)發(fā)生泄漏适篙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一箫爷、第九天 我趴在偏房一處隱蔽的房頂上張望嚷节。 院中可真熱鬧,春花似錦虎锚、人聲如沸硫痰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)效斑。三九已至,卻和暖如春柱徙,著一層夾襖步出監(jiān)牢的瞬間缓屠,已是汗流浹背击敌。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工夜涕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钝荡。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓羊初,卻偏偏與公主長(zhǎng)得像滨溉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容