linux终端terminal个性化配置(转)

Posted 极客先锋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 上录制你的终端操作]

 

 
 

以上是关于linux终端terminal个性化配置(转)的主要内容,如果未能解决你的问题,请参考以下文章

tmux使用及个性化配置

tmux使用及个性化配置

Mac 使用 iTerm2 + Oh My Zsh 配置个性化终端

个性化定制Mac终端欢迎页

Linux的环境配置文件----.bashrc文件(转)

Mac 终端命令行个性化显示设置:PS1