shell脚本基础知识

1.shell脚本是一种非编译,弱类型的语言,解释型语言
弱类型 不需要声明直接使用
解释型 执行之时,不需编译直接执行

2.shell的作用:
解释执行用户的命令;
用户输入一条命令,shell就解释一条,交互式;
用户事先写一个shell脚本(Script),其中有很多命令,让shell一次把这些命令执行完,而不用一条一条地敲命令,批处理(Batch )

3.解释执行,不需编译:
shell脚本是解释执行的,不需要编译,shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本命令一行一行敲到shell提示符下进行。

4.shell执行脚本
例如编写一个 test.sh 脚本
#!/bin/bash
echo “Today is a good day!”
cd ..
ls
shell脚本#表示注释,如果# 位于第一行开头,它表示该脚本使用后面指定的解释器/bin/bash解释执行。
*执行方式1. chmod +x test.sh
shell会fork一个子进程并调用exec执行 ./test.sh这个程序,exec系统调用把子进程的代码段替换成 ./test.sh程序的代码段,并从它的_start开始执行。第一行用Shebang 指定了解释器,则用解释器程序的代码段替换当前进程,并且从解释 器的_start开始执行,而这个文本文件被当作命令行参数传给解释器。因此,执行上述脚本相当于执行程序 。
* 执行方式2. /bin/bash test.sh
如果将命令行下输入的命令用()括号括起来,那么也会fork出子Shell执行小括号中的命令, 一 行中可以输入由分号;隔开的多个命令,比如: $ (cd ..;ls -l)

5.shell脚本变量
变量作左值不加空格,作右值要加,

符号提取内容。shell中变量不用定义直接使用。
myint=123
echo myint定义变量时不用

,取变量值时用$,shell变量的值都是字符串,如果对一个没有定义的变量取值,则值为空字符串。

shell变量:环境变量和普通变量
环境变量 可以被子进程及其子孙进程继承的变量;
普通变量:只能在当前bash下有效,只存在于当前shell进程,用set命令可以显示当前shell进程中定义的所有变量包括环境变量和本地变量。
echo 输出命令自动打印空行 (echo命令是一条內建命令)
myenv=1234 在命令行上编译,交互式bash下定义变量。
echo $myenv 结果为1234
export myenv 把myenv导成了环境变量
环境变量是任何进程都有的概念,否则会被shell解释成命令和命令行参数。
unset命令可以删除已定义的环境变量或本地变量
6.shift 命令行参数左移
这里写图片描述
shell脚本基础知识
7.文件名代换
*匹配0个或多个任意字符
?匹配一个任意字符
[若干字符] 匹配方括号中出现的任意一个字符的一次出现

8.命令代换
例如:
#!/bin/bash
echo “Today is date +%Y:%m:%d”
echo “Today is $(date +%Y:%m:%d)”

echo “Today is ‘date +%Y:%m:%d’”
运行结果:
这里写图片描述
9.转义字符 \
\在shell中被用作转义字符,用于去除紧跟其后的单个字符的特殊意义,紧跟其后的字符取字面值。

这里写图片描述
10.双引号和单引号
单引号双引号都表示字符串,单引号对所有内容不做解释,双引号对变量转义会执行后再进行输出。
注意:
“““““““““““
”””””””””””””””””’
不一样,第一行的会把命令行中的date代换成日期,第二行的还是把它当做字符串打印出来。

Vim设置
Vim里面 set nu 设置行号 set nonu去掉行号 如果要复制Vim里面的内容有行号不太方便
可以选择去掉行号后再复制
这里写图片描述

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98465

赞 (1)
单爆手单爆手
上一篇 2018-05-14 08:24
下一篇 2018-05-14 08:39

相关推荐

  • 详细说明进行管理工具htop、vmstat等相关命令,并举例

    htop命令: 选项: -d #:指定延迟时间间隔 -u UserName:仅显示指定用户的进程 -s COLUME:以指定字段进行排序 htop -u root -d 10 PID:进程ID USER:用户名 PRI:优先级 NI:nice值 VIRT:Size in memory of the total program size RES:所使用的物理内…

    2018-06-15
  • https网络安全协议

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

    2018-06-22
  • 配置本地及共享yum源

    使用yum安装软件 命令: 查看软件包 yum list  all        –列出yum源仓库里面的所有可用的安装包 yum  list installed   –列出所有已经安装的安装包 yum  list  available     –列出没有安装的安装包 安装软件 yum  install  software…

    2018-05-01
  • linux学习4

    linux学习4

    Linux笔记 2018-07-14
  • 简述sed常用操作命令,并举例

    sed命令: 文本处理三剑客: grep,egrep,fgrep:文本过滤器 sed:stream EDitor,刘编辑器,行 awk:文本格式化工具,报告生成器 sed [option]…’script’ [input-file]… script: 地址定界编辑命令 常用选项: -n:不输出模式空间中的内容至…

    Linux笔记 2018-06-07
  • Linux进程监控管理工具详解

    在上一节我们介绍了一些常用进程管理命令用法,但在实际生产环境运用时,我们可能需要动态持续的监控进程的运行状态,此时我们就需要top,htop,iotop、glances等命令工具来实现。

    2018-05-05