linux終端terminal個性化配置(轉)


http://blog.csdn.net/pipisorry/article/details/39584489

{本文介紹Linux終端字體顏色設置、終端提示符顯示內容設置、自定義alias命令}

linux打開終端快捷鍵:

ctrl + alt + t  新窗口中打開

ctrl + shift +t 新標簽頁中打開

 

個人配置文件介紹

 系統默認狀態下的終端顯示為紫底白字(皮皮的linux為ubuntu 14.04 LTS)

   在沒有經過自定義配置的終端下因為所有輸入輸出都是一個顏色(ls命令除外),對查找一些命令的執行結果很不方便。
對終端的配置,可以寫到不同的文件之中,如:~/.bashrc、/etc/bash.bashrc、/etc/profile這幾個文件。

這些文件的的作用時機

    /etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置.此文件默認調用/etc/bash.bashrc文件。
    /etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bashshell被打開時,該文件被讀取.
   ~/.bash_profile/~/.bash_login/~/.profile:用戶登錄執行,source立即生效。每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件.
   ~/.bashrc:每次打開新窗口時執行。該文件包含專用於你的bashshell的bash信息。與/etc/bashrc沖突則執行前者~。
   ~/.bash_logout:當每次退出系統(退出bashshell)時,執行該文件. 
可以明白的是:針對於用戶的配置,應該將配置信息寫入~/.bashrc文件。( 只對當前用戶有效,重新打開的如果不是當前用戶的terminal當然沒有效果!所以lz一般設置兩次,一個root用戶,一個當前普通用戶)


終端terminal 補全設置為大小寫不敏感

編輯~/.inputrc(沒有的話,就新建一個),在最后加一行: 
set completion-ignore-case on
保存,重新打開終端就可以了。
還有命令行輸入字符之后,就可以用方向鍵Up,Down來搜索以該串字符開頭的歷史命令。



終端顏色配置

為了設置終端顏色,我們需要對~/.bashrc文件中的PS1變量進行定制。     
在顏色模式打開的情況下,PS1變量代表的內容就是用戶名+主機名+路徑名(長路徑)+$。
        eg: pipi@ubuntu:~$ 中用戶名-pipi;主機名-ubuntu;路徑名-~
 

顏色=\033[代碼;前景;背景m

如\033[1;31;1m代表高亮紅色前景和透明背景

\033[0m   #采用終端默認設置,即取消顏色設置

Terminal properties

Terminal bold dark underline blink reverse concealed
xterm yes no yes bold yes yes
linux yes yes bold yes yes no
rxvt yes no yes bold/black yes no
dtterm yes yes yes reverse yes yes
teraterm reverse no yes rev/red yes no
aixterm normal no yes no yes yes
PuTTY color no yes no yes no
Windows no no no no yes no
Cygwin SSH yes no color color color yes
Mac Terminal yes no yes yes yes yes
https://pypi.python.org/pypi/termcolor/
http://en.wikipedia.org/wiki/ANSI_escape_code

顏色設置有關的幾張表

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

代碼序列說明

\aASCII響鈴字符(也可以鍵入 \007)

\d "Wed Sep06"格式的日期

\eASCII轉義字符(也可以鍵入 \033)

\h 主機名的第一部分(如 "mybox")

\H 主機的全稱(如 "mybox.mydomain.com")

\j 在此 shell中通過按 ^Z掛起的進程數

\l  shell的終端設備名(如 "ttyp4")

\n 換行符

\r 回車符

\sshell的名稱(如 "bash")

\t24小時制時間(如 "23:01:01")

\T12小時制時間(如 "11:01:01")

\@ 帶有 am/pm的 12小時制時間

\u 用戶名

\vbash的版本(如 2.04)

\VBash版本(包括補丁級別) ?/td>;

\w 當前工作目錄(如 "/home/drobbins")

\W 當前工作目錄的“基名 (basename)”(如 "drobbins")

\! 當前命令在歷史緩沖區中的位置

\# 命令編號(只要您鍵入內容,它就會在每次提示時累加)

\$ 如果您不是超級用戶 (root),則插入一個 "$";如果您是超級用戶,則顯示一個 "#"

\xxx 插入一個用三位數 xxx(用零代替未使用的數字,如 "/007")表示的 ASCII 字符

\\ 反斜杠

\[這個序列應該出現在不移動光標的字符序列(如顏色轉義序列)之前。它使 bash能夠正確計算自動換行。

\] 這個序列應該出現在非打印字符序列之后。

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

  代碼             意義

  0                 OFF

  1                 高亮顯示

  4                 underline

  5                 閃爍

  7                 反白顯示

  8                 不可見

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

 前景            背景             顏色

  30                40               黑色

  31                41               紅色

  32                42               綠色

  33                43               黃色

  34                44               藍色

  35                45               紫紅色

  36                46               青藍色

  37                47               白色

   1                  1              透明色

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

 終端顏色設置

在終端中使用命令對配置文件進行備份
cp  ~/.bashrc ~/.bashrc.bak
然后打開文件
gedit ~/.bashrc
找到PS1變量設置的代碼,注釋之
#if [ $color_prompt" = yes]; then
#    PS1='${debian_chroot:+($debian_chroot)}
\033[01;32m
\u@\h
\033[00m
:
\033[01;34m
\w
\033[00m
\$ '
#else
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
可以直接修改PS1='${debian_chroot:+($debian_chroot)}
\033[01;32m
\u@\h
\033[00m
:
\033[01;34m
\w
\033[00m
\$ '
或者可以在文件的末尾加上”PS1='\u@\h:\w\$'“(這也是終端的默認設置,即不加任何顏色)
[plain]  view plain  copy
 
 print?在CODE上查看代碼片派生到我的代碼片
  1. #setup XIM environment, needn't if use SCIM as gtk-immodules  
  2. export XMODIFIERS=@im=fcitx  
  3. export GTK_IM_MODULE=xim  
  4. export QT_IM_MODULE=xim  
  5.   
  6. PS1='\u@\h:\w\$'  

顏色=\033[代碼;前景;背景m

Note: 要將全部非打印字符用bash 轉義序列 "\["和 "\]"括起來。"

 
"是為了把轉義序列的字符串括起來,防止轉義序列的文本顯示在 shell 里占用太多的空間。

 

\033 聲明了轉義序列的開始,然后是 [ 開始定義顏色。 后面的 0 定義了默認的字體寬度,接着的中間的數字定義字符顏色。最后面的數字定義了字符背景色。字母m是定義本身所必須的,字母m后面的字符就是你想改變的字符了。

 

Ps1 ="\[ -------------> 最外面的括弧

                 \033[1;32;40m[

           ----> 定義最右邊的" [ " ;

        1:字體寬度,好像有加亮功能.

        32:字符顏色。32表示綠色。

        40:背景色,40表示黑色。

 

再例如在\u前面加上

\033[1;31;1m

 

PS1='

\033[1;31;1m
\u@\h:\w\$'讓用戶名以紅色高亮顯示

 

保存回到終端后輸入“source ~/.bashrc”。

   我們要想辦法讓信息顯示以不同顏色展示。這里顏色設置的作用范圍是從當前設置命令到下一顏色設置命令的,也就是說,如果我們只在\u前設置了顏色,那么終端的字體應該都是紅色的,不僅信息項是紅色的,就連輸入命令都是紅色的。
  明白了對PS1變量進行設置的原理之后,可以在PS1變量中插入字符串,或者為每個信息項設置不同的顏色,或者控制信息欄顯示的內容:
我們可以讓用戶名(紅色)、路徑(綠色)、美元符號(黃色)、命令(白色)
PS1='
\033[1;31;1m
\u@\h:
\033[1;32;1m
\w
\033[1;33;1m
\$
\033[1;37;1m
'
不顯示主機名(@\h去掉)並且顯示長路徑名
PS1='
\033[1;31;1m
\u:
\033[1;32;1m
\w
\033[1;33;1m
\$
\033[1;37;1m
'
source一下:source ~/.bashrc

終端中路徑名過長問題

有時候在終端需要連續打開幾層的文件夾才能訪問到我們所需的文件,而這個時候在終端中顯示的路徑名就像是一條長長的尾巴

使終端只顯示用戶當前工作目錄的名字

可以在PS1變量設置終端只顯示工作目錄的基名,即將PS1變量中的\w的小寫的w換成大寫的W,修改后的PS1變量為:
PS1='
\033[1;31;1m
\u@\h:
\033[1;32;1m
\W
\033[1;33;1m
\$
\033[1;37;1m
'
不顯示主機名(@\h去掉)並且顯示短路徑名
PS1='
\033[1;31;1m
\u:
\033[1;32;1m
\W
\033[1;33;1m
\$
\033[1;37;1m
'

實現不需每次打開終端都要source的需求

如果打開新的終端,用戶定義的配置並沒有顯示出來,還是默認配置。 這個時候可以通過source命令去手動加載.bashrc文件,可是每次打開終端都要source一次。
回到文章開頭的地方,我們說 /etc/profile文件從/etc/profile.d目錄的配置文件中搜集shell的設置,此文件默認調用 /etc/bashrc文件,打開profile文件:
sudo gedit /etc/profile
   在文件中有一句調用/etc/bash.bashrc文件的代碼,前文所說profile文件自動加載bash.bashrc文件,事實上就是由代碼實現的,可以在這里添加一句新的代碼,以使profile自動加載用戶的.bashrc文件,實現不需每次打開終端都要source的需求
if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
      . ~/.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi
保存。
打開一個終端,可以發現,我們之前的配置已經能夠自動加載了。 

終端其它設置

之前看到的我的終端都是黑底的,其實用戶可以直接在終端中設置首選項以實現半透明背景,或者是以一張圖片作為背景也可以:
打開一個terminal,鼠標指到屏幕最上面,選擇菜單中選擇 編輯>配置文件首選項>背景 再設置一下就可以了
 
 

alias命令設置

  可以通過在.bashrc文件中設置alias以實現ls命令的一些自定義設置:
# enable color support of ls and also add handy aliases
...
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
    #pipi add
    alias vi='vim'
    alias ssu='sudo su'
    alias cp='cp -i'
    alias mv='mv -i'
    alias rm='rm -i'
    alias dm='docker-machine'
    alias gc='git commit -m 'update''
...

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
ps:
1.完成后保存並退出GEdit編輯器,回到終端后輸入“source ~/.bashrc”(14.04不用輸入都可以),再重新打開termial就ok了
2. 不過好像沒辦法讓輸入的命令與輸出的文件名顯示不同顏色,這個怎么解決?(求留言)

from:http://blog.csdn.net/pipisorry/article/details/39584489

ref:通過alias等配置linux的shell顏色技巧

[如何在 Linux 上錄制你的終端操作]

 

 
 


免責聲明!

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



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