Linux 小手册

Linux | 命令 | 网络 | 文件

Posted by luoruiqing on January 1, 1999

手册

命令大全


下面摘录一下比较常用的命令, 按分类记录

网络

域名连通性

1
2
ping <域名> # ping www.baidu.com
nslookup <域名> # nslookup www.baidu.com

IP连通性

1
2
ping <域名> # ping www.baidu.com
traceroute <域名> # traceroute www.baidu.com

端口连通性

1
2
3
telnet <域名> <端口> # telnet 220.181.112.244 80
nc <域名> <端口> -v # nc 220.181.112.244 80 -v
curl <URL> -v # curl http://220.181.112.244:80 -v

外网IP获取

1
2
3
4
5
6
7
curl icanhazip.com
curl ifconfig.me
curl curlmyip.com
curl ip.appspot.com
curl ipinfo.io/ip
curl ipecho.net/plain
curl www.trackip.net/i

内网IP获取

1
# ...

SSH密钥传递(免密登录)

1
2
# ssh-copy-id <用户名>@<IP> 
ssh-copy-id root@localhost

三机器网络桥接

1
2
3
# 桥接: A机器 > B机器 > C机器   若A机器不能直接访问C机器则可以通过桥接代理到本地端口使用
# ssh -L <本地端口>:<目标机器IP>:<目标机器端口> <代理机器IP>:<代理机器端口>
ssh -L 9999:prod-19:9200 10.15.1.12:4000

curl

1
2
# 请求携带cookie: curl -N --cookie "<COOKIES>" "<URL>"
curl -N --cookie "a=1; b=2;" https://baidu.com

字符处理

日期格式化

1
2
3
4
5
DATE_NOW=$(date "+%Y%m%d_%H%M") # 20200921_1049
# 毫秒
# ...
# 时间戳
# ...

过滤日志并统计出现次数

1
2
# 例: 过滤Nginx 日志内的IP地址并统计出现的次数, 结果:  <次数> <IP地址>
awk '{print $1}' ./access.log | sort | uniq -c | sort -nr -k1 | head -n 10 # 249669 localhost
  • awk: 过滤文本, 根据符号切割
  • sort: 排序
  • uniq: 去重

进程线程

查看进程子父关系

1
2
3
4
# 斜线代表关系
ps f 
# 显示系统的进程树
pstree

杀死目标进程

1
ps -ef | grep <进程标志> | grep -v grep | cut -c 9-15 | xargs kill -s 9

文件管理

清除日志

1
2
# 此方式不会清楚文件导致程序错误
cat /dev/null > /home/work/nohup.out

创建多层目录无视报错

1
mkdir -p <路径> # mkdir -p ./test/test/test

查看目录树

1
2
find <目录地址> -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
tree # 需要手动安装

查看目录占用大小

1
2
3
4
5
6
# 查看当前目录总大小
du -sh
# 查看所有目录的大小
du -h –max-depth=0 *
# 根据深度查看大小 du -h --max-depth=<目录深度> <目录位置>
du -h --max-depth=1 ./

根据创建日期删除文件内

1
2
# 删除365天前创建的所有的文件
find <目录> -mtime +365 -type f | xargs rm -rf

文件夹覆盖

1
2
3
4
# 复制覆盖
cp -rv <源目录> <目标目录>
# 剪切覆盖
mv <源目录> <目标目录>

文件夹内容搜索

1
cd 项目目录 && find -name "*.py" -exec grep -in -H "文字特征" {} \;

软链目录

1
ln -s <源目录:真实目录> <目标目录:快捷目录> # 两个路径均需要绝对路径

zip压缩

1
2
3
4
5
6
7
8
# 压缩
zip -r <包名>.zip <目录>
# 解压
unzip <包名> <路径>
# 解压并覆盖
unzip -o <包名> <路径>
# 解压到指定路径并覆盖 # unzip -o /tmp/dist.zip -d ./
unzip -o <包名> -d <路径>

gz压缩

1
# ...