Shell学习笔记
一、linux系统与shell环境准备
- linux的组成:
- linux内核:
- linux与Windows的区别:
- linux的文件目录:
-
linux的基本命令:
-
Shell介绍可以和linux内核进行交互的工具
- 常见的shell:
- Bourne Shell (/usr/bin/sh或/bin/sh)
- Bourne Again Shell (/bin/bash)
- C Shell (/usr/bin/csh)
- K Shell (/usr/bin/ksh)
- Shell for Root (/sbin/sh)
图中第一行#! /bin/bash告诉操作系统使用的是bash Shell,第二行echo "hello"是让Shell输出一个hello。
- 运行shell
- chmod +x ./test.sh # 使脚本具有执行权限
- /bin/sh test.sh
二、Linux三剑客与管道使用
- 管道、正则表达式、grep、sed、awk
-
管道 |
Linux提供管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入
- echo “hello1234” | grep “hello”
- 正则表达式
- 正则表达式就是记录文本规则的代码
- 演练环境:https://tool.oschina.net/regex
- 举例:
- 找出所有的 hi 单词 \bhi\b
- hi 单词后面有Lucy单词 \bhi\b.*\blucy\b
- 以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字 0\d{2}-\d{8}
-
练习:
- 匹配以字母a开头的单词 \ba\w*\b
- 匹配刚好6个字符的单词 \b\w{6}\b
- 匹配1个或更多连续的数字 \d{1,} \d+
- 5位到12位QQ号 ^\d{5,12}
- grep
- 实战1:
- 实战2:
- 查找以s开头的行
- grep ^s test.txt
- 查找以n结尾的行
- grep n$ test.txt
- 查找以s开头的行
-
命令解析:
-
常用动作:
- a:新增 sed -e ‘4 a newline’ 在第4行后面增加一行,内容newline
- c:取代 sed -e ‘2,5c No 2-5 number’ 使用c后面的内容去取代2-5行的内容
- d:删除 sed -e ‘2,5d’ 删除2-5行
- i:插入 sed -e ‘2i newline’ 在第二行前面插入新的一行,内容newline
- p:打印 sed -n ‘/root/p’ 打印带root的内容,p指打印
- s:取代 sed -e ‘s/old/new/g’ 用新的内容new取代旧的old的内容,s代表取代,g代表全局,有多个的匹配时候,可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个
-
实战1:
-
在第二行后加上 newline
- sed ‘2a drink tea’ test.txt
-
在第二行前加上newline
- sed ‘2i drink tea’ test.txt
实战3:
- sed ‘2i drink tea’ test.txt
-
全局替换
- sed -e ‘s/root/hello/g’ test.txt
-
- sed -i ‘s/root/hello/g’ test.txt
- sed -i ‘s/root/hello/g’ test.txt
-
命令形式:awk ‘pattern + action’ [FILE]
-
awk ‘pattern + action [filenames]’
-
常用参数:
-
实战1:
-
搜索/etc/passwd有关root关键字的所有行,并显示对应的shell
- awk -F: ‘/root/{print $7}’ /etc/passwd
-
打印/etc/passwd/的第二行信息
- awk -F: ‘NR==2{print $0}’ /etc/passwd
- awk -F: ‘NR==2{print $0}’ /etc/passwd
-
实战2:
-
使用begin加入标题
- awk -F: ‘BEGIN {print “BEGIN”,“BEGIN”}{print $1,$2}’ /etc/passwd
-
自定义分隔符
- echo “111 222|333 444|555 666”|awk ‘BEGIN{RS="|"}{print $0}’
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。