Linux 第十五天
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 第十五天的更多相关文章
- 攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限
一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大 ...
- Linux Shell系列教程之(十五) Shell函数简介
本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...
- 十五个最常用Linux命令行 - imsoft.cnblogs
众多Linux管理员在使用Linux的时候会经常使用到很多Linux命令行,其中有绝大部分不是经常使用到的.在本文中主要为大家总结了经常使用的十五个最常用Linux命令行,希望对刚刚接触Linux命令 ...
- 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记
第十五章:控制脚本 处理信号 重温Linux信号 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能 ...
- Linux学习之CentOS(十五)----磁盘管理之 启动挂载(转)
启动挂载 /etc/fstab 及 /etc/mtab 刚刚上面说了许多,那么可不可以在启动的时候就将我要的文件系统都挂好呢?这样我就不需要每次进入 Linux 系统都还要在挂载一次呀!当然可以啰!那 ...
- Linux时间子系统之(十五):clocksource
专题文档汇总目录 Notes:clocksource基本概念,struct clocksource详解:注册和注销clocksource:内核如何选取clocksource:clocksource相关 ...
- 《linux就该这么学》第十五节课:第14,15章,dhcp服务和邮件系统
(借鉴请改动) 13章收尾 13.6.分离解析技术 1.在主配置文件中改两个any 2.编辑区域配置文件,写入acl,使用match匹配 ...
- 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网络知识 第十五节课 ...
- 我的MYSQL学习心得(十五) 日志
我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
随机推荐
- 5.SLB排错思路
500/502/504可能的原因: https://help.aliyun.com/knowledge_detail/55207.html 请求不均衡可能的原因: https://help.aliyu ...
- 【转】如何用Eclispe调试java -jar xxx.jar 方式执行的jar包
原文地址:https://www.cnblogs.com/zzpbuaa/p/5443269.html 有时候,我们经常会需要调试 java -jar xxx.jar方式运行的代码,而不是必须在Ecl ...
- 不用安装Oracle客户端
1 pl/sql developer 1.1 下载解压instantclient-basic-nt-12.1.0.2.0. 1.2 在其目录下新建Network/ADMIN/tnsnames.ora文 ...
- 吴裕雄 python 机器学习——分类决策树模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_s ...
- 基于WebGL架构的3D可视化平台—实现小车行走路线演示
小车行走路线演示New VS Old 刚接触ThingJS的时候,写的一个小车开进小区的演示,今天又看了教程中有movePath这个方法就重新写了一遍,其中也遇到了一些问题,尤其突出的问题就是小车过弯 ...
- ESP8266 01S WIFI 网络
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网 ...
- Excel VBA 连接各种数据库(一) VBA连接MySQL数据库
本文参考[东围居士]的cnblog博文 Excel.VBA与MySQL交互 在自己机器上调试成功,把调试中遇到的问题一并写出了. 本文主要涉及: VBA中的MySQL环境配置 VBA连接MySQL ...
- 解题(LeatestCarFee -计算最少过路费)
NowCoder今年买了一辆新车,他决定自己开车回家过年.回家过程中要经过ň个大小收费站,每个收费站的费用不同,你能帮他计算一下最少需要给多少过路费吗? 输入描述: 输入包含多组数据,每组数据第一行包 ...
- oracle数值函数 abs()、 ceil()、 cos()、 cosh()
1.abs绝对值函数 格式 abs(number) 即abs(数值) 例如 abs(100) 结果为 100,abs(-100)结果为100: 2.ceil用来取数值最小整数函数 格式 ceil(nu ...
- Selenium+TestNG+Maven+Jenkins+SVN(转载)
转载自:https://blog.csdn.net/u014202301/article/details/72354069 一. 创建Maven项目,下载Selenium和TestNG的依赖(依赖可以 ...