版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
Lesson07
vi與Shell入門復習進程nicerenice&Ctrl+CCtrl+Zjobsbgfgpstopkilldmesguptimewhowwhoami內(nèi)容提要vi文本編輯器什么是Shell?BASHShell變量與變量設置變量設置規(guī)則命令別名與歷史BASHShell的配置文件vi文本編輯器Linux/Unix下的配置文件都是文本文件vi是使用最廣泛的編輯器vi分為三種工作模式:一般模式編輯模式命令模式vi文本編輯器vi的一般模式:以vi處理一個文件的時候,一進入該文件就是一般模式了(vi命令啟動后的默認狀態(tài))。在這個模式中,可以使用上下左右鍵來移動光標,也可以使用刪除字符或刪除整行來處理文件內(nèi)容,也可以使用復制、粘貼。vi的編輯模式:在一般模式中可以處理刪除、復制、粘貼等動作,但是卻無法編輯。按下i,I,o,O,a,A等字母之后才會進入編輯模式,進入該模式后,左下方會出現(xiàn)INSERT或REPLACE等字樣。按下ESC就可以回到一般模式vi文本編輯器vi的進入編輯模式的命令詳解i從光標所在位置前開始插入文本I將光標移到當前行行首,然后在其前插入文本a用于在當前光標位置之后插入文本A把光標移到行尾,從那里開始插入文本o在光標所在行的下面新開一行,并將光標置于新行行首,等待輸入文本O在光標所在行的上面新開一行,并將光標置于新行行首,等待輸入文本vi文本編輯器vi的命令模式在一般模式當中,輸入:或/就可以將光標移動到最底下那一行,從而進入命令模式。在這個模式當中,可以進行搜索、保存、退出、讀取另外一個文件、顯示行號等動作。vi文本編輯器圖解vi的三種模式一般模式移動光標查找替換刪除復制粘貼編輯模式輸入字符命令模式讀取保存顯示行號ioaESC:/?ESCvi文本編輯器vi的舉例:輸入vitest.txt按下i,進入編輯模式輸入hello按下Esc進入一般模式輸入:wq回車保存退出vi文本編輯器vi一般模式下常用命令(1/3):hjkl
用于光標左移、下移、上移、右移[Ctrl]+[f]屏幕向前移動一頁[Ctrl]+[b]屏幕向后移動一頁0
移到行的第一個字符處$
移到行的最后一個字符處G
移到文件的最后一行nG
移動到文件的第n行n<Enter>
光標向下移動n行nH
光標移到當前屏幕的第n行行首vi文本編輯器vi一般模式下常用命令(2/3):x
向后刪除一個字符nx
向后刪除n個字符X
向前刪除一個字符dd
刪除光標所在的行ndd刪除光標所在行的向后n行yy復制光標所在行nyy復制光標所在行的向后n行p
粘貼到光標的下一行P
粘貼到光標的上一行vi文本編輯器vi一般模式下常用命令(3/3):/word
在光標之后查找word?word
在光標之前查找wordn
向相同的方向移動到有word的地方N
向相反的方向移動到有word的地方u
撤銷上次操作.
重做ZZ
存盤退出ZQ
不保存退出vi文本編輯器vi命令模式下常用命令(1/3)::n
跳到第n行:q
退出,如果有修改沒有保存會提示:wq
存盤退出:q!
不保存退出:w
存盤:wfile
將當前編輯內(nèi)容保存到file:rfile
讀取另外一個文件file的數(shù)據(jù),插入
到光標所在行的后面:fnewfile
將當前文件重命名到newfile(別忘
了保存)vi文本編輯器vi命令模式下常用命令(2/3):
:n1,n2s/word1/word2/g
在第n1與n2行之間尋找word1這個字符串,并將該字符串替換為word2
:1,$s/word1/word2/g
從第一行到最后一行尋找word1字符串,并將該字符串替換為word2(.可以表示當前行,$可以表示最后一行)
:1,$s/word1/word2/gc
從第一行到最后一行尋找word1字符串,并將該字符串替換為word2。且在替換前顯示提示字符給使用者確認。vi文本編輯器vi命令模式下常用命令(3/3)::n1,n2con3第n1行到n2行的內(nèi)容拷貝到n3后:n1,n2mn3第n1行到n2行的內(nèi)容移動到n3后:n1,n2d
刪除第n1行到n2行的內(nèi)容:!Cmd
運行Shell命令Cmd:r!Cmd
將命令行運行的結(jié)果寫入當前位置:n1,n2w!Cmd
將第n1行到n2行的內(nèi)容作為Cmd
的輸入運行命令,如果沒有指定n1
和n2,則將整個文件作為輸入。:setnu
顯示行號:setnonu
隱藏行號vi文本編輯器vi練習:將/etc/man.config拷貝到當前目錄,用vi打開顯示行號,并移動到第62行查看內(nèi)容移動到第一行,并且向下搜尋一下man將50到100行之間的man改為MAN,并且一個一個挑選是否需要修改修改完之后,突然反悔了,全部復原復制51到60行這十行的內(nèi)容,并且貼到最后一行之后刪除11到30行之間的20行將這個文件另存成man.test.config保存退出什么是Shell?想要聽音樂需要什么?首先需要聲卡操作系統(tǒng)的核心可以支持這個聲卡(有相應的聲卡驅(qū)動程序)用戶發(fā)出播放音樂的指令必須發(fā)出指令,硬件才會工作。如果可以直接同硬件溝通,那么不需要內(nèi)核。否則,用戶的指令必須先發(fā)送給內(nèi)核,然后內(nèi)核再去控制硬件。shell正是用戶與內(nèi)核溝通的平臺:用戶可以通過shell給內(nèi)核發(fā)送指令內(nèi)核也可以把指令執(zhí)行的過程或者結(jié)果信息發(fā)送到shell給用戶看。什么是Shell?來自第一講的圖:內(nèi)核(Kernel)外殼(Shell,KDE,Application)用戶硬件(Hardware)什么是Shell?想要聽音樂需要什么?首先需要聲卡操作系統(tǒng)的核心可以支持這個聲卡(有相應的聲卡驅(qū)動程序)用戶發(fā)出播放音樂的指令必須發(fā)出指令,硬件才會工作。如果可以直接同硬件溝通,那么不需要內(nèi)核。否則,用戶的指令必須先發(fā)送給內(nèi)核,然后內(nèi)核再去控制硬件。shell正是用戶與內(nèi)核溝通的平臺:用戶可以通過shell給內(nèi)核發(fā)送指令內(nèi)核也可以把指令執(zhí)行的過程或者結(jié)果信息發(fā)送到shell給用戶看。BASHShell早年的Unix年代,Unix發(fā)展者眾多,所以shell有很多不同版本,例如常聽到的BourneShell(sh)、在Sun中默認的CShell、商業(yè)上常用的KSHell以及TCSH等,每一種Shell都各有其特點。Linux使用的是BourneAgainShell(簡稱bash),這個Shell是BourneShell的增強版本,也是基于GNU的架構(gòu)下發(fā)展出來的。BASHShell第一個流行的shell是由StevenBourne開發(fā)出來的,為了紀念他所以就稱為Bourneshell,或直接簡稱為sh。另一個廣為流傳的shell是由柏克萊大學的BillJoy設計依賴于BSD版的Unix系統(tǒng)中的shell,這個shell的語法有點類似C語言,所以才得名為Cshell(簡稱csh)。BASHshell是GNU計劃中重要的工具軟件之一,目前也是GNU操作系統(tǒng)中標準的shell,與sh兼容。BASHShellBASHShell的特點(1/5):命令記憶能力Linux可以記憶以前輸入過的命令,只要使用上下鍵就可以找到以前執(zhí)行的指令來執(zhí)行。這些命令按照先后順序記錄在用戶Home目錄下的隱藏文件.bash_history中.bash_history里面記錄了上一次登錄以前執(zhí)行過的命令,本次登錄執(zhí)行的命令都保存在內(nèi)存中,只有成功注銷之后,內(nèi)存數(shù)據(jù)才會刷新到.bash_history文件中有時候.bash_history文件中記錄了你包含在指令中的密碼,可能引起安全問題(如sqlplussys/abcdefgassysdba),所以最好還是設置命令的記錄數(shù)量不要太大。BASHShellBASHShell的特點(2/5):命令補全補全功能如果在執(zhí)行命令的時候不想按下太多的按鍵(例如命令pcprofiledump),在輸入了pcprofile之后,再按下[Tab]鍵的話,那么bash馬上會自動的將后面的dump接上來。如果有重復的命令,那么按下兩次[Tab]將會把所有重復的命令列出來。直接在提示字符后面連按兩次<tab>鍵,則系統(tǒng)會將所有可以使用的命令都列出來。例如,如果想要知道目前系統(tǒng)里面,所有以b開頭的命令呢?就是按下b之后,連按兩次<tab>就ok。BASHShellBASHShell的特點(3/5):文件名稱補全功能如果用vi來讀取某個文件,例如/etc/man.config這個文件,那么可以輸入vi/etc/man之后,直接按下<tab>鍵,該文件名稱就會被自動的補上。同樣,出現(xiàn)文件多個匹配項時,可以按下兩個TAB鍵來顯示所有匹配項。這樣大大增加了指令輸入的正確率。BASHShellBASHShell的特點(4/5):命令別名設置功能假如我需要知道某個目錄底下的所有文件信息(包含隱藏文件)及所有的文件屬性,那么我就必須要輸入ls-al這樣的指令。每次都輸入多麻煩!可以通過為自己經(jīng)常使用的命令(包括參數(shù))定義別名來避免過多輸入。例如:aliaslm='ls-al'(注意=兩邊不要有空格)那么以后lm就等于執(zhí)行l(wèi)s-al直接輸入alias,可以顯示目前以及定義好的所有別名BASHShellBASHShell的特點(5/5):任務控制,前臺、背景控制bgfgCtrl+ZCtrl+CShellScripts變量與變量設置變量(1/2):假設JAVA安裝在/usr/jdk1.5下面其他很多程序(比如應用服務器)的執(zhí)行都需要JRE,這些服務的啟動可能形如:
/usr/jdk1.5/bin/javacom.bea.WebLogicStart
/usr/jdk1.5/bin/javacom.bea.EJBContainer
/usr/jdk1.5/bin/javacom.bea.WebContainer那么假如JAVA換了其他目錄,或者要使用其他版本(如jdk1.5-->jdk6.0)呢?變量與變量設置變量(2/2):通常的做法是定義變量,如:
JAVA_HOME=/usr/jdk1.5那么其他程序都用變量,而不用絕對值,如:
$JAVA_HOME/bin/javacom.bea.WebLogicStart
$JAVA_HOME/bin/javacom.bea.EJBContainer
$JAVA_HOME/bin/javacom.bea.WebContainer那么假如JAVA換了其他目錄,或者要使用其他版本(如jdk1.5-->jdk6.0),那么只需要修改變量的值即可:
JAVA_HOME=/usr/jdk6.0變量就是特定字符串值的別名變量與變量設置顯示變量值的命令:echo用法:echo$variable例如:
echo$PATH
echo$HOME
echo$MAIL
echo$USER
echo$HOSTNAME查看所有Linux預定義變量的命令:env變量與變量設置重要的系統(tǒng)環(huán)境變量:HISTSIZE=1000<==當前命令記憶數(shù)量HOME=/home/test<==登錄用戶的Home目錄HOSTNAME=<==主機名稱HOSTTYPE=i386<==主機CPU等級(i386,i686...)LANGUAGE=zh_CN.UTF-8<==默認語言,要修改它可以修改/etc/sysconfig/i18n文件MAIL=/var/spool/mail/root<==
郵件目錄LOGNAME=root<==登錄帳號PWD=/root<==當前路徑PS1=[\u@\h\W]$<==命令行提示符樣式變量與變量設置顯示所有變量的命令:setset除了會顯示出目前的環(huán)境變量之外,也會顯示出用戶自定義變量。常見的用戶自定義變量有:BASH=/bin/bash<=BASH主程序所在路徑COLORS=/etc/DIR_COLORS<=使用顏色COLUMNS=100<=終端的字符列數(shù)HISTFILE=/home/vbird/.bash_history<=歷史命令文件MAILCHECK=60<=每隔60s檢查一次郵PPID=24572<=當前bash父進程IDUID=500<=當前用戶的UID$<==當前shell的PID?
<=最后一個命令的返回值,0表示成功,否則為1變量設置規(guī)則變量設置規(guī)則(1/2)變量與變量內(nèi)容(值)用等號連接等號兩邊不能直接接空格符變量名稱只能是英文字母與數(shù)字,但是數(shù)字不能是開頭字符若有空格符可以使用雙引號或單引號來將變量內(nèi)容括起來。注意:雙引號內(nèi)的特殊字符可以保有變量特性,但是單引號內(nèi)的特殊字符則僅為一般字符必要時需要轉(zhuǎn)義字符“\”來將特殊符號(如回車換行,$,\,空格符,單引號等)變成一般符號變量設置規(guī)則變量設置規(guī)則(2/2)在命令中,如果需要其他命令的執(zhí)行結(jié)果信息,可以使用`command`若該變量為擴增變量內(nèi)容時,則需以雙引號(有些版本也不用)及$變量名稱(如:"$PATH":/home)繼續(xù)累加內(nèi)容若該變量需要在其它子程序執(zhí)行,則需要以export來使變量生效,如exportPATH通常大寫字符為系統(tǒng)變量,自定義變量可以使用小寫字符,方便區(qū)別(只是建議)取消變量的方法為:unset變量名稱變量設置規(guī)則變量設置實戰(zhàn)(1/3)12name=VBrid<==錯誤!變量開頭不能是數(shù)字name=VBird<==錯誤!等號兩邊不能直接接空格name=VBird<==正確!echo$name顯示VBirdname=VBirdname<==錯!帶空格需要加上雙引號!name="VBirdname"<=正確!name="VBird'sname"<==正確!變量設置規(guī)則變量設置實戰(zhàn)(2/3)
aa=hexy
name=$aaisme
<=達不到累加的效果,name與變量aaisme同值
name="$name"isme
<==正確!echo$name顯示VBird'snameisme
PATH="$PATH":/home/test
<==正確的!echo$PATH將多了一段
PATH="$PATH:/home/test"
<==正確!這個形式對于PATH來說也是正確的變量設置規(guī)則變量設置實戰(zhàn)(3/3)[hexy@hexy~]$aa="abcd"[hexy@hexy~]$bb="$aa"aabb[hexy@hexy~]$cc='$aa'aabb問題:現(xiàn)在aabbcc的值是多少?abcdabcdaabb$aaaabb變量設置規(guī)則export命令讓“局部變量”變成“全局變量”,這樣shell設置的變量在其子shell中同樣有效。但是不能跨越當前會話舉例:name=hexybash
<==進入子shellecho$name
<==顯示空exit
<==退出子shellexportname
<==導出bash
<==進入子shellecho$name
<==顯示hexy命令別名與歷史設置別名的命令:alias可以減少輸入量:在命令加參數(shù)比較長的情況下,定義別名可以提高工作效率。例如我們經(jīng)常需要這樣的命令“l(fā)s-al|less”,每次輸入確實麻煩,那么如果定義別名
aliaslm=”ls-al|more”
那么以后只需要輸入lm即可減少錯誤:如果直接輸入rm刪除文件,可能出現(xiàn)誤刪的情況,那么可以這樣做:
aliasrm=”rm-i”提高操作習慣程度:比如我們習慣了DOS里面的dir和cls命令,那么可以定義aliasdir=”ls-l”;aliascls=”clear”命令別名與歷史設置別名的命令(續(xù)):alias不帶任何參數(shù)的alias可以顯示當前定義的所有別名取消別名設置可以使用unalias命令舉例:aliaslm='ls-al|more'lm<==使用別名unaliaslm<==取消別名alias<==查看新的別名設置情況命令別名與歷史查看命令歷史的命令:history用法:historynumber顯示最近的number個命令,不指定number參數(shù)時,會顯示所有歷史命令,前面加編號,代表序號。如序號從13到1012,一共1000個命令別名與歷史執(zhí)行歷史命令的方法方法1:!number執(zhí)行歷史命令中編號為number的那個命令方法2:!command執(zhí)行歷史命令中最近一次以command開頭的命令方法3:!!執(zhí)行上一條命令BASHShell的配置文件系統(tǒng)設置(所有用戶有效)/etc/profile設置系統(tǒng)范圍內(nèi)的環(huán)境變量:PATHUSERLOGNAMEMAILHOSTNAMEHISTSIZEINPUTRC。比如需要修改歷史命令的記憶數(shù)量,可以在這里把
HISTSIZE=1000
這一行進行修改(一般改到50)。設置啟動時執(zhí)行的程序。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- NR-11c-生命科學試劑-MCE-9201
- 6-O-Sulfo-β-cyclodextrin-sodium-生命科學試劑-MCE-5754
- 2025年度高端火鍋店品牌連鎖合作協(xié)議
- 二零二五年度經(jīng)濟補償協(xié)議書-產(chǎn)品責任賠償協(xié)議
- 2025年度員工解除勞動合同關(guān)系協(xié)議書(技術(shù)崗位)
- 施工單位關(guān)于項目驗收的聯(lián)絡函
- 小額金融科技化營銷戰(zhàn)略-以農(nóng)村貸款市場為例
- 《用正比例解決問題》教學設計(人教版六年級數(shù)學下冊)
- 個人雇傭合同協(xié)議模板
- 上海市短期勞務合同模板
- 2025民政局離婚協(xié)議書范本(民政局官方)4篇
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 小學一年級數(shù)學上冊口算練習題總匯
- 睡眠專業(yè)知識培訓課件
- 潤滑油知識-液壓油
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 臨床思維能力培養(yǎng)
- 人教版高中物理必修第三冊第十章靜電場中的能量10-1電勢能和電勢練習含答案
- 2024年四川省巴中市級事業(yè)單位選聘15人歷年高頻難、易錯點練習500題附帶答案詳解
- 《中國香文化》課件
- 蓋房四鄰簽字協(xié)議書范文
評論
0/150
提交評論