Linux命令提示行设置--SP1

本文详细介绍如何在Linux系统中自定义命令行提示符,包括添加颜色、动态更新X终端标题栏等高级功能。

Linux命令提示行设置--SP1

2010/8/28 2:02:30
我的命令行提示符风格:

PS1='[/[/033[01;32m/]/h:/[/033[01;34m/]/W/[/033[00m/]]/$'

简单解释一下:
将里面有用的信息题出来就是:
PS1='[/h:/W]/$'
/h显示当前主机名称
/W显示当前目录
/$提示符
[]为了美观

显示结果如下:
[taoyue:~]$

其他部分就是添加颜色
/[/033[01;32m/]:主机名称显示绿色
/[/033[01;34m/]:当前目录显示蓝色
/[/033[00m/]:将后面的颜色设为默认

====================================

下面是我找到的最为全面的提示符说明:

如果您很容易使 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

这样,无论您开启一个登录 shell 还是一个非登录 shell,都会获得同样的提示行。
好了,您已掌握了提示行魔术。现在尽情享受一下,制作一个漂亮的彩色提示行吧

作者:
Daniel Robbins
Gentoo Technologies 公司总载兼首席执行官

====================================
令一篇关于PS1的说明

bash 有两级用户提示符。第一级是你经常看到的 bash 在等待命令输入
时的提示符。缺省的一级提示符是字符$(如果是超级用户,则是#号)。
你可以通过改变bash 的PS1变量的值来改变你的缺省提示符,例如:
PS1="Please enter a command"
把bash shell 的提示符该为指定的字符串。

当bash 期待输入更多的信息以完成命令时显示第二级提示符。缺省的第
二级提示符是 >。 果你要改变第二级提示符,可以通过设置PS2变量的
值来实现:
PS2="I need more information"
另外你还可以用特殊的字符来定义你的提示符,下面的列表列出了最常
用的特殊字符。
提示符特殊字符代码
字符 含义
/! 显示该命令的历史记录编号。
/# 显示当前命令的命令编号。

/$ 显示$符作为提示符,如果用户是root的话,则显示#号。
// 显示反斜杠。

/d 显示当前日期。

/h 显示主机名。

/n 打印新行。
/nnn 显示nnn的八进制值。

/s 显示当前运行的shell的名字。
/t 显示当前时间。
/u 显示当前用户的用户名。
/W 显示当前工作目录的名字。
/w 显示当前工作目录的路径。

这些特殊字符能组合成很多种有用的提示符方案(也可以组合为很奇异
的方案),例如把 PS1 设为:
PS1="/t"
这导致提示符显示当前的时间,就象下面的显示一样(提示符后面将不
会有空格):
02:16:15

而下面的设置:
PS1=/t
将导致提示符变成下面的样子:
t
这显示了设置中引号的重要性,下面的提示符串:
PS1="/t// "
会使提示符看起来象这个样子:
02:16:30/
这种情况下,提示符后面会有一个空格,因为引号里有一个空格。
<think>嗯,用户想在Kylin Linux Desktop V10 SP1上安装Grid++报表工具。这个需求挺具体的,可能是个开发人员或者财务相关工作者需要这个报表工具来处理数据。 用户提到的Kylin Linux是国内自主研发的操作系统,属于NeoKylin系列。从引用内容看,Grid++官方支持列表里确实有NeoKylin Linux Advanced Server 6/7,但桌面版V10 SP1没有明确列出。不过既然同属NeoKylin体系,应该可以尝试兼容安装。 用户可能已经尝试过直接安装但失败了,所以才会来寻求帮助。ta应该需要具体的操作步骤,而不是泛泛而谈的解决方案。考虑到Grid++是Windows原生软件,在Linux上安装确实需要些技巧。 我注意到几个关键点:首先需要确认系统架构,麒麟V10 SP1桌面版应该是x86_64;其次要准备Wine环境,这是运Windows程序的关键;最后还要处理可能的依赖问题。用户可能不太熟悉Linux下的Wine配置,所以步骤要写得详细些。 特别要注意的是,Grid++安装包可能需要特殊的Wine配置才能正常运。有些用户反馈直接安装会报错,需要手动注册DLL文件。这个细节必须包含在方案里,否则用户可能卡在这一步。 测试环节也很重要,要提醒用户创建测试报表验证功能是否完整。毕竟安装成功不等于能用,特别是打印和导出功能容易出问题。 如果Wine方案不通,用户可能需要考虑虚拟机方案。虽然性能差些,但兼容性更好。这个作为备选方案也要提一下,让用户有选择余地。 最后要强调官方支持有限的问题,避免用户对Linux下的使用体验有过高期待。毕竟这类专业软件在非原生环境运,多少会有些功能限制。</think>好的,在 Kylin Linux Desktop V10 SP1 (银河麒麟桌面操作系统 V10 SP1) 上安装 Grid++Report (锐浪报表),由于它主要是为 Windows 设计的,需要通过兼容层来运。以下是详细的安装步骤: **核心思路:使用 Wine 兼容层** 1. **检查系统架构 (可选但推荐):** * 打开终端。 * 输入命令: `uname -m` * 确认输出是 `x86_64` (64位系统)。麒麟 V10 SP1 桌面版主流是 x86_64。如果显示 `aarch64` 或 `arm64`,则是 ARM 架构,Wine 支持可能更复杂或有限。 2. **更新系统:** * 在终端中运: ```bash sudo apt update sudo apt upgrade ``` * 确保系统是最新的,以获得最新的软件包和依赖库。 3. **安装 Wine:** * Kylin Linux Desktop V10 SP1 基于 Ubuntu/Debian,使用 `apt` 包管理器。 * 在终端中运: ```bash sudo apt install wine ``` * 系统会提示你输入用户密码(输入时不会显示星号,正常输入后按回车)。 * 安装过程会询问是否继续,输入 `Y` 并按回车。 * 等待安装完成。这会安装 Wine 的核心组件。 4. **安装 Winetricks (推荐):** * Winetricks 是一个辅助脚本,用于安装常见的 Windows DLL 库和运时组件(如 .NET Framework, VC++运库等),对于确保许多 Windows 程序在 Wine 下正常运至关重要。 * 在终端中运: ```bash sudo apt install winetricks ``` 5. **配置 Wine 环境 (使用 `winecfg`):** * 在终端中运: ```bash winecfg ``` * 这会启动 Wine 配置工具。首次运会创建默认的 Wine 前缀(`~/.wine`)并可能提示安装 `wine-mono`(.NET 的兼容实现)和 `wine-gecko`(用于 HTML 渲染)。**建议安装这两个组件**,因为报表软件通常依赖它们。 * 在 `Applications` 选项卡,将 `Windows Version` 设置为 **Windows 10** 或 **Windows 7**(尝试哪个更稳定)。 * 在 `Drives` 选项卡,确保你的安装文件所在的分区(通常是 Z:盘映射到 `/`)和需要访问数据的分区(如 D:盘)已正确配置。 * 点击 `OK` 保存设置。 6. **获取 Grid++Report 安装包:** * 从 Grid++Report 官方网站下载适用于 Windows 的安装程序(通常是 `.exe` 文件,如 `Grid++Report6Setup.exe`)。 * 记住下载文件的保存位置(例如 `~/Downloads/`)。 7. **使用 Wine 运安装程序:** * 在终端中,导航到包含安装程序的目录。例如,如果安装包在 `~/Downloads`: ```bash cd ~/Downloads ``` * 使用 `wine` 命令执安装程序: ```bash wine ./Grid++Report6Setup.exe # 替换为你的实际安装文件名 ``` * Windows 安装向导将启动。按照提示进安装,就像在 Windows 系统上一样操作(选择安装路径、组件等)。**强烈建议接受默认安装路径(通常是 `C:\Program Files (x86)\GridSoft\Grid++Report 6.0` 或类似路径)**,避免路径复杂性带来的兼容性问题。 * 等待安装完成。 8. **安装必要的 Windows 组件 (使用 Winetricks - 关键步骤):** * Grid++Report 设计器或运时可能依赖特定的 Windows DLL,特别是处理报表导出(如 PDF、Excel)或打印时。 * 在终端中运: ```bash winetricks ``` * 在 Winetricks 主界面: * 选择 **Select the default wineprefix** -> **OK**。 * 选择 **Install a Windows DLL or component** -> **OK**。 * 在弹出的组件列表中,**勾选**以下通常需要的组件: * `dotnet48` (或 `dotnet461`, `dotnet472` - 取决于 Grid++Report 版本要求,查看其官方文档。如果安装包自带 .NET 安装程序,可能不需要额外安装,但 Winetricks 的版本有时兼容性更好。**dotnet48 是较新较全的选择**) * `vcrun2013` (Visual C++ 2013 运库) * `vcrun2015` (Visual C++ 2015-2019 运库) - 较新的 Grid++Report 版本可能需要。 * `riched20`, `riched30` (富文本控件,报表设计器界面可能需要) * `mdac28` (Microsoft Data Access Components) * `jet40` (Microsoft Jet Database Engine 4.0 - 如果报表访问 Access 数据库可能需要) * 点击 **OK**。Winetricks 将开始下载(需要网络连接)并安装这些组件到你的 Wine 环境中。**这个过程可能需要较长时间(尤其是下载 .NET),请耐心等待**。过程中可能会有提示,通常按默认选择即可。 9. **运 Grid++Report:** * 安装完成后,通常会在你的 Linux 应用程序菜单中创建快捷方式(在 `Wine` -> `Programs` -> `GridSoft` -> `Grid++Report 6.0` 下查找 `Grid++Report 设计器` 或类似名称)。 * 或者,在终端中导航到安装目录(在 Wine 的 `C:` 盘下),例如: ```bash cd ~/.wine/drive_c/Program\ Files\ \(x86\)/GridSoft/Grid++Report\ 6.0/ ``` (注意空格和括号需要转义或用引号包裹) * 然后运主程序: ```bash wine ./Grid++Report.exe # 替换为实际的设计器或查看器可执文件名 ``` 10. **测试与排错:** * 启动 Grid++Report 设计器,尝试创建一个简单的报表,预览、打印或导出(PDF, Excel 等)。这是验证安装是否成功的关键。 * **常见问题与解决:** * **无法启动/报错:** 检查是否遗漏了必要的 Winetricks 组件。尝试在 `winecfg` 中切换 Windows 版本(如 Win7 和 Win10)。查看终端输出的错误信息,搜索 Wine AppDB 或相关论坛(如 WineHQ)。 * **打印问题:** 确保 Wine 能识别你的打印机(在 `winecfg` -> `Drives` -> `Autodetect` 或手动添加映射)。可能需要安装额外的打印机驱动(在 Winetricks 中搜索 `printer` 相关组件)。 * **导出问题 (如 PDF/Excel):** 这通常是最容易出问题的环节。确保安装了正确的 .NET 和 VC++ 运库 (`dotnet48`, `vcrun2013`, `vcrun2015`)。有时需要特定的旧版本 DLL,可通过 Winetricks 安装(如 `gdiplus`)或手动复制到安装目录。 * **中文显示乱码/方块:** 在 `winecfg` -> `Graphics` 选项卡,勾选 **Emulate a virtual desktop** 并设置一个合适的分辨率(如 1920x1080)。在 `Libraries` 选项卡,为 `gdi32`, `gdiplus` 等设置 `Native (Windows)`。安装中文字体(如 `winetricks corefonts cjkfonts`)。 * **重要资源:** Wine 应用数据库 (AppDB) 是查找特定软件在 Wine 下兼容性信息的宝库: [https://appdb.winehq.org/](https://appdb.winehq.org/) 。搜索 “Grid++Report” 查看其他用户的安装经验和评级。 **备选方案:虚拟机** 如果通过 Wine 安装遇到难以解决的兼容性问题(特别是对复杂报表或特定功能),或者对性能要求较高,另一个更可靠但资源消耗更大的方案是: 1. **安装虚拟机软件:** 如 VirtualBox (`sudo apt install virtualbox`) 或 VMware Workstation Player (需从官网下载安装包)。 2. **创建虚拟机:** 分配足够的 CPU、内存和磁盘空间。 3. **安装 Windows 操作系统:** 在虚拟机内安装一个 Windows 副本(如 Windows 10)。 4. **在虚拟机 Windows 中安装 Grid++Report:** 这是最原生的方式,兼容性和性能最佳。 **总结:** 在 Kylin Linux Desktop V10 SP1 上安装 Grid++Report 的核心是 **使用 Wine + Winetricks**。重点在于**正确安装所需的 .NET Framework 和 VC++ 运库**。虽然步骤较多,但按照上述流程操作,成功运的可能性很高。请务必仔细进 **步骤 8 (Winetricks 安装组件)** 和 **步骤 10 (测试与排错)**。如果 Wine 方案无法满足需求,虚拟机是最稳妥的替代方案。 [^1]: 引用[1]中提到的支持列表包含了“NeoKylin Linux Advanced Server 6”和“NeoKylin Linux Advanced Server 7”,这与 Kylin Linux Desktop V10 SP1 (银河麒麟桌面操作系统 V10 SP1) 属于同一产品家族(NeoKylin/银河麒麟),但注意一个是**服务器版**(Advanced Server),一个是**桌面版**(Desktop)。这表明锐浪报表(Grid++)官方对麒麟操作系统是有适配经验的,为我们在桌面版上尝试通过 Wine 安装提供了背景支持。不过,桌面版和服务器版的环境(如默认安装的库、图形环境)存在差异,桌面版需要额外关注图形界面和打印相关的兼容性配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值