设为首页 收藏本站
查看: 1101|回复: 0

Linux0基础深度解析shell简介01-13440661

[复制链接]

尚未签到

发表于 2018-8-21 07:20:41 | 显示全部楼层 |阅读模式
  一、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
  $#    传递给脚本或函数的参数个数
  $*    传递给脚本或函数的所有参数
  $@    传递给脚本或函数的所有参数
  $?    上个命令的退出状态,上一条命令执行成功则返回0,失败返回非0的数值
  $$    当前shell进程id。对于shell脚本而言就是这个脚本所在的进程id
  --举例说明:
  vim  var.sh    --新建一个shell脚本
  #!/bin/bash
  echo "文件名:$0"
  echo "参数1:$1"
  echo "参数2:$2"
  echo "总参数个数:$#"
  echo "所有参数:$*"
  echo "所以参数:$@"
  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"


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-554429-1-1.html 上篇帖子: 第四个shell 函数及调用 下篇帖子: 使用shc提高Shell脚本的安全性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表