首页 > 系统相关 >linux中修改PS1变量解决shell命令提示符太长

linux中修改PS1变量解决shell命令提示符太长

时间:2024-02-24 13:22:06浏览次数:21  
标签:命令提示符 显示 shell 变量 etc linux bashrc ubuntu PS1

原文地址:https://www.cnblogs.com/liqinglucky/p/PS1.html

在使用linux时,当我的文件目录很深的时候,前面的命令提示符太长会导致后面输入不方便。于是就想能不能不显示全路径名,只保留显示最后一个目录就可以。

root@ubuntu:/home/ubuntu/Documents/Files/Music#

研究发现shell中PS1变量决定了命令提示符的显示。可以通过设置PS1变量来改变显示效果[1] [2]

一、PS1变量

1.1 PS1变量

PS1变量的参数的含义:

\d:显示曰期,格式为"星期 月 日"。
\D: 显示自定义时间,如\D{%Y-%m-%d}。
\H:显示完整的主机名。如默认主机名"localhost.localdomain"。
\h:显示简写的主机名。如默认主机名"localhost"。
\t:显示 24 小时制时间,格式为"HH:MM:SS"。
\T:显示 12 小时制时间,格式为"HH:MM:SS"。
\A:显示 24 小时制时间,格式为"HH:MM"。
\@:显示 12 小时制时间,格式为"HH:MM am/pm"。
\u:显示当前用户名。
\v:显示 Bash 的版本信息。
\w:显示当前所在目录的完整名称。
\W:显示当前所在目录的最后一个目录。
\#:执行的第几条命令。
\$:提示符。如果是 root 用户,则会显示提示符为"#";如果是普通用户,则会显示提示符为"$"。

1.2 查看PS1变量

# echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

所以只要将\w改成\W就可以达到我想要的显示效果。

二、设置PS1变量

方案1:PS1变量赋值

最快方法的就是直接给PS1变量赋值

root@ubuntu:/home/ubuntu/Documents/Files/Music# PS1 = '\u@\h:\W\$'
root@ubuntu:Music#

可以看到赋值后,显示效果变为了只显示最后一个目录。
但这个设置只是临时的,系统重启后设置就被重置了。

方案2:修改配置文件中PS1的赋值

为了使PS1的赋值永久生效,可以修改配置文件中PS1的赋值语句。于是要先找到PS1赋值的配置文件。

linux环境变量的加载顺序[3]

  1. /etc/environment
  2. /etc/profile
  3. /etc/bashrc/etc/bash.bashrc
  4. /etc/profile.d/test.sh
  5. ~/.profile
  6. ~/.bashrc

.bashrc/etc/bash.bashrc都可以看到PS1的变量的赋值语句。我们就只要修改任意一个文件中的PS1的语句就行。

1 修改配置文件

# vim ~/.bashrc
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '   # \w 改为\W
fi

2 配置文件生效

可以通过系统重启或者source命令使配置文件生效。

root@ubuntu:/home/ubuntu/Documents/Files/Music# source ~/.bashrc
root@ubuntu:Music#

可以看到新的显示效果已经生效!

参考


  1. Shell 提示符PS1变量颜色设置 ↩︎

  2. linux shell命令提示符号PS1设置 ↩︎

  3. linux 环境变量_linux中/etc/bashrc怎么生效-CSDN博客 ↩︎

标签:命令提示符,显示,shell,变量,etc,linux,bashrc,ubuntu,PS1
From: https://www.cnblogs.com/liqinglucky/p/18030981/PS1

相关文章

  • powershell 获取 CPU RAM DISK 序列号
    PowerShell中获取CPU序列号可以通过WMI(WindowsManagementInstrumentation)来实现。下面是一个示例代码,演示如何在PowerShell中获取CPU序列号:powershellCopyCode#使用WMI获取CPU信息$cpu=Get-WmiObject-ClassWin32_Processor|Select-ObjectName,Processo......
  • 常用的Shell脚本 - Docker and Docker-compose 安装
    功能说明:在CentOS和Ubuntu系统上安装Docker和DockerCompose的shell脚本,并在安装后显示Docker和DockerCompose版本。Certainly!BelowisashellscriptthatinstallsDockerandDockerComposeonbothCentOSandUbuntusystems.Itfollowsyourrequirem......
  • 在K8S中,如何实现创建多个名为"Linux"的Pod?
    在Kubernetes(K8S)中,创建多个名为"Linux"的Pod并不是通过直接指定相同的Pod名称来实现的,因为每个Pod必须具有唯一的名称。然而,您可以创建多个使用相同模板或配置文件的Pod,这些Pod可以共享类似的标签(label),从而可以通过标签来逻辑上归类为“Linux”类型。例如,如果您想要创建10个运行L......
  • [陇剑杯 2021]webshell
    追踪流进行解题第一题:黑客登录系统使用的密码是Admin123!@#在第6个流的时候可以发现login的页面和有相关的信息,复制进行解码得到结果或者在搜索栏里用POST规则搜索,因为密码登录的规则一般是POST方式  第二题:黑客修改了一个日志文件,文件的绝对路径为/var/www/html/data......
  • 关于Linux中so显式链接(dlopen)找不到函数符号地址的问题
    摘自:https://blog.csdn.net/qq_27281753/article/details/127202676问题背景在做项目的时候,遇到一个so调用问题,既别人提供了一些so库,其中一个so库包含了给我调用的函数,而这个库里面的函数又调用了其他库的函数,这些所有的库都是linux下编译出来的,而项目则是需要在windows下用Qt交......
  • shell练习
    几道Linuxshell脚本题目0x01编写shell脚本将当前目录下大于200字节的文件复制到/tmp目录下#!/bin/bashfile=`find./-maxdepth1-typef-size+200c`foriin$filedocp$i/tmpecho'#######success######'done0x02编写shell脚本获取本机......
  • linux(ubuntu22.04)+PicGo(gui版)+阿里云oss搭建图床教程
    linux(ubuntu22.04)+PicGo(gui版)+阿里云oss搭建图床教程资源库PicGo下载链接:山东镜像源github原版阿里云oss链接linux下PicGo(gui版)的安装从资源库链接里下载后缀为.AppImage的安装包,版本可以选择稳定版2.3.1也可以用更新的beta版。修改文件权限,打开文......
  • linux cpu 内存分析
    1.通过分析服务器资源,当发现资源消耗过多时,需要分析什么进程占用了,如下所示 2.分析第一台服务器通过登录服务器,使用top命令查看,出来信息如下所示: 进程182618的内存占用了52.6%,属于.net应用程序,通过已维护的文档,知道了哪些.net程序的部署了,最终找到是该web应用程序......
  • 多节点linux环境打造
    整体架构:1+31指:宿主机(作为客户端访问)3指:3个虚拟机(其中1个作为前端项目部署服务器,2个作为多实例的后端项目服务器集群)虚拟机上服务器配置step1:vmwareworkstation安装及破解+借助centos7镜像step2:确保宿主机可ping通外网且可ping通各虚拟机节点各虚拟机节点可以pi......
  • (笔记)Linux基础知识点总结
     一、从认识操作系统开始 1、操作系统简单分类Windows​目前最流行的个人桌面操作系统,不做多的介绍,大家都清楚。界面简单易操作,软件生态非常好。Unix​最早的多用户、多任务操作系统。后面崛起的Linux在很多方面都参考了Unix。目前这款操作系统已......