PATH的问题

    曾经有一个面试官问我如果环节变量都配置过了,有一个脚本的命令和系统命令相同,会先执行哪一个。 我不懂  一直没想过这个,也没研究那么深。今天贴出我的实验。

结果是命令的执行和PATH的顺序有关系。将/tmp放入最后还是显示的日期。

 

####################################################################

说明:下面是最初学习linux的时候通过看鸟哥然后实验、总结的。存放电脑好久了,分享出来了。

1、shell 作用及学习原因
 
     用户通过shell来让核心达成我们需要的任务。
     Shell只是提供使用者操作系统的一个界面,man chmod等指令都是独立的应用程式,我们需要通过shell来操作这些程式来进行让内核运作所需要的工作。
通过/etc/shells可
以查看系统所支持的shell,我们常用的是bash。
 
2、alias 命令别名设定
 
    alias lm=’ls -al’ \\在bash中,lm就定义为ls –al
    unalias lm \\取消

3、type命令

    作用:确定命令是bash内建指令还是外部命令。如果是外部命令,可以用其查看命令位置。    

    -a   列出所有该命令,包括alias。

    -t   列出命令类型

          FILE    外部命令

          Alias    别名

          Builtin   内部命令

        

 

4、变量的设定

     固定字符串代表不固定内容。

       MAIL=/var/spool/mail/root
       MAIL就是个变数,代表右边的路径。

 

   变量规则的设定

(1) =两边不能接空白字符。
  下图中的几行命令均有空格,红点标出,结果系统无法识别。
  

 (2)变数只能以英文字母与数字组成,但是不能以数字开头。

(3)若变数内容有空格,用(“”)(‘’)扩起来。但是 “”内的特殊字符保持原有特性。

''内部特殊字符为文本。 

 (4)转义字符(\)可将特殊符号($ \ 空格 ‘等)变成文本。

(5)在一串指令中海需要其他指令,用$(指令)`指令`(注:是1旁边的反引号)。

 (6)增加变数内容,用”$变数名称”来增加内容。例如:PATH="$PATH":/home/bin  

   (7)取消变量
      unset  kk取消对kk 设定的变量。
  (8) 若变量需要在其他子程序执行,用export   PATH

 

 

5、source与sh xxx.sh的区别

   source   文件名

     是指在当前bash环节下读取并执行xxx.sh文件,结果同 .  xxx.sh,不需要exit直接就能读取变量。

 sh  xxx.sh

  这个是我们经常执行脚本的方式,但是这个是在子进程中进行的,执行完后结构是不会返回给父进程的。