Linux下常用命令及工具整理(持续更新...)
1. realpath
用于获得文件的绝对路径
realpath comm_cmd.md
2. sloccount
用于统计代码行数
sloccount .
3. netstat
用于列出系统上所有的网络套接字连接情况
常用参数:-a : 列出所有当前的连接
-t : 列出 TCP 协议的连接 (用法:-at)
-u : 出 UDP 协议的连接 (用法:-au)
-n : 禁用域名解析功能(直接显示ip地址而不是显示域名)
-l : 只列出监听中的连接
-p : 显示进程名、进程号, 需要root权限
# 查看谁占着80端口, (-w: 强制 PATTEN 仅完全匹配单词)
sudo netstat -nalp | grep -w “80”
# 查看存不存在内存阻塞(看 Recv-Q 有没有累计,通过这个方法可以判断应用层是不是真丢包了)
netstat -nau
# 免root也能使用-p的方法
sudo chmod +s /bin/netstat
4. nautilus
在终端下非常方便的打开指定目录的文件管理器
# &表示在后台运行,省得占一个终端
nautilus . &
5. watch
可以用来在终端中以固定的间隔监视命令输出
# 命令需要用引号引起来,默认间隔2s
# 只列出目录
watch 'ls -l | grep "^d"'
6. sshfs
可以将远程文件系统挂载到本地挂载点上
# 挂载 (/mnt/mountpoint需要有777权限)
sshfs dong@192.168.1.131:/home /mnt/mountpoint/
# 卸载
sudo umount /mnt/mountpoint
7. samba
实现 Windows 和 linux 的文件共享
# 配置sambda, 在/etc/samba/smb.conf最后添加
# e.g. 设置/home/dong/share作为共享目录,需要给这个目录777权限
[work]
comment = samba home directory
path = /home/dong/share
browseable = yes
writable = yes
# 启动samba服务
sudo service smbd restart
# 添加windows可以访问的用户, dong表示用户名
sudo smbpasswd -a dong
# windows访问 windows上,文件管理器中点网络,然后地址栏中输入 file://linux的ip地址/work 即可访问
8. flameshot
好用的截图软件
# 安装
sudo apt-get install flameshot
# 打开
flameshot gui
# 可以自己设置快捷键,方便使用
设置->键盘->快捷键, 快捷键命令为 flameshot gui
9. jq
命令行json处理工具
head -n 1 2015-03-01-0.json | jq
10. kchmviewer
这个是kde下出色一个chm阅读器,相比较于chmsee出现中文乱马的情况而言,这个可以说是完美了
注意:打开chm文件好像不支持中文路径
# 安装
sudo apt-get install kchmviewer
11. df/du 常用用法
# 查看当前目录下大文件
du -sh *
# 查看硬盘各分区使用情况
df -h
12. 使用htop替代top命令
# 安装
sudo apt-get install htop
13. xmind安装
- 官网下载: 最新版XMind
- 下载破解包:XMind_amd64.tar.gz 提取码: 7124
- 先解压XMind压缩包,然后解压XMind_amd64.tar.gz内容到XMind_amd64目录下.(我的是64bit的系统, 如果是32bit的系统解压到XMind_i386目录即可)
# 解压xmind
unzip xmind-8-update9-linux.zip
# 复制破解文件
cd xmind-8-update9-linux/XMind_amd64/
tar xavf ../../XMind_amd64.tar.gz
- 修改
/etc/hosts
, 添加如下内容
127.0.0.1 www.xmind.net
- 回到解压后的文件夹的根目录, 运行
./setup.sh
, 安装好依赖库之后, 再次进入XMind_amd64, 运行XMind
- 在XMind主界面依次:
Help -> License
, 复制以下license key即可, 邮箱随便填:
XAka34A2rVRYJ4XBIU35UZMUEEF64CMMIYZCK2FZZUQNODEKUHGJLFMSLIQMQUCUBXRENLK6NZL37JXP4PZXQFILMQ2RG5R7G4QNDO3PSOEUBOCDRYSSXZGRARV6MGA33TN2AMUBHEL4FXMWYTTJDEINJXUAV4BAYKBDCZQWVF3LWYXSDCXY546U3NBGOI3ZPAP2SO3CSQFNB7VVIY123456789012345
- 破解完成。
14. 设置时区
# 显示当前时区
timedatectl
# 列出所有时区
timedatectl list-timezones
# 设置时区 e.g. 上海
sudo timedatectl set-timezone Asia/Shanghai
15. axel
多线程下载工具
axel 是Linux下一个不错的HTTP/ftp高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合网速不给力时多线程下载提高下载速度。比如在国内VPS或服务器上下载lnmp一键安装包用Axel就比wget快。
# 安装
sudo apt-get install axel
# 下载示例: -n x 表示连接数x, 即线程数
axel -n 10 <src_url>
16. locate/ldd用法
# locate xxx.so 用于定位xxx.so在哪
locate locate libmysqlclient.so
# ldd xxx.so 用于查看xxx.so依赖有没有问题, 有问题会出现 xx.so => not found
ldd libqsqlmysql.so
17. wireshark
# 安装
sudo apt-get install wireshark
# 配置免root权限, 选Yes或是
sudo dpkg-reconfigure wireshark-common
# 添加当前用户到wireshark组
sudo adduser $USER wireshark
# 重启或者注销重新登录
18. date
# 显示当前日期时间
date
# 查看当前时间的时间戳
date +%s
# 查看指定时间的时间戳 e.g. 2020-09-10 09:53:26 -> 1599702806
date -d '2020-09-10 09:53:26' +%s
# 将时间戳转换成date格式 e.g. 1599702806 -> 2020年 09月 10日 星期四 09:53:26 CST
date -d @1599702806
# 自定义格式 e.g. 1599702806 -> 2020-09-10 09:53:26
date "+%Y-%m-%d %H:%M:%S" -d @1599702806
# 自定义格式输出当前时间
date "+%Y-%m-%d %H:%M:%S"
19. /boot清理
随着升级 /boot分区会越来越满 导致后续无法升级 原因是因为每次升级有可能升级内核 但是旧的内核没有删除 所以导致/boot一直增大
解决办法就是删除不需要的内核
# 查看所有安装的内核
dpkg --get-selections |grep linux-image
# 查看当前使用的内核
uname -a
# 删除非当前版本内核
sudo apt-get purge linux-image-xxx
# 删除残留文件
sudo apt-get autoremove
20. 运行一个简单的本地 HTTP 服务器
# 到需要提供服务的目录下
cd xxx
# 运行http服务
python3 -m http.server
# 之后其他人就可以访问你这个目录了:浏览器输入: http://ip:8000
21. typora
好用的markdown 编辑器
安装参考
# or use
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
22. Planner
好用的 to-do list工具
# 安装
flatpak install flathub com.github.alainm23.planner
# 启动
flatpak run com.github.alainm23.planner
23. redis
安装
# 更新
sudo apt update
# 安装redis
sudo apt install redis-server
修改配置文件:/etc/redis/redis.conf
# 说明:#为默认内容
#bind 127.0.0.1 ::1
bind 127.0.0.1
#supervised no
supervised systemd
修改配置文件 /etc/systemd/system/redis.service
, 用于解决 redis-server.service: Can't open PID file /var/run/redis/redis-server.pid (yet?) after start: No such file
问题
# 在[Service]标签下追究如下内容:
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
启动redis服务
sudo systemctl daemon-reload
sudo systemctl enable redis-server
sudo systemctl restart redis.service
查看redis状态,看看是否正常
sudo systemctl status redis
25. gparted
linux下图形化分区工具
# 安装
sudo apt install gparted
# 启动
gparted
26. sqlitebrowser
sqlite可视化工具
# 安装
sudo apt-get install sqlitebrowser
# 使用
sqlitebrowser xx.db
27. tcpreplay
tcpreplay 是一系列工具的总称,包括 tcpreplay ,tcprewrite 和tcpprep ,是用来在Unix 或linux 系统上重放数据包(抓包回放)的软件。使用tcprewrite对报文进行改写(MAC 地址,IP 地址和端口等),目的是为了将原始数据包通过自己搭建的环境进行回放
# tcprewrite 使用示意
tcprewrite -i ./in.pcap -o out.pcap -S 0.0.0.0/0:192.168.100.107 --enet-smac=94:c6:91:0d:8c:62 -D 0.0.0.0/0:192.168.100.142 --enet-dmac=6c:4b:90:98:80:9a --portmap=2000:2001 -C
# tcprewrite 参数说明
-i 指定要处理的 pcap 文件
-o 输出 pcap 文件
-S 改写 IPv4/v6 源 IP 地址
--enet_smac 修改源mac地址
-D 改写 IPv4/v6 目的地址
--enet_dmac 修改以太网目的地址
--portmap 修改TCP/UDP端口号(如果需要的话),用冒号分割修改前后的端口
-C 强制重新计算 IPv4/TCP/UDP 头部校验和
# tcpreplay 使用示意
sudo tcpreplay -i enp2s0 -l 10000 out.pcap
# tcpreplay 参数说明
-i 指定哪个网卡进行回放
-l 回放次数
28. stacer
strace命令是一个集诊断、调试、统计与一体的工具,可用来追踪调试程序,能够与其他命令搭配使用
# Debian sid / Ubuntu 20.04+
sudo apt install stacer
28. kruler
屏幕标尺
# 安装
sudo apt install kruler
# 运行
kruler
28. dpkg
*.deb软件的安装和卸载
# 安装
# 软件安装
sudo dpkg -i xx.deb
# 查看安装状态
sudo dpkg -l "xx*"
# 下载软件(保留配置)
sudo dpkg -r xx
# 下载软件(不保留配置)
sudo dpkg -P xx