当我将以下代码复制并粘贴到 bash 中时,每一行都以>符号;如:
cat >hello.c <<"EOF"
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
EOF
在bash中:
cat >hello.c <<"EOF"
> #include <stdio.h>
>
> int main()
> {
> printf("Hello World\n");
> return 0;
> }
> EOF
我想将光标移到前几行来编辑这些行
是否可以?
编辑:我已经尝试过 bash 快捷方式,但都不起作用。在行中使用 > 运算符* 时会有所不同(我不知道它在 bash 术语中的行话,希望有人告诉我)
EDIT2:我发现了>,它被称为文件重定向操作符
因此,我重申我的问题;如何将光标移到文件重定向操作符之外?
答案1
应该很容易
如果您按下up arrow键盘上的 ,您应该会看到整个多行命令。通过按下 ,back arrow您应该能够遍历命令,甚至遍历到前面的行。
唯一的区别是,当你使用bash 历史不会>
出现。在我的情况下,TorrienAMD-->
如上例所示,缺少了。
修改 Bash 提示符
Bash 使用变量PS1
和PS2
来设置提示。
执行echo $PS1 && echo $PS2
即可了解您的终端的这些变量的值。
我的输出:
\[\e[0;32m\]\u\[\e[1;33m\]@\[\e[0;36m\]\h\[\e[0;33m\]\w\$\[\e[0;0m\]
\h-->
要理解这一点的含义,请阅读以下列表本教程。
- \a :ASCII 铃声字符(07)
- \d :采用“星期几月份日期”格式的日期(例如“5 月 26 日星期二”)
- \D{format} :格式传递给 strftime(3),结果插入提示字符串;空格式导致特定于语言环境的时间表示。括号是必需的
- \e :ASCII 转义字符(033)
- \h :直到第一个“。”的主机名
- \H :主机名
- \j :shell 当前管理的作业数
- \l :shell 终端设备名称的基本名称
- \n :换行符
- \r :回车
- \s :shell 的名称,$0 的基本名称(最后一个斜杠后面的部分)
- \t :24 小时 HH:MM:SS 格式的当前时间
- \T :12 小时制 HH:MM:SS 格式的当前时间
- \@ :12 小时 am/pm 格式的当前时间
- \A :24 小时 HH:MM 格式的当前时间
- \u :当前用户的用户名
- \v :bash 的版本(例如 2.00)
- \V :bash 的发布版本 + 补丁级别(例如 2.00.0)
- \w :当前工作目录,其中 $HOME 用波浪符号缩写
- \W :当前工作目录的基本名称,其中 $HOME 以波浪符号缩写
- \! :该命令的历史记录编号
- # :该命令的命令编号
- \$ :如果有效 UID 为 0,则为 #,否则为 $
- \nnn :八进制数 nnn 对应的字符
- \\ :反斜杠
- \[ :开始一个非打印字符序列,可用于将终端控制序列嵌入到提示符中
- \] :结束非打印字符序列
一次改变
输入命令PS2=''
仅更改当前终端的值。此更改不会是永久性的。
设置自定义 PS1 和 PS2 值
当您打开终端时,系统~/.bashrc
会读取文件进行配置,您可以在文件末尾附加以下内容:
export PS2=''
这将为您的 PS2 变量设置一个自定义值,并且您应该不会再>
在命令的每个额外行中看到该字符。使用命令reload
或关闭并重新打开终端以查看更改。
更好的定制
然而,我的配置更复杂。将以下代码添加到~/.bashrc
:
#file for personal modifications to the command line prompt (PSX) if [ -f ~/.bash_PS ]; then . ~/.bash_PS fi
这段代码的意思是,如果.bash_PS
在你的主目录中找到一个名为的文件~/
,它将被读取并执行。
.bash_PS
现在在你的主目录中创建一个名为的文件~/
。在里面添加代码:
export PS2=''
使用命令reload
或关闭并重新打开终端来查看更改。
.bash_PS
通过这种方法,您可以根据需要使用文件设置 PS1、PS2、PS3 或 PS4 的自定义版本。我有一个包含颜色代码的自定义 PS1 和 PS2。
无论使用哪种方法,您都应该将 PS2 设置为空字符串对于您的用户并且>
不应该再出现对于您的用户。清空或删除.bash_PS
以返回默认值。.bash_rc
如果您使用旧的
对于所有用户
在以“PS1='someconfigured string'”开头的行下PS2=''
向文件添加行。/etc/bash.bashrc