Linux 的終端及設置


Linux 的終端及設置

終端是一種字符型設備,有多種類型,通常使用tty 來簡稱各種類型的終端設備。終端特殊設備文件一般有以下幾種:

  • /dev/ttySn 串行端口終端 (Serial Port Terminal),使用計算機串行端口連接的終端設備。設備號分別是(4,0),(4,1)等,分別對應於DOS 系統下的COM1,COM2等
  • /dev/pty/ 偽終端 (Pseudo Terminal),是成對的邏輯終端設備.
  • /dev/tty 控制終端 (Controlling Terminal),/dev/tty 有些類似於到實際所使用終端設備的一個聯接.可以使用命令”ps –ax ”來查看進程與哪個控制終端相連使用命令”tty ”可以查看它具體對應哪個實際終端設備。
  • /dev/console 控制台終端/dev/ttyn (Console),計算機顯示器通常被稱為控制台終端.

stty(setting tty)來設置終端機的輸入按鍵,快捷鍵等。
$ stty size //打印出終端的行數和列數
stty -a 列出目前環境中所有按鍵列表。其中^表示[Ctrl]按鍵的意思。
$ stty -a

  • intr = ^C; 發送interrupt中斷信號,多用於中斷某個程序(ctrl-c)
  • quit = ^\; 發送quit退出信號(ctrl-\)
  • erase = ^?; 向后刪除字符(delete)
  • kill = ^U; 在命令終端下,刪除整行的字符(ctrl-u)
  • eof = ^D; EOF(End Of File)輸入結束符(ctrl-d)
  • eol = <undef>;
  • eol2 = <undef>;
  • swtch = <undef>;
  • start = ^Q; 恢復屏幕輸出(ctrl-q)
  • stop = ^S; 暫停屏幕輸出(ctrl-s)
  • susp = ^Z; 發送終端terminal stop停止信號,暫停目前的命令(ctrl-z)
  • rprnt = ^R; 輸入命令時提示使用過的歷史命令(ctrl-r)
  • werase = ^W; 刪除命令行最后一個單詞(ctrl-w)
  • lnext = ^V;
  • discard = ^O;
  • min = 1;
  • time = 0;

-cmspar cs8 -hupcl
-istrip -iutf8
opost -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-xcase -tostop

控制字符: -clocal cread -crtscts -cstopb -parenb -parodd

  • clocal: 忽略modem 狀態線
  • cread: 使 接收器中 開啟
  • crtscts: 使硬件流控制開啟
  • cstopb: 發送兩個stop 位,其它情況發送一個
  • parenb: 部分開啟
  • parodd: 奇數,其它為偶數

-------------
輸入標志: -brkint icrnl -ignbrk -ignpar -imaxbel -inlcr -inpck -ixany -ixoff ixon -parmrk -igncr -iuclc

  • brkint: 當BREAK 時產生SIGINT 信號
  • icrnl: 在輸入時將CR 轉成 NL
  • ignbrk : 忽略BREAK
  • ignpar: 忽略字符
  • imaxbel 當隊列滿時振玲
  • inlcr 將NL 換成CR
  • inpck
  • ixany
  • ixoff 開始或關閉輸入流控制
  • ixon
  • parmrk

忽略回車符 -igncr: 忽略CR
stty igncr #開啟
stty -igncr #恢復

在命令行下,禁止輸出大寫 IUCLC 大寫字符轉成小寫字符
stty -iuclc #禁止輸出
stty -iuclc #恢復

命令行下禁止輸出小寫
stty olcuc #開啟
stty -olcuc #恢復
--------------
本地標志: echoctl echoe echok echoke -echonl -echoprt -extproc -flusho icanon iexten isig -noflsh echo

  • echoctl 回顯控制字符
  • echoe 顯示擦除字符
  • echok 顯示KILL
  • echoke 為KILL 顯示擦除字符
  • echonl 顯示NL
  • echoprt 為硬拷貝顯示擦除字符
  • extproc 擴展字符
  • flusho
  • icanon 規范輸入
  • iexten
  • isig 使終端產生信號開啟
  • noflsh

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

http://www.voidcn.com/article/p-ycpnvpkm-bm.html
http://www.voidcn.com/article/p-nnzcgajp-bge.html
https://en.wikipedia.org/wiki/Signal_(IPC)
https://en.wikipedia.org/wiki/Job_control_(Unix)
https://en.wikipedia.org/wiki/List_of_Unix_commands
https://www.howtogeek.com/howto/ubuntu/keyboard-shortcuts-for-bash-command-shell-for-ubuntu-debian-suse-redhat-linux-etc/
https://blog.csdn.net/mylizh/article/details/38385739
==========

終端下容易混淆的幾個快捷鍵:

  • eof = ^D; EOF(End Of File)輸入結束符(ctrl-d)
  • intr = ^C; 發送interrupt中斷信號,多用於中斷某個程序(ctrl-c)
  • susp = ^Z; 發送終端terminal stop停止信號,暫停目前的命令(ctrl-z)
  • quit = ^\; 發送quit退出信號(ctrl-\)

 

  • ctrl-c: ( kill foreground process ) 發送 SIGINT 信號給前台進程組中的所有進程,強制終止程序的執行;
  • ctrl-z: ( suspend foreground process ) 發送 SIGTSTP 信號給前台進程組中的所有進程,常用於掛起一個進程,而並非結束進程,用戶可以使用使用fg/bg操作恢復執行前台或后台的進程。fg命令在前台恢復執行被掛起的進程,此時可以使用ctrl-z再次掛起該進程,bg命令在后台恢復執行被掛起的進程,而此時將無法使用ctrl-z再次掛起該進程;一個比較常用的功能:正在使用vi編輯一個文件時,需要執行shell命令查詢一些需要的信息,可以使用ctrl-z掛起vi,等執行完shell命令后再使用fg恢復vi繼續編輯你的文件(當然,也可以在vi中使用!command方式執行shell命令,但是沒有該方法方便)。
  • ctrl-d: ( Terminate input, or exit shell ) 一個特殊的二進制值,表示 EOF,作用相當於在終端中輸入exit后回車;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM