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. (ZT)算法杂货铺——k均值聚类(K-means)

    https://www.cnblogs.com/leoo2sk/category/273456.html 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先 ...

  2. [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题

    //如果软件在网络磁盘中或移动磁盘中运行时需要利用下面这句命令来解决 exception C0000006 异常问题 {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FRO ...

  3. Python txt文件读取写入字典的方法(json、eval)

    link:https://blog.csdn.net/li532331251/article/details/78203438 一.使用json转换方法 1.字典写入txt import json d ...

  4. pytorch1.0 安装执行后报错ImportError: No module named future.utils

    File "/usr/local/lib/python2.7/dist-packages/caffe2/python/utils.py", line 10, in <modu ...

  5. ES中的分词器

    基本概念: 全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokenizer(分词器), 这些Token会被进一步处理, 比如转成小写等, 这 ...

  6. SecureCRT连接开发板 串口传输、tftp传输

    1.串口传输 使用命令:rx  r是service, x是X-model模式 ①.rx 文件名 再按Enter键 ②.将需要传到板子上的文件 拖到SecureCRT里面,选择发送X-model选项 注 ...

  7. linux学习笔记:linux常用的命令

    2018-11-19                                      常见命令快速查询一览表 命令 功能 ls 列出目录内容 cat 链接文件并打印到标准输出设备上(通常用来 ...

  8. 关于webApi 跨域请求

    先说一下我的项目,后台单纯的webApi,前端采用Vue+axios, 说一下我遇见的问题,axios请求webAPI但是浏览器会报错,大致上就是不允许跨域请求. 于是查找解决办法发现以下代码(web ...

  9. 【noip模拟赛5】细菌 状压dp

    [noip模拟赛5]细菌   描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携 ...

  10. springmvc接收ajax传递的数组

    之前的方法我用字符串拼接.req.getParameter("参数名[]");或json方式.虽然都能用,但是都不太令我满意. 今天参考这个贴子,ajax添加 traditiona ...