Linux体系结构
Linux
- 体系结构分为用户态和内核态
- 内核:本质上是一段管理计算机硬件设备的程序
- 系统调用:内核的访问接口,是一种不能再简化的操作
- 公用函数库:系统调用的组合拳
- Shell:命令解释器,可编程
查找特定文件
find
# 语法:
find path [options] params- 在指定目录下查找文件
示例:
find / -name "target.java"# 以target开头 不区分大小写 支持正则表达式
find / -iname "target*"
检索文件内容
grep
# 语法:
grep [OPTION]... PATTERN [FILE]...全称:Global Regular Expression Print
作用:查找文件里符合条件的字符串
示例:
# 从target开头的文件中找包含moo的行
grep "moo" target*# 通过正则表达式匹配(输入由管道输入)
grep -o 'engin[0-9]*'# 过滤掉相关字符串的内容
grep -v 'grep'管道操作符 |
- 可将指令连接起来,前一个指令的输出作为后一个指令的输入
- 只处理正确输出,无法接受错误输出
- 必须后面的命令接受标准输入流,否则数据会被抛弃
| 组合其他操作符
# 找到根目录下target的文件
find / | grep "target"对文件内容做统计
awk
语法:
Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
awk options 'cmd' file- 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
- 将切片直接保存在内建的变量中,2…($0表示行的全部)
- 支持对单个切片的判断,支持循环判断,默认分隔符未空格
用法:
示例:
# 输出每行的第一和第四组数据,按空格分组
awk '{print $1,$4}' nestat.txt# 如果第一组等于tcp,第二组等于1则输出全行
awk '$1=="tcp"&&$2=="1"{print $0}'# 如果第一组等于tcp,第二组等于1则输出全行 如果是第一行数据,也输出(NR即当前为第几行的内建变量)
awk '($1=="tcp"&&$2=="1") || NR == 1 {print $0}'# 按照逗号分组
awk -F "," '{print}' text.txt统计相同行出现的次数并列出统计结果
批量替换文本内容
sed
语法:
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed [OPTION]... 'sed command' filename- 全名 stream editor ,流编辑器,用程序的方式编辑文本
- 适用于对文本的行内容进行处理
用法:
# 把Str开头的单词换成String s表示字符串操作
# 不加 -i 只输出到终端,加了才输出到源文件
sed -i 's/^Str/String/' replace.java# 把结尾的.改成;
sed -i 's/\.$/\;/' replace.java# 把 jack改成me 加g代表全文替换,否则只替换每行第一次匹配的地方
sed -i 's/jack/me/g' replace.java# 删除空白行 d表示删除,没加s因为不是字符串操作
sed -i '/^ *$/d' replace.javals
mv
cp
ps
rm
cd
touch
vi/vim
shutdowm
ifconfig
uname
pwd
scp