欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

linux打印屏幕命令是,linux 打印機(jī)命令

, >>'>Linux命令: cat 和>, >>

工作中應(yīng)用篩選日志信息輸出到某個文件,針對性查看日志文件

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的紫金網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

語法:

cat 原單詞concatenate(用途是連接文件或標(biāo)準(zhǔn)輸入并打印。)

cat 命令用于將所有文件內(nèi)容打印到屏幕上。

語法:

使用xshell連接linux

進(jìn)入 /root 目錄

新建 catTest目錄

進(jìn)入 catTest 目錄

新建 a.txt 文件

ls -l /root a.txt

cat a.txt

ls /root a.txt

cat a.txt

ls -l /root a.txt

cat a.txt

linux命令輸出到屏幕的同時保存到文件

tee用于把命令結(jié)果打印在屏幕上并同時保存到文件。

tee用法

描述:從標(biāo)準(zhǔn)輸入中讀取并同時寫入到標(biāo)準(zhǔn)輸出和指定的文件上

選項:

-a,--append:不覆蓋,而是追加輸出到指定的文件中

-i,--ignore-interrupts:忽略中斷信息

若指定的輸出文件為'-',則再次輸出到標(biāo)準(zhǔn)輸出上

實例:

tee Example.txt #將標(biāo)準(zhǔn)輸入中輸入的內(nèi)容同時輸出到Example.txt和標(biāo)準(zhǔn)輸出上

實踐:

例如 ifconfig | tee ifconfig.log

查看iconfig.log

注:

標(biāo)準(zhǔn)輸入一般有鍵盤和其它文件,標(biāo)準(zhǔn)輸出有屏幕等。tee只能進(jìn)行標(biāo)準(zhǔn)輸入的輸出,對于錯誤輸入是不能輸出的。

在調(diào)試腳本時,想要每個命令的執(zhí)行過程都輸出到屏幕或者文件中,以便后續(xù)查看,如何操作呢?首先腳本第一行要寫為“#!/bin/bash -x”,這樣會把每個命令的執(zhí)行記錄都輸出到屏幕,若還要輸出到指定文件,要用到tee,但tee只能進(jìn)行標(biāo)準(zhǔn)輸入,對于標(biāo)準(zhǔn)輸入和錯誤輸入要用到下式:

./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”的作用只是把前一個程序的標(biāo)準(zhǔn)輸出流(stdout)的數(shù)據(jù)作為后一個程序的標(biāo)準(zhǔn)輸入流stdin的數(shù)據(jù),如不進(jìn)行重定向,則其他輸出流的信息是無法傳給后面的程序的

2、屏幕得到的信息不一定是從程序的標(biāo)準(zhǔn)輸出來的,也包括標(biāo)準(zhǔn)錯誤輸出流stderr中的信息

3、有些程序(特別是象bash、make這樣執(zhí)行了其他程序的程序)的設(shè)計者為了省事,把一些正常情況的信息也放在stderr中輸出(即使程序本身并無錯誤),而stdout用來輸出被調(diào)用程序的執(zhí)行時信息,造成了用戶的誤解簡單編寫了一下腳本,通過ssh登陸在命令行下運(yùn)行正常,可是將腳本添加到crontab中就不正常。想記錄一下輸出信息,分析一下錯誤原因。將腳本通過使用info.log 重定向輸出,結(jié)果發(fā)現(xiàn)一些在命令行下可以看到的文本信息沒有記錄到info.log文件中,研究了一下,那些輸出估計是輸出到了標(biāo)準(zhǔn)錯誤上。

研究了一下通常添加命令后面幾個輸出含義

■ /dev/null 輸出到空設(shè)備,表示丟掉輸出信息。

■ 21將輸出到標(biāo)準(zhǔn)錯誤的信息輸出到標(biāo)準(zhǔn)輸出設(shè)備(通常是屏幕)有3個默認(rèn)的i/o,

■ 0是標(biāo)準(zhǔn)輸入,一般是鍵盤

■ 1是標(biāo)準(zhǔn)輸出,一般是屏幕

■ 2是標(biāo)準(zhǔn)錯誤,有時候屏幕上可以看到,但是重定向的文件中看不到的就是它了

linux print命令

具體參數(shù)及講解如下:

print命令的格式是:

print xxx

p xxx

1. print 操作符

@

是一個和數(shù)組有關(guān)的操作符,在后面會有更詳細(xì)的說明。

::

指定一個在文件或是一個函數(shù)中的變量。

{}

表示一個指向內(nèi)存地址的類型為type的一個對象。

2. 察看內(nèi)容

全局變量(所有文件可見的)

靜態(tài)全局變量(當(dāng)前文件可見的)

局部變量(當(dāng)前Scope可見的)

如果你的局部變量和全局變量發(fā)生沖突(也就是重名),一般情況下是局部變量會隱藏全局變量。如果此時你想查看全局變量的值時,你可以使用“::”操作符:

file::variable

function::variable

eg:

查看文件f2.c中的全局變量x的值:

gdb) p 'f2.c'::x

注:如果你的程序編譯時開啟了優(yōu)化選項,那么在用GDB調(diào)試被優(yōu)化過的程序時,可能會發(fā)生某些變量不能訪問,或是取值錯誤碼的情況。對付這種情況時,需要在編譯程序時關(guān)閉編譯優(yōu)化。GCC,你可以使用“-gstabs” 選項來解決這個問題。

3. 察看數(shù)組

(1)動態(tài)數(shù)組:

p *array@len

array:數(shù)組的首地址,len:數(shù)據(jù)的長度

eg:

(gdb) p *array@len

$1 = {2, 4, 6, 8, 10}

(2)靜態(tài)數(shù)組

可以直接用print數(shù)組名,就可以顯示數(shù)組中所有數(shù)據(jù)的內(nèi)容了。

4. 輸出格式

x 按十六進(jìn)制格式顯示變量。

d 按十進(jìn)制格式顯示變量。

u 按十六進(jìn)制格式顯示無符號整型。

o 按八進(jìn)制格式顯示變量。

t 按二進(jìn)制格式顯示變量。

a 按十六進(jìn)制格式顯示變量。

c 按字符格式顯示變量。

f 按浮點數(shù)格式顯示變量。

eg:

(gdb) p i

$21 = 101

(gdb) p/a i

$22 = 0x65

(gdb) p/c i

$23 = 101 'e'

5. 察看內(nèi)存

使用examine(簡寫x)來查看內(nèi)存地址中的值。語法:

x/

n、f、u是可選的參數(shù)。

(1)n 是一個正整數(shù),表示顯示內(nèi)存的長度,也就是說從當(dāng)前地址向后顯示幾個地址的內(nèi)容。

(2)f 表示顯示的格式,參見上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。

(3)u 表示從當(dāng)前地址往后請求的字節(jié)數(shù),如果不指定的話,GDB默認(rèn)是4個bytes。u參數(shù)可以用下面的字符來代替,b表示單字節(jié),h表示雙字節(jié),w表示四字 節(jié),g表示八字節(jié)。當(dāng)我們指定了字節(jié)長度后,GDB會從指內(nèi)存定的內(nèi)存地址開始,讀寫指定字節(jié),并把其當(dāng)作一個值取出來。

eg:

x/3uh 0x54320 :從內(nèi)存地址0x54320讀取內(nèi)容,h表示以雙字節(jié)為一個單位,3表示三個單位,u表示按十六進(jìn)制顯示。

6. 察看寄存器

(1)要查看寄存器的值,很簡單,可以使用如下命令:

info registers

(2)查看寄存器的情況。(除了浮點寄存器)

info all-registers

(3)查看所有寄存器的情況。(包括浮點寄存器)

info registers

(4)查看所指定的寄存器的情況。

寄存器中放置了程序運(yùn)行時的數(shù)據(jù),比如程序當(dāng)前運(yùn)行的指令地址(ip),程序的當(dāng)前堆棧地址(sp)等等。你同樣可以使用print命令來訪問寄存器的情況,只需要在寄存器名字前加一個$符號就可以了。如:p $eip。

7. display自動顯示的變量

(1)格式:display[/i|s] [expression | addr]

eg:

display/i $pc

$pc是GDB的環(huán)境變量,表示著指令的地址,/i則表示輸出格式為機(jī)器指令碼,也就是匯編。于是當(dāng)程序停下后,就會出現(xiàn)源代碼和機(jī)器指令碼相對應(yīng)的情形,這是一個很有意思的功能。

(2)其他

undisplay

delete display

刪除自動顯示,dnums意為所設(shè)置好了的自動顯式的編號。如果要同時刪除幾個,編號可以用空格分隔,如果要刪除一個范圍內(nèi)的編號,可以用減號表示(如:2-5)

disable display

enable display

disable和enalbe不刪除自動顯示的設(shè)置,而只是讓其失效和恢復(fù)。

info display

查看display設(shè)置的自動顯示的信息。GDB會打出一張表格,向你報告當(dāng)然調(diào)試中設(shè)置了多少個自動顯示設(shè)置,其中包括,設(shè)置的編號,表達(dá)式,是否enable。

8. 設(shè)置

(1)set print address

set print address on

打開地址輸出,當(dāng)程序顯示函數(shù)信息時,GDB會顯出函數(shù)的參數(shù)地址。

(2)set print array

set print array on

打開數(shù)組顯示,打開后當(dāng)數(shù)組顯示時,每個元素占一行,如果不打開的話,每個元素則以逗號分隔。

(3)set print elements

這個選項主要是設(shè)置數(shù)組的,如果你的數(shù)組太大了,那么就可以指定一個來指定數(shù)據(jù)顯示的最大長度,當(dāng)?shù)竭_(dá)這個長度時,GDB就不再往下顯示了。如果設(shè)置為0,則表示不限制。

(4)set print null-stop

如果打開了這個選項,那么當(dāng)顯示字符串時,遇到結(jié)束符則停止顯示。這個選項默認(rèn)為off。

(5)set print pretty on

如果打開printf pretty這個選項,那么當(dāng)GDB顯示結(jié)構(gòu)體時會比較漂亮。如:

$1 = {

next = 0x0,

flags = {

sweet = 1,

sour = 1

},

meat = 0x54 "Pork"

}

(6)set print union

設(shè)置顯示結(jié)構(gòu)體時,是否顯式其內(nèi)的聯(lián)合體數(shù)據(jù)。

(7)set print object

在C++中,如果一個對象指針指向其派生類,如果打開這個選項,GDB會自動按照虛方法調(diào)用的規(guī)則顯示輸出,如果關(guān)閉這個選項的話,GDB就不管虛函數(shù)表了。

“l(fā)inux print”命令是什么?

printf 是linux 下的格式化輸出命令。

有點兒類似于python 和c 語言的printf 命令,但是應(yīng)該沒有c語言的那么強(qiáng)大.。printf 命令常用于linux 下的awk 編程, 平時使用輸出時用 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: ?輸出浮點數(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' 是錯誤的。

3. print ?命令后面也不能直接跟文件名, 如: print '%5s' ?/etc/passwd ?是錯誤的。

4. print ?命令后可以跟系統(tǒng)命令執(zhí)行的結(jié)果, 如: print '%s' ?$(cat /etc/password)'。

分享標(biāo)題:linux打印屏幕命令是,linux 打印機(jī)命令
本文鏈接:http://chinadenli.net/article0/dsgejio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)手機(jī)網(wǎng)站建設(shè)品牌網(wǎng)站制作Google移動網(wǎng)站建設(shè)電子商務(wù)

廣告

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

搜索引擎優(yōu)化