linuxstty的含義是什么

這篇文章主要介紹“l(fā)inux stty的含義是什么”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“l(fā)inux stty的含義是什么”文章能幫助大家解決問題。

為城子河等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及城子河網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、城子河網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

在linux中,stty全稱“set tty”,意思為“設(shè)置tty”,是一個用于顯示和修改terminal(終端)相關(guān)設(shè)置的命令;語法“stty [選項(xiàng)] [設(shè)置]”,stty命令不帶參數(shù)可以打印終端行設(shè)置,加上“-a”選項(xiàng)可以打印得更詳細(xì)些。

設(shè)備文件處理與磁盤文件的區(qū)別

先說幾個比較直觀的感覺。首先,在你通過鍵盤(一般是標(biāo)準(zhǔn)的輸入的終端設(shè)備),輸入字符,直到你輸入的回車鍵(鍵盤上面的 Enter 為回車鍵,不是換行鍵;換行的 ACCII 為 10,回車為 13;換行在程序中的體現(xiàn)就是 \n),你的程序才會有“反應(yīng)”,給人一種好像就是回車后你的程序才接受到你輸入的數(shù)據(jù);

其次,你在程序中寫一個 printf(“This is a demo\n”); 你會發(fā)現(xiàn)你的下一個輸出就是在下一行的最左邊開始輸出的,但是,回車與換行的本身功能是:

\r 為 return,回車,即使光標(biāo)回到當(dāng)前行的頭;

\n為 newline,換行,即光標(biāo)移動到當(dāng)前位置的下一行。

所以,說明進(jìn)程將你的 \n 轉(zhuǎn)化為了 \r\n。而在Linux下出現(xiàn)這些的原因,就是因?yàn)樵诮K端設(shè)備與進(jìn)程之間的中間,還有一個終端驅(qū)動器,里面有終端驅(qū)動函數(shù)。這里有兩張圖,便于大家理解。

linux stty的含義是什么

linux stty的含義是什么

進(jìn)程和終端間的數(shù)據(jù)傳輸和數(shù)據(jù)處理是由終端設(shè)備驅(qū)動程序來負(fù)責(zé)的,終端驅(qū)動程序是內(nèi)核的一部分。可以通過tesetattr和tegetattr函數(shù)來改變終端驅(qū)動程序里里面的設(shè)置

Linux stty 命令

1、作用

為了自己能夠編寫適合自己的終端驅(qū)動函數(shù),即去修改終端驅(qū)動程序里面的設(shè)置。在Linux中有這個命令,就是 stty(set tty,設(shè)置tty)。

  stty:用于顯示和修改終端命令行的相關(guān)設(shè)置(change and print terminal line settings)。

2、語法

stty [選項(xiàng)] [設(shè)置]
stty [選項(xiàng)]

常用選項(xiàng)

stty 命令不帶參數(shù)可以打印終端行設(shè)置,加上 -a 參數(shù)可以打印得更詳細(xì)些。

stty size :可以顯示終端的大小,即行數(shù)和列數(shù)。

stty 命令還可以更改終端行的設(shè)置,格式如下:stty SETTING CHAR

其中,SETTING可以是如下:

eof : 輸入結(jié)束,文件結(jié)束,默認(rèn)為Ctrl+D。比如:用cat >file來創(chuàng)建文件時,按Ctrl+D來結(jié)束輸入。

erase : 向后刪除字符,擦除最后一個輸入字符,默認(rèn)為Ctrl+?。注意默認(rèn)情況下退格鍵Backspace不是刪除字符。

intr : 中斷當(dāng)前程序,默認(rèn)為Ctrl+C。

kill : 刪除整條命令,刪除整行,默認(rèn)為Ctrl+U。

quit :退出當(dāng)前程序,默認(rèn)為Ctrl+\或Ctrl+|。

start : 啟動屏幕輸出,默認(rèn)為Ctrl+Q。

stop :停止屏幕輸出,默認(rèn)為Ctrl+S。

susp : terminal stop當(dāng)前程序,默認(rèn)為Ctrl+Z。這樣當(dāng)前進(jìn)程就會變成后臺進(jìn)程了。

werase:刪除最后一個單詞,默認(rèn)為Ctrl+W。

stty 命令還有一些其他用法,如:stty -echo 關(guān)閉回顯(比如在腳本中用于輸入密碼時),然后再用 stty echo 打開回顯。

#在命令行下,禁止輸出大寫的方法:
stty iuclc     #開啟
stty -iuclc    #恢復(fù)

#在命令行下禁止輸出小寫:
stty olcuc    #開啟
stty -olcuc   #恢復(fù)

#打印出終端的行數(shù)和列數(shù):
stty size

#改變Ctrl+D的方法:
stty eof "string"
#系統(tǒng)默認(rèn)是Ctrl+D來表示文件的結(jié)束,而通過這種方法,可以改變!

#屏蔽顯示:
stty -echo   #禁止回顯
stty echo    #打開回顯
#測試方法:
stty -echo;read;stty echo;read

#忽略回車符:
stty igncr     #開啟
stty -igncr    #恢復(fù)

3、使用示例

下面以xilinx的串口終端為例說明stty命令的使用方法。

在vivad0配置了兩個串口分別是UART0和UART1,petalinx中設(shè)置UART1為調(diào)試串口,UART0和UART1分別對應(yīng)分別對應(yīng)/dev/ttyPS1和/dev/ttyPS0,可以用who命令看一下當(dāng)前終端使用的是哪個串口:

linux stty的含義是什么

可以看到當(dāng)前終端使用的是ttyPS0

用 dmesg | grep ttyPS*可以查看當(dāng)前終端對應(yīng)哪個串口

linux stty的含義是什么

可以看到ttyPS0對應(yīng)串口的物理地址是0xff010000,從設(shè)備樹中根據(jù)這個物理地址可以查到是哪個串口

1)查看當(dāng)前終端信息:

stty -a

linux stty的含義是什么

這個打印了當(dāng)前終端的信息,一些參數(shù)解釋如下:

speed 115200 baud:波特率是115200

cs8:數(shù)據(jù)是8位

ixon:流控打開,如果是-ixon則表示流控關(guān)閉

clocal:使能DTR/DTS

-parodd:失能奇校驗(yàn)

-parenb:失能奇偶校驗(yàn)

2)設(shè)置波特率115200,數(shù)據(jù)位8位:

  stty -F /dev/ttyPS1 115200 cs8

3)通過UART1發(fā)送數(shù)據(jù):

  echo "qwert" > /dev/ttyPS1

4)查看UART1接受的數(shù)據(jù)

cat /dev/ttyPS1

通過串口工具向UART1發(fā)送數(shù)據(jù),即可看到接受到的信息

linux stty的含義是什么

關(guān)于“l(fā)inux stty的含義是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

當(dāng)前題目:linuxstty的含義是什么
文章分享:http://bm7419.com/article46/jjeieg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷、品牌網(wǎng)站建設(shè)用戶體驗(yàn)、網(wǎng)站排名軟件開發(fā)

廣告

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

成都網(wǎng)站建設(shè)公司