首页 > 系统相关 >让linux shell显示命令执行结果

让linux shell显示命令执行结果

时间:2023-09-04 16:55:56浏览次数:46  
标签:shell prompt color 命令 chroot linux 033 PS1 debian

vscode的shell可以用颜色来标记命令执行是否成功
image
如图,蓝色圆点表示成功,红色表示失败。但是默认的shell不可以。通过设置PS1可以实现这个功能。

在.bashrc文件中找到:

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

在之后添加一段:

old_color_prompt=$color_prompt
# BLACK='\[\e[0;30m\]'
RESET_COLOR='\[\033[00m\]'
GREEN='\[\033[0;32m\]'
RED='\[\033[0;31m\]'

PROMPT_COMMAND=smile_prompt

function smile_prompt
{
    last_state=$?

    if [ "$old_color_prompt" = yes ]; then
        if [ "$last_state" -eq "0" ]; then
            #smiley
            PS1=${GREEN}'• '${RESET_COLOR}'${CONDA_PROMPT_MODIFIER}${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
        else
            #frowney
            PS1=${RED}'• '${RESET_COLOR}'${CONDA_PROMPT_MODIFIER}${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
        fi
    else
        PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi

    case "$TERM" in
    xterm*|rxvt*)
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac

}

这样就可以了,同时兼顾了conda添加的前缀。

效果如下:
image

标签:shell,prompt,color,命令,chroot,linux,033,PS1,debian
From: https://www.cnblogs.com/wangbingbing/p/17677534.html

相关文章

  • 常用Dos命令
    常用Dos命令#盘符切换输入对应盘符,例如E:#查看当前目录下所有文件dir#切换目录cd(changedirectory)通过cd命令切换盘符要加参数例如cd/dE:同一盘符下操作,返回上一级cd..,进入下一级cd对应文件名#清理屏幕cls(cleanscreen)#退出终端exit#查看电脑ipipconfig......
  • vi常用命令
                                                                                我最常用的vi命令一、移动:hjkl左下上右 移动o在光标所在行后插入一空行。                 ......
  • 在Linux系统中如何删除用户组?
    Linux是一种开源的操作系统,被广泛应用于个人计算机和服务器中,在Linux系统中,用户组可以方便地管理和授权用户的权限,在实际运用中,我们可能需要删除不再使用的用户组,那么该如何操作呢?以下是详细的内容:删除用户组的方法有很多,可以通过命令行工具或图形界面来完成。一、命......
  • linux kernel mount rootfs失败问题
    linuxkernel在初始化末尾会mountrootfs。有时会mount失败,出现类似下面的log:[0.623289]/dev/root:Can'topenblockdev[0.624045]VFS:Cannotopenrootdevice""orunknown-block(0,0):error-6[0.625312]Pleaseappendacorrect"root="bo......
  • docker常用命令
    1.帮助启动类命令1.启动systemctlstartdocker 2.停止systemctlstopdocker 3.重启systemctlrestartdocker 4.查看状态systemctlstatusdocker 5.开机启动(linux开机自动启动docker)systemctlenabledocker 6.查看docker概要信息dockerinfo......
  • 分享实用工具源码--实现Windows IDE中查看Linux下编译信息
    作者:fbysss关键字:实用工具源码 Windows下查看Linux编译信息一、背景:本人写C程序不多,更不用说Linux下了。偶然一个机会,接了个这样的活,vi我用的还马马虎虎,但程序超过一千行,看起来就有些眼花了。于是只好在VC下编写代码,ftp传到Linux服务器,再用gcc编译,出错了再到VC下修改,再上传,如......
  • Linux下非阻塞getch实现示例
    作者:fbysss关键字:getch问题1:标准c中没有getch函数,等待键盘输入之后,总是需要按下回车才能得到值,如何解决?问题2:在等待键盘输入的时候,程序被阻塞了,下面的代码必须在输入处理之后才能执行。如果不使用线程,如何实现非阻塞模式?解决办法:#include<curses.h>#include......
  • linux学习 Centos 7(二)
    linux学习Centos7(二)常用的基本命令目录管理绝对路径、相对路径绝对路径路径的全称:C:\ProgramData\360safe\xxx.xx在360safe目录下,xxx.xx的相对路径就是\xxx.xxcd切换目录绝对路径:/开头相对路径:../homecd:切换目录命令cd./:当前目录cd..:返回上一级目录ls......
  • tcpdump命令详解
    1、https://blog.csdn.net/wj31932/article/details/106570542/目录1 概述 2命令格式3 常见协议输出格式4 常用的选项和对应参数5 表达式5.1根据偏移量预过滤6 使用方法执行结果范例 6.1Tcpdump -D显示对应的系统的网口,用于-i后面指定网络接口用 6.2-i 网......
  • Linux 服务器下C++开发找不到mysql.h
    问题背景腾讯云服务器,linuxcentOS7内核,mysql版本5.5为宝塔腾讯云版自动安装C++用cmake编译时找不到mysql.h解决1.首先尝试yum安装mysql-devel包,但是yum让我直接下载了mariadb相关的包,下载时它,与原有包冲突bt-mysql55-5.5.62-1.el7.x86_64,但是删除原有包后mysql启动有问......