大家好,又见面了,我是你们的朋友全栈君。
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文件。 改这个吧,source一下。bashrc一般不一定有,像mac系统。
~/.bashrc:每次打开新窗口时执行。该文件包含专用于你的bashshell的bash信息。与/etc/bashrc冲突则执行前者~。
~/.bash_logout:当每次退出系统(退出bashshell)时,执行该文件.
可以明白的是:针对于用户的配置,应该将配置信息写入~/.bashrc文件。(只对当前用户有效,重新打开的如果不是当前用户的terminal当然没有效果!所以lz一般设置两次,一个root用户,一个当前普通用户)
sh终端颜色配置
为了设置终端颜色,我们需要对~/.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 |
【termcolor · PyPI】
【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 透明色
—————————————
sh终端颜色设置
在终端中使用命令对配置文件进行备份
cp ~/.bashrc ~/.bashrc.bak
然后打开文件
sudo vi ~/.bashrc #没有这个文件的话可以修改文件sudo vi /etc/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\$’“(这也是终端的默认设置,即不加任何颜色)
#setup XIM environment, needn't if use SCIM as gtk-immodules
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
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
保存。
打开一个终端,可以发现,我们之前的配置已经能够自动加载了。
[改变linux终端颜色][Ubuntu终端颜色设置、路径名设置以及ls命令设置][Linux 终端下颜色的输出]
alias命令设置
可以通过在.bashrc文件中设置alias以实现ls命令的一些自定义设置:
(echo "
#pipi add
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias vi='vim'
alias ssu='sudo su'
#alias cp='cp -i'
#alias mv='mv -i'
alias rm='rm -i'
#alias ga='git add . ; find . -size +50M ! -path *git* | xargs git reset HEAD'
#alias ga='find . -size +100M ! -path *git* | cut -c 3- >> .gitignore; git add .'
alias ga='git add .; git status'
alias gs='git status'
alias gc='git commit -m 'update''
alias gp='git push'
alias activate='. ~/ENV/ubuntu_env/bin/activate'
alias activatepy2='. ~/ENV/py2_env/bin/activate'
#alias orange='activate; python3 -m Orange.canvas &'
alias orange 'python3 -m Orange.canvas &'
alias dm='docker-machine'
") >> ~/.bashrc 1> /dev/null
Note:输出色彩功能不是所有系统都可以(linux可以,macos不行)
# 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’
ps:
1.完成后保存并退出GEdit编辑器,回到终端后输入“source ~/.bashrc”(14.04不用输入都可以),再重新打开termial就ok了
2. 不过好像没办法让输入的命令与输出的文件名显示不同颜色,这个怎么解决?(求留言)
zsh终端颜色和命令简写配置
mac下默认是zsh终端
sudo vi .zshrc
autoload -U colors && colors PROMPT=”%{$fg[yellow]%}%n%{$reset_color%}: %{$fg[blue]%}%1~ %{$reset_color%}%# “
#pipi add
alias ll=’ls -alF’
alias la=’ls -A’
alias l=’ls -CF’
alias grep=’grep –color=auto’
alias vi=’vim’
alias ssu=’sudo su’
#alias cp=’cp -i’
#alias mv=’mv -i’
alias rm=’rm -i’
#alias ga=’git add . ; find . -size +50M ! -path *git* | xargs git reset HEAD’
alias ga=’find . -size +100M ! -path *git* | cut -c 3- > .gitignore; git add .’
alias gs=’git status’
alias gc=’git commit -m ‘update”
alias gp=’git push’
alias glog=’git log –graph –pretty=oneline –abbrev-commit’
[颜色详细的可以查看官方说明文档]
终端其它设置
终端terminal 补全设置为大小写不敏感
编辑~/.inputrc(没有的话,就新建一个),在最后加一行:
set completion-ignore-case on
保存,重新打开终端就可以了。
还有命令行输入字符之后,就可以用方向键Up,Down来搜索以该串字符开头的历史命令。
终端显示设置
之前看到的我的终端都是黑底的,其实用户可以直接在终端中设置首选项以实现半透明背景,或者是以一张图片作为背景也可以:
打开一个terminal,鼠标指到屏幕最上面,选择菜单中选择 编辑>配置文件首选项>背景 再设置一下就可以了
from:http://blog.csdn.net/pipisorry/article/details/39584489
ref:通过alias等配置linux的shell颜色技巧
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158348.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...