printf 是linux 下的格式化輸出命令。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括軹城網(wǎng)站建設(shè)、軹城網(wǎng)站制作、軹城網(wǎng)頁制作以及軹城網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,軹城網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到軹城省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
有點(diǎn)兒類似于python 和c 語言的printf 命令,但是應(yīng)該沒有c語言的那么強(qiáng)大.。printf 命令常用于linux 下的awk 編程, 平時(shí)使用輸出時(shí)用 echo 即可。pintf 命令不能接受管道符參數(shù),也不能之直接跟文件名, 但是可以跟系統(tǒng)命令執(zhí)行的結(jié)果,如`df` 或者 $(cat /etc/passwd)。
一、命令格式: printf ?'輸出類型轉(zhuǎn)義符' 輸出內(nèi)容。
二、常用輸出格式:
1、%ns : ?輸出字符串; 輸出n位的字符串;
2、 %ni: ????輸出整數(shù): 輸出n位的整數(shù);
3、%m.nf: ?輸出浮點(diǎn)數(shù): m位整數(shù) 和 n位小數(shù);
三、常用轉(zhuǎn)義符:
1、\t ?水平tab 鍵;
2、\v ?垂直tab 鍵;
3、\n ?換行;
4、\r ??回車, Enter鍵;
5、\f ??清除屏幕;
6、\b ?輸出退格鍵;
7、\a ?輸出警告聲音。
注意:
1. printf 命令默認(rèn)輸出結(jié)果沒有換行符,需要手工添加\n。
2. printf 命令后面不能接受管道符參數(shù), 如: ?df ?| print ?'%s' 是錯(cuò)誤的。
3. print ?命令后面也不能直接跟文件名, 如: print '%5s' ?/etc/passwd ?是錯(cuò)誤的。
4. print ?命令后可以跟系統(tǒng)命令執(zhí)行的結(jié)果, 如: print '%s' ?$(cat /etc/password)'。
tee用于把命令結(jié)果打印在屏幕上并同時(shí)保存到文件。
tee用法
描述:從標(biāo)準(zhǔn)輸入中讀取并同時(shí)寫入到標(biāo)準(zhǔn)輸出和指定的文件上
選項(xiàng):
-a,--append:不覆蓋,而是追加輸出到指定的文件中
-i,--ignore-interrupts:忽略中斷信息
若指定的輸出文件為'-',則再次輸出到標(biāo)準(zhǔn)輸出上
實(shí)例:
tee Example.txt #將標(biāo)準(zhǔn)輸入中輸入的內(nèi)容同時(shí)輸出到Example.txt和標(biāo)準(zhǔn)輸出上
實(shí)踐:
例如 ifconfig | tee ifconfig.log
查看iconfig.log
注:
標(biāo)準(zhǔn)輸入一般有鍵盤和其它文件,標(biāo)準(zhǔn)輸出有屏幕等。tee只能進(jìn)行標(biāo)準(zhǔn)輸入的輸出,對(duì)于錯(cuò)誤輸入是不能輸出的。
在調(diào)試腳本時(shí),想要每個(gè)命令的執(zhí)行過程都輸出到屏幕或者文件中,以便后續(xù)查看,如何操作呢?首先腳本第一行要寫為“#!/bin/bash -x”,這樣會(huì)把每個(gè)命令的執(zhí)行記錄都輸出到屏幕,若還要輸出到指定文件,要用到tee,但tee只能進(jìn)行標(biāo)準(zhǔn)輸入,對(duì)于標(biāo)準(zhǔn)輸入和錯(cuò)誤輸入要用到下式:
./filename.sh 21 | tee output.log? ?或者直接 bash -x ./filename.sh?21 | tee output.log
今天調(diào)試一個(gè)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號(hào)流中的,所以解決方案為bash -x ./test.sh 21 | tee log 想起以前要存放執(zhí)行make的結(jié)果時(shí)也遇到類似問題,總結(jié)如下:
1、管道符的“I”的作用只是把前一個(gè)程序的標(biāo)準(zhǔn)輸出流(stdout)的數(shù)據(jù)作為后一個(gè)程序的標(biāo)準(zhǔn)輸入流stdin的數(shù)據(jù),如不進(jìn)行重定向,則其他輸出流的信息是無法傳給后面的程序的
2、屏幕得到的信息不一定是從程序的標(biāo)準(zhǔn)輸出來的,也包括標(biāo)準(zhǔn)錯(cuò)誤輸出流stderr中的信息
3、有些程序(特別是象bash、make這樣執(zhí)行了其他程序的程序)的設(shè)計(jì)者為了省事,把一些正常情況的信息也放在stderr中輸出(即使程序本身并無錯(cuò)誤),而stdout用來輸出被調(diào)用程序的執(zhí)行時(shí)信息,造成了用戶的誤解簡單編寫了一下腳本,通過ssh登陸在命令行下運(yùn)行正常,可是將腳本添加到crontab中就不正常。想記錄一下輸出信息,分析一下錯(cuò)誤原因。將腳本通過使用info.log 重定向輸出,結(jié)果發(fā)現(xiàn)一些在命令行下可以看到的文本信息沒有記錄到info.log文件中,研究了一下,那些輸出估計(jì)是輸出到了標(biāo)準(zhǔn)錯(cuò)誤上。
研究了一下通常添加命令后面幾個(gè)輸出含義
■ /dev/null 輸出到空設(shè)備,表示丟掉輸出信息。
■ 21將輸出到標(biāo)準(zhǔn)錯(cuò)誤的信息輸出到標(biāo)準(zhǔn)輸出設(shè)備(通常是屏幕)有3個(gè)默認(rèn)的i/o,
■ 0是標(biāo)準(zhǔn)輸入,一般是鍵盤
■ 1是標(biāo)準(zhǔn)輸出,一般是屏幕
■ 2是標(biāo)準(zhǔn)錯(cuò)誤,有時(shí)候屏幕上可以看到,但是重定向的文件中看不到的就是它了
top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。top顯示系統(tǒng)當(dāng)前的進(jìn)程和其他狀況,是一個(gè)動(dòng)態(tài)顯示過程,可以自動(dòng)或者通過用戶按鍵來不斷刷新當(dāng)前狀態(tài)。如果在前臺(tái)執(zhí)行該命令,它將獨(dú)占前臺(tái),直到用戶終止該程序?yàn)橹?。比較準(zhǔn)確的說,top命令提供了實(shí)時(shí)的對(duì)系統(tǒng)處理器的狀態(tài)監(jiān)控,顯示系統(tǒng)中CPU最“敏感”的任務(wù)列表。top命令可以按CPU使用、內(nèi)存使用和執(zhí)行時(shí)間對(duì)任務(wù)進(jìn)行排序。而且該命令的很多特性都可以通過交互式命令或者在個(gè)人定制文件中進(jìn)行設(shè)定.。
下面詳細(xì)介紹它的使用方法。
對(duì)于一個(gè)新手來說,如果從來沒有使用過top命令,在命令行模式下直接輸入top,可以查看到當(dāng)前所有進(jìn)程的信息。
輸出結(jié)果中,有很多指標(biāo)。下面介紹各個(gè)指標(biāo)都代表什么含義。
top命令輸出結(jié)果中,統(tǒng)計(jì)信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計(jì)信息。
第一行是任務(wù)隊(duì)列信息,同 uptime 命令的執(zhí)行結(jié)果。其內(nèi)容如下:
第二、三行為進(jìn)程和CPU的信息。當(dāng)有多個(gè)CPU時(shí),這些內(nèi)容可能會(huì)超過兩行。內(nèi)容如下:
最后兩行為內(nèi)存信息。內(nèi)容如下:
進(jìn)程信息區(qū)統(tǒng)計(jì)信息區(qū)域的下方顯示了各個(gè)進(jìn)程的詳細(xì)信息。首先來認(rèn)識(shí)一下各列的含義。
默認(rèn)情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列??梢酝ㄟ^下面的快捷鍵來更改顯示內(nèi)容。
參考列表:
不帶參數(shù)的xrandr 命令會(huì)列出系統(tǒng)支持的視頻接口名稱和設(shè)備連接情況,還可以從輸出信息里看到 當(dāng)前分辨率current ,以及支持的 最大分辨率 。
帶*的表示當(dāng)前分辨率。
如果xrandr查詢結(jié)果中沒有合適的分辨率,則可以通過newmode來
添加,下面將給出eDP1添加1280x1024x60的分辨率方法。
3.1 使用cvt生成一個(gè)modeline,命令如下:
3.2 使用newmode創(chuàng)建一個(gè)mode,參數(shù)就是上面的modeline后的內(nèi)容:
3.3 新建模式,將新模式添加至當(dāng)前輸出設(shè)備,如果出錯(cuò),則說明不支持此模式
3.4 設(shè)置newmode為當(dāng)前分辨率
(1)打開外接顯示器,雙屏幕顯示相同的內(nèi)容--克隆,(auto為最高分辨率)
(2)若要指定外接顯示器的分辨率可以使用下面的命令(1280*1024):
(3)打開外接顯示器,設(shè)置為右側(cè)擴(kuò)展
(4)關(guān)閉顯示器
(5)打開VGA-0接口顯示器,關(guān)閉DVI-D-0接口顯示器
(6設(shè)置HDMI2為主屏幕
(7) 設(shè)置eDp1在HDMI2的右面
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命令檢索固定字符串,它不識(shí)別正則表達(dá)式,是快速搜索命令。
語法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [選項(xiàng)] [查找模式] [文件名1,文件名2,……]
fgrep [選項(xiàng)] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
01
linux常用命令有pwd命令、cd命令、ls命令、cat命令、grep命令、touch命令、cp命令、mv命令、rm命令、rmdir命令等。
linux常用命令:
1、 pwd命令
該命令的英文解釋為print working directory(打印工作目錄)。輸入pwd命令,Linux會(huì)輸出當(dāng)前目錄。
2、 cd命令
cd命令用來改變所在目錄。
cd / 轉(zhuǎn)到根目錄中
cd ~ 轉(zhuǎn)到/home/user用戶目錄下
cd /usr 轉(zhuǎn)到根目錄下的usr目錄中-------------絕對(duì)路徑
cd test 轉(zhuǎn)到當(dāng)前目錄下的test子目錄中-------相對(duì)路徑
3、 ls命令
ls命令用來查看目錄的內(nèi)容。 選項(xiàng) 含義 -a 列舉目錄中的全部文件,包括隱藏文件 -l 列舉目錄中的細(xì)節(jié),包括權(quán)限、所有者、組群、大小、創(chuàng)建日期、文件是否是鏈接等 -f 列舉的文件顯示文件類型 -r 逆向,從后向前地列舉目錄中內(nèi)容 -R 遞歸,該選項(xiàng)遞歸地列舉當(dāng)前目錄下所有子目錄內(nèi)的內(nèi)容 -s 大小,按文件大小排序 -h 以人類可讀的方式顯示文件的大小,如用K、M、G作單位 ls -l examples.doc 列舉文件examples.doc的所有信息
4、 cat命令
cat命令可以用來合并文件,也可以用來在屏幕上顯示整個(gè)文件的內(nèi)容。
cat snow.txt 該命令顯示文件snow.txt的內(nèi)容,ctrl+D退出cat。
5、 grep命令
grep命令的最大功能是在一堆文件中查找一個(gè)特定的字符串。
grep money test.txt
以上命令在test.txt中查找money這個(gè)字符串,grep查找是區(qū)分大小寫的。
6 、touch命令
touch命令用來創(chuàng)建新文件,他可以創(chuàng)建一個(gè)空白的文件,可以在其中添加文本和數(shù)據(jù)。
touch newfile 該命令創(chuàng)建一個(gè)名為newfile的空白文件。
7 、cp命令
cp命令用來拷貝文件,要復(fù)制文件,輸入命令:
cp
cp t.txt Document/t 該命令將把文件t.txt復(fù)制到Document目錄下,并命名為t。 選項(xiàng) 含義 -i 互動(dòng):如果文件將覆蓋目標(biāo)中的文件,他會(huì)提示確認(rèn) -r 遞歸:這個(gè)選項(xiàng)會(huì)復(fù)制整個(gè)目錄樹、子目錄以及其他 -v 詳細(xì):顯示文件的復(fù)制進(jìn)度
8 、mv命令
mv命令用來移動(dòng)文件。 選項(xiàng) 說明 -i 互動(dòng):如果選擇的文件會(huì)覆蓋目標(biāo)中的文件,他會(huì)提示確認(rèn) -f 強(qiáng)制:它會(huì)超越互動(dòng)模式,不提示地移動(dòng)文件,屬于很危險(xiǎn)的選項(xiàng) -v 詳細(xì):顯示文件的移動(dòng)進(jìn)度
mv t.txt Document 把文件t.txt 移動(dòng)到目錄Document中。
9 、rm命令
rm命令用來刪除文件。 選項(xiàng) 說明 -i 互動(dòng):提示確認(rèn)刪除 -f 強(qiáng)制:代替互動(dòng)模式,不提示確認(rèn)刪除 -v 詳細(xì):顯示文件的刪除進(jìn)度 -r 遞歸:將刪除某個(gè)目錄以及其中所有的文件和子目錄
rm t.txt 該命令刪除文件t.txt
10、 rmdir命令
rmdir命令用來刪除目錄。