最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-ge 检测第一个数值是否大于等于右边的数值
-le 检测第一个数值是否小于等于第二个数值
**3.**逻辑运算符
运算符 说明
! 非运算,取反
-o 或运算,第一个表达式为true则返回true
-a 与(并且)运算,所有表达式都为true才返回true
**4.**字符串运算符
运算符 说明
= 检测两个字符是否相等
!= 检测两个字符是否不相等
-z 检测字符串长度是否为0
-n 检测字符串长度是否不等于0
str 检测字符串是否为空
**5.**文件测试运算符
操作符 说明
-b file 检测文件是否是块文件
-c file 检测文件是否是字符设备文件
-d file 检测文件是否是目录
-f file 检测文件是否是普通文件
-p file 检测文件是否是有名管道
-g file 检测文件是否设置了SGID位
-k file 检测文件是否设置了粘着位
-u file 检测文件是否设置了SUID位
-r file 检测文件是否可读
-w file 检测文件是否可写
-x file 检测文件是否可执行
-s file 检测文件是否为空
-e file 检测文件是否存在
接受键盘输入
read [选项] [变量名]
选项:
-a:后面跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-p:提示信息:在等待read输入时,输出提示信息
-t:秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
-n:数字:read命令只接受指定的字符数,就会执行
-s:隐藏输入的数据,适合机密信息的输入
-d:后面跟一个标志符,其实只是其后的第一个字符有用,作为结束的标志
-e:在输入的时候可以使用命令补全功能
变量名:
变量名可以自定义,如果不指定变量名,会把输入保存默认变量REPLY
如果只提供了一个变量名,则整个输入行赋予给变量
如果提供了一个以上的变量,则输入行分为若干字,一个接一个的赋予各个变量,而命令行上的最后一个变量取得剩余的所有字
流程控制
单分支if语法:
if [ 条件判断式 ]
then
程序
fi
双分支if条件语句
if [ 条件判断式 ]
then
条件成立时,执行的程序
else
条件不成立,执行的另一个程序
fi
多分支if条件语句
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
else
当所有条件都不成立,最后执行程序
fi
多分支case条件语句
case $变量名 in
“值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值2,则执行程序2
;;
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
循环语句
for****语法一:
for 变量 in 值1 值2 值3 (可以是一个文件等)
do
程序
done
**注:**这种语法中for循环的次数,取决于in后面值的个数(空格分割),有几个值就循环几次,并且每次循环都把值赋予变量。
for****语法二:
for ((初始值;循环控制条件;变量变化))
do
程序
done
注:语法二注意:
初始值:在循环开始时,需要给某个变量赋予初始值,如i=1
循环控制条件:用于指定变量循环次数,如i<=100,则只要i的值小于等于100,循环就会继续
变量变化:每次循环之后,变量该如何变化,如i=i+1。代表每次循环之后,变量i的值都加1
while****循环语法:
while [ 条件判断式 ]
do
程序
done
until****循环语法:
until [ 条件判断式 ]
do
程序
done
**注:**和whlie循环相反,until循环时只要条件判断式不成立则进行循环,并执行循环程序,一旦循环条件成立,则终止循环。
函数
语法:
function 函数名 () {
程序
}
特殊流程控制语句
exit****语句:
注:系统中使用exit命令,用于退出当前用户。可是在Shell脚本中,exit语句是用来退出当前脚本
exit [返回值]
返回值:这个脚本执行完之后的返回值就是我们自己定义的返回值。
break****语句:
注:当程序执行到break语句时,会结束整个当前循环。
continue****语句:
注:continue也是结束流程控制语句,如果在循环中,continue语句只会结束单次当前循环。
字符截取,替换和处理命令
正则表达式
元字符 描述
\ 转义符,将特殊字符进行转义,忽略其特殊意义
^ 匹配行首,在awk中^是匹配字符串的开始
匹配行尾, a w k 中, 匹配行尾,awk中, 匹配行尾,awk中,则是匹配字符的结尾
. 匹配换行符之外的任意单个字符
[ ] 匹配包含在[ ^字符 ]之中的任意一个字符
[ ^ ] 匹配[ ^字符 ]之外的任意一个字符
[ - ] 匹配[ - ]中指定范围中的任意一个字符,要写成递归
? 匹配之前的项1次或者0次
| 匹配之前的项1次或者多次 | sa-6+匹配sa-6、sa-666,不能匹配sa-
| 匹配之前的项0次或者多次| co*l匹配cl、col、cool、coool等
() | 匹配表达式,创建一个用于匹配的子串 | ma(tri)?匹配max或maxtrix
{n} | 匹配之前的项n次,n是可以为0的正整数 |[0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9]
{n,}| 之前的项至少需要匹配n次 | [0-9]{2,}匹配任意一个两位数或更多位数不支持{n,}{n,}{n,}
{n,m}| 指定之前的项至少匹配n次,最多匹配m次,n<=m | [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字
|| 交替匹配|两边的任意一项 | ab(c|d)匹配abc或abd
字符截取替换命令
cut****列提取命令
语法:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割列
-n 取消分割多字节字符
-c 字符范围: 不依赖分隔符来区分列,而是通过字符范围(行首为0)来进行字段提取。“n-”表示从第n个字符到行尾;“n-m”从第n个字符到第m个字符;“一m”表示从第1个字符到第m个字符。
–complement 补足被选择的字节、字符或字段
–out-delimiter 指定输出内容是的字段分割符
awk编程
awk****概述
注:awk是一种处理文本文件的语言,是一个强大的文本分析工具
printf****格式化输出语法:
printf ‘输出类型输出格式’ 输出内容
输出类型:
%c: ASCII字符.显示相对应参数的第一个字符
%-ns: 输出字符串,减号“-”表示左对齐(默认右对齐),n是数字指代输出几个字符,几个参数就写几个%-ns
%-ni: 输出整数,n是数字指代输出几个数字
%f: 输出小数点右边的位数
%m.nf: 输出浮点数,m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2位是小数,6位是整数。
输出格式:
\a: 输出警告声音
\b: 输出退格键,也就是Backspace键
\f: 清除屏幕
\n: 换行
\r: 回车,也就是Enter键
\t: 水平输出退格键,也就是Tab 键
\v: 垂直输出退格键,也就是Tab 键
awk****基本使用语法:
amk ‘条件1{动作1} 条件{动作2}…’ 文件名
条件:
一般使用关系表达式作为条件
动作:
格式化输出
流程控制语句
常用参数:
-F:指定输入时用到的字段分割符
-v:自定义变量
-f:从脚本中读取awk命令
-m:对val值设置内的限制
awk****的条件
条件 说明
BEGIN 在awk程序一开始时,尚未读取任何数据之前执行。BEGIN后的动作只在程序开始时执行一次
END 在awk程序处理完所有数据,即将结束时执行。END后的动作只在程序结束时执行一次
大于
< 小于
= 大于等于
<= 小于等于
== 等于
!= 不等于
A~B 判断字符串A中是否包含能匹配B表达式的子字符串
A!~B 判断字符串A中是否不包含能匹配B表达式的子字符串
/正则/ 如果在“//”中可以写入字符,也可以支持正则表达式
awk****内置变量
awk内置变量 作用
$0 代表目前awk所读入的整行数据。
$n 代表目前读入行的第n个字段
NF 当前行拥有的字段(列)总数
NR 当前awk所处理的行,是总数据的第几行
FS 用户定义分隔符
ARGC 命令行参数个数
ARGV 命令行参数数组
FNR 当文件中的当前记录数
OFMT 数值的输出格式(默认%.6g)
OFS 输出字段的分隔符(默认空格)
ORS 输出记录分隔符(默认为换行符)
RS 输入记录分隔符(默认为换行符)
awk****函数
awk编程也允许在编程时使用函数
语法:
fuction 函数名 (参数列表) {
函数体
}
awk****中调用脚本
注:对于小的单行程序来说,将脚本作为命令行自变量传递给awk是非常简单的,而对于多行程序就比较难处理。当程序是多行的时候,使用外部脚本是很适合的。首先在外部文件中写好脚本,然后可以使用awk的-f选项,使其读入脚本并且执行。
语法:-f 脚本文件 文件目录
sed文档处理工具
注:sed主要是用来讲数据进行选取,替换,删除,新增的命令
sed****语法:
sed [选项] ‘[动作]’ 文件名
选项:
-n: 一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。
-e: 允许对输入数据应用多条sed命令编辑。
-f 脚本文件名: 从sed脚本中读入sed操作。和awk命令的-f非常类似。
-r: 在sed中支持扩展正则表达式。
-i: 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作:
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!