Linux学习:bash的配置。终端颜色显示。

1,224 阅读4分钟

1:bash是我们在登录系统是执行的shell程序,我们适当配置属于自己的bash可以方便我们和Linux系统的交互。是我自己更改的bash配置。

通常的情况下、在我们的系统会保存备份bash配置,在/etc/skel/.bashrc这个位置。我便借助这个位置保存的备份更改了自己的终端颜色显示。如下图所示,是我很喜欢的显示。
如果各位需要自己的显示内容,完全可以自己配置属于自己的bash。下面我将我的配置文件粘贴到这里。

file

在这里我重点说一下终端颜色显示
要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:#set,即可在输出中找到关于PS1的定义如下:

	PS1的定义中个常用的参数的含义如下:
	\d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"   
	\H :#完整的主机名称   
	\h :#仅取主机的第一个名字  
	\t :#显示时间为24小时格式,如:HH:MM:SS   
	\T :#显示时间为12小时格式   
	\A :#显示时间为24小时格式:HH:MM   
	\u :#当前用户的账号名称   
	\v :#BASH的版本信息   
	\w :#完整的工作目录名称   
	\W :#利用basename取得工作目录名称,所以只会列出最后一个目录   
	\# :#下达的第几个命令   
	\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$  

	由此,我们可知linux默认的命令行提示信息为:[当前用户的账号名称@主机的第一个名字 工作目录的最后一项]#

	2.颜色的设置
 F        B
 30      40      黑色   
 31      41      红色   
 32      42      绿色   
 33      43      黄色   
 34      44      蓝色   
 35      45      紫红色   
 36      46      青蓝色   
 37      47      白色  

	根据颜色表,套用入字符颜色设置格式中,就可以对linux终端命令行颜色进行个性化设置了。
	3.修改.bashrc文件

	通过上面的设置只能改变当前终端的命令行格式,关闭这个终端,在重新打开的一个终端中命令行格式又会恢复到默认的形式。想要永久性的改变终端命令行格式,需要修改.bashrc文件。
	在.bashrc文件中对PS1的内容进行更改就可以做到终端显示了
	PS1='${debian_chroot:+($debian_chroot)}\[\033[36;40m\]\u \[\033[1;31;40m\]\W \[\033[1;35;40m\]\$ > \[\033[1;0;0m\]:这是我的配置,希望你能够喜欢。
	同时,这个文件默认在~/.bashrc,打开进行复制粘贴就可以。最后将一张完整的终端图像贴到这里。希望你能够喜欢我这份bash配置。

file

	# ~/.bashrc: executed by bash(1) for non-login shells.
	# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
	# for examples

	# If not running interactively, don't do anything
	case $- in
			*i*) ;;
				*) return;;
	esac

	# don't put duplicate lines or lines starting with space in the history.
	# See bash(1) for more options
	HISTCONTROL=ignoreboth

	# append to the history file, don't overwrite it
	shopt -s histappend

	# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
	HISTSIZE=1000
	HISTFILESIZE=2000

	# check the window size after each command and, if necessary,
	# update the values of LINES and COLUMNS.
	shopt -s checkwinsize

	# If set, the pattern "**" used in a pathname expansion context will
	# match all files and zero or more directories and subdirectories.
	#shopt -s globstar

	# make less more friendly for non-text input files, see lesspipe(1)
	[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

	# set variable identifying the chroot you work in (used in the prompt below)
	if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
			debian_chroot=$(cat /etc/debian_chroot)
	fi

	# set a fancy prompt (non-color, unless we know we "want" color)
	case "$TERM" in
			xterm-color|*-256color) color_prompt=yes;;
	esac


	if [ -n "$force_color_prompt" ]; then
			if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
		# We have color support; assume it's compliant with Ecma-48
		# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
		# a case would tend to support setf rather than setaf.)
			color_prompt=yes
				else
			color_prompt=
				fi
		fi

		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)}\[\033[36;40m\]\u \[\033[1;31;40m\]\W \[\033[1;35;40m\]\$ > \[\033[1;0;0m\]'**
		fi
		unset color_prompt force_color_prompt

		# If this is an xterm set the title to user@host:dir
		case "$TERM" in
		xterm*|rxvt*)
				PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
				;;
		*)
				;;
		esac

		# enable color support of ls and also add handy aliases
		if [ -x /usr/bin/dircolors ]; then
				test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
				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'
		fi

		# colored GCC warnings and errors
		#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

		# some more ls aliases
		alias ll='ls -alF'
		alias la='ls -A'
		alias l='ls -CF'

		# Add an "alert" alias for long running commands.  Use like so:
		#   sleep 10; alert
		alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

		# Alias definitions.
		# You may want to put all your additions into a separate file like
		# ~/.bash_aliases, instead of adding them here directly.
		# See /usr/share/doc/bash-doc/examples in the bash-doc package.

		if [ -f ~/.bash_aliases ]; then
				. ~/.bash_aliases
		fi

		# enable programmable completion features (you don't need to enable
		# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
		# sources /etc/bash.bashrc).
		if ! shopt -oq posix; then
			if [ -f /usr/share/bash-completion/bash_completion ]; then
				. /usr/share/bash-completion/bash_completion
			elif [ -f /etc/bash_completion ]; then
				. /etc/bash_completion
			fi
		fi