zoukankan      html  css  js  c++  java
  • 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

    如33[1;31;1m代表高亮红色前景和透明背景

    33[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响铃字符(也可以键入 07)

    d "Wed Sep06"格式的日期

    eASCII转义字符(也可以键入 33)

    主机名的第一部分(如 "mybox")

    主机的全称(如 "mybox.mydomain.com")

    在此 shell中通过按 ^Z挂起的进程数

     shell的终端设备名(如 "ttyp4")

     换行符

     回车符

    sshell的名称(如 "bash")

    24小时制时间(如 "23:01:01")

    T12小时制时间(如 "11:01:01")

    带有 am/pm的 12小时制时间

    用户名

    vbash的版本(如 2.04)

    VBash版本(包括补丁级别) ?/td>;

    当前工作目录(如 "/home/drobbins")

    当前工作目录的“基名 (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)}
    33[01;32m
    u@h
    33[00m
    :
    33[01;34m
    w
    33[00m
    $ '
    #else
    #    PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
    #fi
    可以直接修改PS1='${debian_chroot:+($debian_chroot)}
    33[01;32m
    u@h
    33[00m
    :
    33[01;34m
    w
    33[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 里占用太多的空间。

    33 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。

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

                     33[1;32;40m[

               ----> 定义最右边的" [ " ;

            1:字体宽度,好像有加亮功能.

            32:字符颜色。32表示绿色。

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

    再例如在u前面加上

    33[1;31;1m

    PS1='

    33[1;31;1m
    u@h:w$'让用户名以红色高亮显示

    保存回到终端后输入“source ~/.bashrc”。

       我们要想办法让信息显示以不同颜色展示。这里颜色设置的作用范围是从当前设置命令到下一颜色设置命令的,也就是说,如果我们只在u前设置了颜色,那么终端的字体应该都是红色的,不仅信息项是红色的,就连输入命令都是红色的。
      明白了对PS1变量进行设置的原理之后,可以在PS1变量中插入字符串,或者为每个信息项设置不同的颜色,或者控制信息栏显示的内容:
    我们可以让用户名(红色)、路径(绿色)、美元符号(黄色)、命令(白色)
    PS1='
    33[1;31;1m
    u@h:
    33[1;32;1m
    w
    33[1;33;1m
    $
    33[1;37;1m
    '
    不显示主机名(@h去掉)并且显示长路径名
    PS1='
    33[1;31;1m
    u:
    33[1;32;1m
    w
    33[1;33;1m
    $
    33[1;37;1m
    '
    source一下:source ~/.bashrc

    终端中路径名过长问题

    有时候在终端需要连续打开几层的文件夹才能访问到我们所需的文件,而这个时候在终端中显示的路径名就像是一条长长的尾巴

    使终端只显示用户当前工作目录的名字

    可以在PS1变量设置终端只显示工作目录的基名,即将PS1变量中的w的小写的w换成大写的W,修改后的PS1变量为:
    PS1='
    33[1;31;1m
    u@h:
    33[1;32;1m
    W
    33[1;33;1m
    $
    33[1;37;1m
    '
    不显示主机名(@h去掉)并且显示短路径名
    PS1='
    33[1;31;1m
    u:
    33[1;32;1m
    W
    33[1;33;1m
    $
    33[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 上录制你的终端操作]

     
     
  • 相关阅读:
    spark on yarn模式下内存资源管理(笔记1)
    面试题10.3-变态跳台阶
    面试题10.2-青蛙跳
    面试题9-斐波那契数列
    面试题9-用两个栈来实现一个队列,完成队列的Push和Pop操作
    面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
    鸢尾花数据集-iris.data
    class之cls
    python 装饰器
    supervisor python开发的进程管理工具
  • 原文地址:https://www.cnblogs.com/jikexianfeng/p/6120461.html
Copyright © 2011-2022 走看看