目录 1.多分支if条件语句格式 2.练习 3.说明 4.综合练习 1.多分支if条件语句格式 if [ 条件判断式1 ] then 当条件判断式1成立时,执行程序1 elif [ 条件判断式2 ] then 当条件判断式2成立时,执行程序2 -省略更多条件- else 当所有条件都不成立时,最后执行此程序 fi 2.练习 我们写一个例子,用if多分支条件语句来判断一下用户输入的是一个文件,还是一个目录. # 需求:判断用户输入的是什么文件 [root@localhost tmp]# vim i…
目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下一条,以此类推,而流程控制就是改变上面这种顺序执行的方式. 官方理解:流程控制语句用于控制程序的流程, 以实现程序的各种结构方式,即用来实现对程序流程的选择.循环.转向和返回等进行控制. Shell中的流程控制语句分为: if条件判断语句. case条件判断语句. for循环语句. while循环语…
目录 1.特殊流程控制语句介绍 2.exit语句 3.break语句 4.continue语句 1.特殊流程控制语句介绍 Shell程序或者说其他的程序,都是顺序执行的,也就是第一行执行完再执行第二行,以此类推,依次执行. 而流程控制语句,如: if条件判断语句,你只有条件成立了,才能够执行,否则就不执行其中的程序,这就会跳过一些执行命令. for循环也是流程控制类语句,是重复执行指定次数的相同代码. 除了上面的条件判断语句和循环语句外,还有特殊流程控制语句. 比如:exit语句.break语句…
目录 1.while循环 2.until循环 1.while循环 对while循环来讲,只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止.和for循环的第二种格式for((初始值;循环控制条件;变量变化))类似. 我们写个1加到100的例子,这种例子虽然对系统管理帮助不大,但是对理解循环非常有帮助: while循环语法格式: while [ 条件判断式 ] do 程序 done 例子:1加到100. #!/bin/bash # 给变量i和变量s赋值 # 从1开始相加 i=…
目录 1.for循环介绍 2.示例 语法一举例: 语法二举例: 3.for循环总结 4.练习:批量解压缩脚本 方式一:批量解压缩 方式二:批量解压缩 1.for循环介绍 for循环是固定循环,也就是在循环时已经知道需要进行几次的循环,有时也把for循环称为计数循环. 在Shell中for循环的语法有如下两种: # 语法1: for 变量 in 值1 值2 值3 - do 程序 done 这种语法中for循环的次数,取决于in后面值的个数(空格分隔),有几个值就循环几次,并且每次循环都把该值赋予变…
目录 1.case条件语句介绍 2.case语句需要注意的内容 3.练习 示例1 示例2 1.case条件语句介绍 case语句和if-elif-else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系. case语句语法如下: case $变量名 in "值1") 如果变量的值等于值1,则执行程序1 ;; "值2") 如果变量的值等于值2,则执行程序2 ;; -省略其他分支- *) 如果…
目录 1.test测试命令 (1)test命令介绍 (2)test命令使用方式 (3)示例 2.按照文件类型进行判断 3.按照文件权限进行判断 4.两个文件之间进行比较 5.两个整数之间比较 6.字符串的判断 7.多重条件判断 1.test测试命令 (1)test命令介绍 在Shell中的test测试命令,用于测试某种条件或某几种条件是否真实存在. 在Shell中的test测试命令,是判断语句和循环语句中条件测试的工具.test命令经常用于对判断语句进行测试,用于检查某个条件是否成立,它可以进行…
目录 1.Shell的由来 2.Shell的两种执行指令方式 3.什么是Shell脚本 4.Shell 是一种脚本语言 1.Shell的由来 我们比较熟悉Windows系统的图形化界面,对于图形界面来说,用户点击某个图标就能启动某个程序. 在此之前我们一直在使用Linux系统的命令行模式学习,对于命令行来说,用户输入一个命令就能启动某个程序. 这两者的基本过程都是类似的,都需要查找程序在硬盘上的安装位置,然后将它们加载到内存运行. 然而,真正能够控制计算机硬件(CPU.内存.显示器等)的只有操作…
提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}:用于一串命令执行时,{}中的命令会在当前Shell中执行.也可以用于变量变形与替换. (1)父Shell和子Shell 在介绍小括号和大括号的区别之前,我们先要解释一个概念,那就是父Shell和子Shell. 用户登录到Linux系统后,系统将启动一个用户Shell.在这个Shell中,可以使用Sh…
目录 1.位置参数变量$n 2.位置参数变量$*和$@ 3.位置参数变量$# 位置參数变量的作用主要用于脚本的传参. 位置參数变量的名称和作用都是确定不能改变的,但是该变量的内容是可以更改的,也就是变量的值. 位置參数变量如下: 位置参数变量 作用 $n n为数字,$0代表命令本身,$1-$9代表(脚本命令后的)第一到第九个参数,十以上的参数需要用大括号包含,如${10}.${15}. $* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体. $@ 这个变量也代表命令行中所有的参数,…
目录 1.sed命令说明 2.行数据操作 (1)查看文件中的数据 (2)删除文件中的数据 (3)向文件中追加数据 (4)向文件中插入数据 (5)修改文件中的多行数据(删除,追加,插入) (6)替换文件中的整行文本 (7)字符串替换 (8)同时执行多条动作 3.总结 1.sed命令说明 sed主要是用来将数据进行选取.替换.删除.新增的命令,grep,awk,sed称为是文本操作三剑客. 我们看看sed命令的语法格式: [root@localhost ~]# sed [选项] '[动作]' 文件名…
目录 1.echo命令的作用 2.echo命令的基本用法 3.echo命令的-e选项用法 4.echo命令一些特殊用法 (1)输出字符带有字体颜色 (2)输出字符带有背景颜色 在讲Shell脚本之前,要先说一个我们之前学过的命令,echo命令. echo命令是Linux中最基础的命令,也是很常用的命令,特别是在写Shell脚本的时候,可能会经常被用到,虽然echo命令非常基础,但是功能还算丰富. 1.echo命令的作用 用于打印输出文本(字符串). 在脚本中echo命令常用于在显示器上显示一段文…
目录 1.history历史命令 2.设置命令历史记录的条数 3.清空历史命令 4.历史命令的调用 5.命令与文件的补全 在Linux系统中默认的Shell就是Bourne-AgainShell(简称Bash),所以我们今天来掌握Bash的一些基本用法. 1.history历史命令 (1)历史命令的查看 在终端执行history命令,就会显示出在系统当中已经执行过的命令. [root@localhost ~] # history [选项] [历史命令保存文件] 选项: -c:清空历史命令. -w…
目录 1.双单引号 2.双引号 3.$符号 4.反引号 5.$()符号 6.#符号 7.\符号 1.双单引号 '':单引号.在单引号中所有的特殊符号,如$和"`"(反引号)都没有特殊含义. 2.双引号 "":双引号.在双引号中特殊符号都没有特殊含义,但是$."`"(反引号)和\除外,这三个符号是有特殊含义的,拥有"调用变量的值"."引用命令"和"转义符"的特殊含义. 单引号和双引号的区别…
目录 1.定义变量的规则 2.变量的分类 1.定义变量的规则 在定义变量时,有一些规则需要遵守 变量名称可以由字母.数字和下划线组成,但是不能以数字开头.如果变量名是2name则是错误的. 在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型. 变量用等号连接值,等号左右两侧不能有空格. [root@localhost ~]# name = cangls -bash: name: command not found 变量的值如果有空格,需要使用单引号或双引号包…
目录 1.Shell常用运算符 2.Shell中数值运算的方法 (1)方式一 (2)方式二 (3)方式三(推荐) 1.Shell常用运算符 Shell中常用运算符如下表: 优先级数值越大优先级越高,具有较高优先级级别的运算符先于较低级别的运算符进行求值运算. 优先级 运算符 说明 13 -,+ 单目负.单目正 12 !,~ 逻辑非.按位取反或补码 11 *,/,% 乘.除.取模 10 +,- 加.减 9 <<,>> 按位左移.按位右移 8 <=,>=,<,>…
目录 1.什么是变量的测试与内容置换 2.变量的测试与内容置换 3.示例 例1: 例2: 例3: 1.什么是变量的测试与内容置换 我们之前说过,在Shell中,一个变量未定义,和一个变量为空值的输出效果是一样的. # 先直接输出一个未定义的变量y [root@Lyl ~]# echo $y # 再定义变量y为空值,并输出变量y [root@Lyl ~]# y="" [root@Lyl ~]# echo $y [root@Lyl ~]# 其结果都是没有任何显示. 前边在说set命令的时候…
目录 1.source命令 2.Linux系统中环境变量配置文件 (1)登录时生效的环境变量配置文件 (2)/etc/profile环境变量配置文件 (3)/etc/profile.d/*.sh环境变量配置文件 (4)~/.bash_profile环境变量配置文件 (5)~/.bashrc环境变量配置文件 (6)/etc/bashrc环境变量配置文件 3.环境变量配置文件调用过程 4.总结 1.source命令 通过source命令可以直接环境变量配置文件. 命令格式如下: [root@loca…
目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说明 4.定义Bash快捷键 1.注销时生效的环境变量配置文件 在用户退出登录时,只会调用一个环境变量配置文件,就是~/.bash_logout文件. 这个文件默认没有写入任何内容,可是如果我们希望再退出登录时执行一些操作,比如清除历史命令,或者备份某些数据,就可以把命令写入这个文件. 2.其他配置文…
目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)*练习 (3).练习 (4)^和$练习 (5)[]练习 (6)[^]练习 (7)\{n\}练习 (8)\{n,\}练习 (9)\{n,m\}练习 4.总结 1.正则表达式说明 正则表达式和通配符的区别 正则表达式用来在文件中匹配符合条件的字符串. 通配符用来匹配符合条件的文件名. 在Shell中,使用在文件当中搜索字符串的命令,如grep,awk,sed等命令(文本操作三剑客),可以支持正则表达式. 而在系统当中搜索文…
目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Shell的正则表达式中还可以支持一些元字符,比如+.?.|.(). 其实Linux系统是支持这些字符的,只是grep命令默认不支持而已(grep命令无法识别扩展正则表达式). 如果要想支持这些字符,必须使用egrep命令或grep -E选项,才能识别扩展正则表达式的字符,所以我们又把这些字符称作扩展字…
目录 1.AWK介绍 (1)AWK概述 (2)printf格式化输出 (3)printf命令说明 2.AWK的基本使用 (1)AWK命令说明 (2)AWK命令使用 1.AWK介绍 (1)AWK概述 AWK是一种处理文本文件的语言,是一个强大的文本分析工具. AWK可以看成一门独立的语言,它拥有语言的基本特征,换句话说AWK可以写出极其繁琐和复杂的程序,AWK的语法比Shell的语法还难以接收.但绝大多数情况下,我们并不需要用AWK写过于复杂的东西,建议能用Shell处理的需求就不用AWK来解决.…
目录 1.AWK的条件表达 2.条件表达式说明 (1)BEGIN (2)END (3)关系运算符 (4)说明AWK中条件表达式的执行过程 (5)AWK中使用正则表达式 (6)A~B练习 1.AWK的条件表达 如下图所示: 2.条件表达式说明 以下练习使用如下文本: ID Name Python Linux MySQL Java 1 Tangs 88 87 86 85.55 2 Sunwk 99 98 97 96,66 3 Zhubj 77 76 75 74.44 4 Shahs 66 65 64…
目录 1.AWK内置变量 2.练习说明 (1)$n变量练习 (2)FS变量练习 (3)NF变量和NR变量练习 3.总结: 1.AWK内置变量 AWK内置变量如下表: awk内置变量 作用 $0 代表目前AWK所读入的整行数据.我们已知AWK是一行一行读入数据的,$0就代表当前读入行的整行数据. $n 代表目前读入行的第n个字段. NF 当前行拥有的字段(列)总数. NR 当前AWK所处理的行,是总数据的第几行. FS 用户定义分隔符.AWK的默认分隔符是任何空格(tab键或者空格),如果想要使用…
目录 1.Shell的作用 2.Shell的分类 1.Shell的作用 Shell除了能解释用户输入的命令,将它传递给内核,还可以: 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果. 在多个程序之间传递数据,把一个程序的输出作为另一个程序的输入. Shell本身也可以被其他程序调用. 由此可见,Shell是将内核.程序和用户连接了起来. Shell本身支持的命令并不多,但是它可以调用其他的程序,每个程序就是一个命令,这使得Shell命令的数量可以无限扩展,其结果就是Shell的功能…
目录 1.给命令设置别名 (1)设置别名的命令格式 (2)命令别名永久生效 (3)别名的优先级 2.Bash常用快捷键 1.给命令设置别名 Linux系统的命令别名我们之前已经说过了,这里再过一边. (1)设置别名的命令格式 查询命令别名. [root@localhost ~] # alias 设定命令别名. [root@localhost ~] # alias 别名='原命令' 例如:查询系统中已经定义好的别名. [root@localhost ~] # alias 结果如下: alias c…
目录 1.Bash的标准输入输出 2.输出重定向 (1)标准输出重定向 (2)标准错误输出重定向 (3)正确输出和错误输出同时保存 3.输入重定向 1.Bash的标准输入输出 我们前边一直在说,在Linux系统下,一切皆是文件,键盘和显示器等硬件都是文件,如下图: 从上图中可以看出,键盘的设备文件名为/dev/stdin,显示器标准正确输入的设备文件名为/dev/stdout,显示器标准错误输入的设备文件名为/dev/stderr. 这些设备文件名非常不好记忆,Shell允许我们用文件描述符来描…
我们之前已经有文章说过管道符了,今天这里再简单总结一下用法. 1.行提取命令grep grep命令的作用,是在指定的文件中,搜索符合条件的字符串. 命令格式: [root@localhost ~ ] # grep [选项] "搜索内容" 文件名 选项: -A 数字:列出符合条件的行,并列出后续的n行…
目录 1.变量定义 2.变量调用 3.变量的修改 4.查看变量 (1)-u选项说明: (2)-x选项说明: (3)set命令说明: 5.变量删除 1.变量定义 变量正确定义. 格式:变量名="变量值" # 两种方式都可以 [root@localhost ~]# name=zhenniubi [root@localhost ~]# name="zhen niubi" 变量名不能用数字开头. [root@localhost ~]# 2name="zhen ni…
目录 1.用户自定义的环境变量 (1)环境变量设置 (2)查询自定义环境变量 (3)删除自定义环境变量 2.系统自带的环境变量--PATH环境变量 (1)PATH环境变量 (2)PATH环境变量的作用 (3)配置命令的环境变量 提示: 在Shell中,环境变量分为两种.一种是用户自定义的环境变量,另一种是系统自带的环境变量. 而在系统自带的环境变量中,PATH环境变量.PS1环境变量.LANG语系变量需要进行说明一下. 本篇文章主要说明用户自定义的环境变量,和PATH环境变量. 1.用户自定义的…