天天看点

学习Shell(一)

查看 Shell

Shell 是一个程序,一般都是放在

/bin

或者

/user/bin

目录下,当前 Linux 系统可用的 Shell 都记录在

/etc/shells

文件中。

/etc/shells

是一个纯文本文件,你可以在图形界面下打开它,也可以使用 cat 命令查看它。

通过 cat 命令来查看当前 Linux 系统的可用 Shell:

$ cat /etc/shells      
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin      

在现代的 Linux 上,sh 已经被 bash 代替,

/bin/sh

往往是指向

/bin/bash

的符号链接。

如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量:

$ echo $SHELL      
/bin/bash      

输出结果表明默认的 Shell 是 bash。

Shell 提示符

对于普通用户,Base shell 默认的提示符是美元符号

$

;对于超级用户(root 用户),Bash Shell 默认的提示符是井号

#

。该符号表示 Shell 等待输入命令。

[root@localhost ~]#       

这种格式包含了以下三个方面的信息:

  • 启动 Shell 的用户名,也即 mozhiyan;
  • 本地主机名称,也即 localhost;
  • 当前目录,波浪号

    ~

    是主目录的简写表示法。

Shell 通过

PS1

PS2

两个环境变量来控制提示符格式:

  • PS1 控制最外层命令行的提示符格式。
  • PS2 控制第二层命令行的提示符格式。

要显示提示符的当前格式,可以使用 echo 输出 PS1 和 PS2:

[root@localhost ~]# echo $PS1
[\u@\h \W]\$
[root@localhost ~]# echo $PS2
>      

Bash shell 提示符可以包含的要素

字符 描述
\a 铃声字符
\d 格式为“日 月 年”的日期
\e ASCII转义字符
\h 本地主机名
\H 完全合格的限定域主机名
\j shell当前管理的作业数
\1 shell终端设备名的基本名称
\n ASCII换行字符
\r ASCII回车
\s shell的名称
\t 格式为“小时:分钟:秒”的24小时制的当前时间
\T 格式为“小时:分钟:秒”的12小时制的当前时间
\@ 格式为am/pm的12小时制的当前时间
\u 当前用户的用户名
\v bash shell的版本
\V bash shell的发布级别
\w 当前工作目录
\W 当前工作目录的基本名称
\! 该命令的bash shell历史数
\# 该命令的命令数量
\$ 如果是普通用户,则为美元符号

$

;如果超级用户(root 用户),则为井号

#

\nnn 对应于八进制值 nnn 的字符
\\ 斜杠
\[ 控制码序列的开头
\] 控制码序列的结尾
[root@localhost ~]# PS1="[\t][\u]\$ "
[22:12:45][root]$       

原创文章请随便转载。愿和大家分享,并且一起进步。-- 江 coder

继续阅读