2)环境变量:这种变量中主要保存的是和系统操作环境相关的数据。

export 变量名=变量值    设置环境变量

env                     查询变量

unset变量名             删除变量

pstree                   查询shell继承树

◆PATH:命令执行路径

◆PS1:定义系统提示符的变量

\d:显示日期,格式为“星期月日”

\h:显示简写主机名。如默认主机名“localhost”

\t:  显示24小时制时间,格式为“HH:MM:SS”

\T:  显示12小时制时间,格式为“HH:MM:SS”

\A:  显示24小时制时间,格式为“HH:MM”

\u:  显示当前用户名

\w:  显示当前所在目录的完整名称

\W:  显示当前所在目录的最后一个目录

#:  执行的第几个命令

\$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”

3)位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。

位置参数变量

作用

$n

n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}.

$*

这个变量代表命令行中所有的参数,*把所有的参数看成一个整体

$@

这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

$#

这个变量代表命令行中所有参数的个数

◆read [选项] [变量名] 接受键盘输入

选项:

-p“提示信息”:在等待read输入时,输出提示信息

-t秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间

-n字符数:read命令只接受指定的字符数,就会执行

-s:隐藏输入的数据,适用于机密信息的输入

4)预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

预定义变量

作用

$?

最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确

$$

当前进程的进程号(PID)

$!

后台运行的最后一个进程的进程号(PID)

6、数值运算与运算符

1)declare声明变量类型

declare [+/-][选项] 变量名

选项:

:给变量设定类型属性

十:取消变量的类型属性

-i:将变量声明为整数型(integer)      declare -i c=$a+$b

-x:将变量声明为环境变量

-p:显示指定变量的被声明的类型

2) expr或let数值运算工具

d=$(expr $a+$b)      d的值是a和b的和。注意“+”号左右两侧必须有空格

3)S((运算式))或$[运算式]

f=$(($a+$b))

g=$[ $a+$b]

4)运算符

7、变量测试与内容替换

8、环境变量配置文件

环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量

(/etc/profile、/etc/profile.d/*.sh、家/.bash profile、家/.bashrc、/etc/bashrc)

1)source命令,使配置文件直接生效

source配置文件 或 . 配置文件

9、正则表达式与通配符

◆正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

◆通配符用来匹配符合条件的文件名,通配符是完全匹配。1s、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。

10、字符截取命令

1)grep 在文件中搜寻字串匹配的行并输出

英文原意:global search regular expression(RE) and print out the line

语法:grep [-i/-v] [指定字串] [文件]

常用选项

-i:不区分大小写

-v:排除指定字串所在行

2)cut  截取文件的第几列,默认分隔符是制表符

语法:cut [选项] 文件名

选项:

-f列号:提取第几列

-d分隔符:按照指定分隔符分割列

3)awk

◆格式:awk ‘条件1{动作1} 条件2{动作2}.…’ 文件名

◆条件(Pattern):一般使用关系表达式作为条件

x>10判断变量x是否大于10,关系成立后才执行动作

x>=10大于等于

x<=10小于等于

$n 代表第n列,$0代表这一行

BEGIN{动作} 在程序执行前先执行这个动作

END{动作} 在程序执行后再执行这个动作

◆在awk命令的输出中支持print和printf命令

print会在每个输出之后自动加入一个换行符(Linux默认没有print命令)

printf是标准格式输出命令。如果需要换行,需要手工加入换行符\n

◆动作(Action):

格式化输出(print、printf)

流程控制语句

FS:内置对象,指定分隔符

4)sed命令

sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、香换、删除、新增的命令。

语法:sed [选项] ‘[动作]’ 文件名

选项:

-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处

理的行输出到屏幕。

-e:允许对输入数据应用多条sed命令编辑

-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作:

a:追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 “2a hello” 在第二行后面追加hello

c:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结。    “2c  helloword” 将第二行替换为新行

i:插入,在当前行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。   “2i hello” 在第2行前插入一行

d:删除,删除指定的行。“2,4d” 删除第2到第4行

p:打印,输出指定的行。“2p” 输出第二行

s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)。   “3s/aa/bb/g” 将第3行的aa改成bb

11、字符处理命令

1)排序命令sort

语法:sort [选项] 文件名

选项:

-f:忽略大小写

-n:以数值型进行排序,默认使用字符串型排序

-r:反向排序

-t:指定分隔符,默认是分隔符是制表符

-k n[,m]:按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

2)统计命令wc

语法:wc[选项]文件名

选项:

-l:只统计行数

-w:只统计单词数

-m:只统计字符数

12、判断命令

1)判断格式

◆ test 判断     test -e /root/install.log

◆[ 判断 ]       [ -e /root/install.log ]

2)按照文件类型进行判断

3)按照文件权限进行判断

4)两个文件之间进行比较

5)两个整数之间比较

6)字符串的判断

7)多重条件判断

13、流程控制语句

1)if语句

◆if语句使用fi结尾,和一般语言使用大括号结尾不同

[条件判断式]就是使用test命令判断,所以中括号和条件判断式之间必须有空格

then后面跟符合条件之后执行的程序,可以放在[]之后,用“;”分割。也可以换行写入,就不需要“;”了

◆单分支if条件语句

if[ 条件判断式 ];then

程序

fi

或者

if[ 条件判断式 ]

then

程序

fi

◆双分支if条件语句

if[ 条件判断式 ]

then

条件成立时,执行的程序

else

条件不成立时,执行的另一个程序

fi

◆多分支if条件语句

if[ 条件判断式1 ]

then

当条件判断式1成立时,执行程序1

elif[ 条件判断式2 ]

then

当条件判断式2成立时,执行程序2

……省略更多条件

else

当所有条件都不成立时,最后执行此程序

fi

2)case多分支判断语句

case s变量名in

"值1")

执行程序1

;;

"值2")

执行程序2

;;

…省略其他分支…

*)

如果变量的值都不是以上的值,则执行此程序

;;

esac

3)循环

◆   foreach

for 变量in值1值2值3..

do

程序

done

◆普通for

for((初始值;循环控制条件;变量变化))

do

程序

done

◆while

while [条件判断式]

do

程序

done

◆until:只要条件判断式不成立则进行循环。一旦循环条件成立,则终止循环。

until [条件判断式]

do

程序

done

Linux 第十五天的更多相关文章

  1. 攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限

    一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大 ...

  2. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  3. 十五个最常用Linux命令行 - imsoft.cnblogs

    众多Linux管理员在使用Linux的时候会经常使用到很多Linux命令行,其中有绝大部分不是经常使用到的.在本文中主要为大家总结了经常使用的十五个最常用Linux命令行,希望对刚刚接触Linux命令 ...

  4. 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记

    第十五章:控制脚本 处理信号 重温Linux信号 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能 ...

  5. Linux学习之CentOS(十五)----磁盘管理之 启动挂载(转)

    启动挂载 /etc/fstab 及 /etc/mtab 刚刚上面说了许多,那么可不可以在启动的时候就将我要的文件系统都挂好呢?这样我就不需要每次进入 Linux 系统都还要在挂载一次呀!当然可以啰!那 ...

  6. Linux时间子系统之(十五):clocksource

    专题文档汇总目录 Notes:clocksource基本概念,struct clocksource详解:注册和注销clocksource:内核如何选取clocksource:clocksource相关 ...

  7. 《linux就该这么学》第十五节课:第14,15章,dhcp服务和邮件系统

    (借鉴请改动) 13章收尾 13.6.分离解析技术    1.在主配置文件中改两个any         2.编辑区域配置文件,写入acl,使用match匹配                      ...

  8. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  9. 我的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

随机推荐

  1. logstash定时将mysql种数据同步到elasticsearch

    以Windows操作系统为例 1.下载logstash安装包,解压,配置好环境 2.在config目录中新增一个jdbc.conf input { stdin { } jdbc { # mysql 数 ...

  2. Redis的Errorlog或者启动日志(错误日志)的配置

    Errorlog或者是运行日志是任何一个软件的运行中异常诊断必看的文件之一,折腾Redis的过程中以为有默认的错误日志(或启动日志),不过一直没有发现类似的日志文件,在看了默认的配置文件之后,发现Re ...

  3. AX2009里调用.NET DLL的效率问题

    经常在AX2009里引用.NET的DLL,因为序列化和反序列化,用.NET的定义的实体方便一些,平时数据量不大,也没觉得有什么问题,今天要把几万条数据从数据库中取出来序列化以后,调用第三方系统的接口, ...

  4. 【JDBC】java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    在使用阿里的druid 时,报了一个异常java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized ...

  5. Windows Server 2012 R2 双网卡绑定

    双网卡绑定主要有以下两点好处: 1.实现网络容错:主主模式和主被模式 2.带宽聚合 首先准备工作需要两台虚拟机,Server01是目标服务器,需要有两块网卡,并且清空两块网卡的现有配置,Server0 ...

  6. 登录注册页面(连接MySQL8.0.15版本)

    原文链接:https://mp.weixin.qq.com/s?__biz=MzI4Njg5MDA5NA==&mid=2247483779&idx=1&sn=e23e68e96 ...

  7. Ambari2.6.2 HDP2.6.5 大数据集群搭建

    Ambari 2.6.2 中 HDFS-2.7.3 YARN-2.7.3 HIVE-1.2.1 HBASE-1.1.2 ZOOKEEPER-3.4.6 SPARK-2.3.0 注:本文基于root用户 ...

  8. 微信小程序获取二维码参数

    var scene = decodeURIComponent(options.scene)

  9. CentOS7+CDH5.14.0安装CDH错误排查:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master

    错误:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master 如果重启服务之后无法排除该问题,请执行如下操作(CM换成自己的版本号): rm -f /o ...

  10. docker 容器 详解

    docker run  ## 创建一个新容器 [root@localhost ~]# docker run --help Usage: docker run [OPTIONS] IMAGE [COMM ...