在 Linux 系統(tǒng)中,可以使用 ls 命令列出當前目錄下的文件和目錄。如果您希望在 ls 命令的輸出中添加行號,可以使用 nl 命令配合 ls 命令使用。例如,您可以這樣使用這兩個命令:
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、涿州ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的涿州網(wǎng)站制作公司
ls | nl
這條命令會列出當前目錄下的文件和目錄,并在每一行的開頭添加一個行號。如果您只想顯示文件,可以使用 -l 參數(shù)來更改 ls 命令的輸出,例如:
ls -l | nl
這條命令只會列出當前目錄下的文件,并且會顯示每個文件的詳細信息,包括權(quán)限、大小、時間等。
需要注意的是,nl 命令的行號是從 1 開始的,如果您希望從其他數(shù)字開始編號,可以使用 -n 參數(shù)來指定行號的開始值。例如,如果您希望從 5 開始編號,可以這樣使用 nl 命令:
ls | nl -n 5
這條命令會從 5 開始編號,每一行的行號都比上一行多 1。您還可以使用其他參數(shù),來控制行號的格式和顯示方式。具體的用法可以參考 nl 命令的幫助文檔,或者搜索相關(guān)資料。
tee用于把命令結(jié)果打印在屏幕上并同時保存到文件。
tee用法
描述:從標準輸入中讀取并同時寫入到標準輸出和指定的文件上
選項:
-a,--append:不覆蓋,而是追加輸出到指定的文件中
-i,--ignore-interrupts:忽略中斷信息
若指定的輸出文件為'-',則再次輸出到標準輸出上
實例:
tee Example.txt #將標準輸入中輸入的內(nèi)容同時輸出到Example.txt和標準輸出上
實踐:
例如 ifconfig | tee ifconfig.log
查看iconfig.log
注:
標準輸入一般有鍵盤和其它文件,標準輸出有屏幕等。tee只能進行標準輸入的輸出,對于錯誤輸入是不能輸出的。
在調(diào)試腳本時,想要每個命令的執(zhí)行過程都輸出到屏幕或者文件中,以便后續(xù)查看,如何操作呢?首先腳本第一行要寫為“#!/bin/bash -x”,這樣會把每個命令的執(zhí)行記錄都輸出到屏幕,若還要輸出到指定文件,要用到tee,但tee只能進行標準輸入,對于標準輸入和錯誤輸入要用到下式:
./filename.sh 21 | tee output.log? ?或者直接 bash -x ./filename.sh?21 | tee output.log
今天調(diào)試一個bash,要把屏幕的輸出結(jié)果存到log文件中,開始輸入$bash -x ./test.sh log 結(jié)果發(fā)現(xiàn)log里只存放了程序的執(zhí)行結(jié)果,后來在cu的一篇帖子里?tid=264380highlight=bash得到了啟發(fā),bash -x的調(diào)試信息是輸出到2號流中的,所以解決方案為bash -x ./test.sh 21 | tee log 想起以前要存放執(zhí)行make的結(jié)果時也遇到類似問題,總結(jié)如下:
1、管道符的“I”的作用只是把前一個程序的標準輸出流(stdout)的數(shù)據(jù)作為后一個程序的標準輸入流stdin的數(shù)據(jù),如不進行重定向,則其他輸出流的信息是無法傳給后面的程序的
2、屏幕得到的信息不一定是從程序的標準輸出來的,也包括標準錯誤輸出流stderr中的信息
3、有些程序(特別是象bash、make這樣執(zhí)行了其他程序的程序)的設(shè)計者為了省事,把一些正常情況的信息也放在stderr中輸出(即使程序本身并無錯誤),而stdout用來輸出被調(diào)用程序的執(zhí)行時信息,造成了用戶的誤解簡單編寫了一下腳本,通過ssh登陸在命令行下運行正常,可是將腳本添加到crontab中就不正常。想記錄一下輸出信息,分析一下錯誤原因。將腳本通過使用info.log 重定向輸出,結(jié)果發(fā)現(xiàn)一些在命令行下可以看到的文本信息沒有記錄到info.log文件中,研究了一下,那些輸出估計是輸出到了標準錯誤上。
研究了一下通常添加命令后面幾個輸出含義
■ /dev/null 輸出到空設(shè)備,表示丟掉輸出信息。
■ 21將輸出到標準錯誤的信息輸出到標準輸出設(shè)備(通常是屏幕)有3個默認的i/o,
■ 0是標準輸入,一般是鍵盤
■ 1是標準輸出,一般是屏幕
■ 2是標準錯誤,有時候屏幕上可以看到,但是重定向的文件中看不到的就是它了
linux
grep命令1.作用
linux系統(tǒng)中g(shù)rep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹
配的行打印出來。grep全稱是global
regular
expression
print,表示全局正則表達式版本,它的使用權(quán)限是所有用戶。
2.格式
grep
[options]
3.主要參數(shù)
[options]主要參數(shù):
-c:只輸出匹配行的計數(shù)。
-i:不區(qū)分大
小寫(只適用于單字符)。
-h(huán):查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及
行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數(shù):
\:
忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$:
匹配正則表達式的結(jié)束行。
\:從匹配正則表達
式的行開始。
\:到匹配正則表達式的行結(jié)束。
[
]:單個字符,如[a]即a符合要求
。
[
-
]:范圍,如[a-z],即a、b、c一直到z都符合要求
。
。:所有的單個字符。
*
:有字符,長度可以為0。
4.grep命令使用簡單實例
$
grep
‘test’
d*
顯示所有以d開頭的文件中包含
test的行。
linux輸出文件有幾列可以使用catfilename|awk'{printNF}'命令可以得到每一行對應(yīng)有多少列。
例如文件a.txt的內(nèi)容為:
你好?北京?天安門
1234
12345
輸入并執(zhí)行cata.txt|awk'{printNF}'得出以下結(jié)果:
3
4
5
輸出結(jié)果分別代表第一行有3列,第二行有4列,第三行有5列。
1、Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。伴隨著互聯(lián)網(wǎng)的發(fā)展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。
它除了在服務(wù)器操作系統(tǒng)方面保持著強勁的發(fā)展勢頭以外,在個人電腦、嵌入式系統(tǒng)上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統(tǒng)的實現(xiàn)機制,而且可以根據(jù)自身的需要來修改完善這個操作系統(tǒng),使其最大化地適應(yīng)用戶的需要。
2、AWK是一個優(yōu)良的文本處理工具,Linux及Unix環(huán)境中現(xiàn)有的功能最強大的數(shù)據(jù)處理引擎之一。這種編程及數(shù)據(jù)操作語言的最大功能取決于一個人所擁有的知識。awk經(jīng)過改進生成的新的版本nawk,gawk,現(xiàn)在默認linux系統(tǒng)下日常使用的是gawk,用命令可以查看正在應(yīng)用的awk的來源(ls-l/bin/awk)
擴展資料:
linux主要特性:
1、完全兼容POSIX1.0標準
這使得可以在Linux下通過相應(yīng)的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
2、多用戶、多任務(wù)
Linux支持多用戶,各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個特點,Linux可以使多個程序同時并獨立地運行。
3、良好的界面
Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標對其進行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。
4、支持多種平臺
Linux可以運行在多種硬件平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發(fā)布的Linux2.4版內(nèi)核已經(jīng)能夠完全支持Intel64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,使系統(tǒng)性能大大提高。
參考資料來源:
百度百科-Awk
百度百科-linux
command | sed 's#.*\([0-9][0-9]:[0-9][0-9]\).*#\1'
# command是你那條輸出的命令,將結(jié)果用管道傳遞給sed,匹配 nn:nn 這樣的格式