linux基礎(chǔ)-字符處理
在衡陽縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,衡陽縣網(wǎng)站建設(shè)費(fèi)用合理。
linux管道命令(pipe)
菜鳥教程
管道是一種通信機(jī)制,通常用于進(jìn)程間的通信,它表現(xiàn)出來的形式將前面每一個(gè)進(jìn)程的輸出直接作為下一個(gè)進(jìn)程的輸入。
管道命令使用 | 作為界定符號。
默認(rèn)情況下,sort命令以第一列進(jìn)行排序
反向排序
按指定列進(jìn)行排序,默認(rèn)是空白符,也可以用 -t 指定分隔符
第二列排序的時(shí)候可以加 -n 進(jìn)行數(shù)值排序
進(jìn)行排序后,排序結(jié)果會(huì)顯示在終端,但是原文件不會(huì)改變,可以用-o重定向或者另存。用 覆蓋某個(gè)文件會(huì)失敗,數(shù)據(jù)被清空,但是用 追加可以
為初學(xué)者提供的uniq命令教程及示例
uniq 命令用于檢查及刪除文本文件中重復(fù)出現(xiàn)的行列。uniq命令只有在相鄰的情況下才會(huì)刪除重復(fù)的行,因此一般與 sort 命令結(jié)合使用,此外,該命令也可以檢查文本文件中重復(fù)出現(xiàn)的行列,默認(rèn)區(qū)分大小寫。
準(zhǔn)備一個(gè)文件
準(zhǔn)備一個(gè)文件
以分割符指定分割某些特定的列
Linux tr 命令用于轉(zhuǎn)換或刪除文件中的字符。
tr 指令從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),經(jīng)過字符串轉(zhuǎn)譯后,將結(jié)果輸出到標(biāo)準(zhǔn)輸出設(shè)備。
語法:tr [OPTION]…SET1[SET2]
小寫轉(zhuǎn)換為大寫
刪除字符
Linux paste 命令用于合并文件的列。
paste 指令會(huì)把每個(gè)文件以列對列的方式,一列列地加以合并。
不加參數(shù)會(huì)默認(rèn)以制表符為分界列對列合并
-d可以設(shè)置以何種字符合并
使用s參數(shù)時(shí)。單個(gè)文件會(huì)將該文件的多行數(shù)據(jù)合并成一行顯示,多個(gè)文件會(huì)將各個(gè)文件單獨(dú)合并成一行之后再行對行合并
Linux split命令用于將一個(gè)文件分割成數(shù)個(gè)。
該指令將大文件分割成較小的文件,在默認(rèn)情況下將按照每1000行切割成一個(gè)小文件。
將根目錄文件信息寫入文件
對上面的文件9行為一個(gè)文件進(jìn)行分割
以1k字節(jié)分割文件
不加參數(shù)會(huì)同時(shí)顯示行數(shù),字?jǐn)?shù),Bytes數(shù),加上上述參數(shù)會(huì)單獨(dú)顯示其中一項(xiàng)
Linux下常用文本處理命令大全
Linux下面有很多經(jīng)典的非常有用的命令,其中處理文本的命令就有很多。下面就讓我們一起看看這些經(jīng)典的Linux文本處理命令有哪些吧。
一. sort
文件排序, 通常用在管道中當(dāng)過濾器來使用. 這個(gè)命令可以依據(jù)指定的關(guān)鍵字或指定的字符位置, 對文件行進(jìn)行排序. 使用-m選項(xiàng), 它將會(huì)合并預(yù)排序的輸入文件. 想了解這個(gè)命令的全部參數(shù)請參考這個(gè)命令的info頁.
二. tsort
拓?fù)渑判? 讀取以空格分隔的有序?qū)? 并且依靠輸入模式進(jìn)行排序.
三. uniq
這個(gè)過濾器將會(huì)刪除一個(gè)已排序文件中的重復(fù)行. 這個(gè)命令經(jīng)常出現(xiàn)在sort命令的管道后邊.
四. expand, unexpand
expand命令將會(huì)把每個(gè)tab轉(zhuǎn)化為一個(gè)空格. 這個(gè)命令經(jīng)常用在管道中.
unexpand命令將會(huì)把每個(gè)空格轉(zhuǎn)化為一個(gè)tab. 效果與expand命令相反.
五. cut
一個(gè)從文件中提取特定域的工具. 這個(gè)命令與awk中使用的print $N命令很相似, 但是更受限. 在腳本中使用cut命令會(huì)比使用awk命令來得容易一些. 最重要的選項(xiàng)就是-d(字段定界符)和-f(域分隔符)選項(xiàng).
六. paste
將多個(gè)文件, 以每個(gè)文件一列的形式合并到一個(gè)文件中, 合并后文件中的每一列就是原來的一個(gè)文件. 與cut結(jié)合使用, 經(jīng)常用于創(chuàng)建系統(tǒng)log文件.
七. join
這個(gè)命令與paste命令屬于同類命令. 但是它能夠完成某些特殊的目地. 這個(gè)強(qiáng)力工具能夠以一種特殊的形式來合并兩個(gè)文件, 這種特殊的形式本質(zhì)上就是一個(gè)關(guān)聯(lián)數(shù)據(jù)庫的簡單版本.
join命令只能夠操作兩個(gè)文件. 它可以將那些具有特定標(biāo)記域(通常是一個(gè)數(shù)字標(biāo)簽)的行合并起來, 并且將結(jié)果輸出到stdout. 被加入的文件應(yīng)該事先根據(jù)標(biāo)記域進(jìn)行排序以便于能夠正確的匹配.
八. head
把文件的頭部內(nèi)容打印到stdout上(默認(rèn)為10行, 可以自己修改). 這個(gè)命令有一些比較有趣的選項(xiàng).
九. tail
將一個(gè)文件結(jié)尾部分的內(nèi)容輸出到stdout中(默認(rèn)為10行). 通常用來跟蹤一個(gè)系統(tǒng)logfile的.修改情況, 如果使用-f選項(xiàng)的話, 這個(gè)命令將會(huì)繼續(xù)顯示添加到文件中的行.
十. wc
wc可以統(tǒng)計(jì)文件或I/O流中的”單詞數(shù)量”:
十一. fold
將輸入按照指定寬度進(jìn)行折行. 這里有一個(gè)非常有用的選項(xiàng)-s, 這個(gè)選項(xiàng)可以使用空格進(jìn)行斷行(譯者: 事實(shí)上只有外文才需要使用空格斷行, 中文是不需要的)(請參考例子 12-23和例子 A-1).
十二. fmt
一個(gè)簡單的文件格式器, 通常用在管道中, 將一個(gè)比較長的文本行輸出進(jìn)行”折行”.
十三. col
這個(gè)命令用來濾除標(biāo)準(zhǔn)輸入的反向換行符號. 這個(gè)工具還可以將空白用等價(jià)的tab來替換. col工具最主要的應(yīng)用還是從特定的文本處理工具中過濾輸出, 比如groff和tbl. (譯者: 主要用來將man頁轉(zhuǎn)化為文本.)
十四. column
列格式化工具. 通過在合適的位置插入tab, 這個(gè)過濾工具會(huì)將列類型的文本轉(zhuǎn)化為”易于打印”的表格式進(jìn)行輸出.
十五. colrm
列刪除過濾器. 這個(gè)工具將會(huì)從文件中刪除指定的列(列中的字符串)并且寫到文件中, 如果指定的列不存在, 那么就回到stdout. colrm 2 4 filename將會(huì)刪除filename文件中每行的第2到第4列之間的所有字符. p="" /filename將會(huì)刪除filename文件中每行的第2到第4列之間的所有字符.
Caution: 如果這個(gè)文件包含tab和不可打印字符, 那將會(huì)引起不可預(yù)期的行為. 在這種情況下, 應(yīng)該通過管道的手段使用expand和unexpand來預(yù)處理colrm.
十六. nl
計(jì)算行號過濾器. nl filename將會(huì)把filename文件的所有內(nèi)容都輸出到stdout上, 但是會(huì)在每個(gè)非空行的前面加上連續(xù)的行號. 如果沒有filename參數(shù), 那么就操作stdin.
nl命令的輸出與cat -n非常相似, 然而, 默認(rèn)情況下nl不會(huì)列出空行.
十七. pr
格式化打印過濾器. 這個(gè)命令會(huì)將文件(或stdout)分頁, 將它們分成合適的小塊以便于硬拷貝打印或者在屏幕上瀏覽. 使用這個(gè)命令的不同的參數(shù)可以完成好多任務(wù), 比如對行和列的操作, 加入行, 設(shè)置頁邊, 計(jì)算行號, 添加頁眉, 合并文件等等. pr命令集合了許多命令的功能, 比如nl, paste, fold, column, 和expand.
pr -o 5 –width=65 fileZZZ | more 這個(gè)命令對fileZZZ進(jìn)行了比較好的分頁, 并且打印到屏幕上. 文件的縮進(jìn)被設(shè)置為5, 總寬度設(shè)置為65.
一個(gè)非常有用的選項(xiàng)-d, 強(qiáng)制隔行打印(與sed -G效果相同).
十八. gettext
GNU gettext包是專門用來將程序的輸出翻譯或者本地化為不同國家語言的工具集. 在最開始的時(shí)候僅僅支持C語言, 現(xiàn)在已經(jīng)支持了相當(dāng)數(shù)量的其它程序語言和腳本語言.
想要查看gettext程序如何在shell腳本中使用. 請參考info頁.
十九. msgfmt
一個(gè)產(chǎn)生二進(jìn)制消息目錄的程序. 這個(gè)命令主要用來本地化.
二十. iconv
一個(gè)可以將文件轉(zhuǎn)化為不同編碼格式(字符集)的工具. 這個(gè)命令主要用來本地化.
二十一. recode
可以認(rèn)為這個(gè)命令是上邊iconv命令的專業(yè)版本. 這個(gè)非常靈活的并可以把整個(gè)文件都轉(zhuǎn)換為不同編碼格式的工具并不是Linux標(biāo)準(zhǔn)安裝的一部分.
二十二. TeX, gs
TeX和Postscript都是文本標(biāo)記語言, 用來對打印和格式化的視頻顯示進(jìn)行預(yù)拷貝.
TeX是Donald Knuth精心制作的排版系統(tǒng). 通常情況下, 通過編寫腳本的手段來把所有的選項(xiàng)和參數(shù)封裝起來一起傳到標(biāo)記語言中是一件很方便的事情.
如果一個(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è)%號)
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í)行的命令:對每個(gè)變量的值要執(zhí)行什么操作就寫在這.
看不懂我的這些說明,可以在CMD輸入for /?看系統(tǒng)提供的幫助!我這里也給出來吧,大家對照
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一個(gè)單一字母可替換的參數(shù)。
(set) 指定一個(gè)或一組文件。可以使用通配符。
command 指定對每個(gè)文件執(zhí)行的命令。
command-parameters
為特定命令指定參數(shù)或命令行開關(guān)。
現(xiàn)在開始講每個(gè)參數(shù)的意思
/d
僅為目錄
如果 Set (也就是我上面寫的 "相關(guān)文件或命令") 包含通配符(* 和 ?),將對與 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ì)顯示出來,沒有就不顯示了
這里解釋下*號和?號的作用,*號表示任意N個(gè)字符,而?號只表示任意一個(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 將通過對 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)該作為迭代變量傳遞。請注意:在沒有使用令牌選項(xiàng)時(shí),/F 將只檢查第一個(gè)令牌。
文件解析過程包括讀取輸出、字符串或文件內(nèi)容,將其分成獨(dú)立的文本行以及再將每行解析成零個(gè)或更多個(gè)令牌。然后通過設(shè)置為令牌的迭代變量值,調(diào)用 for 循環(huán)。默認(rèn)情況下,/F 傳遞每個(gè)文件每一行的第一個(gè)空白分隔符號。跳過空行。
系統(tǒng)幫助的格式:
for /F "ParsingKeywords" %% Variable in (FileNameSet) do Command
有沒有發(fā)現(xiàn)這個(gè)參數(shù)說明比上面幾個(gè)都多...沒辦法,人們用FOR命令主要也就是用/f參數(shù),FOR的主場啊!大家得好好看!
先來解釋下那個(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è)符號被傳遞到每個(gè)迭代
的 for 本身。這會(huì)導(dǎo)致額外變量名稱的分配。m-n
格式為一個(gè)范圍。通過 nth 符號指定 mth。如果
符號字符串中的最后一個(gè)字符星號,
那么額外的變量將在最后一個(gè)符號解析之后
分配并接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執(zhí)行一個(gè)后引號的字符串并且一個(gè)單
引號字符為文字字符串命令并允許在 filenameset
中使用雙引號擴(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,忽略掉以;號開頭的行,并且以空格做為分隔符號,打印每行以空格做分隔符號的第一列
結(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ī)全部帳號名字就出來了把擴(kuò)號內(nèi)的內(nèi)容用兩個(gè)單引號引起來就表示那個(gè)當(dāng)命令執(zhí)行,FOR會(huì)返回命令的每行結(jié)果,加那個(gè)"delims=" 是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!
基本上講完了FOR的基本用法了...如果你看過FOR的系統(tǒng)幫助,你會(huì)發(fā)現(xiàn)他下面還有一些特定義的變量,這些我先不講.大家因該都累了吧!你不累我累啊....
1、grep [選項(xiàng)] 字符串 文件名(在文件中匹配符合條件的字符串)
選項(xiàng):
-i 忽略大小寫
-v 排除指定的字符串
例子:
grep "test" a.txt(在a.txt中搜索匹配test的字符串)
注意:
find命令:在系統(tǒng)中搜符合條件文件名,使用通用符,通用符是完全匹配
grep命令:在文件中搜索符合條件字符串,使用正則匹配,正則包含匹配
學(xué)習(xí)Linux系統(tǒng),命令是最基礎(chǔ)的一部分,有著很重要的地位,所以入門必須掌握好常用命令。下面由我為大家整理了Linux系統(tǒng)常用的基本命令入門篇,希望對大家有幫助!
Linux系統(tǒng)常用的基本命令入門篇一、基礎(chǔ)命令
1.Linu x的進(jìn) 入與退出系統(tǒng)
進(jìn)入Linux系統(tǒng):
必須要輸入用戶的賬號,在系統(tǒng)安裝過程中可以創(chuàng)建以下兩種帳號:
1.root--超級用戶帳號(系統(tǒng)管理員),使用這個(gè)帳號可以在系統(tǒng)中做任何事情。
2.普通用戶--這個(gè)帳號供普通用戶使用,可以進(jìn)行有限的操作。
一般的Linux使用者均為普通用戶,而系統(tǒng)管理員一般使用超級用戶帳號完成一些系統(tǒng)管理的工作。如果只需要完成一些由普通帳號就能完成的任務(wù),建議不要使用超級用戶帳號,以免無意中破壞系統(tǒng)。影響系統(tǒng)的正常運(yùn)行。
用戶登錄分兩步:第一步,輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名識別用戶;第二步,輸入用戶的口令,該口令是用戶自己設(shè)置的一個(gè)字符串,對其他用戶是保密的,是在登錄時(shí)系統(tǒng)用來辨別真假用戶的關(guān)鍵字。
當(dāng)用戶正確地輸入用戶名和口令后,就能合法地進(jìn)入系統(tǒng)。屏幕顯示:
[root@loclhost/root] #
這時(shí)就可以對系統(tǒng)做各種操作了。注意超級用戶的提示符是ldquo;#rdquo;,其他用戶的提示符是ldquo;$rdquo;。
2.修改口令
為了更好的保護(hù)用戶帳號的安全,Linux允許用戶隨時(shí)修改自己的口令,修改口令的命令是passwd,它將提示用戶輸入舊口令和新口令,之后還要求用戶再次確認(rèn)新口令,以避免用戶無意中按錯(cuò)鍵。如果用戶忘記了口令,可以向系統(tǒng)管理員申請為自己重新設(shè)置一個(gè)。
3.虛擬控制臺(tái)
Linux是一個(gè)真正的多用戶 操作系統(tǒng) ,它可以同時(shí)接受多個(gè)用戶登錄。Linux還允許一個(gè)用戶進(jìn)行多次登錄,這是因?yàn)長inux和UNIX一樣,提供了虛擬控制臺(tái)的訪問方式,允許用戶在同一時(shí)間從控制臺(tái)進(jìn)行多次登錄。虛擬控制臺(tái)的選擇可以通過按下Alt鍵和一個(gè)功能鍵來實(shí)現(xiàn),通常使用F1-F6例如,用戶登錄后,按一下Alt-F2鍵,用戶又可以看到"login:"提示符,說明用戶看到了第二個(gè)虛擬控制臺(tái)。然后只需按Alt-F1鍵,就可以回到第一個(gè)虛擬控制臺(tái)。 一個(gè)新安裝的Linux系統(tǒng)默認(rèn)允許用戶使用Alt-F1到Alt-F6鍵來訪問前六個(gè)虛擬控制臺(tái)。虛擬控制臺(tái)可使用戶同時(shí)在多個(gè)控制臺(tái)上工作,真正體現(xiàn)Linux系統(tǒng)多用戶的特性。用戶可以在某一虛擬控制臺(tái)上進(jìn)行的工作尚未結(jié)束時(shí),切換到另一虛擬控制臺(tái)開始另一項(xiàng)工作。
退出系統(tǒng)
不論是超級用戶,還是普通用戶,需要退出系統(tǒng)時(shí),在shell提示符下,鍵入exit命令即可。
4.查看命令幫助信息
man命令
man命令用于查詢命令和程序的使用 方法 和參數(shù)。
例如:
man ls
將顯示ls命令的基本格式和使用方法
Linux系統(tǒng)常用的基本命令入門篇二、關(guān)機(jī)重啟命令
首先,是關(guān)機(jī)/重啟命令,僅在虛擬機(jī)時(shí)使用,實(shí)際工作中用不到
reboot 一般不跟參數(shù)使用,輸入指令即可重啟
shutdown 一般需要跟參數(shù),例:
shutdown -r 延時(shí)多少分鐘重啟,一般使用now
shutdown -r now 立即重啟
shutdown -f 強(qiáng)制重啟
跟windows一樣,linux也存在注銷功能
exit
1)halt
halt 可不接參數(shù)
halt -f 強(qiáng)制關(guān)機(jī)
2)poweroff
poweroff 可不接參數(shù)使用
poweroff -f 強(qiáng)制關(guān)機(jī)
3)init 0
4)shutdown 不可單獨(dú)使用
shutdown -h 分鐘數(shù) 延時(shí)多久關(guān)機(jī)
shutdown -h now 立即關(guān)機(jī)
Linux系統(tǒng)常用的基本命令入門篇三、vi編輯
vi命令是UNIX操作系統(tǒng)和類UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。
Linux中的vi編輯器叫vim,它是vi的增強(qiáng)版(vi Improved),與vi編輯器完全兼容,而且實(shí)現(xiàn)了很多增強(qiáng)功能。
vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。
默認(rèn)情況下,打開vi編輯器后自動(dòng)進(jìn)入命令模式。從編輯模式切換到命令模式使用ldquo;escrdquo;鍵,從命令模式切換到編輯模式使用ldquo;Ardquo;、ldquo;ardquo;、ldquo;Ordquo;、ldquo;ordquo;、ldquo;Irdquo;、ldquo;irdquo;鍵。
vi編輯器提供了豐富的內(nèi)置命令,有些內(nèi)置命令使用鍵盤組合鍵即可完成,有些內(nèi)置命令則需要以冒號ldquo;:rdquo;開頭輸入。常用內(nèi)置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:從編輯模式切換到命令模式;
6 ZZ:命令模式下保存當(dāng)前文件所做的修改后退出vi;
7 :行號:光標(biāo)跳轉(zhuǎn)到指定行的行首;
8 :$:光標(biāo)跳轉(zhuǎn)到最后一行的行首;
9 x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的;
10 D:刪除從當(dāng)前光標(biāo)到光標(biāo)所在行尾的全部字符;
11 dd:刪除光標(biāo)行正行內(nèi)容;
12 ndd:刪除當(dāng)前行及其后n-1行;
13 nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字;
14 p:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當(dāng)前光標(biāo)所在位置的下方;
15 P:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當(dāng)前光標(biāo)所在位置的上方;
16 /字符串:文本查找操作,用于從當(dāng)前光標(biāo)所在位置開始向文件尾部查找指定字符串的內(nèi)容,查找的字符串會(huì)被加亮顯示;
17 ?name:文本查找操作,用于從當(dāng)前光標(biāo)所在位置開始向文件頭部查找指定字符串的內(nèi)容,查找的字符串會(huì)被加亮顯示;
18 a,bs/F/T:替換文本操作,用于在第a行到第b行之間,將F字符串換成T字符串。其中,ldquo;s/rdquo;表示進(jìn)行替換操作;
19 a:在當(dāng)前字符后添加文本;
20 A:在行末添加文本;
21 i:在當(dāng)前字符前插入文本;
22 I:在行首插入文本;
23 o:在當(dāng)前行后面插入一空行;
24 O:在當(dāng)前行前面插入一空行;
25 :wq:在命令模式下,執(zhí)行存盤退出操作;
26 :w:在命令模式下,執(zhí)行存盤操作;
27 :w!:在命令模式下,執(zhí)行強(qiáng)制存盤操作;
28 :q:在命令模式下,執(zhí)行退出vi操作;
29 :q!:在命令模式下,執(zhí)行強(qiáng)制退出vi操作;
30 :e文件名:在命令模式下,打開并編輯指定名稱的文件;
31 :n:在命令模式下,如果同時(shí)打開多個(gè)文件,則繼續(xù)編輯下一個(gè)文件;
32 :f:在命令模式下,用于顯示當(dāng)前的文件名、光標(biāo)所在行的行號以及顯示比例;
33 :set nu:在命令模式下,用于在最左端顯示行號;
34 :set nonu:在命令模式下,用于在最左端不顯示行號;
35 :1,3y 復(fù)制第一行到第三行
36 :1,3d 刪除第一行到第三行
37 :1,3s/str/str_new/g 替換第一行到第三行中的字符串
38 :1,3s/str/str_new 替換第一行到第三行中的字符串第一個(gè)字符
39 :1,3 g/str /d 刪除第一行到第三行中含有這個(gè)字符串的行
Linux常用命令一、查詢相關(guān)
find
按規(guī)則查找某個(gè)文件或文件夾,包括子目錄
find . -name '_sh' -- 以.sh結(jié)尾的文件
find . -name '_hannel_ -- 包含channel字符的文件
find . -name 'build_ -- 以build開頭的文件
find . -name 'abc??' -- abc后面有兩個(gè)字符的文件
grep
查找內(nèi)容包含指定的范本樣式的文件,Global Regular Expression Print
grep -n pattern files -- 規(guī)則 -n表示顯示行號
grep -n 'PostsActivity' AndroidManifest.xmlgrep -n '\d' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方
grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并顯示行號
ps -e | grep java -- 所有java進(jìn)程
ps -e | grep -i qq --所有qq進(jìn)程,不區(qū)分大小寫
find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml結(jié)尾的文件中查找包含lsquo;aaptrsquo;關(guān)鍵字的地方
ls | grep 'channel' -- 包含channel關(guān)鍵字的文件
which
在PATH變量指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果
which zipwhich grep
Linux常用命令二、查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
從指定點(diǎn)開始將文件寫到標(biāo)準(zhǔn)輸出。使用tail命令的-f選項(xiàng)可以方便的查閱正在改變的日志文件,tail -f filename會(huì)把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。
tail -f test.log,循環(huán)查看文件內(nèi)容,Ctrl+c來終止
tail -n 5 test.log,顯示文件最后5行內(nèi)容
tail -n +5 test.log,從第5行開始顯示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一樣都是查看文件里的內(nèi)容,但有所不同的是more可以按頁來查看文件的內(nèi)容,還支持直接跳轉(zhuǎn)行等功能。
more +3 test.log,顯示文件中從第3行起的內(nèi)容
more -5 test.log,設(shè)定每屏顯示行數(shù)
ls -l | more -5,每頁顯示5個(gè)文件信息
more +/day3 test.log,查找第一個(gè)出現(xiàn)"day3"字符串的行,并從該處前兩行開始顯示輸出
less
less [options] [file...]
與more命令一樣,less命令也用來分屏顯示文件的內(nèi)容。但是二者存在差別:less命令允許用戶向前或向后瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時(shí),用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應(yīng)按Q鍵。
less test.log,查看文件
ps -ef | less,查看進(jìn)程信息并通過less分頁顯示
history | less,查看命令歷史使用記錄并通過less分頁顯示
less test1.log test2.log,瀏覽多個(gè)文件,n和p切換文件
watch
watch [options] command
每隔一段時(shí)間重復(fù)運(yùn)行一個(gè)命令,默認(rèn)間隔時(shí)間是2秒。要運(yùn)行的命令直接傳給shell(注意引用和轉(zhuǎn)義特殊字符)。結(jié)果會(huì)展示為全屏模式,這樣你可以很方便的觀察改變
watch -n 60 date,執(zhí)行date命令每分鐘一次,輸入^C 退出
watch -d ls -l,查看目錄變化
watch -d rsquo;ls -l | fgrep joersquo;,想找joe用戶的文件
watch -d 'ls -l|grep scf',監(jiān)測當(dāng)前目錄中 scf' 的文件的變化
watch -n 10 'cat /proc/loadavg',10秒一次輸出系統(tǒng)的平均負(fù)載
watch -n 1 -d netstat -ant,每隔一秒高亮顯示網(wǎng)絡(luò)鏈接數(shù)的變化
watch -n 1 -d 'pstree | grep http',每隔一秒高亮顯示http鏈接數(shù)的變化
Linux常用命令三、文件相關(guān)
vi
vi file
按i鍵,進(jìn)入編輯模式
按esc鍵,進(jìn)入命令模式
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強(qiáng)制保存,不推出vi
:wq 保存文件并退出vi
:wq! 強(qiáng)制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,強(qiáng)制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯
chmod
change mode,變更文件或目錄的讀、寫、運(yùn)行權(quán)限
chmod [-cfvR] [--help] [--version] mode file...
mode:權(quán)限設(shè)定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬于同一個(gè)群體(group)者,o 表示其他以外的人,a 表示這三者皆是
+ 表示增加權(quán)限、- 表示取消權(quán)限、= 表示唯一設(shè)定權(quán)限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當(dāng)該檔案是個(gè)子目錄或者該檔案已經(jīng)被設(shè)定過為可執(zhí)行。
chmod也可以用數(shù)字來表示權(quán)限,語法為:chmod abc file,如chmod 777 file
其中a,b,c各為一個(gè)數(shù)字,分別表示User、Group、及Other的權(quán)限。 r=4,w=2,x=1
chmod 777 file,等同于 chmod a=rwx file
chmod ug=rwx,o=x file,等同于 chmod 771 file
chmod 4755 filename,可使此程序具有root的權(quán)限
ls -l 可以查看列出當(dāng)前用戶的文件權(quán)限
zip
zip -r filename.zip filesdir
zip -r test.zip ./_把當(dāng)前所有文件壓縮到test.zip
zip -r test.zip test,把test文件所有文件及目錄,要是到test.zip
zip -d test.zip test.txt,刪除壓縮文件中test.txt文件
zip -m test.zip ./test.txt,向壓縮文件中test.zip中添加test.txt文件
zip -r test.zip file1 file2 file3 filesdir,處理多個(gè)文件和目錄,空格隔開
unzip
unzip zip-file,解壓到當(dāng)前目錄
unzip -d dst-dir zip-file,解壓到指定的目錄,-d后為指定目錄
unzip -n zip-file,不覆蓋已經(jīng)存在的文件,-n為不要覆蓋原有的文件
unzip -n -d dst-dir zip-file,解壓到指定的目錄,不覆蓋已經(jīng)原有的文件
unzip -o -d dst-dir zip-file,-o不必先詢問用戶覆蓋原有文件
unzip -l zip-file,僅查看壓縮文件內(nèi)所包含的文件
tar
tar cvf test.tar test,把test下所有文件和目錄做備份tar czvf test.tar.gz test,把test下所有文件和目錄做備份并進(jìn)行壓縮tar xzvf test.tar.gz,把這個(gè)備份文件還原并解壓縮tar tvf test.tar | more,查看備份文件的內(nèi)容,并以分屏方式顯示在 顯示器 上
tar czvf test.tar.gz test --exclude=test/svn,備份壓縮并排除目錄
touch
1.列出文件清單命令:ls
ls命令能夠列出當(dāng)前目錄下的所有內(nèi)容。ls 命令的執(zhí)行方式為:
# ls [-選項(xiàng)] [文件名或者目錄名]
進(jìn)入到Linux命令行中后,我們至少要知道當(dāng)前所處的位置有哪些內(nèi)容,這些信息就可以使用ls命令來獲得。
在Linux中,ls命令是最常使用的命令之一,因?yàn)樵诿钚邢乱S時(shí)查看目錄內(nèi)容。如果不加任何選項(xiàng)的話,ls命令僅列出當(dāng)前目錄下的文件和目錄名,例如,想要查看/etc目錄下的內(nèi)容,可以使用下列命令:
# ls /etc
如果想要列出當(dāng)前目錄下所有文件,則可以使用下列命令:
# ls -a
2、cat命令
功能:在標(biāo)準(zhǔn)輸出上顯示文件。
語法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 file2
3、more命令
功能:在終端屏幕按屏顯示文本文件。
語法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能幾乎和more命令一樣,也是用來按頁顯示文件,不同之處在于less命令在顯示文件時(shí)允許用戶既
可以向前又可以向后翻閱文件。
5、head命令
功能:顯示指定文件的前若干行。缺省設(shè)置為顯示10行
語法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:顯示指定文件的末尾若干行。缺省設(shè)置為顯示10行
語法:tail [+ / - num ] [參數(shù)] 文件
+num 從第num行以后開始顯示。- num 從距文件尾num行處開始顯示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
這組命令以指定模式搜索文件,并通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并打印出所有包含該字符串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個(gè)指定的模式;egrep命令檢索擴(kuò)展的正則表達(dá)式(包括表達(dá)式組和可選項(xiàng));fgrep命令檢索固定字符串,它不識別正則表達(dá)式,是快速搜索命令。
語法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [選項(xiàng)] [查找模式] [文件名1,文件名2,……]
fgrep [選項(xiàng)] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c