shell介绍及简单编辑shell

一.什么是shell及作用
Shell字面理解就是个“壳”,是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用户输入的命令翻译给系统执行。Linux中的shell与Windows下的DOS一样,提供一些内建命令(shell命令)供用户使用,可以用这些命令编写shell脚本来完成复杂重复性的工作

什么是脚本?
脚本就是由Shell命令组成的件,这些命令都是可执行程序的名字,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

shell脚本的优点
1.自动化管理的重要依据
2.追踪与管理系统的重要工
3.简单侦测功能
4.连续指令单一化
5.简易的数据处理
6.跨平台支持与学习历程较短

编写shell脚本注意事项

指令的执行是从上而下、从左而右的分析与执行;
指令的下达就如同之前提到的:指令、选项与参数间的多个空白都会被忽略掉;
空白行也将被忽略掉,并且 [tab] 按键所推开的空白同样视为空白键;
如果读取到一个 Enter 符号(CR),就尝试开始执行该行(或该串)命令;
至于如果一行的内容太多,则可以使用“ [Enter] ”来延伸至下一行;
“ # ”可做为注解!任何加在 # 后面的数据将全部被视为注解字而被忽略!
执行shell脚本分为四点
直接指令下达: shell.sh 件必须要具备可读与可执行(nx) 的权限,然后:
绝对路径:使用/home/dtsai/shell.sh 来下达指令;
相对路径:假设工作目录在/home/dmtsai/,则使用.shel.sh 来执行
*变量"PATH"功能:将shell.sh放在PATH指定的目录内,例如: ~/bin/
以bash程序来执行:通过“bash shell,sh”或“sh shell.sh "来执行
二.简单编辑shell

[root@localhost ~]# vim zjz.sh
#!/bin/bash
echo -e “hellow \a \n”
exit 0
[root@localhost ~]# chmod a+x zjz.sh
[root@localhost ~]# sh zjz.sh
hellow

1.第一行 #!/bin/bash 在宣告这个 script 使用的 shell 名称:
2.程序内容的说明:
3.主要环境变量的宣告:建议务必要将一些重要的环境变量设置好,我个人认为, PATH 与 LANG (如果有使用到输出相关的信息时)是当中最重要的!如此一来,则可让我们这支程序在进行时,可以直接下达一些外部指令,而不必写绝对路径呢!
4.主要程序部分就将主要的程序写好即可
5.执行成果告知(定义回传值)一个指令的执行成功与否,可以使用$?这个变量来观察~那么我们也可以利用 exit 这个指令来让程序中断,并且回传一个数值给系统
\a 发出警告声;\n 换行且光标移至行首;

对谈式脚本:变量内容由使用者决定量
随日期变化:利用date进行件的创建
数值运算:简单的加减乘除

对谈式脚本:变量内容由使用者决定量

[root@localhost ~]# vim zjz1.sh
#!/bin/bash
read -p "Please input your first name: " firstname
read -p "Please input your last name: " lastname
echo -e “\nYour full name is: ${firstname} ${lastname}”
[root@localhost ~]# sh zjz1.sh
Please input your first name: x
Please input your last name: a

Your full name is: x a

随日期变化:利用date进行件的创建

[root@localhost ~]# vim zjz2.sh
#!/bin/bash
echo -e “I will use ‘touch’ command to create 3 files.”
read -p "Please input your filename: "
fileuserfilename= f i l e u s e r : − " f i l e n a m e " d a t e 1 = {fileuser:-"filename"} date1= fileuser:"filename"date1=(date --date=‘2 days ago’ +%Y%m%d)
date2= ( d a t e − − d a t e = ′ 1 d a y s a g o ′ + d a t e 3 = (date --date='1 days ago' +%Y%m%d) date3= (datedate=1daysago+date3=(date +%Y%m%d)

file1= f i l e n a m e {filename} filename{date1}
file2= f i l e n a m e {filename} filename{date2}
file3= f i l e n a m e {filename} filename{date3}

touch “ f i l e 1 " t o u c h " {file1}" touch " file1"touch"{file2}”
touch “${file3}”

filename: a
[root@localhost ~]# ls \可以看到创建了3天的件
20191203 20191205 a.sh initial-setup-ks.cfg 公共 视频 档 音乐
20191204 anaconda-ks.cfg b.sh x.sh 模板 图片 下载 桌面

数值运算:简单的加减乘除

[root@localhost ~]# vim zjz4.sh
#!/bin/bash
echo -e “You SHOULD input 2 numbers, I will multiplying them! \n”
read -p "first number: " firstnu
read -p "second number: " secnu
total= ( ( (( (({firstnu}*${secnu}))
echo -e “\nThe result of ${firstnu} x ${secnu} is ==> ${total}”
[root@localhost ~]# sh zjz4.sh
You SHOULD input 2 numbers, I will multiplying them!

first number: 2
second number: 3

The result of 2 x 3 is ==> 6

利用test指令的测试功能
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值