青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

彩色的命令行 —— 使用 ANSI 色彩代碼

摘要:

在 ANSI 兼容終端(例如 xterm、rxvt、konsole 等)里, 可以用彩色顯示文本而不僅僅是黑白。 本文示范了如何使用粗體和彩色的文字

參見:http://www.linuxfocus.org/ChineseGB/May2004/article335.shtml

概述

在現(xiàn)實生活中,每一位 Linux 使用者都要面對 Bash。 雖然第一眼看上去非常枯燥,但是又很多方法能夠讓你的 shell 足夠的個性化。 shell 提示符的彩色增強讓能夠讓你的 shell 獨一無二, 而且還非常清晰易讀。

在本文中我以 Bash shell 為例。因為在不同的終端里的轉義序列不完全相同, 所以在本文中我使用的是 ANSI 終端。 ?

Shell 的配置

shell 彩色配置出現(xiàn)在 bash 的個人配置文件 ~/.bashrc 或者是全局配置文件 /etc/bashrc 里面。 可以通過 bashrc 里面的 PS1 變量來設置提示符的外觀。

通常情況下,這個條目看起來應該是這個樣子:
~/.bashrc: PS1="\s-\v\$ "
\s 表示 shell 的名稱,-\v 表示他的版本號。 在提示符的最后面我們放置了一個 $。這樣看起來也許有點乏味, 所以不妨試試下面這種模式——這種模式在大多數(shù) Linux 的發(fā)行版本下是默認的設置:
~/.bashrc: PS1="\u@\h \w \$ "
這表示 用戶@ 當前目錄 $,這個是大部分 Linux 用戶都熟悉的 shell 提示符。 ?

轉義序列

要是通過彩色化提示符來增加個性化,就要用到轉義序列。 轉義序列就是一個讓 shell 執(zhí)行一個特殊步驟的控制指令。 轉義序列通常都是以 ESC 開頭(這也是它的命名原因)。 在 shell 里表示為 ^[。這種表示法需要一點時間去適應, 也可以用 \033 完成相同的工作(ESC 的 ASCII 碼用十進制表示就是 27, = 用八進制表示的 33)。

要直接在 shell 里面輸入轉義序列我們需要先按 ctrl-v:CTRL-v ESC。 ?

使用 shell 的顏色

下面我用一個提示符的例子來解釋 shell 的顏色。
~/.bashrc: PS1="\[\033[0;32;40m\u@\h:\w\$ \]"
這樣提示符就全部顯示成綠色了。就像這樣:
nico@ebrain:~$

\033 聲明了轉義序列的開始,然后是 [ 開始定義顏色。 后面的 0 定義了默認的字體寬度。稍后我會介紹其他的可用字符。 轉義序列字符串要用 \[ 和 \] 括起來, 防止轉義序列的文本顯示在 shell 里占用太多的空間。

下面我們要選擇前景色(這里是 32,代表綠色)。背景色的 40 表示黑色。 要是不想讓提示符后面的文字也變成綠色,我們用 \033[0m 關閉轉義序列, \033[0m 是 shell 的默認顏色。前景色和背景色都有 8 種可用的選擇。

可選顏色:紅色、綠色、黃色、藍色、洋紅、青色和白色。 他們對應的顏色代碼是:30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋紅)、36(青色)、37(白色)。

用同樣色方法設置背景色,不過要把第一個數(shù)字“3”替換成“4”, 例如 40、41、42、43、44、45、46、47。

示例:
~/.bashrc: PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"

這給了我們一個非常多彩的提示符:
nico@ebrain:~$

我們使用 export PS1="string" 來測試這些設置, 稍后我們要把這些設置轉移到 .bashrc 里面。 現(xiàn)在我的提示符看起來是這個樣子:
PS1="\[\033[1;34;40m[\033[1;31;40m\u@\h:\w\033[1;34;40m]\033[1;37;40m $\033[0;37;0m\] "

[nico@ebrain:~]
?

文本屬性

剛才提到了,在第一個轉義序列后面的“0”是提示符的文本的默認顏色設置。 對于文本屬性來說,這些值是有意義的:0、1、22、4、24、5、25、7、27, 分別表示:默認值、粗體、非粗體、下劃線、非下劃線、閃爍、非閃爍、 反顯、非反顯。

通過下面這一段短小的腳本,我們可以看看色彩組合。
#!/bin/sh
############################################################
# Nico Golde <nico(at)ngolde.de> Homepage: http://www.ngolde.de
# Last change: Mon Feb 16 16:24:41 CET 2004
############################################################

for attr in 0 1 4 5 7 ; do
    echo "----------------------------------------------------------------"
    printf "ESC[%s;Foreground;Background - \n" $attr
    for fore in 30 31 32 33 34 35 36 37; do
        for back in 40 41 42 43 44 45 46 47; do
            printf '\033[%s;%s;%sm %02s;%02s  ' $attr $fore $back $fore $back
        done
    printf '\n'
    done
    printf '\033[0m'
done
這段腳本可以從 showansicol.tar.gz 下載,格式是 tar.gz?

另一個程序

在 shell 中設置顏色不僅僅能創(chuàng)建更加漂亮的提示符, 在編寫控制臺程序的時候也非常有用。

對于一個要使用彩色的程序員,就必須要使用類似 slangncurses 這樣的的庫,者通常會增加執(zhí)行文件的大小。 Ncurses 有著或多或少的獨立于終端的類型的優(yōu)勢。 ?

C 語言示例

用綠色打印“Hello Word”:
#include <stdio.h>
int main(void){
  const char *const green = "\033[0;40;32m";
  const char *const normal = "\033[0m";
  printf("%sHello World%s\n", green, normal);
  return 0;
}
另外一個有用的轉義序列是 printf("\033[2J"),它和 system(clear) 完成的功能一樣。但是可以不需要頭文件 unistd.h。

使用printf("\033[1K") 可以刪除一行。 ?

初始化腳本示例

如果我們想在 /etc/init.dinit 腳本成功的執(zhí)行后, 得到一個漂亮的、清晰易讀的提示,而不是一個簡單的 '.', 我們可以再一次的使用轉義序列。

這是一段 cron init script 的摘錄:
#!/bin/sh
# Start/stop the cron daemon.
test -f /usr/sbin/cron || exit 0

 case "$1" in
 start)  echo -n "Starting periodic command scheduler: cron"
     start-stop-daemon --start --quiet --exec /usr/sbin/cron

                 echo "."
;;

如果 cron 腳本執(zhí)行成功就會顯示一個句點。 可以用 [Ok] 給這些信息添加上彩色特征,通過改變 echo 字符串,例如:
#!/bin/sh
# Start/stop the cron daemon.
test -f /usr/sbin/cron || exit 0
case "$1" in
start)  echo -n "Starting periodic command scheduler: cron"
        start-stop-daemon --start --quiet --exec /usr/sbin/cron
echo "\[ \033[1;34;40m[ \033[1;32;40mOk \033[1;34;40m]\033[0m\]"
    ;;

把這個設置應用到所有的 init腳本上非常耗費時間, 除非使用轉義序列 \033 —— 因為 Ctrl-v 不是作為一個字符來處理的。??

posted on 2006-08-10 18:16 楊粼波 閱讀(933) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美福利视频网站| 国产午夜精品一区二区三区欧美 | 香蕉精品999视频一区二区| 久久精品国产一区二区三区| 欧美精品www| 黄色综合网站| 亚洲午夜久久久久久尤物| 欧美大学生性色视频| 亚洲欧美日韩国产一区| 理论片一区二区在线| 国产精品综合| 亚洲免费观看高清在线观看 | 亚洲私拍自拍| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧洲在线看| 久久性天堂网| 中日韩午夜理伦电影免费| 猛男gaygay欧美视频| 国产尤物精品| 久久成人一区| 一区二区三区四区国产| 欧美激情91| 亚洲欧美在线一区二区| 亚洲精品国精品久久99热| 欧美亚洲一级片| 宅男精品视频| 精品成人乱色一区二区| 日韩一级在线观看| 欧美高清你懂得| 午夜精品久久99蜜桃的功能介绍| 久久精选视频| 亚洲在线视频观看| 中文av一区二区| 亚洲国产欧美久久| 亚洲日本va午夜在线电影| 国产精品美女久久久久久免费| 日韩一区二区电影网| 欧美激情精品久久久久久| 欧美午夜片欧美片在线观看| 一本色道久久88精品综合| 国产精品二区二区三区| 亚洲巨乳在线| 久久精品国产999大香线蕉| 国产主播喷水一区二区| 亚洲乱码国产乱码精品精可以看| 欧美日韩免费高清一区色橹橹| 亚洲午夜一区二区| 久久久久久久高潮| 亚洲最快最全在线视频| 久久免费视频在线观看| 亚洲精品日韩欧美| 亚洲美女在线国产| 欧美福利电影网| 久久免费视频这里只有精品| 欧美一区二区| 亚洲国产高潮在线观看| 亚洲国产毛片完整版 | 国模精品一区二区三区| 亚洲深夜激情| 欧美精品情趣视频| 亚洲国产精品一区在线观看不卡 | 亚洲黄色免费电影| 久久免费国产| 免费亚洲一区二区| 欧美日韩视频第一区| 亚洲精品资源美女情侣酒店| 99国内精品久久| 欧美日韩国产精品专区| 欧美亚洲视频在线看网址| 欧美日韩国产小视频| 亚洲欧洲综合| 国产一区清纯| 欧美一区三区三区高中清蜜桃 | 国产精品一国产精品k频道56| 一区二区电影免费在线观看| 亚洲视频一区二区免费在线观看| 欧美精品久久久久久久| 夜夜嗨av一区二区三区网页 | 亚洲国产女人aaa毛片在线| 欧美大片免费观看| 欧美福利视频在线| 亚洲私拍自拍| 欧美区一区二区三区| 亚洲欧美一区二区三区久久 | 久久久久国产一区二区三区| 噜噜噜在线观看免费视频日韩| 欧美裸体一区二区三区| 99re6这里只有精品视频在线观看| 亚洲图片欧美午夜| 久久天堂av综合合色| 国产亚洲欧美一区| 一本久久综合亚洲鲁鲁五月天| 亚洲一区在线免费| 一区免费观看视频| 欧美日韩成人在线播放| 亚洲一区在线免费| 欧美午夜大胆人体| 欧美一区二区成人| 亚洲国产免费| 欧美一区二区三区在线免费观看| 欧美成人免费全部观看天天性色| 亚洲精品国产视频| 久久久久国产免费免费| 国产一区视频观看| 欧美成人一区二免费视频软件| 正在播放欧美视频| 蜜臀久久久99精品久久久久久| 在线视频日韩精品| 136国产福利精品导航| 国产在线欧美| 欧美激情一区| 午夜视频在线观看一区二区三区 | 亚洲精品国久久99热| 国产亚洲精品久久久久动| 欧美~级网站不卡| 亚洲精品1区2区| 久久久综合网站| 亚洲在线一区二区| 亚洲美女黄色片| 亚洲福利国产| 国产一区观看| 国产精品午夜在线| 久久精品91久久香蕉加勒比 | 久久精品久久综合| 亚洲一区二区三区在线观看视频| 亚洲一区二区三| 亚洲欧洲另类| 在线免费不卡视频| 国产午夜精品全部视频在线播放| 国产精品久久久久久久久久久久久 | 欧美激情aⅴ一区二区三区| 欧美在线一区二区三区| 亚洲男人天堂2024| 国产亚洲精品一区二区| 欧美三区在线观看| 久久激情网站| 香蕉久久夜色精品国产| 亚洲一级电影| 亚洲欧美电影在线观看| 欧美韩日一区二区| 久热国产精品视频| 久久综合九色欧美综合狠狠| 性欧美暴力猛交另类hd| 午夜视频久久久| 亚洲欧美日韩视频二区| 香蕉免费一区二区三区在线观看| 亚洲综合日韩| 久久精品国产久精国产思思| 91久久精品国产| 亚洲区一区二| 一区二区三区欧美在线观看| 制服丝袜激情欧洲亚洲| 亚洲一级免费视频| 西西裸体人体做爰大胆久久久| 亚洲在线国产日韩欧美| 欧美亚洲视频一区二区| 久久蜜桃精品| 亚洲承认在线| 久久久久九九视频| 麻豆成人在线| 亚洲国产美国国产综合一区二区| 99re在线精品| 亚洲一区在线观看免费观看电影高清 | 欧美在线视频一区二区| 久久综合久久综合九色| 欧美sm极限捆绑bd| 欧美在线国产| 久久精品中文字幕免费mv| 麻豆精品精华液| 亚洲精品免费在线观看| 亚洲专区欧美专区| 久久精品综合| 欧美日韩四区| 狠狠爱www人成狠狠爱综合网| 国产精品入口福利| 在线免费观看日本欧美| 在线一区二区三区做爰视频网站| 国产一区二区三区四区老人| 在线观看国产欧美| 国内成人精品视频| aa级大片欧美三级| 久久精品国产精品| 亚洲乱码久久| 久久久久久久性| 欧美午夜精品久久久久久久| 狠狠色狠色综合曰曰| 亚洲砖区区免费| 欧美成人一区二区| 最新亚洲一区| 久久精品夜色噜噜亚洲a∨ | 欧美精品电影在线| 国产亚洲欧美日韩在线一区| 国产精品99久久久久久白浆小说| 久久另类ts人妖一区二区| 一本色道久久综合狠狠躁的推荐| 久久精品国产清自在天天线| 国产精品国产精品国产专区不蜜| 91久久亚洲| 免费黄网站欧美| 欧美在线播放|