linux命令do linux命令dog

Linux 編輯文本命令

一、vi編輯器有3種基本工作模式

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)費(fèi)縣,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

分別是:命令模式、文本輸入模式、和末行模式。

第一:命令行模式:

該模式是進(jìn)入vi編輯器后的默認(rèn)模式。任何時(shí)候,不管用戶處于何種模式,按下ESC鍵即可進(jìn)入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時(shí)從鍵盤上輸入的任何字符都被當(dāng)作編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應(yīng)的動(dòng)作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會(huì)響鈴報(bào)警。

第二:文本輸入模式:

在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當(dāng)作文件內(nèi)容保護(hù)起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。

第三:末行模式:

末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí)vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令在執(zhí)行完后,vi自動(dòng)回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。

實(shí)例演示

首先我們使用命令 vi filename 打開一個(gè)文件,這個(gè)時(shí)候進(jìn)入到的是命令模式

接下來我們按i,然后鍵盤隨便輸入寫內(nèi)容。

然后按ESC重新進(jìn)入到命令模式。

在命令模式的情況下,我們按:,進(jìn)入到了末行模式。

我們輸入wq!,然后回車,強(qiáng)行保存退出。

下次我們?cè)俅蜷_對(duì)應(yīng)文件(可用less filename命令打開),即可看到內(nèi)容已經(jīng)更改。

補(bǔ)充:

(1)末行模式下:q! 【強(qiáng)制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個(gè)!】

(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個(gè)z即可退出。

更多命令

進(jìn)入vi的命令:

vi filename :打開或新建文件,并將光標(biāo)置于第一行首

vi +n filename :打開文件,并將光標(biāo)置于第n行首

vi + filename :打開文件,并將光標(biāo)置于最后一行首

vi +/pattern filename:打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處

vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename

vi filename….filename :打開多個(gè)文件,依次進(jìn)行編輯

屏幕翻滾類命令:

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。

插入文本類命令:

i :在光標(biāo)前

I :在當(dāng)前行首

a:光標(biāo)后

A:在當(dāng)前行尾

o:在當(dāng)前行之下新開一行

O:在當(dāng)前行之上新開一行

r:替換當(dāng)前字符

R:替換當(dāng)前字符及其后的字符,直至按ESC鍵

s:從當(dāng)前光標(biāo)位置處開始,以輸入的文本替代指定數(shù)目的字符

S:刪除指定數(shù)目的行,并以所輸入文本代替之

ncw或nCW:修改指定數(shù)目的字

nCC:修改指定數(shù)目的行

刪除命令:

ndw或ndW:刪除光標(biāo)處開始及其后的n-1個(gè)字

do:刪至行首

d$:刪至行尾

ndd:刪除當(dāng)前行及其后n-1行

x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的

Ctrl+u:刪除輸入方式下所輸入的文本

搜索及替換命令:

/pattern:從光標(biāo)開始處向文件尾搜索pattern

?pattern:從光標(biāo)開始處向文件首搜索pattern

n:在同一方向重復(fù)上一次搜索命令

N:在反方向上重復(fù)上一次搜索命令

:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:將文件中所有p1均用p2替換

撤銷回退命令:

u 撤銷上一步的操作

Ctrl+r 恢復(fù)上一步被撤銷的操作

選項(xiàng)設(shè)置:

all:列出所有選項(xiàng)設(shè)置情況

term:設(shè)置終端類型

ignorance:在搜索中忽略大小寫

list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)

number:顯示行號(hào)

report:顯示由面向行的命令修改過的數(shù)目

terse:顯示簡(jiǎn)短的警告信息

warn:在轉(zhuǎn)到別的文件時(shí)若沒保存當(dāng)前文件則顯示NO write信息

nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符

nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開始

mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

末行模式命令:

:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下

:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下

:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除

:w :保存當(dāng)前文件

:e filename:打開文件filename進(jìn)行編輯

:x:保存當(dāng)前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:wq:保存并退出

:!command:執(zhí)行shell命令command

:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入

:r!command:將命令command的輸出結(jié)果放到當(dāng)前行

寄存器操作:

“?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字

“?nyw:將當(dāng)前行及其下n個(gè)字保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字

“?nyl:將當(dāng)前行及其下n個(gè)字符保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字

“?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?可以是一個(gè)字母,也可以是一個(gè)數(shù)字

ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號(hào)刪除寄存器中。

linux常用命令

linux常用命令如下:

1、查看內(nèi)核版本:uname -a。

2、控制臺(tái)-圖形界面:init 5或者startx。

3、圖形界面-控制臺(tái): init3或者直接注銷。

4、如何查看ip地址:ifconfig。

5、配置ip:ifconfig eth0 ip地址。

6、重啟:reboot 或者 shutdown -r now。

操作命令

首先介紹一個(gè)名詞“控制臺(tái)”,它就是我們通常見到的使用字符操作界面的人機(jī)接口,例如dos。我們說控制臺(tái)命令,就是指通過字符界面輸入的可以操作系統(tǒng)的命令,例如dos命令就是控制臺(tái)命令。我們要了解的是基于Linux操作系統(tǒng)的基本控制臺(tái)命令和dos命令不同的是,Linux的命令(也包括文件名等等)對(duì)大小寫是敏感的。

linux命令的格式化命令是什么?

如果一個(gè)名稱用%括起來,那么就是用的它的賦值,而不是本身的字母

比如

echo time echo %time%

以上兩個(gè)前者顯示time這個(gè)字母,后者顯示系統(tǒng)時(shí)間 19:42:12:02

還有%diskdiver%=系統(tǒng)盤等。

可以用set自己設(shè)定,有一些是系統(tǒng)默認(rèn)的比容上面說的time;diskdiver

----------------------------------------------------------------------

FOR這條命令基本上都被用來處理文本,我們這次除了要說他處理文本的作用外還要講他的其他一些好用的功能!

看看他的基本格式(這里我引用的是批處理中的格式,直接在命令行只需要一個(gè)%號(hào))

FOR 參數(shù) %%變量名 IN (相關(guān)文件或命令) DO 執(zhí)行的命令

參數(shù):FOR有4個(gè)參數(shù) /d /l /r /f 他們的作用我在下面用例子解釋

%%變量名 :這個(gè)變量名可以是小寫a-z或者大寫A-Z,他們區(qū)分大小寫哦~

FOR會(huì)把每個(gè)讀取到的值給他!

IN:命令的格式,照寫就是了!

(相關(guān)文件或命令) :FOR要把什么東西讀取然后賦值給變量,不懂的話看下面的例子

do:命令的格式,照寫就是了!

執(zhí)行的命令:對(duì)每個(gè)變量的值要執(zhí)行什么操作就寫在這.

看不懂我的這些說明,可以在CMD輸入for /?看系統(tǒng)提供的幫助!我這里也給出來吧,大家對(duì)照

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一個(gè)單一字母可替換的參數(shù)。

(set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。

command 指定對(duì)每個(gè)文件執(zhí)行的命令。

command-parameters

為特定命令指定參數(shù)或命令行開關(guān)。

現(xiàn)在開始講每個(gè)參數(shù)的意思

/d

僅為目錄

如果 Set (也就是我上面寫的 "相關(guān)文件或命令") 包含通配符(* 和 ?),將對(duì)與 Set 相匹配的每個(gè)目錄(而不是指定目錄中的文件組)執(zhí)行指定的 Command。

這個(gè)參數(shù)其實(shí)我也沒弄太懂...有錯(cuò)誤希望各位糾正!

系統(tǒng)幫助的格式:FOR /D %%variable IN (set) DO command

他主要用于目錄搜索,不會(huì)搜索文件,看這樣的例子

@echo off

for /d %%i in (*) do @echo %%i

pause

把他保存放在C盤根目錄執(zhí)行,就會(huì)把C盤目錄下的全部目錄名字打印出來,而文件名字一個(gè)也不顯示!

在來一個(gè),比如我們要把當(dāng)前路徑下文件夾的名字只有1-3個(gè)字母的打出來

@echo off

for /d %%i in (???) do @echo %%i

pause

這樣的話如果你當(dāng)前目錄下有目錄名字只有1-3個(gè)字母的,就會(huì)顯示出來,沒有就不顯示了

這里解釋下*號(hào)和?號(hào)的作用,*號(hào)表示任意N個(gè)字符,而?號(hào)只表示任意一個(gè)字符

知道作用了,給大家個(gè)思考題目!

@echo off

for /d %%i in (window?) do @echo %%i

pause

保存到C盤下執(zhí)行,會(huì)顯示什么呢?自己看吧!

/D參數(shù)只能顯示當(dāng)前目錄下的目錄名字,這個(gè)大家要注意!

/R

遞歸

進(jìn)入根目錄樹 [Drive:]Path,在樹的每個(gè)目錄中執(zhí)行 for 語句。如果在 /R 后沒有指定目錄,則認(rèn)為是當(dāng)前目錄。如果 Set 只是一個(gè)句點(diǎn) (.),則只枚舉目錄樹。

系統(tǒng)幫助的格式:FOR /R [[drive:]path] %%variable IN (set) DO command

上面我們知道,/D只能顯示當(dāng)前路徑下的目錄名字,那么現(xiàn)在這個(gè)/R也是和目錄有關(guān),他能干嘛呢?放心他比/D強(qiáng)大多了!

他可以把當(dāng)前或者你指定路徑下的文件名字全部讀取,注意是文件名字,有什么用看例子!

@echo off

for /r c:\ %%i in (*.exe) do @echo %%i

pause

咋們把這個(gè)BAT保存到D盤隨便哪里然后執(zhí)行,我會(huì)就會(huì)看到,他把C盤根目錄,和每個(gè)目錄的子目錄下面全部的EXE文件都列出來了!!!!

再來一個(gè)

@echo off

for /r %%i in (*.exe) do @echo %%i

pause

參數(shù)不一樣了吧!這個(gè)命令前面沒加那個(gè)C:\也就是搜索路徑,這樣他就會(huì)以當(dāng)前目錄為搜索路徑,比如你這個(gè)BAT你把他防災(zāi)d:\test目錄下執(zhí)行,那么他就會(huì)把D:\test目錄和他下面的子目錄的全部EXE文件列出來!!!

這個(gè)參數(shù)大家因該理解了吧!還是滿好玩的命令!

/L

迭代數(shù)值范圍

使用迭代變量設(shè)置起始值 (Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設(shè)置的終止值 (End#)。/L 將通過對(duì) Start# 與 End# 進(jìn)行比較來執(zhí)行迭代變量。如果 Start# 小于 End#,就會(huì)執(zhí)行該命令。如果迭代變量超過 End#,則命令解釋程序退出此循環(huán)。還可以使用負(fù)的 Step# 以遞減數(shù)值的方式逐步執(zhí)行此范圍內(nèi)的值。例如,(1,1,5) 生成序列 1 2 3 4 5,而 (5,-1,1) 則生成序列 (5 4 3 2 1)。語法是:

系統(tǒng)幫助的格式:for /L %% Variable in (Start#,Step#,End#) do Command

看著這說明有點(diǎn)暈吧!咋們看例子就不暈了!

@echo off

for /l %%i in (1,1,5) do @echo %%i

pause

保存執(zhí)行看效果,他會(huì)打印從1 2 3 4 5 這樣5個(gè)數(shù)字

(1,1,5)這個(gè)參數(shù)也就是表示從1開始每次加1直到5終止!

大會(huì)暈,就打印個(gè)數(shù)字有P用...好的滿足大家,看這個(gè)例子

@echo off

for /l %%i in (1,1,5) do start cmd

pause

執(zhí)行后是不是嚇了一跳,怎么多了5個(gè)CMD窗口,呵呵!如果把那個(gè) (1,1,5)改成 (1,1,65535)會(huì)有什么結(jié)果,我先告訴大家,會(huì)打開65535個(gè)CMD窗口....這么多你不死機(jī)算你強(qiáng)!

當(dāng)然我們也可以把那個(gè)start cmd改成md %%i 這樣就會(huì)建立指定個(gè)目錄了!!!名字為1-65535

看完這個(gè)被我賦予破壞性質(zhì)的參數(shù)后,我們來看最后一個(gè)參數(shù)

/f

\迭代及文件解析

使用文件解析來處理命令輸出、字符串及文件內(nèi)容。使用迭代變量定義要檢查的內(nèi)容或字符串,并使用各種 ParsingKeywords 選項(xiàng)進(jìn)一步修改解析方式。使用 ParsingKeywords 令牌選項(xiàng)指定哪些令牌應(yīng)該作為迭代變量傳遞。請(qǐng)注意:在沒有使用令牌選項(xiàng)時(shí),/F 將只檢查第一個(gè)令牌。

文件解析過程包括讀取輸出、字符串或文件內(nèi)容,將其分成獨(dú)立的文本行以及再將每行解析成零個(gè)或更多個(gè)令牌。然后通過設(shè)置為令牌的迭代變量值,調(diào)用 for 循環(huán)。默認(rèn)情況下,/F 傳遞每個(gè)文件每一行的第一個(gè)空白分隔符號(hào)。跳過空行。

系統(tǒng)幫助的格式:

for /F "ParsingKeywords" %% Variable in (FileNameSet) do Command

有沒有發(fā)現(xiàn)這個(gè)參數(shù)說明比上面幾個(gè)都多...沒辦法,人們用FOR命令主要也就是用/f參數(shù),FOR的主場(chǎng)啊!大家得好好看!

先來解釋下那個(gè)多出來的"ParsingKeywords"

他表示4個(gè)參數(shù)

eol=c - 指一個(gè)行注釋字符的結(jié)尾(就一個(gè))

skip=n - 指在文件開始時(shí)忽略的行數(shù)。

delims=xxx - 指分隔符集。這個(gè)替換了空格和跳格鍵的

默認(rèn)分隔符集。

tokens=x,y,m-n - 指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代

的 for 本身。這會(huì)導(dǎo)致額外變量名稱的分配。m-n

格式為一個(gè)范圍。通過 nth 符號(hào)指定 mth。如果

符號(hào)字符串中的最后一個(gè)字符星號(hào),

那么額外的變量將在最后一個(gè)符號(hào)解析之后

分配并接受行的保留文本。

usebackq - 指定新語法已在下類情況中使用:

在作為命令執(zhí)行一個(gè)后引號(hào)的字符串并且一個(gè)單

引號(hào)字符為文字字符串命令并允許在 filenameset

中使用雙引號(hào)擴(kuò)起文件名稱。

先別暈了!我這就舉個(gè)例子幫助大家來理解這些參數(shù)!

usebackq這個(gè)參數(shù)不用理解了,系統(tǒng)默認(rèn)會(huì)給我們加上!

為了能使用這個(gè)例子,我們先新建一個(gè)文本文件,在里面打上這些內(nèi)容保存為test.txt:

;郁悶啊!

您好! 歡迎來到, 非常批處理

我們的網(wǎng)站 bbs.verybat.org

完畢!

@echo off

FOR /F "eol=; tokens=1 delims= " %%i in (test.txt) do @echo %%i

pause

我們把這個(gè)BAT保存到和你的test.txt相同的目錄下面然后執(zhí)行

我們會(huì)看到屏幕上會(huì)顯示

您好!

我們的網(wǎng)站

完畢!

為什么會(huì)這樣?我來解釋

這個(gè)命令會(huì)讀取在當(dāng)前目錄下名為test.txt文件中的內(nèi)容,將每一行的內(nèi)容賦值給變量%%i,忽略掉以;號(hào)開頭的行,并且以空格做為分隔符號(hào),打印每行以空格做分隔符號(hào)的第一列

結(jié)果就是這樣了!!

如果改成

當(dāng)然我們想要把全部文件內(nèi)容直接打印出來就可以這樣

@echo off

FOR /F "delims=" %%i in (test.txt) do @echo %%i

pause

另外/F參數(shù)還可以以輸出命令的結(jié)果看這個(gè)例子

@echo off

FOR /F "delims=" %%i in ('net user') do @echo %%i

pause

這樣你本機(jī)全部帳號(hào)名字就出來了把擴(kuò)號(hào)內(nèi)的內(nèi)容用兩個(gè)單引號(hào)引起來就表示那個(gè)當(dāng)命令執(zhí)行,FOR會(huì)返回命令的每行結(jié)果,加那個(gè)"delims=" 是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!

基本上講完了FOR的基本用法了...如果你看過FOR的系統(tǒng)幫助,你會(huì)發(fā)現(xiàn)他下面還有一些特定義的變量,這些我先不講.大家因該都累了吧!你不累我累啊....

當(dāng)前文章:linux命令do linux命令dog
新聞來源:http://muchs.cn/article28/ddiphjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、用戶體驗(yàn)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化