- Linux
- 体系结构分为用户态(用户上层活动)和内核态
- 内核
- 一段管理计算机硬件设备的程序
- 系统调用
- 内核的访问接口,是不能在简化的操作(类似原子操作)
- 公共函数库
- 对系统调用的封装
- shell
- 命令解释器 可编程 (交互时,一般一个shell对应一个终端)
echo $SHELL
查看当前shell版本cat /etc/shells
查看支持的shell版本chsh -s 路径
切换shell版本
- Linux常用指令
- find
- 语法:
find path [options] params
- 作用: 在指定目录下查找文件
- 注:若不设置路径,就在当前路径的子目录下查找
- eg:
find -name "a.go"
find / -name "a.go"
find ~ -name "a*"
模糊匹配find ~ -iname "a*"
忽略大小写man find
查看find的用法
- 语法:
- grep
- 语法
grep [options] patttern file
- 作用:查找文件里符合条件的字符串
- 注:
- 只会筛选出目标字符串所在的行
- 若不指定文件名称,则会从标准输入中读取数据
- eg:
grep "abc" fileA*
- 语法
- |
- 管道操作符
- 可将指令连起来,前一个指令的输出作为后一个指令的输入
- 注:
- 只会传正确输出,若出错,则不会往后传
- 右边命令必须能接收标准输入流,否则传递过程中数据将被抛弃
- eg:
find ~ | grep "target"
grep 'aa\[true\]' a.log | grep -o '\[[0-9a-z]*\]'
(\为转义,-o表示匹配正则)grep -v "aa"
(筛选出不含aa的)
- awk
- 语法:
awk [options] 'cmd' file
- 作用:
- 一次读取一行文本按输入的分隔符进行切片,切成多个组成部分
- 将切片保存在内建变量里($1,$2…$0表示全部)
- 支持对单个切片进行判断,支持循环判断
- 默认分隔符为空格
- 注:NR为内建变量,默认为读取的行数
- eg
awk '{print $1,$4}' netstat.txt
awk '$1=="tcp" && $2==1{print $0}' netstat.txt
awk '($1=="tcp" && $2==1) || NR == 1{print $0}' netstat.txt
awk -F "," '{print $2}' test.txt
-F 以什么符号分割- awk ‘{arr[$1]++}END{for(i in arr)print i “\t” arr[i]}’
- 解释: 定义arr数组,下表为$1,值为
int
,若果遇到下标相同的,则值++
,然后遍历arr,输出下表和对应的值 - 作用:统计次数
- 解释: 定义arr数组,下表为$1,值为
- 语法:
- sed
- 语法:
sed [option] 'sed command' filename
- 作用:对文本内容进行处理
- eg
sed -i 's/^Str/String/' replace.go
- -i 表示会在文本中替换,不加只是在终端输出,文本不会替换
- s 表示替换的是字符串
- ^表示以…开头
sed -i 's/\.$/\;/g' test.go
- $表示以…结尾
- \为转义
- g为全部替换,不加只替换每行的第一个
sed -i '/^ *$/d' a.go
- d表示删除
- 语法:
- find
Linux总结
最新推荐文章于 2022-01-27 08:00:00 发布