Linux0基础深度解析shell简介01

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux0基础深度解析shell简介01相关的知识,希望对你有一定的参考价值。

一、shell简介
------------
    用户
     |    
    终端  (相当于bash的接口)
     |
    shell(壳) bash 大多数Linux系统默认的shell环境
     |
    内核
用户通过终端输入命令,提交给shell,再调用内核中的系统功能对命令进行执行。shell环境是用户使用linux的桥梁,它使得用户能与操作系统的核心功能进行交互。

shell的两种执行命令的方式:
交互式:解释执行用户的命令,用户输入一条命令,shell就执行一条。
批处理:用户事先写一个shell脚本(scripts),其中有很多命令,让shell一次把这些命令执行完,而不用一条一条的敲命令。

编写脚本
打开文本编辑器,新建一个文件test.sh
#!/bin/bash    --#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,/bin/bash是bash的解释器命令路径
echo "what is your name?"
echo "my name is lily."
echo "hi lily!"
执行脚本
chmod +x ./test.sh    --脚本在当前目录,也可以用绝对路径
./test.sh    
也可以直接使用 sh ./test.sh


二、shell变量
------------
1.定义变量
 变量名=“变量内容”
如:myname=“lily”
注意事项:
    1)变量名和等号之间以及等号和变量内容之间不能有空格
    2)变量名只能包含数字、字母和下划线,且必须以字母开头
    3)变量名不能使用bash里的关键字

2.使用变量
 $变量名      --获取变量内容
如:echo $myname    
   或 echo ${myname}
   echo "myname is $myname"

3.变量类型
  shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。
局部变量:局部变量是在脚本或命令中定义的,仅在当前shel实例中有效,其他shell启动的程序不能访问局部变量。
环境变量:所有程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
特殊变量:除了数字、字母和下划线,还包含其他字符的变量成为特殊变量,如下:
    $0    当前脚本
    $n    传递给脚本或函数的参数,n是一个数字,表示第几个参数,如,第一个参数是$1,第二个参数是$2
    $#    传递给脚本或函数的参数个数
    $*    传递给脚本或函数的所有参数
    [email protected]    传递给脚本或函数的所有参数
    $?    上个命令的退出状态,上一条命令执行成功则返回0,失败返回非0的数值
    $$    当前shell进程id。对于shell脚本而言就是这个脚本所在的进程id

--举例说明:
vim  var.sh    --新建一个shell脚本
#!/bin/bash
echo "文件名:$0"
echo "参数1:$1"
echo "参数2:$2"
echo "总参数个数:$#"
echo "所有参数:$*"
echo "所以参数:[email protected]"
echo "上个命令的执行情况:$?"
echo "当前shell进程id:$$"

sh var.sh a b c        --执行脚本,并在后面接上参数
文件名:var.sh
参数1:a
参数2:b
总参数个数:3
所有参数:a b c
所以参数:a b c
上个命令的执行情况:0    --0代表上个命令执行成功,非零表示上个命令执行失败
当前shell进程id:4982

4.read命令
read命令将接收到的输入的数据放入一个标准变量中。
echo -n “enter your name:"    --参数-n的作用是不换行,echo默认是换行的
read name
echo "hello $name"

read -p "enter your name: " name    --参数-p允许在read命令行中直接指定一个提示
echo "hello $name"

以上是关于Linux0基础深度解析shell简介01的主要内容,如果未能解决你的问题,请参考以下文章

《动手学习深度学习》笔记:基础知识(d2l包的解析)

Shell编程-基础

Shell编程-基础

Shell编程-基础

Linux 0.11-解析并执行 shell 命令-45

Linux 0.11-解析并执行 shell 命令-45