zoukankan      html  css  js  c++  java
  • linux shell 提示符

    当我们打开或者登陆到一个终端的时候都会显示一长串提示符

    void@void-ThinkPad-E450:~$

    提示符一般包含当前登陆的用户名 ,主机名,以及当前工作路径路径,最后都是以 $ 或者 # 号结束,普通用户以 $ 号结束,只有root用户以 #结束。

    因为包含了当前工作路径,所以当我们切换工作路径的时候,提示符也是会变化的,当我们切换到一个很深层次的路径或者目录名称很长很长的时候提示符也会变得很长,导致我们需要输入command的时候输入光标已经到了终端最右边。

    void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$ 

    我们 可以通过改变PS1变量来控制主提示符的内容,PS1是一个bash的内建变量,使用echo 可以看到PS1的定义

    void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$ echo $PS1
    [e]0;u@h: wa]${debian_chroot:+($debian_chroot)}u@h:w$
    void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$
    d        用”Week Month Date"的格式显示日期
    H        主机名
    u        当前用户的用户名
         用"HH:MM:SS"的24小时格式显示当前时间
    v     bash 的版本号
    w 当前工作目录 $ 如果当前是root用户则显示字符#,否则西那时字符$

    我们可以通过改变变量PS1的值来改变提示符的显示内容

     void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$ echo $PS1
     [e]0;u@h: wa]${debian_chroot:+($debian_chroot)}u@h:w$
     void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$

    void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$PS1='u@h$'
    void@void-ThinkPad-E450$

     void@void-ThinkPad-E450$cd ../../../
     void@void-ThinkPad-E450$pwd
     /home/void/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia
     void@void-ThinkPad-E450$

    PS1='u@h$'

    以上 命令将 主提示符设置成只显示用户名@主机名$,这样切换工作路径到任何地方都不会影响主提示符的显示,但是这种设置方法只对当前终端有效,如果要对当前用户有效则需要修改~/.bashrc

    if [ "$color_prompt" = yes ]; then
        PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ '
    else
        PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
    fi
    unset color_prompt force_color_prompt
    
    # If this is an xterm set the title to user@host:dir
    case "$TERM" in
    xterm*|rxvt*)
        PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"
        ;;
    *)
        ;;
    esac

    修改最后一个 PS1的定义保存退出。

  • 相关阅读:
    [转]谈谈技术原则,技术学习方法,代码阅读及其它
    ImageMagick 详细安装使用 linux (jmagick)
    Sql Server中的表访问方式Table Scan, Index Scan, Index Seek
    在SQL Server中创建用户角色及授权
    LINQ to SQL:创建你的第一个程序
    Sql Server Statement Output
    内置系统账户:Local system/Network service/Local Service 区别
    SQL Server的备份
    SQL Server 使用Agent自动备份数据库
    将sql server 2000的备份文件导入到sql server 2012中
  • 原文地址:https://www.cnblogs.com/tid-think/p/10962243.html
Copyright © 2011-2022 走看看