- 浏览: 482478 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (201)
- j2ee (43)
- oracle (9)
- mysql (7)
- db2 (1)
- j2se (3)
- spring (1)
- hibernate (3)
- struts (0)
- Berkeley DB (0)
- linux (60)
- Apache2+PHP+MYSQL (2)
- solr (15)
- svn (1)
- IntelliJ Idea (1)
- eclipse,myeclipse (4)
- ant (2)
- vim (8)
- IT生活 (4)
- 测试 (6)
- lucene (4)
- shell (1)
- nutch (18)
- thread (1)
- hadoop (5)
- mapreduce (0)
- Python (4)
- 硬件 (1)
- database (1)
- maven (1)
- 正则表达 (0)
- 互联网 (1)
最新评论
-
youngcoder:
good job
HTTP协议头部与Keep-Alive模式详解 -
javazdq:
受教了 解释的不错。
lucene创建索引高级特性和索引创建参数优化 -
josico:
有几个问题想问下楼主1. LinkedBlockingQueu ...
生产者-消费者-BlockingQueue -
annybz:
有没有关于 BlockingQueue和ConcurrentL ...
生产者-消费者-BlockingQueue -
uniquejava:
多谢,记录的很真实。
DB2 学习记录
bash提示符的配置:
如果您很容易使 shell 提示行变得色彩绚烂斓且带有更多信息,为什么还要坚持用单调的标准 shell 提示行呢?在这篇技巧中,Daniel Robbins 将说明如何获得符合您的意愿的 shell 提示行,并会说明如何动态更新 X 终端的标题栏。
作为 Linux/UNIX 人,我们有很长的时间是在 shell 中工作,并且在许多情况下,下面这一行就是始终盯着我们的那个提示行:
bash-2.04$
如果您恰巧是超级用户 (root),您就有权使用下面这个美丽的标示“身份”的提示行版本:
bash-2.04#
这
些提示行并不是十分漂亮。这也就难怪几种 Linux
版本对默认提示行进行了升级,在其中增加了颜色和更多的信息。但是,即便您恰好有一个本身带有很好的彩色提示行的新式版本,它也不可能是完美无缺的。您或
许希望在提示行中增加或更改几种颜色,或者增加(或删除)一些信息。从头开始设计属于您自己的彩色的、经过装饰的提示行并不难。
提示行基础
在 bash 下,可以通过更改 PS1 环境变量的值来设置提示行,如下所示:
$ export PS1="> "
>
更改会立即生效,通过将 "export" 定义放在您的 ~/.bashrc 文件中可将这种更改固定下来。只要您愿意,PS1 可以包含任意数量的纯文本:
$ export PS1="This is my super prompt > "
This is my super prompt >
尽管这很有趣,但在提示行中包含大量静态文本并不是特别有用。大多数定制的提示行包含诸如用户名、工作目录或主机名之类的信息。这些花絮信息可以帮助您在 shell 世界中遨游。例如,下面的提示行将显示您的用户名和主机名:
$ export PS1="\u@\H > "
drobbins@freebox >
这个提示行对于那些以多个不同名称的帐户登录多台机器的人尤为有用,因为它可以提醒您:您目前在哪台机器上操作,拥有什么权限。
在
上面的示例中,我们使用了专用的用反斜杠转义的字符序列,藉此通知 bash 将用户名和主机名插入提示行中,当这些转义字符序列出现在 PS1
变量中时,bash 就会用特定的值替换它们。我们使用了序列 "\u"(表示用户名)和 "\H"(表示主机名的第一部分)。下面是 bash
可识别的全部专用序列的完整列表(您可以在 bash man page 的 "PROMPTING" 部分找到这个列表):
序列 说明
\a ASCII 响铃字符(也可以键入 \007)
\d "Wed Sep 06" 格式的日期
\e ASCII 转义字符(也可以键入 \033)
\h 主机名的第一部分(如 "mybox")
\H 主机的全称(如 "mybox.mydomain.com")
\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 的版本(如 2.04)
\V Bash 版本(包括补丁级别) ?/td>
\w 当前工作目录(如 "/home/drobbins")
\W 当前工作目录的“基名 (basename)”(如 "drobbins")
\! 当前命令在历史缓冲区中的位置
\# 命令编号(只要您键入内容,它就会在每次提示时累加)
\$ 如果您不是超级用户 (root),则插入一个 "$";如果您是超级用户,则显示一个 "#"
\xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 "\007")表示的 ASCII 字符
\\ 反斜杠
\[ 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前。它使 bash 能够正确计算自动换行。
\] 这个序列应该出现在非打印字符序列之后。
这样,您已经知道了 bash 中用反斜杠转义的全部专用序列。请稍微演练一下这些序列,以对它们的工作方式获得一些感性认识。在您做了一些测试之后,下面开始添加颜色。
彩色化
添
加颜色相当容易;第一步是设计不带颜色的提示行。然后,我们所要做的只是添加终端(而不是
bash)可识别的专用转义序列,以使它以彩色显示文本的某些部分。标准 Linux 终端和 X
终端允许您设置前景(文字)颜色和背景颜色,如果需要,还可以启用 "bold" 字符。有八种颜色可供我们选择。
颜色是通过在 PS1 中添加专用序列来选择的 -- 基本上是夹在 "\e["(转义开方括号)和 "m" 之间数字值。如果指定一个以上的数字代码,则用分号将它们分开。下面是一个颜色代码示例:
"\e[0m"
如果将数字代码指定为零,则它就会通知终端将前景、背景和加粗设置重置为它们的默认值。您可能会在在提示行结束时使用这个代码,以使您键入的文字成为非彩色的。现在,让我们看一下这些颜色代码。请注意下面的抓屏结果:
颜色表
要使用这个表,首先请查找您要使用的颜色,然后查找对应的前景编号 (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"
这
个定义将显示一个漂亮的绿色提示行,但我们仍需要做一些扫尾工作。我们不需要包括 "40"
这个背景颜色设置,因为它将背景设置为黑色,而黑色是默认颜色。此外,绿色还很暗;我们通过添加一个 "1"
颜色代码来修正这个问题,这将启用更亮的加粗文字。除了这个修改之外,我们还需要将全部非打印字符用专用的 bash 转义序列 "\[" 和 "\]"
括起来。这两个序列通知
bash,被括起来的字符不占用行上的任何空间,这样就使自动换行能够继续正常工作。没有这两个转义序列,尽管您有了一个非常漂亮的提示行,但是如果您键
入的命令恰好到达终端的最右端,就会造成显示混乱。下面是我们最终的提示行:
export PS1="\[\e[32;1m\]\w> \[\e[0m\]"
别担心在同一个提示行中使用几种颜色,就像下面这样:
export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\H> \[\e[0m\]"
Xterm 中的乐趣
我已说明了如何在提示行中添加信息和颜色,但您还可以更进一步。您可以通过在提示行中添加专用代码来使 X 终端(如 rxvt 或 aterm)的标题栏得到动态更新。您所要做的只是将下面的序列添加到您的 PS1 提示行中:
"\e]2;titlebar\a"
只
须用您希望其出现在 xterm 标题栏中的文字替换子串 "titlebar" 即可,现在已经一切就绪了!不必使用静态文字;您可以将 bash
转义序列插入标题栏中。请查看下面这个示例,它将用户名、主机名和当前工作目录显示在标题栏中,并定义了一个简短、明亮的绿色提示行:
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
这
就是我在上面的抓屏结果中所用的那个提示行。我喜欢这个提示行,因为它将全部信息显示在标题栏上,而不是显示在终端上,终端对一行可以显示多少字符有限
制。顺便提一句,确保用 "\[" 和 "\]"
将您的标题栏序列括起来(因为就终端而言,这个序列是非打印序列)。将大量信息放在标题栏中的问题是,如果您使用非图形终端(如系统控制台),则看不到这
些信息。为了解决这个问题,可以在您的 .bashrc 中添加以下几行:
if [ "$TERM" = "linux" ]
then
#we're on the system console or maybe telnetting in
export PS1="\[\e[32;1m\]\u@\H > \[\e[0m\]"
else
#we're not on the console, assume an xterm
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
fi
这个 bash 条件语句将根据当前的终端设置动态设置提示行。为了获得一致性,您一定希望配置您的 ~/.bash_profile,以便它在启动时搜索 (source) 您的 ~/.bashrc。确保您的 ~/.bash_profile 文件中有以下这样一行:
source ~/.bashrc
发表评论
-
ifstat命令行统计网络流量
2012-06-05 15:31 5511关于统计网络流量的问题,我喜欢用命令行方式查看: ... -
CentOS 5: Make Command not Found
2012-05-22 17:50 1395个人博客:http://demi-panda.com ... -
Linux Deepin 安装永中 Office2012 个人版(更新)
2012-05-18 19:41 1522下面讲解如何在 Linux Deepin 上安装并使用永中 O ... -
Piwik 网站分析系统
2012-04-25 15:38 2954个人博客:http://demi-panda.com ... -
C3P0使用出错!
2012-04-18 21:43 2063个人博客:http://demi-panda.com/ ... -
win7、ubuntu11.10双系统,win7重装后,如何找回linux
2012-03-25 18:40 1380个人博客:http://demi-panda.com ... -
stardict 词库安装
2012-03-22 11:32 1484下载词库文件以后直接在目录下执行 tar -xjvf ... -
ubuntu 64位 安装 永中Office
2012-03-21 11:07 0Ubuntu 64位默认是不能安装永中Office的,因为它不 ... -
is not in the sudoers file
2012-02-15 17:23 1083解决方案: 首需要切换到root身份 $su - (注意 ... -
is not in the sudoers file
2011-12-22 14:00 992解决方案: 首需要切换到root身份 $su - (注意 ... -
进程间通信IPC、LPC、RPC
2011-05-25 15:12 2061进程间通 ... -
ubuntu下virtualbox虚拟机XP里使用USB
2011-05-19 09:25 2494环境:ubuntu10.04下安装virualbox,虚拟 ... -
Shell 判断文件类型
2011-05-11 15:45 3699#!/bin/sh ... -
Linux wget 详解
2011-05-07 16:05 4675个人技术博客:http://dem ... -
linux curl命令详解
2011-04-30 15:36 6001个人技术博客:http://demi-panda.com ... -
解决Socket TIME_WAIT造成的服务器无法访问,Apache的KeepAlive和TCP/IP的TIME
2011-04-20 11:19 4569个人技术博客:http://demi-panda.com ... -
Ffmpeg快速命令使用
2011-03-24 15:52 1828Ffmpeg使用语法 ffmpeg [[opt ... -
Linux远程备份工具Rsync使用案例
2011-02-24 10:31 3522个人技术博客:http://dem ... -
linux下的命令行下转换媒体格式工具FFMPEG详解
2011-02-15 17:25 6662在windows下有格式工厂之 ... -
Linux下tar bz gz等压缩包的压缩和解压
2011-02-12 12:58 1422解压 就用得挺熟 ...
相关推荐
其实,我们可以为自己订制个性化的命令行提示符,Linux系统提示符是用系统变量PS1来定义的,只要按规则修改PS1系统变量的值随意修改命令行提示符。 通过命令echo $PS1查看PS1的值,即PS1=[u@h: w ]$ 。修改...
标题 "cygwin 改成 fedora 风格的提示符" 涉及到的是在 Windows 上使用的 Cygwin 环境中,如何调整命令行提示符(prompt)使其显示类似于 Fedora Linux 发行版的样式。Cygwin 是一个在 Windows 平台上模拟 Linux ...
用户可以通过修改 .bashrc 文件来改变环境变量 PATH、别名 alias 和提示符等。 修改 .bashrc 文件 修改 .bashrc 文件可以在用户目录下或 root 目录下进行。用户目录下的 .bashrc 文件只对当前用户生效,而 root ...
### Linux下修改Root密码的方法与步骤 在日常的Linux系统管理过程中,可能会遇到忘记root密码的情况,这无疑会给系统的管理和维护带来不便。本文将详细介绍如何在Linux环境下重置root密码,帮助用户解决这一问题。 ...
linux用户登录以后,命令提示符上一般有形如 [root@hostname /usr/local ] $ 这样的格式,如果要修改命令提示符的显示方式,可以通过修改环境变量PS1来实现。 我自己的配置是: export PS1='[\\u@\\h $PWD]\\$ ' ...
通过这样的提示符,用户可以在命令行界面中一眼看出当前工作目录的状态,例如分支、是否被修改、是否有未提交的更改等。 描述“git-prompt - GIT, SVN和HG模块的bash提示符”简单明了地说明了`git-prompt`是一个...
2. `config.example`: 这是一个配置文件示例,用户可以根据自己的需求进行修改,定制提示符显示的内容和样式。 3. `fonts`: 可能包含一些支持Powerline特殊字符的字体,因为不是所有的系统默认字体都包含这些符号。...
在Linux开发环境中,自定义命令提示符可以极大地提高开发者的工作效率和舒适度。"bash-git-prompt"项目正是一款专为Git用户设计的多功能、炫酷的Bash命令提示符工具。下面将详细介绍这个工具及其功能,以及如何在你...
6. #提示符下输入 reboot 重启。 在一些情况下,可能会出现一些复杂的情况,例如在出现 GRUB 画面时按下“e”键,但是却没有找到正确的挂载点。这时可以使用一些命令来判断出/分区的挂载点,例如: cat /etc/fstab...
从给定的文件信息中,我们可以提取出一系列与Linux命令符相关的知识点,这些知识点涵盖了Linux系统的基本操作、用户管理、文件系统、网络配置以及系统安全等方面。以下是对这些知识点的详细解析: ### 1. 登录...
这个概念在不同的操作系统中有所不同,例如在Windows环境下,命令提示符是32位的命令行程序,名为cmd.exe,它是一个命令解释程序,类似于早期的DOS操作系统。通过在命令提示符中输入特定的命令,用户可以执行各种...
- 要自定义提示符,建议不要直接修改 `/etc/bashrc`,而是在用户的主目录下的 `.bashrc` 文件中添加自定义命令。 #### 四、特殊字符详解 - **常用特殊字符**: - `\u`:当前登录的用户名。 - `\h`:短主机名。 ...
在默认情况下,Linux的提示符可能是类似于`$`或`#`这样的符号,表示用户是否具有管理员权限。例如,普通用户通常看到的是`$`,而root用户或使用sudo时会显示`#`。 为了自定义提示符,我们可以修改PS1和PS2环境变量...
要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:#set,即可在输出中找到关于PS1的定义如下:
前言 众所周知, bash (the B ourne- A gain Sh ell)是目前绝大多数 Linux 发行版使用的默认 shell。本文将会介绍如何通过添加颜色和样式...一般情况下,bash 命令提示符会是以下这样的形式: 在上图这种默认显示形
系统将以单用户模式启动,你将看到一个命令行提示符,通常以`#`号表示。在这个模式下,你可以执行任何需要的管理任务,比如修改root密码。 在命令行中,键入`passwd root`命令,然后按回车。系统会提示你输入新密码...
如果你的系统前面出现“sh-2.05b#”这样的提示符,就说明已经成功启动了 Linux 的单用户模式,有点类似 Windows 的安全模式,就是只启动最基本的系统,网络服务、系统服务等都不启动。 在“sh-2.05b#”后面输入...
我们经常用busybox生成根文件系统,可是根文件系统起来以后命令行提示符只有一个“#”号,没有像linux发行版那样是[user@hostname currentpath] #,那么我们这里就说说如何让我们的根文件系统按这个方式显示。...
Python-PureLine是一个纯Bash实现的Powerline风格的命令行提示符,它为Linux或Unix系统的终端用户提供了一种高效且美观的界面。Powerline是一款流行的设计,它在终端的命令提示符中添加了丰富的符号和颜色,以增强...