收藏 分享(赏)

centos学习笔记.docx

上传人:HR专家 文档编号:5935055 上传时间:2019-03-21 格式:DOCX 页数:61 大小:1.06MB
下载 相关 举报
centos学习笔记.docx_第1页
第1页 / 共61页
centos学习笔记.docx_第2页
第2页 / 共61页
centos学习笔记.docx_第3页
第3页 / 共61页
centos学习笔记.docx_第4页
第4页 / 共61页
centos学习笔记.docx_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、Shell 脚本的执行方式1、echo 输出命令rootlocalhost # echo 选项 输出内容选项:-e: 支持反斜线控制的字符转换rootlocalhost # echo -e “abbc“#删除左侧字符rootlocalhost # echo -e “atbtcndtetf“#制表符与换行符2、第一个脚本rootlocalhost sh# vi hello.sh#!/bin/Bash#The first program# Author: shenchao (E-mail: )echo -e “Mr. Shen Chao is the most honest man in Lamp

2、Brother“3、脚本执行 赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh 通过 Bash 调用执行脚本 bash hello.sh_历史命令与命令补全1、历史命令rootlocalhost # history 选项 历史命令保存文件选项:-c: 清空历史命令-w: 把缓存中的历史命令写入历史命令保存文件/.bash_history历史命令默认会保存 1000 条,可以在环境变量配置文件 /etc/profile 中进行修改历史命令的调用 使用上、下箭头调用以前的历史命令 使用“!n”重复执行第 n 条历史命令 使用“!”重复执行上一条命令 使用“!字串

3、”重复执行最后一条以该字串开头的命令2、命令与文件补全 在 Bash 中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全_命令别名1、命令别名rootlocalhost # alias 别名=原命令#设定命令别名rootlocalhost # alias#查询命令别名2、让别名永久生效rootlocalhost # vi /root/.bashrc3、删除别名rootlocalhost # unalias 别名Bash 常用快捷键 输入输出重定向注意错误用 2 表示。举例:rootlocalhost tmp# touch nfilerootlo

4、calhost tmp# date nfilerootlocalhost tmp# cat nfile2018 年 01 月 07 日 星期日 09:16:22 CSTrootlocalhost tmp# date nfilerootlocalhost tmp# cat nfile 2018 年 01 月 07 日 星期日 09:16:36 CST2018 年 01 月 07 日 星期日 09:16:49 CSTrootlocalhost tmp# lsdd 2 nfilerootlocalhost tmp# cat nfile-bash: lsdd: 未找到命令rootlocalhost t

5、mp# dateaaafile_1 2&1rootlocalhost tmp# cat file_1-bash: dateaaa: 未找到命令rootlocalhost tmp# lsdd &file_2rootlocalhost tmp# cat file_21filefile_1file_2-bash: lsdd: 未找到命令3、输入重定向(很少用)rootlocalhost # wc 选项 文件名选项:-c 统计字节数-w 统计单词数-l 统计行数命令 按位左移、按位右移 8 =, 小于或等于、大于或等于、小于、大于 7 = , != 等于、不等于 6 & 按位与 5 按位异或 4 |

6、按位或 3 & 逻辑与 2 | 逻辑或 1 =,+=,-=,*=,/=,%=,&=, =, |=, = 赋值、运算且赋值 rootlocalhost # aa=$( (11+3)*3/2 )#虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级rootlocalhost # bb=$( 14%3 )#14 不能被 3 整除,余数是 2rootlocalhost # cc=$( 1 & 0 )#逻辑与运算只有想与的两边都是 1,与的结果才是 1,否则与的结果是 0变量测试与内容替换(需要仔细看。有点绕)变量置换方式 变量 y 没有设置 变量 y 为空值 变量 y 设置值 x=$y-新值 x

7、=新值 x 为空 x=$y x=$y:-新值 x=新值 x=新值 x=$y x=$y+新值 x 为空 x=新值 x=新值 x=$y:+新值 x 为空 x 为空 x=新值 x=$y=新值 x=新值 y=新值 x 为空 y 值不变 x=$y y 值不变 x=$y:=新值 x=新值 y=新值 x=新值 y=新值 x=$y y 值不变 x=$y?新值 新值输出到标准错误输出(就是屏幕)x 为空 x=$y x=$y:?新值 新值输出到标准错误输出 新值输出到标准错误输出 x=$y 例子 1:测试 x=$y-新值rootlocalhost # unset y#删除变量 yrootlocalhost # x

8、=$y-new#进行测试rootlocalhost # echo $xnew#因为变量 y 不存在,所以 x=newrootlocalhost # y=“#给变量 y 赋值为空rootlocalhost # x=$y-new#进行测试rootlocalhost # echo $xrootlocalhost # y=old#给变量 y 赋值rootlocalhost # x=$y-new#进行测试rootlocalhost # echo $xOld环境变量配置文件简介1、source 命令rootlocalhost # source 配置文件或rootlocalhost # . 配置文件2、环境

9、变量配置文件简介 环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如 PATH、 HISTSIZE、PS1、HOSTNAME 等默认环境变量。 /etc/profile /etc/profile.d/*.sh /.bash_profile /.bashrc /etc/bashrc/etc/profile 的作用: USER 变量: LOGNAME 变量: MAIL 变量: PATH 变量: HOSTNAME 变量: HISTSIZE 变量: umask: 调用/etc/profile.d/*.sh 文件/.bash_profile 的作用 调用了/.bashrc 文件。

10、在 PATH 变量后面加入了“:$HOME/bin”这个目录/.bashrc 的作用 定义默认别名 调用/etc/bashrc/etc/bashrc 的作用 PS1 变量 umask PATH 变量 调用/etc/profile.d/*.sh 文件其他配置文件和登录信息1、注销时生效的环境变量配置文件 /.bash_logout2、其他配置文件 /bash_history3、Shell 登录信息 本地终端欢迎信息: /etc/issue转义符 作 用 d 显示当前系统日期 s 显示操作系统名称 l 显示登录的终端号,这个比较常用。 m 显示硬件体系结构,如 i386、i686 等 n 显示主机

11、名 o 显示域名 r 显示内核版本 t 显示当前系统时间 u 显示当前登录用户的序列号 远程终端欢迎信息: /etc/ 转义符在/etc/ 文件中不能使用 是否显示此欢迎信息,由 ssh 的配置文件/etc/ssh/sshd_config 决定,加入“Banner /etc/”行才能显示(记得重启 SSH 服务)登陆后欢迎信息:/etc/motd 不管是本地登录,还是远程登录,都可以显示此欢迎信息基础正则表达式1、正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、 awk、sed 等命令可以支持正则表达式。 通配符用来匹配符合条件的文件名,通配符是完全匹

12、配。ls、find、cp 这些命令不支持正则表达式,所以只能使用 shell 自己的通配符来进行匹配了。2、基础正则表达式元字符 作 用 * 前一个字符匹配 0 次或任意多次。 . 匹配除了换行符外任意一个字符。 匹配行首。例如:hello 会匹配以 hello 开头的行。 $ 匹配行尾。例如:hello&会匹配以 hello 结尾的行。 匹配中括号中指定的任意一个字符,只匹配一个字符。 例如:aoeiu 匹配任意一个元音字母,0-9 匹配任意一位数字, a-z0-9匹配小写字和一位数字构成的两位字符。 匹配除中括号的字符以外的任意一个字符。例如:0-9 匹配任意一位非数字字符,a-z 表示任

13、意一位非小写字母。 转义符。用于取消讲特殊符号的含义取消。 n 表示其前面的字符恰好出现 n 次。例如:0-94 匹配 4 位数字,13-80-99 匹配手机号码。 n, 表示其前面的字符出现不小于 n 次。例如: 0-92, 表示两位及以上的数字。 n,m 表示其前面的字符至少出现 n 次,最多出现 m 次。例如: a-z6,8 匹配 6 到 8 位的小写字母。 举例子“*”前一个字符匹配 0 次,或任意多次 grep “a*“ test_rule.txt #匹配所有内容,包括空白行 grep “aa*“ test_rule.txt #匹配至少包含有一个 a 的行 grep “aaa*“ t

14、est_rule.txt 匹配最少包含两个连续 a 的字符串 grep “aaaaa*“ test_rule.txt #则会匹配最少包含四个个连续 a 的字符串“.” 匹配除了换行符外任意一个字符 grep “sd“ test_rule.txt #“sd”会匹配在 s 和 d 这两个字母之间一定有两个字符的单词 grep “s.*d“ test_rule.txt #匹配在 s 和 d 字母之间有任意字符 grep “.*“ test_rule.txt #匹配所有内容“”匹配行首,“$”匹配行尾 grep “M“ test_rule.txt #匹配以大写“M”开头的行 grep “n$“ tes

15、t_rule.txt #匹配以小写“n”结尾的行 grep -n “$“ test_rule.txt #会匹配空白行“” 匹配中括号中指定的任意一个字符,只匹配一个字符 grep “saoid“ test_rule.txt #匹配 s 和 i 字母中,要不是 a、要不是 o grep “0-9“ test_rule.txt #匹配任意一个数字 grep “a-z“ test_rule.txt #匹配用小写字母开头的行“” 匹配除中括号的字符以外的任意一个字符 grep “a-z“ test_rule.txt #匹配不用小写字母开头的行 grep “a-zA-Z“ test_rule.txt #

16、匹配不用字母开头的行“” 转义符 grep “.$“ test_rule.txt #匹配使用“. ”结尾的行“n”表示其前面的字符恰好出现 n 次 grep “a3“ test_rule.txt #匹配 a 字母连续出现三次的字符串 grep “0-93“ test_rule.txt #匹配包含连续的三个数字的字符串“n,”表示其前面的字符出现不小于 n 次 grep “0-93,a-z“ test_rule.txt #匹配最少用连续三个数字开头的行“n,m”匹配其前面的字符至少出现 n 次,最多出现 m 次 grep “sa1,3i“ test_rule.txt #匹配在字母 s 和字母 i

17、 之间有最少一个 a,最多三个 a字符截取命令cut 字段提取命令 主要进行列数据操作Print 命令awk 命令 主要进行列数据操作sed 命令 主要进行 行数据操作一、cut 字段提取命令rootlocalhost # cut 选项 文件名 选项: -f 列号: 提取第几列 -d 分隔符: 按照指定分隔符分割列rootlocalhost # vi student.txtID Name gender Mark1 Liming M 862 Sc M 903 Gao M 83rootlocalhost # cut -f 2 student.txtrootlocalhost # cut -f 2,

18、3 student.txtrootlocalhost # cut -d “:“ -f 1,3 /etc/passwdcut 命令的局限rootlocalhost # df -h | cut -d “ “ -f 1,3当以空格为分隔符进行提取的时候,会失败,如下:rootlocalhost # df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 17G 1.1G 16G 7% /devtmpfs 901M 0 901M 0% /devtmpfs 912M 0 912M 0% /dev/shmtmpfs 912M 8.6M 904M 1% /runt

19、mpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 143M 872M 15% /boottmpfs 183M 0 183M 0% /run/user/1000rootlocalhost # df -h | cut -d “ “ -f 1,2文件系统 /dev/mapper/centos-root devtmpfs tmpfs tmpfs tmpfs /dev/sda1 tmpfs 2、Print 命令printf 输出类型输出格式 输出内容输出类型:%ns: 输出字符串。 n 是数字指代输出几个字符%ni: 输出整数。n 是数字指代输出几个数字

20、%m.nf: 输出浮点数。m 和 n 是数字,指代输出的整数 位数和小数位数。如%8.2f 代表共输出 8 位数, 其中 2 位是小数,6 位是整数。输出格式:a: 输出警告声音b: 输出退格键,也就是 Backspace 键f: 清除屏幕n: 换行r: 回车,也就是 Enter 键t: 水平输出退格键,也就是 Tab 键v: 垂直输出退格键,也就是 Tab 键rootlocalhost # printf %s 1 2 3 4 5 6rootlocalhost # printf %s %s %s 1 2 3 4 5 6rootlocalhost # printf %s %s %s 1 2 3

21、4 5 6rootlocalhost # printf %s %s %sn 1 2 3 4 5 6rootlocalhost # vi student.txtID Name PHP Linux MySQL Average1 Liming 82 95 86 87.662 Sc 74 96 87 85.663 Gao 99 83 93 91.66printf %s $(cat student.txt)#不调整输出格式printf %st %st %st %st %st %st n $(cat student.txt)#调整格式输出在 awk 命令的输出中支持 print 和 printf 命令 p

22、rint:print 会在每个输出之后自动加入一个换行符( Linux 默认没有 print 命令) printf:printf 是标准格式输出命令,并不会自动加入换行符,如果需要换行,需要手工加入换行符3、awk 命令# awk 条件 1动作 1 条件 2动作 2 文件名条件(Pattern):一般使用关系表达式作为条件x 10 判断变量 x 是否大于 10x=10 大于等于x= 87 printf $2 “n“ 4、sed 命令sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。rootlocalhost

23、 # sed 选项 动作 文件名选项:-n: 一般 sed 命令会把所有数据都输出到屏幕 , 如果加入此选择,则只会把经过 sed 命令处 理的行输出到屏幕。-e: 允许对输入数据应用多条 sed 命令编辑-i: 用 sed 的修改结果直接修改读取数据的文件, 而不是由屏幕输出动作:a : 追加,在当前行后添加一行或多行。添加多行时,除最后 一行 外,每行末尾需要用“”代表数据未完结。c : 行替换,用 c 后面的字符串替换原数据行,替换多行时,除最 后一行外,每行末尾需用“”代表数据未完结。i : 插入,在当期行前插入一行或多行。插入多行时,除最后 一行 外,每行末尾需要用“”代表数据未完结。nd: 删除,n 代表删除指定的行。np: 打印,n 代表输出指定的行。s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范 围 s/旧字串/新字串 /g”(和 vim 中的替换格式类似)。学生成绩表rootlocalhost # vi student.txtID Name PHP Linux MySQL Average1 Liming 82 95 86 87.662 Sc 74 96 87 85.663 Gao 99 83 93 91.66行数据操作rootlocalhost # sed 2p student.txt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报