参考:
2. bashmarks - 自动跳转工具
- 参考:
- 使用:
- source ~/.local/bin/bashmarks.sh 追加到 ~.bash_profile 或 ~/.bashrc 文件里
3. 交互式脚本 expect
- 参考:
- 功能:
可以自动给进程(自己创建的)输入指定参数
4. 查看对应进程的执行文件
- 参考:
- 案例:
lsof -i pid | grep txt
5. 查看指定pid的进程打开的文件
lsof -i pid
6. 查看指定pid的进程线程关系树(查看某个开源程序是否是多线程模型)
pstree -p pid
7. 查看指定pid的进程当前在执行的系统调用
- strace -p 1091 # 查看指定pid的进程当前在执行的系统调用
- ltrace -p 1091 # 查看指定pid的进程当前在执行的库调用
8. 查看指定程序依赖的动态链接库
ldd /usr/local/php/sbin/php-fpm
9. 查看文件被哪些进程打开
- fuser -v filename
- lsof filename
10. sudo 找不到命令
- 参考:
- 原因:
当sudo以管理权限执行命令时,Linux将对Path变量进行重置,当然这是为系统安全的考虑。 - 解决步骤:
- 编辑/etc/sudoers文件(sudo visudo),
Defaults env_reset ==> Defaults !env_reset - 编辑~/.bashrc文件,在最后追加下面的行:
alias sudo='sudo env PATH=$PATH'
- 编辑/etc/sudoers文件(sudo visudo),
11. ssh-agent 私钥带密码的问题(尚未测试过)
- 参考:
- 说明:
ssh-agent 是 OpenSSH中默认包括的ssh代理程序 - 步骤:
- 执行ssh-agent,将其打印出来的环境变量加到系统环境下
- 执行 ssh-add ~/.ssh/id_rsa 将对应的私钥密码记下来
- 使用~/.ssh/config文件,添加下面两行
# 每行添加这两行 UseKeychain yes AddKeysToAgent yes # 使用示例: Host jp HostName jp.weipaitang.com User wangming Port 34222 IdentityFile /Users/../haha.pem ForwardAgent Yes UseKeychain yes AddKeysToAgent yes
12. 生成序列
- 命令:
seq - 说明:
# 生成1 ~ 100 seq 1 100
13. 在Linux管理里使用sql方式
- 命令:
q - 参考:
- 使用实例:
- 查找redis.conf
locate redis | q "select * from - where c1 like '%redis.conf'"
- 查看用户相关的进程
ps -ef | q -H "select UID,count(*) cnt from - group by UID order by cnt desc limit 3"
- 计算1~100的平均数 和 总和
seq 1 100 | q "select avg(c1), sum(c1) from -"
- 查找redis.conf
14. yes 重复命令
- 重复输出指定字符串(可以用来实现交互输出的)
yes [指定字符串,默认为: 'yes']
15. 其他有用命令
- 参考:
- 命令:
- imgcat
查看图片(命令行),用在iterm2里 - it2dl
ssh 方式下载文件,用在iterm2里 - kn
kill 相关的进程
- imgcat
16. 在文件里搜索文本
- 参考:
- 命令:
ag
17. 将标准输入 乱序成 标准输出
- 命令:
shuf - 参考:
- 使用场景:
- 将文本乱序输出
- 生成随机数
- 参数说明:
- -i:代表range - 区间
- -n:代表生成的数量
- 案例:
- 乱序文本输出
[tank@localhost test1]# cat 1.txt #有序 1 2 3 4 5 6 [tank@localhost test1]# shuf 1.txt #无序 6 2 3 5 4 1
- 生成随机数
[admin@ming-server laravel-study]$ shuf -i 1-60 -n 1 33
- 乱序文本输出
18. 为输出添加行号
- 命令:
nl - 使用:
1. 显示文件内容 以及 行号 nl package.json 2. 查看最后几行及行号 tail -n 4 package.json | nl
19. 批量ping
- 命令:
fping - 参考:
- 使用:
☁ movie fping baidu.com baidu.com yhma.top baidu.com is alive baidu.com is alive yhma.top is alive
20. split 大文件分块传输
- 相关命令
split
cat - 参考:
- 思路:
- 使用md5工具检查源文件的md5码值
md5 a.log - 将文件使用split命令分包,分块上传至服务器
split -b1m a.log a.tmp - 在服务器使用cat 合并文件
cat a.tmp* > a.log - 在服务器上检查合并后的文件md5码
md5 a.log
- 使用md5工具检查源文件的md5码值
101. 总结命令:
pgrep: 查看相关进程id
netstat -anpt:查看系统tcp连接情况
/dev/null /dev/zero
lsof -p pid | grep txt:通过pid查看对应的执行文件
pstree -p 1091:查看进程线程关系树(查看某个开源程序是否多线程模型)
strace -p 1091:查看进程当前在执行的系统调用
ltrace -p 1091:查看进程当前在执行的库调用
ldd program:查看指定程序依赖的动态链接库
fuser -v filename:查看当前文件被正被哪些程序打开
lsof filename:查看当前文件被正被哪些程序打开
ctrl + \:强制退出当前命令的执行,有时执行ctrl + c无用时采用
网友评论