vincen 发表于 2017-5-16 09:38:35

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

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

 
  命令运行的顺序:


[*]以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』;
[*]由 alias 找到该命令来运行;
[*]运行 bash 内建的 (builtin) 命令;
[*]运行搜寻$PATH到的第一个命令来。
  举例来说,你可以下达 /bin/ls 及单纯的 ls 看看,会发现使用 ls 有颜色但是 /bin/ls 则没有颜色。 因为 /bin/ls 是直接取用该命令来下达,而 ls 是使用『 alias ls='ls --color=tty' 』命令别名! 如果想要了解命令搜寻的顺序,其实透过 type -a ls 也可以查询到!


例题:
配置 echo 的命令别名成为 echo -n ,然后再观察 echo 运行的顺序

答:


# alias echo='echo -n'
# 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) 登陆的时候,会有几行提示的字符串!:



# 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 !例如:当登陆后,告诉登陆者, 系统将会在某个固定时间进行维护工作,可以这样做:



# 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 Feb5 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. ^_^
页: [1]
查看完整版本: 第十一章、认识与学习 BASH Bash Shell 的操作环境