• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ANSI控制碼的說明

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    例如: echo -ne [32m 可以將字符的顯示顏色改為綠色 echo -ne [3;1H 可以將光標移到第3行第1列處 具體的摘抄一些如下: [0m 關閉所有屬性 [1m 設置高亮度 [4m 下劃線 [5m 閃爍 [7m 反顯 [8m 消隱 [30m -- [37m 設置前景色 [40m -- [47m 設置背景色 [nA 光標
    例如:
    echo -ne "[32m" 可以將字符的顯示顏色改為綠色
    echo -ne "[3;1H" 可以將光標移到第3行第1列處
    具體的摘抄一些如下:
    [0m 關閉所有屬性
    [1m 設置高亮度
    [4m 下劃線
    [5m 閃爍
    [7m 反顯
    [8m 消隱
    [30m -- [37m 設置前景色
    [40m -- [47m 設置背景色
    [nA 光標上移n行
    [nB 光標下移n行
    [nC 光標右移n行
    [nD 光標左移n行
    [y;xH設置光標位置
    [2J 清屏
    [K 清除從光標到行尾的內容
    [s 保存光標位置
    [u 恢復光標位置
    [?25l 隱藏光標
    [?25h 顯示光標

    [code]
    Linux 終端機下的彩色顯示
    (2001-04-27 15:20:29)
    作者: Thorbjørn Ravn Andersen, ravn@dit.ou.dk
    譯者: Chou-Kai Wang, stylon@ms2.hinet.net
    v1.4, 7 August 1997 


    --------------------------------------------------------------------------------
    雖然大部份的 Linux 發行版本都附有一個用來把目錄的內容列出來,而且可以利用彩色來增強輸出在視覺上的效果的'ls'指令,不過要把他設定的合你 意卻不是件容易的事。這份文件說明了設定一些已經內附在你的 Linux 發行版本的軟體,來達到這個目地的好幾種不同的方法,還有在那□可以找到一些在 大部份版本的 Unix □都會用到,但是卻常常不被附在 Slackware 或 RedHat Linux □的軟體。這份文件的 HTML 版本也 可以在我的原始檔案這□ http://www.mip.ou.dk/~ravn/colour-ls 找的到?!?/a>
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    1. 簡介
    這些年來彩色的顯示器已經相當普遍,使用者也開始使用一些以彩色來表示例如:程式語言□的保留字,或是拼錯的字,來給使用者一些視覺上的回饋?!?

    自從 Linux 的文字模式控制臺支援彩色後,原來的 GNU ls 也很快的被修改成支援輸出彩色的訊息而且被附在 Slackware 2.0 版 □。這些改良原來版本的綴補檔案已經被整合到標準版的 GNU ls 里,現在也應該是所有新的 Linux 發行版本的一部份了?!?

    現在這版本的文件是把最初的版本改寫了許多部份後更新而來的,包括了一些關於 xterm 和 如何利用綴補檔來更新核心的資訊?!?

    這份文件里的資訊都在 Redhat 4.1 □驗證過,而且主要是在Slackware 2.0.2 版及核心版本 1.1.54 的環境□搜集而來 的。核心的綴補檔的資訊是在 slackware 2.2.0,1.2.13 版的核心,并且以 tcsh 為預設的 shell的環境□取得的,而後來 也在 2.0.27 的核心□驗證過。如果你使用其它的設定或是 
    unix 版本,我會很感激你告訴我你的作業系統及版本,還有它是否支援彩色的顯示?!?



    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    2. 快速入門:給沒有那麼多耐心的讀者
    如果你有個 新版的 Linux,對你使用者目錄下的這些檔案作這些修改,下次你登入的時候就會生效了?!?


    ~/.bashrc:
        alias ls="ls &hyphen;&hyphen;color"

    ~/.cshrc:
        alias ls 'ls &hyphen;&hyphen;color'
        

    這樣就好啦! 
    你也許還會想要作:``eval `dircolors $HOME/.colourrc`'',來設定你自己想要的 顏色。這個檔案可以用 ``dircolors -p >$HOME/.colourrc'' 來制造出來,而且□面有許多的注解方便你更改設定。  



    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    3. 這樣就好了嗎?

    首先你需要知道你使用的 ls 是不是可以適當的處理彩色輸出。在 Linux 的文字模式控制臺試試看這個指令(在 xterm □也可以): 


    % ls &hyphen;&hyphen;color

    (這□的 % 是 shell 的提示符號): 

    如果你看到了表示你的 ls 不能接受這個選項的錯誤訊息,那你應該安裝新版本的 GNU fileutils 軟體。如果你使用的發行版本沒有提供新的升級軟體,那麼就從 GNU 的映射站臺取得這個軟體并且直接從原始碼安裝?!?

    如果你并沒有看到錯誤訊息,那麼你使用的 ls 便可以接受這個選項。但很不幸的,有一些在 Slackware (其它的發行版本也有可能) □附的早期版本是有臭□的。在 Redhat 4.1 □面附的 3.13 版的 ls 就沒有問題?!?


    % ls &hyphen;&hyphen;version
    ls - GNU fileutils-3.13

    如果你在 Linux 的文字模式終端機□執行 ``ls &hyphen;&hyphen; color'',那麼它的輸出應該依照系統的預設值而有適當的彩色,而且你現在可以開始決定是不是需要改變任何的設定?!?

    如果你在 xterm □執行上面的過程,也許你還是沒辦法看到輸出變成彩色。就跟 ls 一樣,原來的 xterm 并不支援應用程式的彩色輸出,而較 新的版本有支援。如果你的 xterm 不支援彩色,那麼請參考這個文件的結尾拿到較新版本的 xterm,同時你也只好切換到文字模式并且繼續下面的步 驟?!?



    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    4. 有那些顏色可以選擇呢?
    下面的 shell 命令稿(感謝許多把 bash 的版本寄給我的人)顯示出現在使用的主控臺能夠支援的各種顏色組合。如果沒有顏色出現,那麼你的主控臺就不支援 ANSI 的顏色選擇?!?


    #!/bin/bash
    # 顯示 ANSI 的彩色
    #
    esc="3["
    echo -n " _ _ _ _ _40 _ _ _ 41_ _ _ _42 _ _ _ 43" 
    echo "_ _ _ 44_ _ _ _45 _ _ _ 46_ _ _ _47 _"
    for fore in 30 31 32 33 34 35 36 37; do
      line1="$fore  " 
      line2="    "
      for back in 40 41 42 43 44 45 46 47; do
        line1="$$$;$m Normal  $0m"
        line2="$$$;$;1m Bold    $0m"
      done
      echo -e "$line1\n$line2"
    done

    前景的顏色號碼是在左邊那一排,背景的則是在上方。如果你要粗體的字元和高亮度就在參數□加一個 "1",所以前景是白色而背景是藍色就成了 "37;44;1"。整個的 ANSI 顏色選擇序列就是 

    ESC [ 3 7 ; 4 4 ; 1 m

    ?!?
    注: 背景不可以是高亮度,所以黃色(高亮度的棕色)只能用來作前景。這是硬體上的限制?!?


    顏色代碼:
            0 - 黑色     4 - 藍色           3# 是背景顏色
            1 - 紅色     5 - 粉紅色         4# 是前景顏色
            2 - 綠色     6 - 青色
            3 - 黃色     7 - 白色           ;1 是粗體和高亮度



    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    5. 如何設定 ls 的彩色輸出

    如果你想要修改 ls 內定的標準顏色,你需要用下面的指令在你的 HOME 目錄下制造這一個檔案 

     cd ; dircolors -p > .coloursrc 

    在你編輯完這個注解的很詳細的檔案以後,你必需要把它讀進你的環境變數 LS_COLORS □,通常都是這樣作的 

    eval `dircolors .colourrc`

    然後你要把前面這一行放進你的 .bashrc 或 .cshrc 或 .tcshrc (依照你使用的 shell 而定)□。更詳細的用法請看 dircolors(1) 的使用說明?!?



    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    6. 如何改變系統的預設值: 前景白色而背景是黑色


    你需要告訴你的終端機驅動程式你想要的另一個預設值。要如何作并沒有一個標準的方法,不過如果你是用 Linux 的話,你有 setterm 這個程式可以用?!?


    "setterm" 使用終端機資料庫□的資料來設定屬性。要選擇屬性的話要這樣作 

    setterm -foreground black -background white -store


    "-store" 參數把現在所作的改變設定成預設值。這需要你現在使用的的終端機種類(在 TERM 環境變數□)在 termcap 資料庫□有足夠詳細的紀錄。如果 setterm 因為某種因素不能正常的工作,你還有其它的選擇?!?



    6.1 Xterm 

    你要有至少一種下列的 xterm,而且要支援彩色?!?


    xterm -fg white -bg blue4
    color_xterm -fg white -bg blue4
    color-xterm -fg white -bg blue4
    nxterm -fg white -bg blue4

    這□的 'color_xterm' 支援彩色版的 'ls'。這□的顏色選擇是模彷 SGI 上面使用的顏色?!?


    6.2 虛擬主控臺 

    你也可以修改核心,這樣就可以一勞永逸的用控制碼來改變虛擬主控臺的預設值。如果你自己編譯核心的話,我建議利用 kernel 的綴補檔?!?


    核心的原始碼是在 /usr/src/linux/drivers/char/console.c ,大概在 1940 行,這是你應該修改的地方 


            def_color       = 0x07;   /* white */
            ulcolor         = 0x0f;   /* bold white */
            halfcolor       = 0x08;   /* grey */

            def_color       = 0x17;   /* white */
            ulcolor         = 0x1f;   /* bold white */
            halfcolor       = 0x18;   /* grey */

    這邊的十六進位數字是給顯示卡用的: 最左邊的位元(上面□例的 "1")是背景 ; 最右邊的位元是前景。0 = 黑色,1 = 藍色,2 = 綠色, 3 = 青色, 4 = 紅色, 5 = 紫色,6 = 棕色/黃色,7 = 白色。把數字加 8 可以得到高亮度的顏色。在大部份的情況下,高亮度的背 景色 == 閃爍的字加上普通的背景。由 sjlam1@mda023.clearcase/" target="_blank" >cc.monash.edu.au 所提供 


    你也可以使用下面的 ANSI 控制碼提供一個執行時期的主控臺預設值。(在核心原始碼□找到的) 

            ESC [ 8 ]

    這個控制碼把預設值設成目前的前景及背景顏色。然後重設屬性的控制碼(ESC [ m)讓這預設值馬上就取代黑白色成為使用中的顏色?!?

    每次你重開機的時侯你都需要再把這些字串送給主控臺。依照你的 Linux 主機用途不同,有好幾個檔案可以達成這個目的?!?


    /etc/issue


    在 Slackware □這就是 "Welcome to Linux xx.yy" 訊息所在的檔案,如果你的主機是個人使用的話,從這個檔案下手是 不錯的選擇(但對於用 telnet 遠端登入使用系統的人就可能有點討厭)。這個檔案在每次開機的時侯都會被制造出來,原來的內容則被覆蓋,所以你必需 要修改開機檔案(在 Slackware □是 /etc/rc.d/rc.S,Redhat□是 /etc/rc.d/rc.local)□面的下列幾 行: 


      echo ""> /etc/issue
      echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue

    改成 
      ESCAPE="在這□放入 ESC 碼"
      echo "$[H$[37;44m$[8]$[2J"> /etc/issue
      echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue

    這□的控制碼會把游標歸位、設定顏色(在這□的前景是白色而背景是藍色)、把這個設定存起來并且把螢幕上其它部份清除掉。這□的改變會在下次重開機時生 效。別忘了在 emacs 要打入 ESC 字元要按 C-q 鍵而在 vi □要按 control-v,因為很顯然的執行以上程式的 sh 并不了解  /033 這種用法?!?


    /etc/profile 或 .profile

      if [ "$TERM" = "console" ]; then
          echo "3[37;44m3[8]" #
    # 或使用 setterm。
          setterm -foreground white -background blue -store
      fi


    /etc/login 或 .login


      if ( "$TERM" == "console" ) then
        echo "3[37;44m3[8]"  
    # 或使用 setterm。
          setterm -foreground white -background blue -store
      endif

    [ 譯者注: Linux 的主控臺下的 $TERM 環境變數已經是 "linux" 而不是 "console" 了 ] 


    6.3 遠端登入 

    你應該可以用上面示□過的 setterm 程式。當然,遠端的機器必需要能夠得到足夠的資訊來操作你的終端機,而且你的終端機模擬程式要能夠支援彩色。在我的經驗□其它平臺上最好的 vt100 終端機模擬程式有下列幾種: 

    MS-DOS: MS-Kermit (免費, 不是 Microsoft 的產品) 
    Windows 95/NT: Kermit/95 (共享軟體) 
    OS/2: Kermit/95 (共享軟體)?!≌堊⒁鈽藴实摹elnet 支援彩色而且可以在本地端設定?!?
    關於 kermit 的細節請看 http://www.columbia.edu/kermit/ 




    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    7. 軟體

    以上所有的用法都假設你使用的是 GNU/Linux。如果你是使用其它的作業環境(比如說是執行 X 的 Sun 工作站等等)你還是可以拿到并且自己編譯這些軟體?!?

    彩色版的 xterm 是從標準的 xterm 原始碼而發展來的,而用來修改標準 xterm 的綴補檔可以從任何一個 X11R6 的站臺獲得。聽說 R6.3 內附的 xterm 有支援彩色,不過我沒有測試過?!?


    ftp://ftp.denet.dk/pub/X11/contrib/...-R6pl5-patch.gz

    如果你是用舊版的 X 的話請看內附的文件。注意: 我自己并沒有測試過! 

    'ls' 是內附在 GNU 的 fileutils 軟體□而你可以從 prep.mit.edu 或其它的映射站臺拿到。請拿最新的 3.13 版本?!?

    ftp://ftp.denet.dk/pub/gnu/fileutils-3.XX.tar.gz


    我自己曾經在 Solaris,SunOS,Irix 上成功編譯過 color-ls?!?


    我很歡迎對於這篇文章的回應。我的電子郵件地址是 ravn@dit.ou.dk

    &hyphen;&hyphen; 

    Thorbjørn Ravn Andersen 


    --------------------------------------------------------------------------------
    [/code]

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>