Linux
Linux 的体系结构
- 体系结构主要分为 用户态(用户上层活动)和内核态
- 内核: 本质是一段管理计算机硬件设备的程序
- 系统调用:内核的访问接口,是一种不能再简化的操作。 原子性的操作。
- 公用函数库: 系统调用的组合拳
- Shell:命令解释器, 可编程
windows - cigwin
查看系统调用
Linux - man 2 syscalls
less / more / cat /tail
切换默认shell
查找特定的文件
find
- 语法:
find path [options] params
- 作用: 在指定目录下查找文件
1find ./ -name "fileName" # 精确查找
2find ~ -name "target*" # 模糊查找文件
3find ~ -iname "target*" # 忽略大小写的查找
4man find # 查看find的使用说明
检索文件内容
grep
- 语法:
grep [options] pattern file
- 全称 Global Regular Expression Print
- 作用: 用于查找文件里符合条件的字符串, 智慧筛选出目标字符串所在的行
1grep "moo" target* # 查找 target* 开头的文件中包含 "moo" 的行
管道操作符 |
- 可以将指令连接起来,前一个指令的输出作为后一个指令的输入
- 只处理前一个命令的正确输出, 不处理错误输出
- 右边命令必须接收标准输入流,否则传递过程中数据会被抛弃
- sed, awk, grep, cut, head, top, less, more, wc, join, sort, split 等
1grep 'partial\[true\]' test.log | grep -o 'engine\[[0-9 a-z]*\]' # 符合正则表达式
2
3ps -ef|grep tomcat| grep -v "grep" # 过滤掉不需要的内容
对文件内容做统计
awk
- 语法:
awk [options] 'cmd' file
- 一次读取一行文本, 按照输入分隔符进行切片,切成多个组成部分
- 将切片直接保存在内建的变量中,$1, $2….($0 表示行的全部)
- 支持对单个切片的判断,支持循环判断,默认分隔符为空格
1awk '{print $1,$4}' fileName.txt # 获取文件的第1, 4 列
2
3awk '$1=="tcp" && $2==1{print $0}' fileName.txt #按条件查询获取对应的行
4
5awk '($1=="tcp" && $2==1) || NR==1 {print $0}' fileName.txt # 按条件查询,同时获取第1行
6
7awk -F "," '{print $2}' fileName.txt # 分隔符号为 ","
8
9XXXXXX | awk '{enginearr[$1]++}END{for(i in enginearr)print i "\t" enginearr[i]}' # 统计 第1列 出现的次数
批量替换掉文本中的内容
sed
语法: sed [option] 'sed command' fileName
- 全名 stream editor, 流编辑器
- 适合对文本内容进行处理
1sed 's/^Str/String/' fileName.txt # 替换内容后输出 ^ 表示以Str 开头的
2
3sed -i 's/^Str/String/' fileName.txt # 替换源文件的内容, 无输出
4
5sed -i 's/\.$/\;/' fileName.txt # $ 代表以...结束
6
7sed -i 's/Jack/me/g' fileName.txt # g 表示全文替换,如果没有g只会替换第一个
8
9sed -i '/^ *$/d' fileName.txt # 删除空
10
11sed -i '/Integer/d' fileName.txt # 删除包含Integer 的行
跳槽过程中容易被忽略的细节
- 面试要偷偷摸摸进行
- 面试时间不要一味的将就对方
- 提离职要谨慎, 拿到offer再离职
- 好聚好散
- 跳槽时间衔接: 一般15号之后离职, 下个月15号前入职社保不会断