shell编程基础知识(一)

shell是一个命令解析器,是当前进程的父进程;

1、查看当前linux系统支持的shell类型:

cat  /etc/shells

shell编程基础知识(一)

2、查看当前使用的shell 

echo $SHELL

shell编程基础知识(一)

 shell编程基础知识(一)

 直接输入sh

则从当前的bash进入到sh解析器里了。

此时ls 查看发现与bash 中使用ls查看的区别是颜色不同;

此时输入命令后,无法双击tab补齐命令。

小结:不同的shell类似于不同的浏览器,解析后,呈现略有不同。

bash相较sh,类似于vim相较vi,功能更强大一些。写shell脚本二者的区别可以忽略。

3、脚本,我们一般会用后缀.sh 加以区分。

 4、第一行是选择使用哪种shell,即上述中的一种shell,,指定解析器。

#! /bin/sh-------------------->!后面有空格,sh和bash 不用刻意强调,二者区别不大。

4、#  ---------------->用来注释

5、echo "helloworld" ---------->打印字符串

6、echo     ---------------->后面什么不没有,,打印一个空行,等价于 echo  ""

7、执行ls命令

/bin/ls------>列出的文件没有标注颜色;

ls--------->列出的文件会有颜色区分;

问题是 输入 :alias会看到:ls 是有别名的;

shell编程基础知识(一)

8、vim file ------------>file默认都是没有可执行权限的

chmod  a+x file   -------->以下三类都添加可执行权限

chmod  u+x file  -------->仅用户添加可执行权限

chmod  g+x file ------>用户组添加可执行权限

chmod  o+x file--------->其他组添加可执行权限

加号 换成减号,就是去掉对应的权限;

9、脚本程序的执行方法:

方法0)加 #! /bin/sh   ---->chmod  a+x   --->./file.sh

方法1)不指定解析器,即不要这句   #! /bin/sh   也是可行的,会自动调用默认的解析器;(需要 chmod  a+x)

方法2)/bin/bash  file.sh  ------>此时都不需要file.sh 有x 可执行权限;

                        也可以使用 /bin/sh file.sh  --->效果同上;

方法3). file.sh ------------------->最简单。。。。----------->不需要有可执行权限

方法4)source  file.sh --------------------->不需要有可执行权限

10、命令分为:

一种是常见的普通命令:如 ls, pwd,即如果export  PATH=       将PATH置空,ls解析不到了。

另一种是内建命令:man bash-builtins   查看所有的内建命令---->内建命令不需要bash解析也能执行。

如 cd  alias  等。

11、小括号的应用;

cd ..;ls -l   目录变化

(cd ..;ls -l)工作目录没有变化