如何按照以下方式制作别名:
命令行 bash bashrc 提示 ps1
alias=PS1="\d \h $ "
这显然是行不通的。从文件中进行分配有什么技巧吗?.bash_aliases
我也试过:
alias ps='PS1 $(\d \h $)'
我将终端提示设置为:
$ echo $PS1
${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]:\n$
它显示为:
me@alpha:/:
怎么能暂时将我的用户名更改为任意名称?
比如改成spirit@alpah:/:
我浏览了 Tilix 的网站,在网站上的一张图片中发现了一个非常漂亮的 shell 提示。我想知道这是否只是为了展示(噱头)还是真的有可能有这样的提示......
这个问题与其他问题不同,因为它没有提到任何软件。这不是一个正常的提示配置。充其量只是尝试获得软件推荐。
如何安装和使用电力线插件?或者我在哪里可以找到 $PS1 变量的完整参考?不涵盖此问题的范围,因为我不知道powerline
存在诸如此类的软件,但确实知道对 PS1 的简单修改不会提供所需的输出,换句话说,理解 PS1 参考并不能解决上述问题
我从问题日期了解到 - HH:MM:SS (with AM/PM) 12 Hour Timestamp for Bash Prompt - Unix & Linux Stack Exchange并将我的提示微调为:
export PS1='\D{%r}:\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]:\n$ '
08:52:31 PM:me@host:~:
$
时间格式不是很舒服,我想要的结果是
08:52PM me@host~:
我怎么能得到这样的 HH:MM(AM/PM) 格式\
最终结果
export PS1='\D{%I:%M%p %d/%m %A}:\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]:\n$ '
10:45PM 18/03 Monday:me@host:~:
$ ls '$tty'
~/.bash_aliases
我在哪里设置 PS1,并且包含在~/.bashrc
(默认设置)
# color PS1
PS1="\[\033[01;90m\]\D{%H:%M} \[\033[01;33m\]Ubuntu\[\033[00m\] \[\033[01;34m\]\w\[\033[01;35m\]$(__git_ps1) \[\033[01;36m\]\$\[\033[00m\] "
但是当我启动终端时出现错误__git_ps1: command not found
但是当我在 git 文件夹中运行功能手册$ __git_ps1
时,它会回显当前分支。
另外当我手动运行
$ PS1="\[\033[01;90m\]\D{%H:%M} \[\033[01;33m\]Ubuntu\[\033[00m\] \[\033[01;34m\]\w\[\033[01;35m\]$(__git_ps1) \[\033[01;36m\]\$\[\033[00m\] "
PS1 得到更新并且__git_ps1
部分被添加。
我自己没有安装。我只安装了git。
sudo apt install -y git
(git 版本 2.19.1)
__git_ps1
在( github/usr/lib/git-core/git-sh-prompt
上的文件)中定义
grep __git_ps1 ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2>/dev/null
只.bash_aliases
显示文件。
完整的 git-sh-promt grep 只返回二进制匹配
sudo grep 'git-sh-prompt' -nr /
这里有什么问题?
当我遇到一个错误时,我正在为 Ubuntu 安装更新,这让我可以“启动一个新的 shell 来检查情况”。这样做将我置于同一窗口中目录结构的顶部,但附加#
到末尾。
代表什么#
?
这种改变是如何从命令行实现的?
我使用powerline-shell,我的提示看起来像:
如何在提示中去掉我的名字和主机名?
我试图在.bashrc
文件中搜索PS1
变量:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u:\w\$ '
fi
我必须编辑哪个目标?
请参阅下面的编辑,这不完全是Shell 提示自定义和 cmd 行为的重复
我reverse-search
在 CLI 中的功能已损坏,我不知道如何修复它...
当我按 ctrl+r 并搜索我之前执行的命令时,找到它然后按右箭头键使用它,输出被破坏。这是一个例子:
# I reverse-searched the word "test" then pressed right arrow
yoshiji@x1carbon:~/path/to/git/folder (master) $ch)`test': rake test
# ^^^^^^^^^^ weird output
# ^ cursor right there
它还将我的光标“移动”到不同的位置。如果我按下回车键,就会执行正确的命令(rake test
在这种情况下),因此这意味着显示的文本与实际执行的文本不同。
我知道这很可能与我PS1
在 my 中的导出有关~/.bashrc
,所以这里是这个文件的最后几行:
# Git branch in prompt.
git_branch() {
branch=$(__git_ps1 2> /dev/null)
if [ "$branch" = " (master)" ]; then
echo -e "\033[33m${branch}\033[00m" # yellow
elif [ "$branch" = "" ]; then
echo -e "\033[90m (no git)\033[00m" # red
else
echo -e "\033[32m${branch}\033[00m" # green
fi
}
PS1='\u@\h:\w$(git_branch) \$ '
这是我写的东西,以橙色(如果master
分支)或绿色(或no git
灰色)显示 git 分支。
你们对导致这种奇怪行为的原因有任何想法吗?
编辑:这与我用来从函数返回具有 git 分支的颜色+名称的字符串的方式可能重复的问题不同。Using不会转义字符和(在您的 CLI 中自己尝试:)。echo -e "some string"
git_branch()
echo -e
\[
\]
echo -e "\[\033[33m\]test"
理想情况下,我想根据分支的存在和名称保留这些条件颜色(如果没有分支,则为灰色,如果主则为橙色,否则为绿色)。
我想更改 PS1 在 bash 中显示的用户名中特定字母的颜色。
例如:如果我\u
是rahul
,我希望字母h
为蓝色,其余为白色。
我确实知道这\u
指的是用户名,并通过添加如下标签来为整个“实体”添加颜色:[\033[38;5;15m\]
.
如果可能的话,我可以请知道如何做同样的事情。
由于我在没有插入笔记本电脑的情况下工作太久时遇到问题,我正在尝试编写一个新的 PS1,它使用 upower 显示我当前的电池状态。我快到了,一切正常,除了颜色和包装的小(烦人)错误(或更准确地说,缺少,即当窗口结束时,字符打印在同一行的开头/没有新行)。起初,我以为我犯了一个错误(就像迄今为止我在该主题上看到的所有以前的帖子一样)并且忘记了转义不可打印的字符(使用\[ \])但我看不到在哪里......如果没有,在 PS1 中重叠别名和功能是否存在任何已知问题(或者有人对我想做的事情有更好的想法?)?
这是我的 PS1(“如果有颜色的术语”部分):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\](`battPer`)-\A:\[\033[01;34m\]\w\[\033[00m\]\$ '
我的 .bash_aliases 中的 batPer 函数(和别名)(评论如下):
batPer()
{
percent=`upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep -E percentage | cut -d : -f 2 | cut -d " " -f 11 | cut -d % -f 1`
plugged=`upower -i /org/freedesktop/UPower/devices/line_power_ACAD | grep -E "online: " | cut -d y -f 2`
if [ "$plugged" = 'es' ] ; then
echo -e "\[\e[0;92m\]$percent%\[\e[0m\]"
else
if [ "$percent" -le 10 ] ; then
echo -e "\[\e[0;91m\]$percent%"
else
echo -e "\[\e[0m\]$percent%"
fi
fi
}
alias battPer='batPer'
(我采用 line_power_ACAD 的值,因为一旦我(拔下)我的笔记本电脑,它的状态就会改变 - 我从“yes”中取“y”作为 -f 进行剪切,因此测试“es”,因为。 .. eeerrr ...我很懒;)-然后我测试:插入->绿色值,未插入:<10%所有红色字符,> 10%重置颜色/白色。我在最后做别名是因为我在尝试将函数本身放入 PS1 时遇到问题)。
感谢大家将我从漫长的彩色噩梦中拯救出来,如果我的混乱中出现了一个巨大的错误,我很抱歉,我一直在看这些台词太久了......
\[\e[0;92m\]$percent%\[\e[0m\]
更新:对不起,我忘记在最后一个 mod 之后获取 .bashrc 了,当输出是 :
并且当我不放转义字符时,我更加迷失了,这很好(绿色百分比) - 仍然没有包装...我在某处逃离逃生角色?!?