Bootstrap

Debian常用命令

以下是完整的 Linux 命令大全,适用于 Debian、Ubuntu 及其衍生系统,涵盖系统管理、文件操作、磁盘管理、用户管理、网络调试、安全、进程管理等多个方面。


目录

  1. 基本命令
  2. 关机与重启
  3. 文件和目录管理
  4. 文件搜索
  5. 挂载文件系统
  6. 磁盘空间管理
  7. 用户和群组管理
  8. 文件和目录权限
  9. 文件的特殊属性
  10. 打包和压缩文件
  11. DEB 包管理
  12. 查看文件内容
  13. 文本处理
  14. 字符设置和文件格式转换
  15. 文件系统分析
  16. 初始化文件系统
  17. SWAP 文件系统
  18. 备份与恢复
  19. 光盘操作
  20. 网络管理与调试
  21. 系统监控与性能
  22. 进程管理
  23. 硬件管理
  24. 安全与权限
  25. 日志管理
  26. VIM 编辑器
  27. 进阶工具
  28. 附录:常用快捷命令
  29. 总结

1. 基本命令

  • uname -m:显示机器的处理器架构
  • uname -r:显示正在使用的内核版本
  • dmidecode -q:显示硬件系统部件 (SMBIOS / DMI)
  • hdparm -i /dev/hda:列出磁盘的架构特性
  • hdparm -tT /dev/sda:在磁盘上执行测试性读取操作
  • arch:显示机器的处理器架构
  • cat /proc/cpuinfo:显示 CPU 信息
  • cat /proc/interrupts:显示中断
  • cat /proc/meminfo:检查内存使用
  • cat /proc/swaps:显示哪些 swap 被使用
  • cat /proc/version:显示内核的版本
  • cat /proc/net/dev:显示网络适配器及统计
  • cat /proc/mounts:显示已加载的文件系统
  • lspci -tv:列出 PCI 设备
  • lsusb -tv:显示 USB 设备
  • date:显示系统日期
  • cal 2007:显示 2007 年的日历表
  • date 041217002007.00:设置日期和时间(格式:月日时分年.秒)
  • clock -w:将时间修改保存到 BIOS

2. 关机与重启

  • shutdown -h now:立即关闭系统
  • init 0telinit 0:关闭系统
  • shutdown -h hh:mm &:按预定时间关闭系统
  • shutdown -c:取消按预定时间关闭系统
  • shutdown -r now:立即重启系统
  • reboot:重启系统
  • logout:注销当前用户

3. 文件和目录管理

导航
  • cd /home:进入 /home 目录
  • cd ..:返回上一级目录
  • cd ../..:返回上两级目录
  • cdcd ~:进入个人的主目录
  • cd ~user1:进入指定用户 user1 的主目录
  • cd -:返回上次所在的目录
  • pwd:显示当前工作路径
查看目录
  • ls:列出当前目录文件(不包括隐藏文件)
  • ls -a:列出当前目录文件(包括隐藏文件)
  • ls -F:列出当前目录文件,并附加文件类型标志
  • ls -l:显示文件和目录的详细资料
  • ls *[0-9]*:显示包含数字的文件名和目录名
  • tree:显示目录树(需安装 tree 工具)
创建与删除
  • mkdir dir1:创建目录 dir1
  • mkdir dir1 dir2:同时创建多个目录
  • mkdir -p /tmp/dir1/dir2:创建一个目录树
  • rm -f file1:强制删除文件 file1
  • rmdir dir1:删除空目录 dir1
  • rm -rf dir1:删除目录 dir1 及其内容
复制与移动
  • mv dir1 new_dir:重命名或移动目录
  • mv 路径/文件 /路径/文件:移动文件到指定路径
  • mv file1 file2:在当前目录下重命名文件
  • cp file1 file2:复制文件
  • cp -a /tmp/dir1 .:复制目录到当前工作目录
  • cp -r source_dir destination_dir:递归复制目录
链接
  • ln -s file1 lnk1:创建指向文件或目录的软链接
  • ln file1 lnk1:创建物理链接
时间戳与类型
  • touch -t 0712250000 file1:修改文件的时间戳
  • file file1:输出文件的 MIME 类型
编码转换
  • iconv -l:列出已知的编码
  • iconv -f fromEncoding -t toEncoding inputFile > outputFile:转换文件编码
  • iconv -f gbk -t utf8 $i > newfile:转换文件内容由 GBK 到 UTF8
批量操作
  • find . -maxdepth 1 -name "*.jpg" -print -exec convert "{}" -resize 80x60 "thumbs/{}" \;:批量调整文件大小(需安装 ImageMagick)

4. 文件搜索

  • find / -name file1:从根目录开始搜索文件
  • find / -user user1:搜索属于用户 user1 的文件和目录
  • find /home/user1 -name "*.bin":在 /home/user1 目录中搜索 .bin 文件
  • find /usr/bin -type f -atime +100:搜索过去 100 天内未被使用过的文件
  • find /usr/bin -type f -mtime -10:搜索 10 天内被创建或修改的文件
  • find / -name "*.rpm" -exec chmod 755 '{}' \;:搜索 .rpm 文件并更改权限
  • find / -xdev -name "*.rpm":搜索 .rpm 文件,忽略可移动设备
  • locate "*.ps":使用 locate 工具搜索 .ps 文件(需先运行 updatedb
  • whereis halt:显示 halt 的位置
  • which halt:显示 halt 命令的路径

5. 挂载文件系统

  • mount /dev/hda2 /mnt/hda2:挂载 /dev/hda2/mnt/hda2
  • umount /dev/hda2:卸载 /dev/hda2
  • fuser -km /mnt/hda2:强制卸载磁盘(设备繁忙时)
  • mount /dev/fd0 /mnt/floppy:挂载软盘
  • mount /dev/cdrom /mnt/cdrom:挂载 CD/DVD
  • mount /dev/hdc /mnt/cdrecorder:挂载 CDRW/DVD
  • mount /dev/hdb /mnt/cdrecorder:挂载 CDRW/DVD
  • mount -o loop file.iso /mnt/cdrom:挂载 ISO 镜像文件
  • mount -t vfat /dev/hda5 /mnt/hda5:挂载 Windows FAT32 文件系统
  • mount /dev/sda1 /mnt/usbdisk:挂载 USB 闪存设备
  • mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share:挂载 Windows 网络共享

6. 磁盘空间管理

  • df -h:显示已挂载的分区列表
  • ls -lSr | more:按尺寸大小排列文件和目录
  • du -sh dir1:估算目录 dir1 的磁盘使用情况
  • du -sk * | sort -rn:按磁盘使用大小排序显示文件和目录
  • dpkg-query -W -f='${Installed-Size}\t${Package}\n' | sort -k1,1n:显示已安装的 DEB 包的大小
  • free -h:查看内存和交换空间使用情况

7. 用户和群组管理

  • groupadd group_name:创建一个新用户组
  • groupdel group_name:删除一个用户组
  • groupmod -n new_group_name old_group_name:重命名一个用户组
  • useradd -c "Name Surname" -g admin -d /home/user1 -s /bin/bash user1:创建属于 admin 用户组的用户
  • useradd user1:创建一个新用户
  • userdel -r user1:删除用户及其主目录
  • usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1:修改用户属性
  • passwd user1:修改用户的口令(需 root 权限)
  • chage -E 2005-12-31 user1:设置用户口令的失效期限
  • pwck:检查 /etc/passwd 的文件格式和语法
  • grpck:检查群组文件格式和语法
  • newgrp group_name:切换至新群组

8. 文件和目录权限

  • ls -lh:显示文件权限
  • chmod ugo+rwx directory1:设置所有用户的读、写、执行权限
  • chmod go-rwx directory1:删除群组和其他用户的所有权限
  • chown user1 file1:改变文件所有者
  • chown -R user1 directory1:递归改变目录及其内容的所有者
  • chgrp group1 file1:改变文件的群组
  • chown user1:group1 file1:改变文件的所有者和群组
  • find / -perm -u+s:列出所有使用了 SUID 位控制的文件
  • chmod u+s /bin/file1:设置文件的 SUID 位
  • chmod u-s /bin/file1:禁用文件的 SUID 位
  • chmod g+s /home/public:设置目录的 SGID 位
  • chmod g-s /home/public:禁用目录的 SGID 位
  • chmod o+t /home/public:设置文件的 Sticky 位
  • chmod o-t /home/public:禁用文件的 Sticky 位
添加或删除执行权限
  • chmod +x 文件路径:为所有用户添加执行权限
  • chmod -x 文件路径:删除所有用户的执行权限
  • chmod u+x 文件路径:为所有者添加执行权限
  • chmod g+x 文件路径:为群组添加执行权限
  • chmod o+x 文件路径:为其他用户添加执行权限
  • chmod ug+x 文件路径:为所有者和群组添加执行权限
  • chmod =wx 文件路径:为所有用户添加写、执行权限,取消读权限
  • chmod ug=wx 文件路径:为所有者和群组添加写、执行权限,取消读权限

9. 文件的特殊属性

  • 使用 “+” 设置属性,使用 “-” 取消属性:
    • chattr +a file1:只允许以追加方式读写文件
    • chattr +c file1:允许文件被内核自动压缩/解压
    • chattr +d file1:在文件系统备份时忽略该文件
    • chattr +i file1:设置文件为不可变,不能删除、修改或重命名
    • chattr +s file1:允许文件被安全删除
    • chattr +S file1:写操作立即写入磁盘
    • chattr +u file1:允许删除后恢复文件
  • lsattr:显示文件的特殊属性

10. 打包和压缩文件

解压缩
  • bunzip2 file1.bz2:解压 .bz2 文件
  • gunzip file1.gz:解压 .gz 文件
  • unzip file1.zip:解压 .zip 文件
  • tar -zxvf xxx.tar.gz:解压缩 .tar.gz 文件
  • tar -jxvf xxx.tar.bz2:解压缩 .tar.bz2 文件
  • unrar x aaaa.rar:解压 RAR 文件(需安装 unrar
压缩
  • bzip2 file1:压缩文件为 .bz2 格式
  • gzip file1:压缩文件为 .gz 格式
  • gzip -9 file1:以最高压缩率压缩文件
  • rar a file1.rar test_file:创建 .rar 压缩包
  • rar a file1.rar file1 file2 dir1:同时压缩多个文件和目录
打包
  • tar -cvf archive.tar file1:创建 .tar
  • tar -cvf archive.tar file1 file2 dir1:创建包含多个文件和目录的 .tar
  • tar -cvfj archive.tar.bz2 dir1:创建 .tar.bz2 格式的压缩包
  • tar -cvfz archive.tar.gz dir1:创建 .tar.gz 格式的压缩包
  • zip -r file1.zip file1 file2 dir1:递归压缩多个文件和目录
  • zip file1.zip file1:创建 .zip 压缩包
查看与解压
  • tar -tf archive.tar:查看 .tar 包内容
  • tar -xvf archive.tar:解压 .tar
  • tar -xvfj archive.tar.bz2:解压 .tar.bz2
  • tar -xvfz archive.tar.gz:解压 .tar.gz
  • unzip file1.zip:解压 .zip 文件
其他
  • tar -cPzf backup.tar.gz /path/to/directory:创建带绝对路径的压缩包
  • tar -C /path/to/extract -xzf backup.tar.gz:在指定目录解压压缩包

11. DEB 包管理

dpkg 命令
  • dpkg -i package.deb:安装或更新 DEB 包
  • dpkg -r package_name:从系统删除 DEB 包
  • dpkg -l:列出系统中所有已安装的 DEB 包
  • dpkg -l | grep httpd:列出名称包含 “httpd” 的 DEB 包
  • dpkg -s package_name:获取已安装包的详细信息
  • dpkg -L package_name:列出已安装包提供的文件
  • dpkg --contents package.deb:列出未安装包提供的文件
  • dpkg -S /bin/ping:查找文件所属的 DEB 包
APT 工具
  • apt-get install package_name:安装 DEB 包
  • apt-cdrom install package_name:从光盘安装 DEB 包
  • apt-get update:更新软件包列表
  • apt-get upgrade:升级所有已安装的软件包
  • apt-get remove package_name:删除 DEB 包
  • apt-get purge package_name:删除 DEB 包,包括配置文件
  • apt-get autoremove:删除系统不再使用的孤立软件
  • apt-get clean:清理下载的包缓存
  • apt-get autoclean:清理无用的软件包
  • apt-get check:检查依赖关系
  • apt-cache search searched-package:搜索软件包
  • apt-cache show package:获取包的相关信息,如说明、大小、版本等
  • apt-cache depends package:了解包的依赖
  • apt-cache rdepends package:查看该包被哪些包依赖
  • apt-get build-dep package:安装相关的编译环境
  • apt-get source package:下载该包的源代码
其他 APT 命令
  • dpkg --get-selections | grep -v deinstall > ~/somefile:备份当前系统安装的所有包的列表
  • dpkg --set-selections < ~/somefile && sudo dselect:从备份的安装包列表文件恢复所有包
  • apt-get -qq --print-uris install ssh | cut -d\' -f2:查看包在服务器上的地址
  • apt-cdrom add:增加一个光盘源

12. 查看文件内容

  • cat file1:查看文件内容
  • tac file1:反向查看文件内容
  • more file1:分页显示文件内容(只能向下翻页)
  • less file1:分页查看文件内容(支持上下翻页)
  • head -2 file1:查看文件的前两行
  • tail -2 file1:查看文件的最后两行
  • tail -f /var/log/messages:实时查看文件内容(适用于日志文件)
  • od -c file1:以八进制显示文件内容
  • strings file1:输出文件中的字符串内容

13. 文本处理

管道与重定向
  • cat file1 | command > result.txt:将命令输出写入新文件
  • cat file1 | command >> result.txt:将命令输出追加到已有文件
搜索与替换
  • grep Aug /var/log/messages:搜索包含 “Aug” 的行
  • grep ^Aug /var/log/messages:搜索以 “Aug” 开头的行
  • grep [0-9] /var/log/messages:搜索包含数字的行
  • grep Aug -R /var/log/*:递归搜索包含 “Aug” 的行
  • sed 's/stringa1/stringa2/g' example.txt:替换 “stringa1” 为 “stringa2”
  • sed '/^$/d' example.txt:删除所有空白行
  • sed '/ *#/d; /^$/d' example.txt:删除所有注释和空白行
字符转换
  • echo 'esempio' | tr '[:lower:]' '[:upper:]':将小写转换为大写
行处理
  • sed -e '1d' result.txt:删除第一行
  • sed -n '/stringa1/p' example.txt:只显示包含 “stringa1” 的行
  • sed -e 's/ *$//' example.txt:删除每行末尾的空白字符
  • sed -e 's/stringa1//g' example.txt:删除 “stringa1”
  • sed -n '1,5p;5q' example.txt:显示前五行
  • sed -n '5p;5q' example.txt:显示第五行
  • sed -e 's/00*/0/g' example.txt:将多个零替换为单个零
列与合并
  • cat -n file1:显示文件行号
  • awk 'NR%2==1' example.txt:显示所有奇数行
  • echo a b c | awk '{print $1}':显示第一列
  • echo a b c | awk '{print $1,$3}':显示第一和第三列
  • paste file1 file2:合并两个文件的内容
  • paste -d '+' file1 file2:以 “+” 分隔合并两个文件的内容
排序与唯一
  • sort file1 file2:排序两个文件的内容
  • sort file1 file2 | uniq:去重后显示并集
  • sort file1 file2 | uniq -u:删除交集,显示唯一行
  • sort file1 file2 | uniq -d:显示交集
  • comm -1 file1 file2:比较两个文件,删除 file1 独有的部分
  • comm -2 file1 file2:比较两个文件,删除 file2 独有的部分
  • comm -3 file1 file2:比较两个文件,删除共有的部分

14. 字符设置和文件格式转换

  • dos2unix filedos.txt fileunix.txt:将文件从 DOS 格式转换为 UNIX 格式
  • unix2dos fileunix.txt filedos.txt:将文件从 UNIX 格式转换为 DOS 格式
  • recode ..HTML < page.txt > page.html:将文本文件转换为 HTML
  • recode -l | more:显示所有支持的转换格式
  • iconv -f gbk -t utf8 $i > newfile:转换文件内容由 GBK 到 UTF8

15. 文件系统分析

  • badblocks -v /dev/hda1:检查磁盘 /dev/hda1 上的坏块
  • fsck /dev/hda1:检查并修复文件系统
  • fsck.ext2 /dev/hda1:检查 Ext2 文件系统
  • e2fsck /dev/hda1:检查 Ext2 文件系统
  • e2fsck -j /dev/hda1:检查 Ext3 文件系统
  • fsck.ext3 /dev/hda1:检查 Ext3 文件系统
  • fsck.vfat /dev/hda1:检查 FAT 文件系统
  • fsck.msdos /dev/hda1:检查 MSDOS 文件系统
  • dosfsck /dev/hda1:检查 DOS 文件系统

16. 初始化文件系统

  • mkfs /dev/hda1:在分区 /dev/hda1 创建文件系统
  • mke2fs /dev/hda1:创建 Ext2 文件系统
  • mke2fs -j /dev/hda1:创建 Ext3 文件系统
  • mkfs -t vfat /dev/hda1:创建 FAT32 文件系统
  • fdformat -n /dev/fd0:格式化软盘
  • mkswap /dev/hda3:创建 swap 文件系统

17. SWAP 文件系统

  • mkswap /dev/hda3:创建 swap 文件系统
  • swapon /dev/hda3:启用 swap
  • swapon /dev/hda2 /dev/hdb3:同时启用多个 swap 分区
  • swapoff /dev/hda3:禁用 swap

18. 备份与恢复

使用 dumprestore
  • dump -0aj -f /tmp/home0.bak /home:制作 /home 目录的完整备份
  • dump -1aj -f /tmp/home0.bak /home:制作 /home 目录的交互式备份
  • restore -if /tmp/home0.bak:还原交互式备份
使用 rsync
  • rsync -rogpav --delete /home /tmp:同步两个目录
  • rsync -rogpav -e ssh --delete /home user@ip_address:/tmp:通过 SSH 同步
  • rsync -az -e ssh --delete user@ip_addr:/home/public /home/local:通过 SSH 和压缩同步远程目录到本地
  • rsync -az -e ssh --delete /home/local user@ip_addr:/home/public:通过 SSH 和压缩同步本地目录到远程
使用 dd
  • dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz':通过 SSH 备份本地磁盘到远程主机
  • dd if=/dev/sda of=/tmp/file1:备份磁盘内容到文件
  • dd if=/dev/hda of=/dev/fd0 bs=512 count=1:复制 MBR 到软盘
  • dd if=/dev/fd0 of=/dev/hda bs=512 count=1:从软盘恢复 MBR
使用 tar
  • tar -Puf backup.tar /home/user:交互式备份
  • (cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p':通过 SSH 复制目录内容
  • tar cf - . | (cd /tmp/backup ; tar xf - ):本地复制目录,保留权限及链接
  • tar -cvf backup.tar /path/to/directory:创建备份包
  • tar -xvf backup.tar -C /path/to/extract:解压备份包
  • tar -cvf archive.tar file1 file2 dir1:创建包含多个文件和目录的 .tar
  • tar -cvfj archive.tar.bz2 dir1:创建 .tar.bz2 格式的压缩包
  • tar -cvfz archive.tar.gz dir1:创建 .tar.gz 格式的压缩包
  • tar -xvfj archive.tar.bz2:解压 .tar.bz2
  • tar -xvfz archive.tar.gz:解压 .tar.gz
  • tar -tf archive.tar:查看 .tar 包内容
  • tar -xvf archive.tar:解压 .tar
使用 find
  • find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents:查找并复制 .txt 文件
  • find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2:查找并打包 .log 文件

19. 光盘操作

  • cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force:清空可复写光盘
  • mkisofs /dev/cdrom > cd.iso:创建光盘 ISO 镜像
  • mkisofs /dev/cdrom | gzip > cd_iso.gz:创建并压缩光盘 ISO 镜像
  • mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd:创建带标签的 ISO 镜像
  • cdrecord -v dev=/dev/cdrom cd.iso:刻录 ISO 镜像
  • gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -:解压并刻录 ISO 镜像
  • mount -o loop cd.iso /mnt/iso:挂载 ISO 镜像
  • cd-paranoia -B:转录 CD 音轨到 WAV 文件(需安装 cdparanoia
  • cd-paranoia -- "-3":转录指定音轨
  • cdrecord --scanbus:扫描 SCSI 总线
  • dd if=/dev/hdc | md5sum:校验设备的 MD5 值

20. 网络管理与调试

网络接口
  • ifconfig eth0:显示以太网卡配置
  • ifup eth0:启用网络接口
  • ifdown eth0:禁用网络接口
  • ifconfig eth0 192.168.1.1 netmask 255.255.255.0:配置 IP 地址和子网掩码
  • ifconfig eth0 promisc:设置混杂模式
  • dhclient eth0:通过 DHCP 获取 IP
  • ip link show:显示所有网络接口状态
  • mii-tool eth0:显示网络接口 eth0 状态
  • ethtool eth0:查看和修改网络接口 eth0 设置
路由
  • route -n:显示路由表
  • route add -net 0.0.0.0/0 gw IP_Gateway:配置默认网关
  • route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1:配置静态路由
  • route del default gw IP_gateway:删除默认网关
  • netstat -rn:查看路由信息
主机与 DNS
  • hostname:显示系统主机名
  • host www.example.com:查询主机名与 IP
  • nslookup www.example.com:查询 DNS 信息
  • dig www.example.com:查询 DNS 记录
  • whois www.example.com:查询 Whois 数据库
网络工具
  • ping www.example.com:检测主机连通性
  • traceroute www.example.com:跟踪路由路径
  • curl http://www.example.com:发送 HTTP 请求
  • wget http://www.example.com/file:下载文件
  • tcpdump tcp port 80:抓取 HTTP 流量
  • iwlist scan:扫描无线网络
  • iwconfig eth1:显示无线网络接口配置
  • netcat (nc):网络连接调试工具
  • mtr:结合了 pingtraceroute 的网络诊断工具(需安装 mtr
  • wireshark:网络协议分析工具(需安装 wireshark
  • ss -tuln:查看 socket 状态
  • lsof -i:列出打开的网络连接
  • arping IP地址:根据 IP 查网卡地址
  • ifconfig eth0 | awk '/inet/ {split($2,x,":");print x[2]}':查看当前 IP 地址
  • w3m -no-cookie -dump www.edu.cn | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}':查看当前外网的 IP 地址
NAT 设置
  • sudo echo 1 > /proc/sys/net/ipv4/ip_forward:立即让网络支持 NAT
  • sudo iptables -t nat -I POSTROUTING -j MASQUERADE:配置 NAT
路由信息
  • netstat -rnroute -n:查看路由信息
  • sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1:手工增加一条路由
  • sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1:手工删除一条路由
修改网卡 MAC 地址
  • sudo ifconfig eth0 down:关闭网卡
  • sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE:修改 MAC 地址
  • sudo ifconfig eth0 up:启动网卡
统计 IP 连接
  • 统计当前 IP 连接的个数:
    • netstat -na | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -r -n
    • netstat -na | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -r -n
  • 统计当前 20000 个 IP 包中大于 100 个 IP 包的 IP 地址:
    • tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk '$1 > 100'
屏蔽 IPV6
  • echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6

21. 系统监控与性能

  • top:实时显示系统任务管理器,包括 CPU、内存使用情况
  • htop:增强版 top,提供更友好的界面和更多功能(需安装 htop
  • uptime:显示系统运行时间和负载
  • dmesg:查看系统启动信息及内核日志
  • vmstat:查看内存、交换区、IO、CPU 等统计信息
  • free -h:查看内存和交换空间使用情况
  • ps aux:列出所有运行的进程
  • iostat:显示 CPU 使用率和磁盘 I/O 使用情况(需安装 sysstat
  • mpstat:显示多核 CPU 使用情况(需安装 sysstat
  • nmon:性能监控工具,支持实时监控(需安装 nmon
  • watch -n 1 'df -h':每秒刷新一次显示磁盘使用情况
  • sar:系统活动报告,提供详细的 CPU、内存、磁盘等历史信息(需安装 sysstat
  • glances:跨平台的系统监控工具(需安装 glances
  • nmon:全面的性能监控工具(需安装 nmon

22. 进程管理

  • kill <pid>:通过进程 ID 终止进程
  • killall <process_name>:通过进程名称终止进程
  • pkill <process_name>:使用更多匹配规则终止进程
  • nohup command &:后台运行命令,即使关闭终端仍运行
  • bg:将挂起的进程放到后台
  • fg:将后台进程放到前台
  • jobs:列出当前终端的所有作业
  • time command:显示命令的执行时间
  • nice:调整进程优先级
  • renice -n 10 -p 1234:修改进程 1234 的优先级为 10
  • sleep <seconds>:暂停程序执行指定秒数
  • ps -A:查看当前有哪些进程
  • kill -9 <pid>killall -9 <process_name>:强制杀死一个进程
  • xkill:图形方式中止一个程序,出现骷髅标志的鼠标,点击需要中止的程序即可

23. 硬件管理

  • lshw:列出系统硬件(需 root 权限)
  • lsblk:显示磁盘分区信息
  • lsusb:列出所有 USB 设备
  • lspci:列出所有 PCI 设备
  • inxi -Fx:显示系统信息(需安装 inxi
  • hdparm -tT /dev/sda:测试硬盘性能
  • smartctl -a /dev/sda:查看硬盘健康状况(需安装 smartmontools
  • sensors:查看硬件传感器信息(需安装 lm-sensors
  • lsmod:查看内核加载的模块

24. 安全与权限

  • chmod:更改文件或目录的权限
  • chown:更改文件或目录的所有者
  • chgrp:更改文件或目录的所属组
  • sudo:以超级用户权限运行命令
  • visudo:编辑 sudo 配置文件
  • setfacl:设置文件的 ACL(访问控制列表)
  • getfacl:查看文件的 ACL 设置
  • ufw:简化的防火墙管理工具
  • iptables:配置 Linux 内核防火墙
  • firewalld:使用 firewalld 管理防火墙规则(推荐替代 iptables
  • chattr:更改文件的特殊属性
  • setenforce:设置 SELinux 模式(需安装并配置 SELinux)
  • selinuxenabled:检查 SELinux 是否启用

25. 日志管理

  • journalctl:查看系统日志(适用于 systemd 系统)
  • dmesg:查看内核和系统启动日志
  • tail -f /var/log/syslog:实时查看系统日志文件
  • grep:结合管道过滤日志内容
  • less /var/log/syslog:分页查看日志文件
  • cat /var/log/auth.log:查看认证相关日志
  • logrotate:管理日志文件的轮转

26. VIM 编辑器

启动与退出
  • vim 文件路径:启动 Vim 编辑器
  • :q:退出 Vim 编辑器
  • :wq:保存并退出 Vim
  • :x:保存并退出 Vim
  • :q!:强制退出,不保存
  • :w:保存修改
  • :set number:显示行号
  • :set nonumber:隐藏行号
  • :set syntax on:启用语法高亮
  • :set syntax off:禁用语法高亮
  • :!:执行系统命令
  • :sh:切换到命令行
  • Ctrl + D:切换回 Vim
VIM 模式
命令模式(常规模式)
  • i:在光标前插入文本
  • a:在光标后插入文本
  • o:在当前行下方插入新行
  • dd:删除整行
  • yy:复制当前行
  • nyy:复制 n 行
  • p:粘贴
  • u:撤销
  • Ctrl + r:重做
  • r:替换当前字符
  • /关键字:查找关键字
插入模式
  • i:进入插入模式
  • a:进入插入模式(在光标后)
  • o:在当前行下方插入新行并进入插入模式
  • Esc:返回命令模式
Ex 模式
  • ::进入 Ex 模式
  • :w:保存修改
  • :q:退出
  • :wq!:强制保存并退出
  • :x:保存并退出
  • :!:执行系统命令
  • :sh:切换到命令行
  • Ctrl + D:切换回 Vim
配置 VIM
一般设定
" 设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

" 不要使用 vi 的键盘模式,而是 vim 自己的
set nocompatible

" history 文件中需要记录的行数
set history=100

" 在处理未保存或只读文件的时候,弹出确认
set confirm

" 与 Windows 共享剪贴板
set clipboard+=unnamed

" 侦测文件类型
filetype on
filetype plugin on
filetype indent on

" 保存全局变量
set viminfo+=!

" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-

" 语法高亮
syntax on

" 高亮字符,让其不受100列限制
highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
match OverLength '%101v.*'

" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White

" 在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)

" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2

" 使回格键(backspace)正常处理 indent, eol, start 等
set backspace=2

" 允许 backspace 和光标键跨越行边界
set whichwrap+=<,>,h,l

" 可以在 buffer 的任何地方使用鼠标(类似 Office 中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key

" 启动的时候不显示帮助信息
set shortmess=atI

" 通过使用 :commands 命令,告诉我们文件的哪一行被改变过
set report=0

" 不让 vim 发出讨厌的滴滴声
set noerrorbells

" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
文件设置
" 不要备份文件(根据自己需要取舍)
set nobackup

" 不要生成 swap 文件,当 buffer 被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

" 字符间插入的像素行数目
set linespace=0

" 增强模式中的命令行自动完成操作
set wildmenu

" 自动缩进
set autoindent
set smartindent
set cindent

" 制表符设置
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab

" 不要换行
set nowrap

" 在行和段开始处使用制表符
set smarttab
CTags 的设定
" 按照名称排序
let Tlist_Sort_Type = "name"

" 在右侧显示窗口
let Tlist_Use_Right_Window = 1

" 压缩方式
let Tlist_Compart_Format = 1

" 如果只有一个 buffer,kill 窗口也 kill 掉 buffer
let Tlist_Exist_OnlyWindow = 1

" 不要关闭其他文件的 tags
let Tlist_File_Fold_Auto_Close = 0

" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
Autocommands
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
if has("autocmd")
  autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number
  autocmd FileType xml,html vmap
endif

27. 进阶工具

图形化工具
  • meld:文件比较与合并工具(需安装 meld

  • inxi:显示系统信息(需安装 inxi

  • nmon:全面的性能监控工具(需安装 nmon

  • gnome-search-tool:全盘搜索文件的图形化工具

  • firefox
    

    :安装 Flash Player 插件

    • 下载插件:install_flash_player_9_linux.tar.gz
    • 解压并安装:tar -zxf install_flash_player_9_linux.tar.gz./flashplayer-installer
    • 拷贝插件到 Firefox 插件目录:sudo cp libflashplayer.so /usr/lib/firefox/plugins
  • filezilla
    

    :FTP 文件传输工具,支持中文目录显示

    • 安装:sudo apt-get install filezilla

    • 设置中文显示:

      1. 下载 FileZilla 中文包到本地目录,如 ~/

      2. 解压:unrar x Filezilla3_zhCN.rar

      3. 如果没有 unrar,先安装:sudo apt-get install rar unrar

      4. 创建符号链接:sudo ln -f /usr/bin/rar /usr/bin/unrar

      5. 备份原语言包并安装新语言包:

        sudo cp /usr/share/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo.bak
        sudo cp ~/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo
        
      6. 重启 FileZilla 即可

网络工具
  • netcat (nc):网络连接调试工具
  • mtr:结合了 pingtraceroute 的网络诊断工具(需安装 mtr
  • wireshark:网络协议分析工具(需安装 wireshark
性能监控
  • htop:增强版 top,提供更友好的界面和更多功能(需安装 htop
  • glances:跨平台的系统监控工具(需安装 glances
  • nmon:全面的性能监控工具(需安装 nmon
  • watch -n 1 'df -h':每秒刷新一次显示磁盘使用情况
  • sar:系统活动报告,提供详细的 CPU、内存、磁盘等历史信息(需安装 sysstat

28. 附录:常用快捷命令

  • 快速查找某个文件
    • whereis filename
    • find 目录 -name 文件名
  • 查看文件类型
    • file filename
  • tail 不停地读取最新内容
    • tail -n 10 -f /var/log/apache2/access.log
  • 查看文件中间的行
    • sed -n '5,10p' /var/log/apache2/access.log:查看第五行到第十行
  • 通过 SSH 传输文件
    • 上传:scp -rp /path/filename username@remoteIP:/path
    • 下载:scp -rp username@remoteIP:/path/filename /path
  • 查看某个文件被哪些应用程序读写
    • lsof 文件名
  • 批量修改文件名
    • rename 's/.rm$/.rmvb/' *:将所有文件的后缀由 .rm 改为 .rmvb
    • rename 'tr/A-Z/a-z/' *:将所有文件名中的大写改为小写
  • 删除特殊文件名的文件
    • rm -- --help.txtrm ./--help.txt
  • 查看当前目录的子目录
    • ls -d */echo */
  • 移动最近访问过的文件
    • find . -type f -atime -30 -exec mv {} ../back \;:将最近 30 天访问过的文件移动到上级 back 目录
  • 显示最近一段时间内的文件
    • find . -mmin +120 -mmin -480 -exec more {} \;:显示最近 2 小时到 8 小时之内的文件
  • 删除特定条件的文件
    • find . -type f -mtime +30 -mtime -3600 -exec rm {} \;:删除修改时间在 30 天之前的所有文件
    • find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} \;:删除 guest 用户的 .avi.rm 文件
    • find . ! -name '*.java' ! -name '*.xml' -atime +7 -exec rm {} \;:删除不以 .java.xml 结尾,且 7 天未使用的文件
  • 统计文件和目录
    • ls /usr/bin | wc -w:统计当前文件个数
    • ls -l /usr/bin | grep ^d | wc -l:统计当前目录个数
    • ls -l | grep '2006-01-01' | awk '{print $8}':显示 2006-01-01 创建的文件名

29. 总结

这个命令大全涵盖了常见的 Linux 系统管理、文件操作、磁盘管理、用户管理、网络调试、安全、进程管理等方面的命令。掌握这些命令能够帮助您更高效地管理和维护 Linux 系统。如果您有特定需求或需要更深入的操作,欢迎随时咨询!


:部分命令可能需要安装额外的软件包。例如,htopnmoninximeldtreesysstatsmartmontoolslm-sensors 等工具需通过包管理器安装。此外,某些操作需要超级用户权限(使用 sudo)。


附加信息

常用软件安装示例
  • 安装解码器、Flash Player、Java 虚拟机、微软字体

    sudo apt-get install ubuntu-restricted-extras
    
  • 安装 FileZilla FTP 工具

    sudo apt-get install filezilla
    
  • 安装 RAR 压缩和解压工具

    sudo apt-get install rar unrar
    
  • 安装媒体播放器

    sudo apt-get install mplayer mozilla-mplayer totem-xine libxine-extracodecs
    
  • 安装下载工具(多线程下载、BT下载、电驴)

    sudo apt-get install d4x amule azureus
    
  • 安装文件名编码转换工具

    sudo apt-get install convmv
    
  • 安装 MP3 标签编码转换工具

    sudo apt-get install python-mutagen
    
  • 安装控制台中文显示工具

    sudo apt-get install zhcon
    
  • 安装支持 QT 的 scim 插件以在 Eva 中输入中文

    sudo apt-get install scim-qtimm
    
  • 安装 Beryl 桌面效果

    sudo apt-get install beryl-core beryl-plugins beryl-plugins-data emerald beryl-settings beryl-manager beryl beryl-dev emerald-themes
    
  • 安装硬件传感器信息查看工具

    sudo apt-get install lm-sensors
    
  • 安装硬盘健康状况查看工具

    sudo apt-get install smartmontools
    
  • 安装系统信息查看工具

    sudo apt-get install inxi
    
  • 安装性能监控工具

    sudo apt-get install nmon
    
  • 安装系统统计工具(包含 iostatmpstatsar 等)

    sudo apt-get install sysstat
    
  • 安装完整版本的 Vim 编辑器

    sudo apt-get install vim-full
    
  • 安装 GNOME 全盘搜索工具

    sudo apt-get install gnome-search-tool
    
  • 安装图形化文件比较工具

    sudo apt-get install meld
    

;