第十一章、认识与学习 BASH Bash Shell 的操作环境

Bash Shell 的操作环境:
路径与命令搜寻顺序

 

命令运行的顺序:

  1. 以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』;
  2. 由 alias 找到该命令来运行;
  3. 运行 bash 内建的 (builtin) 命令;
  4. 运行搜寻$PATH到的第一个命令来。

举例来说,你可以下达 /bin/ls 及单纯的 ls 看看,会发现使用 ls 有颜色但是 /bin/ls 则没有颜色。 因为 /bin/ls 是直接取用该命令来下达,而 ls 是使用『 alias ls='ls --color=tty' 』命令别名! 如果想要了解命令搜寻的顺序,其实透过 type -a ls 也可以查询到!

例题:
配置 echo 的命令别名成为 echo -n ,然后再观察 echo 运行的顺序
答:
[root@www ~]# alias echo='echo -n'
[root@www ~]# type -a echo
echo is aliased to `echo -n'
echo is a shell builtin
echo is /bin/echo
先 alias 再 builtin 再由 $PATH 找到 /bin/echo!

bash 的进站与欢迎信息: /etc/issue, /etc/motd

在终端机接口 (tty1 ~ tty6) 登陆的时候,会有几行提示的字符串!:

[root@www ~]# cat /etc/issue
CentOS release 5.3 (Final)
Kernel \r on an \m

就如同 $PS1 这变量一样,issue 这个文件的内容也是可以使用反斜杠表示变量!

issue 内的各代码意义
\d 本地端时间的日期;
\l 显示第几个终端机接口;
\m 显示硬件的等级 (i386/i486/i586/i686...);
\n 显示主机的网络名称;
\o 显示 domain name;
\r 操作系统的版本 (相当于 uname -r)
\t 显示本地端时间的时间;
\s 操作系统的名称;
\v 操作系统的版本。
例题:
如果你在 tty3 的进站画面看到如下显示,该如何配置才能得到如下画面?
CentOS release 5.3 (Final) (terminal: tty3)
Date: 2009-02-05 17:29:19
Kernel 2.6.18-128.el5 on an i686
Welcome!
答:
  
CentOS release 5.3 (Final) (terminal: \l)
Date: \d \t
Kernel \r on an \m
Welcome!

  

/etc/issue.net是提供给 telnet 这个远程登录程序用的。 当我们使用 telnet 连接到主机时,主机的登陆画面就会显示 /etc/issue.net 而不是 /etc/issue!

 /etc/motd !例如:当登陆后,告诉登陆者, 系统将会在某个固定时间进行维护工作,可以这样做:

[root@www ~]# vi /etc/motd
Hello everyone,
Our server will be maintained at 2009/02/28 0:00 ~ 24:00.
Please don't login server at that time. ^_^

那么当你的使用者(包括所有的一般账号与 root)登陆主机后,就会显示这样的信息出来:

Last login: Thu Feb  5 22:35:47 2009 from 127.0.0.1
Hello everyone,
Our server will be maintained at 2009/02/28 0:00 ~ 24:00.
Please don't login server at that time. ^_^



猜你喜欢

转载自zhebushiren.iteye.com/blog/2119358
今日推荐