如何将光标移动到 bash 中以 > 开头的前一行?

如何将光标移动到 bash 中以 > 开头的前一行?

当我将以下代码复制并粘贴到 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 使用变量PS1PS2来设置提示。

执行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

相关内容