ubuntu 下, ls 顯示的目錄的顏色,怎麼說呢,看起來太費勁了。
因而想着修改爲容易識別的顏色。
因而搜索了一下。
這裏列舉三個搜到的教程吧。
簡單說我按這上面的方法作了,而後都失敗了。
1. http://blog.csdn.net/star11053234/article/details/8680530
這裏有個ubuntu的截圖,這個背景看着還沒那麼折磨人。
可是他中間粘了那麼多代碼,給人一種湊字的感受。
最下面才說重點:處處顏色列表,修改目錄的,把加載顏色列表的命令加載.bashrc中去,也就是啓動自動加載。
可是我執行後並無生效。
2. http://blog.chinaunix.net/uid-10540984-id-3058379.html
這個同樣,和第一個差很少,沒有生效。
不過他提到幾個顏色的對應編號,能夠看一下。
3.http://dreamthinking.blog.163.com/blog/static/2051811712012313358252/
說着說着說成修改PS1的樣式了。
最後我說說個人解決方法吧。
其實上面說的基本上都正確,可是多是直接複製別人寫的博客的緣故吧,因此那些都不能生效。
從 .bash_profile 入手吧,裏面沒什麼配置,主要是執行 .bashrc 文件。
.bashrc 裏面執行了 .bash_aliases,可是這個是起別名的文件,默認爲空。
而後看到 .bash_functions , 可是隻是一些函數, 默認文件都不存在。
而後就沒有了。
而後去 / 下找找。
先在 /etc 下找,發現了bash.bashrc。
在最後一行發現了被註釋的一條命令
html
# Uncomment to use the terminal colours set in DIR_COLORS #eval "$(dircolors -b /etc/DIR_COLORS)"
而後我去知道,上面提到的解決方法之因此不能生效,是 eval 這條命令寫錯了。
因而我分析了一下這條命令,含義是把執行 命令 dircolors -b /etc/DIR_COLORS 後,把輸出的內容當作命令再次執行。
那天然也能夠換成
本身手動執行 dircolors -p > .dircolors ,能夠看到輸出的文件裏有一個 DIR 01;34 # directory.
咱們把34修改爲合適的顏色,通常35,36都行,本身試試。
而後執行 dircolors -b .dircolors ,能夠看到下面的樣子
web
skyyuan@skyyuan-PC3:~ $ dircolors -b .dircolors LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'; export LS_COLORS
簡單的說就是把文件壓縮在一個變量裏面了,各個配置實用冒號(:)分割。咱們能夠看到,第二個di=01;35就是咱們的配置。
最後 export LS_COLORS 把這個變量設置爲全局變量。
因此咱們要作的很簡單,在 ~/.bashrc 的最後一行加上這句便可。
ubuntu
eval "$(dircolors -b .dircolors)"
知道含義了,咱們這樣也能夠
bash
eval "`dircolors -b .dircolors`"
注意,這個 `是鍵盤左上角 Esc下面的那個鍵,不是單引號。
悲劇的是這個方法在個人電腦上生效了,可是在服務器上失敗了。
見下:
服務器
skyyuan@skyyuan-PC3:~ $ dircolors -p > .dir_colors skyyuan@skyyuan-PC3:~ $ dircolors -b .dir_colors LS_COLORS=''; export LS_COLORS
因而嘗試手動執行 export 。
也就是執行
svg
skyyuan@skyyuan-PC3:~ $ LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'; skyyuan@skyyuan-PC3:~ $ export LS_COLORS
而後,發現生效了。
可是執行命令提示這個錯誤
函數
ls: unrecognized prefix: ca ls: unparsable value for LS_COLORS environment variable
顯然是系統不認識這些縮寫。
那就手動生成這些縮寫吧。
vi 打開 .dir_colors 文件。
1. 刪除註釋。
ui
:%s/#\(.*)\//
2.刪除TERM 變量
.net
:%s/^TERM .*$//
3.刪除空行
unix
:%s/\n\+/\r/
4.規範變量
:%s/^\([^ ]\+\) \(.*\)$/\1=\2:/
5.合併行
:%s/\n//
6.刪除多餘的空格
:%s/ //
7.生成變量
:%s/^\(.*\)$/LS_COLORS='\1'/
因而獲得沒有縮寫的變量LS_COLORS了。
LS_COLORS='NORMAL=00:FILE=00:DIR=01;34:LINK=01;36:FIFO=40;33:SOCK=01;35:DOOR=01;35:BLK=40;33;01:CHR=40;33;01:ORPHAN=40;31;01:SETUID=37;41:SETGID=30;43:STICKY_OTHER_WRITABLE=30;42:OTHER_WRITABLE=34;42:STICKY=37;44:EXEC=01;32:.tar=01;31:.tgz=01;31:.arj=01;31:.taz=01;31:.lzh=01;31:.zip=01;31:.z=01;31:.Z=01;31:.gz=01;31:.bz2=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.jpg=01;35:.jpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.avi=01;35:.fli=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.flac=01;35:.mp3=01;35:.mpc=01;35:.ogg=01;35:.wav=01;35:'
而後再次試試
居然提示
ls: unparsable value for LS_COLORS environment variable
好吧,我憤怒了。
而後作了下面四個嘗試
skyyuan@skyyuan-PC3:skyyuan $ LS_COLORS="DIR=01;35" skyyuan@skyyuan-PC3:skyyuan $ ls ls: unparsable value for LS_COLORS environment variable skyyuan.bashrc* skyyuan.sh* tools/
skyyuan@skyyuan-PC3:skyyuan $ LS_COLORS="dir=01;35" skyyuan@skyyuan-PC3:skyyuan $ ls ls: unparsable value for LS_COLORS environment variable skyyuan.bashrc* skyyuan.sh* tools/
skyyuan@skyyuan-PC3:skyyuan $ LS_COLORS="di=01;35" skyyuan@skyyuan-PC3:skyyuan $ ls skyyuan.bashrc* skyyuan.sh* tools/
skyyuan@skyyuan-PC3:skyyuan $ LS_COLORS="DI=01;35" skyyuan@skyyuan-PC3:skyyuan $ ls ls: unrecognized prefix: DI ls: unparsable value for LS_COLORS environment variable skyyuan.bashrc* skyyuan.sh* tools/
好吧,變量名必須縮寫且必須小寫。
那只有一個一個的嘗試了。
繼續回覆完整變量名
LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
提示
skyyuan@skyyuan-PC3:skyyuan $ ls ls: unrecognized prefix: ca ls: unparsable value for LS_COLORS environment variable skyyuan.bashrc* skyyuan.sh* tools/
刪除 ca 這個變量名。
LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
再次嘗試,好了,變色了,沒錯誤信息了。
skyyuan@skyyuan-PC3:skyyuan $ ls skyyuan.bashrc* skyyuan.sh* tools/
接下來是把這個變量名保存起來。
export LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
能夠直接放到 .bashrc 裏面,也能夠單獨放到一個文件裏面(.dir_colors),而後 source 一下。
好比個人
if [ -f $HOME/skyyuan/.dir_colors ];then source $HOME/skyyuan/.dir_colors; fi
.dir_colors 文件就是上面的好了,終於完美解決了。