系统监控和性能分析
- vmstat:显示关于进程、内存、分页、块IO、中断和CPU活动的信息。
bash
vmstat 1 # 每秒更新一次vmstat的输出 |
- iostat:报告中央处理器统计信息和输入/输出统计信息,对于存储设备性能分析特别有用。
bash
iostat -d -k 1 # 每秒更新一次磁盘I/O的统计信息,并以KB为单位显示 |
- mpstat:显示各个可用CPU的状态信息。
bash
mpstat -P ALL 1 # 每秒更新一次所有CPU的状态信息 |
- pidstat:监视特定进程的状态,如CPU、内存、I/O等。
bash
pidstat -u 1234 # 监视进程ID为1234的进程的CPU使用情况,每秒更新一次 |
系统日志和调试
- journalctl:查询系统日志(对于使用systemd的系统)。
bash
journalctl # 显示系统日志 |
journalctl -u sshd.service # 显示sshd服务的日志 |
- dmesg:显示或控制内核环形缓冲区的内容。
bash
dmesg | grep -i error # 搜索内核消息中的错误 |
- strace:跟踪系统调用和信号。对于调试和性能分析非常有用。
bash
strace -p 1234 # 跟踪进程ID为1234的进程的系统调用 |
- lsof:列出打开的文件和网络连接。
bash
lsof -i :80 # 列出所有监听在80端口的进程 |
磁盘和文件系统
- fdisk 和 parted:磁盘分区工具。
bash
sudo fdisk /dev/sda # 对/dev/sda进行磁盘分区操作 |
- mkfs:在分区上创建文件系统。
bash
sudo mkfs.ext4 /dev/sda1 # 在/dev/sda1分区上创建ext4文件系统 |
- mount 和 umount:挂载和卸载文件系统。
bash
sudo mount /dev/sda1 /mnt/mydisk # 挂载/dev/sda1到/mnt/mydisk |
sudo umount /mnt/mydisk # 卸载/mnt/mydisk |
- fsck:检查和修复文件系统。
bash
sudo fsck /dev/sda1 # 检查并修复/dev/sda1分区上的文件系统 |
软件包管理
- apt(Debian/Ubuntu等):软件包管理工具。
bash
sudo apt update # 更新软件包列表 |
sudo apt install package-name # 安装软件包 |
sudo apt remove package-name # 卸载软件包 |
- yum(CentOS/Fedora等)和dnf(较新版本的Fedora):软件包管理工具。
bash
sudo yum install package-name # 使用yum安装软件包 |
sudo dnf install package-name # 使用dnf安装软件包 |
- pacman(Arch Linux):软件包管理工具。
bash
sudo pacman -S package-name # 使用pacman安装软件包 |
- sync:将所有未写的系统缓冲区写到磁盘中,保证磁盘与内存数据的一致性。
bash
sync |
- chmod:改变文件或目录的权限。
bash
chmod u+x file.txt # 为文件file.txt的所有者添加执行权限 |
- chown:改变文件或目录的所有者和/或组。
bash
chown user:group file.txt # 将file.txt的所有者更改为user,组更改为group |
- ln:创建硬链接或符号链接。
bash
ln -s target.txt link.txt # 创建一个指向target.txt的符号链接link.txt |
- tar(续):除了之前提到的压缩和解压功能,还可以用于追加文件到归档文件。
bash
tar -rvf archive.tar new_file.txt # 将new_file.txt追加到archive.tar中 |
- getconf:显示系统变量配置。
bash
getconf _NPROCESSORS_ONLN # 显示系统上的逻辑处理器数量 |
- setfacl 和 getfacl:用于管理文件访问控制列表(ACLs)。
bash
setfacl -m u:user:rw file.txt # 为用户user设置对file.txt的读写权限 |
- lsof(续):列出被进程打开的文件和网络连接。
bash
lsof -u user # 列出用户user打开的所有文件 |
- at 和 batch:用于在指定时间运行命令。
bash
echo "command" | at now + 5 minutes # 5分钟后运行command命令 |
- crontab:用于设置周期性被执行的任务。
bash
crontab -e # 编辑当前用户的crontab文件以添加计划任务 |
再列出一些Linux中常用的命令和工具:
- dmesg:显示或控制内核环形缓冲区的内容,通常用于查看系统引导时的消息或内核日志。
bash
dmesg | grep "error" # 过滤出包含"error"的行 |
- last:显示最近登录到系统的用户列表。
bash
last |
- whoami:显示当前用户名。
bash
whoami |
- df:显示磁盘使用情况,包括每个已挂载文件系统的总容量、已用空间、可用空间和挂载点。
bash
df -h # 以人类可读的格式显示 |
- du:估算文件和目录的磁盘使用情况。
bash
du -sh /path/to/directory # 显示目录的磁盘使用情况,并给出总计 |
- screen 和 tmux:终端复用器,允许用户在一个物理终端上启动多个虚拟终端,并可以在它们之间切换。
bash
screen # 启动一个新的screen会话 |
tmux # 启动一个新的tmux会话 |
- curl 和 wget:用于从命令行发送HTTP请求和下载文件。
bash
curl https://example.com # 发送HTTP GET请求到example.com |
wget https://example.com/file.txt # 下载example.com上的file.txt文件 |
- ncdu(NCurses Disk Usage):基于文本的用户界面程序,用于查看磁盘使用情况。
bash
ncdu /path/to/directory # 在指定的目录下启动ncdu |
- nc(Netcat):一个功能强大的网络工具,可以用于读取和写入TCP和UDP数据。
bash
nc -l 12345 # 在12345端口上监听连接 |
nc localhost 12345 # 连接到本地主机的12345端口 |
- strace:跟踪系统调用和信号,对于调试和性能分析非常有用。
bash
strace -p 1234 # 跟踪进程ID为1234的进程的系统调用 |
- lsof(续):显示任何系统进程当前打开的文件和使用的网络套接字。
bash
lsof -i :80 # 显示所有使用80端口的进程 |
- iostat(续):报告中央处理器统计信息和输入/输出统计信息,对于存储设备性能分析特别有用。
bash
iostat -xz 1 # 每秒更新一次I/O统计信息,包括扩展统计和磁盘分区统计 |
- netstat(续):显示网络连接、路由表、接口统计等网络相关信息。
bash
netstat -tuln # 显示TCP和UDP监听套接字 |
- ssh-keygen:生成、管理和转换认证密钥,用于SSH协议。
bash
ssh-keygen -t rsa -b 4096 # 生成一个新的RSA密钥对,密钥长度为4096位 |
- visudo:安全地编辑sudoers文件,该文件控制哪些用户可以执行哪些命令作为其他用户。
bash
visudo # 使用visudo编辑器编辑sudoers文件 |
这些命令和工具在Linux系统中非常有用,涵盖了系统管理、网络、安全、调试等多个方面。希望这些能对你有所帮助!