Linux基础使用
文件及目录管理
- 目录/文件 的创建、删除、查询
- mkdir, rm, cp, mv,
ln -s
软连接, ln硬连接
- 文件的查询和检索
- 查看文件内容
- 将标准输出和标准错误重定向到同一文件
- 找一个目录下的所有的java文件
find . -maxdepth 2 -name "*.java"
- 将docker log 追加到文件中
docker logs ${containerId} | less | tee -a service.log
- 软连接目录时,需要指定源目录为绝对路径
ln -s {sourceAbsolutePath} {destPath}
工作相关
- echo
- echo "xxx" 会带上回车
- echo -n "xxx" 不会带回车
- tee
- tee -a xxx.log (append文件尾部)
- watch
- time xxxx
- grep
- -i 是 ignore case
- -A after
- -B before
- grep -Eo 'inspect_sub_type":[0-9]{1,2}' 送审数据.txt
- date
- cut
- echo -n "122" | md5sum | cut -d " " -f1
- tr
- echo -n "12 2" | tr ' ' ':'
- export & source
- 变量少的情况下,可以显示得export声明环境变量,不过它生效仅限于当前的shell
- 变量多的情况下 可以写到一个文件里面,然后source
- set
- envsubst
linux:~/test$ cat temp
echo $var
linux:~/test$ export var=draymonder
linux:~/test$ envsubst < temp > temp_var
linux:~/test$ cat temp_var
echo draymonder
- ethtool
- df
- lsof
- Linux 程序后台运行的方法
- 数据同步
- rsync -av --delete ./ dev:/home/zhangyubing.amor/go/src/github.com/draymonders/gmem
- 命令提示
场景
- 获取当前目录下所有不同的文件后缀
- ls | cut -d'.' -f2 | sort | uniq
- Docker相关
- docker images | grep none | awk '{ print $3 }' | xargs -r docker rmi
- docker ps -a | awk '{ print $1 }' | grep -v "CONTAINER" | xargs -r docker rm -f
- 停止某个应用程序
- ps -aux | grep python3 | awk '{ print $2 }' | xargs kill -9
- 查看cpu信息
- cat /proc/cpuinfo | grep name | cut -d: -f 2 | uniq -c
- 定时查看日志
- watch "grep '内容' xxx.log"
文本处理
- 查询socket状态
sudo netstat -autpn | awk '/^tcp/ { ++S[$6] } END { for(a in S) print a,S[a] }'
- 取linux文件第4行,有用\t分割的若干个ip地址。统计出来出现次数最多的前四个。
- 获取ip地址有两种思路
cat test | head -4 | tail -1 | xargs -d'\t' -r -i echo {}
sed -n 4p test | sed "s#\t#\n#g"
(推荐)
- 排序获取topK
sort -n | uniq -c | sort -r -n -k1 | head -4
- 形如“a=xx||b=yy||c=zz”的log,求b>5的行
sed 's/||/\ /g' temp1.log | awk '{ split($2,a,"="); if (a[2]>5) print $0 }'
截屏