100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 改变linux终端字体颜色csh Bash&csh 命令提示符颜色及其他

改变linux终端字体颜色csh Bash&csh 命令提示符颜色及其他

时间:2022-06-05 22:21:38

相关推荐

改变linux终端字体颜色csh Bash&csh 命令提示符颜色及其他

1.结果:参考

了很多其他文章的介绍,完成自己的Linux PS1颜色设置:

2.设置文件:

用户是bash shell,vim ~/.bashrc,增加:

PS1='[\u@\e[0;36m\h\e[0m \W]\$'

export PS1

用户是c shell,vim ~/.cshrc,增加:

set colors_1 = "%{\e[0m%}"

#set colors0 = "%{\e[30m%}"

#set colors1 = "%{\e[31m%}"

#set colors2 = "%{\e[32m%}"

#set colors3 = "%{\e[33m%}"

#set colors4 = "%{\e[34m%}"

#set colors5 = "%{\e[35m%}"

set colors6 = "%{\e[36m%}"

#set colors7 = "%{\e[37m%}"

#set prompt="[%n@$colors7%B%m%b %c]%%"

set prompt="[%n@$colors6%m$colors_1 %c]%%"

#set prompt = "$colors1***** $colors2%/ $colors3***

$colors4 $colors5*** $colors6%h$colors_1

$colors7***** $colors1%P $colors2***\n$colors3%%$colors_1 "

3. C shell 和Bash shell中的详细定义:

3.1)bash的提示符为 PS1 变量,

默认是 环境变量, 下面包含bash为用户在PS1中所使用的符号的一个完整列表:

\a ASCII 响铃字符(也可以键入 \007)

\d "Wed Sep 06" 格式的日期

\e ASCII 转义字符(也可以键入 \033)

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

\H 主机的全称(如 "")

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

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

\n 换行符

\r 回车符

\s shell 的名称(如 "bash")

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

\T 12 小时制时间(如 "11:01:01")

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

\u 用户名

\v bash 的版本(如 )

\V Bash 版本(包括补丁级别) ?/td>;

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

\W 当前工作目录的“基名 (basename)”(如 "drobbins")

\! 当前命令在历史缓冲区中的位置

\# 命令编号(只要您键入内容,它就会在每次提示时累加)

\$ 如果您不是超级用户 (root),则插入一个 "$";如果您是超级用户,则显示一个 "#"

\xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 "\007")表示的 ASCII 字符

\\ 反斜杠

\[ 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前。它使 bash 能够正确计算自动换行。

\] 这个序列应该出现在非打印字符序列之后。

颜色是通过在 PS1 中添加专用序列来选择的 -- 基本上是夹在 "\e["(转义开方括号)和 "m"

之间数字值。如果指定一个以上的数字代码,则用分号将它们分开。

下面是一个颜色代码示例:

"\e[0m"

如果将数字代码指定为零,则它就会通知终端将前景、背景和加粗设置重置为它们的默认值。您可能会在提示行结束时使用这个代码,以使您键入的文字成为非彩色

的。现在,让我们看一下这些颜色代码。请注意下面的抓屏结果:

颜色表

前景 背景颜色

---------------------------------------

3040黑色

3141紅色

3242綠色

3343黃色

3444藍色

3545紫紅色

3646青藍色

3747白色

代码意义

-------------------------

0OFF

1高亮显示

4underline

5闪烁

7反白显示

8不可见

要使用这个表,首先请查找您要使用的颜色,然后查找对应的前景编号 (30-37) 和背景编号

(40-47)。例如,如果您喜欢黑底绿字,则可将编号分别设为 32 和 40。然后打开您的提示行定义并在其中添加适当的颜色代码。

下面的定义:export PS1="\w> " 变为: export

PS1="\e[32;40m\w> "

到现在为止,提示行尽管已经很不错了,但仍不太完美。在 bash 显示出工作目录以后,我们需要使用 "\e[0m"

序列将颜色重新设置为正常值。

export PS1="\e[32;40m\w> \e[0m"

3.2)tcsh/csh的设置。

我们可以使用的标记列表有:

! 跟%h一样

%B 开始粗体模式

%b 结束粗体

%c 当前工作目录名称的最后部分, 相当于basename $cwd 或者 ${cwd:tail} ${cwd:t}

%c2, %c3等等 最后2,3(等等)部分

%C 与%c类似,但是使用长形式

%d 本周的当天

%D 今天时当月中的第几天

%h 历史编号

%l shell的当前控制终端

%U 开始下划线

%u 结束下划线

%/ 完整目录名

%~ 短格式目录

%m 机器名

%n 登录名

%h 历史编号

%P %p %t %T 时间的不同形式。...

4.注意,

1. bash设置变量直接写 x="..."这样,但是tcsh要有set。 %{ %}就相当于bash下的\[

\]

2./etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的,但/etc/profile

文件一旦修改错误,会导致系统启动错误,所以最好在/etc/profile.d中修改:

比如上述内容可以分别建立/etc/profile.d/ 和/etc/profile.d/定义所有用户的PS1.

修改用户根目录下.bashrc/.cshrc文件进行环境变量的编辑,只对当前用户有用

5.关于环境变量定义文件的载入先后顺序:

在登录Linux时要执行文件的过程如下:

在刚登录Linux时,首先启动 /etc/profile

文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或

~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果

~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在

~/.bash_profile文件中一般会有下面的代码:

if [ -f ~/.bashrc ] ; then

. ./bashrc

fi

~/.bashrc中,一般还会有以下代码:

if [ -f /etc/bashrc ] ; then

. /bashrc

fi

所以,~/.bashrc会调用

/etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。

执行顺序为:/etc/profile ->

(~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc ->

/etc/bashrc -> ~/.bash_logout

关于各个文件的作用域,在网上找到了以下说明:

(1)/etc/profile:

此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件

中搜集shell的设置。

(2)/etc/bashrc: 为每一个运行bash

shell的用户执行此文件.当bash shell被打开时,该文件被读取。

(3)~/.bash_profile:

每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户

的.bashrc文件。

(4)~/.bashrc: 该文件包含专用于你的bash

shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(5)~/.bash_logout:当每次退出系统(退出bash

shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,

而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

(6)~/.bash_profile 是交互式、login 方式进入 bash

运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

/etc/profile和/etc/environment等

各种环境变量设置文件的用处

先将export LANG=zh_CN加入/etc/profile

,退出系统重新登录,登录提示显示英文。

将/etc/profile 中的export

LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。

用户环境建立的过程中总是先执行/etc/profile然后在读取/etc/environment。为什么会有如上所叙的不同呢?

应该是先执行/etc/environment,后执行/etc/profile。

/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。

系统应用程序的执行与用户环境可以是无关的,但与系统环境是相关的,所以当你登录时,你看到的提示信息,象日期、时间信息的显示格式与系统环境的LANG

是相关的,缺省LANG=en_US,如果系统环境LANG=zh_CN,则提示信息是中文的,否则是英文的。

对于用户的SHELL初始化而言是先执行/etc/profile,再读取文件/etc/environment.对整个系统而言是先执行/etc

/environment。这样理解正确吗?

/etc/enviroment --> /etc/profile --> $HOME/.profile

-->$HOME/.env (如果存在)

/etc/profile 是所有用户的环境变量

/etc/enviroment是系统的环境变量

登陆系统时shell读取的顺序应该是

/etc/profile ->/etc/enviroment -->$HOME/.profile -->$HOME/.env

原因应该是jtw所说的用户环境和系统环境的区别了

如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment)有不同的值那应该是以用户环境为准了。

(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.

并从/etc/profile.d目录的配置文件中搜集shell的设置。

(2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

(3)~/.bash_profile:

每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户

的.bashrc文件。

(4)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(5) ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承

/etc/profile中的变量,他们是"父子"关系。

(6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入

bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。