Debian常用命令

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


目录

  1. 基本命令
  2. 关机与重启
  3. 文件和目录管理
  4. 文件搜索
  5. 挂载文件系统
  6. 磁盘空间管理
  7. 用户和群组管理
  8. 文件和目录权限
  9. 文件的特殊属性
  10. 打包和压缩文件
  11. [DEB 包管理](#DEB 包管理)
  12. 查看文件内容
  13. 文本处理
  14. 字符设置和文件格式转换
  15. 文件系统分析
  16. 初始化文件系统
  17. [SWAP 文件系统](#SWAP 文件系统)
  18. 备份与恢复
  19. 光盘操作
  20. 网络管理与调试
  21. 系统监控与性能
  22. 进程管理
  23. 硬件管理
  24. 安全与权限
  25. 日志管理
  26. [VIM 编辑器](#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
一般设定
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:\
文件设置
vim 复制代码
" 不要备份文件(根据自己需要取舍)
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 的设定
vim 复制代码
" 按照名称排序
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
vim 复制代码
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
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. 备份原语言包并安装新语言包:

      bash 复制代码
      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 虚拟机、微软字体

    bash 复制代码
    sudo apt-get install ubuntu-restricted-extras
  • 安装 FileZilla FTP 工具

    bash 复制代码
    sudo apt-get install filezilla
  • 安装 RAR 压缩和解压工具

    bash 复制代码
    sudo apt-get install rar unrar
  • 安装媒体播放器

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

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

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

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

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

    bash 复制代码
    sudo apt-get install scim-qtimm
  • 安装 Beryl 桌面效果

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

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

    bash 复制代码
    sudo apt-get install smartmontools
  • 安装系统信息查看工具

    bash 复制代码
    sudo apt-get install inxi
  • 安装性能监控工具

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

    bash 复制代码
    sudo apt-get install sysstat
  • 安装完整版本的 Vim 编辑器

    bash 复制代码
    sudo apt-get install vim-full
  • 安装 GNOME 全盘搜索工具

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

    bash 复制代码
    sudo apt-get install meld

相关推荐
刘争Stanley1 小时前
Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普
android·linux·运维·内核·镜像·gki·kmi
南棱笑笑生2 小时前
20250121在Ubuntu20.04.6下使用Linux_Upgrade_Tool工具给荣品的PRO-RK3566开发板刷机
linux·运维·服务器
Aimin20224 小时前
Debian 上安装PHP
linux·debian·php
豆是浪个4 小时前
Linux(Centos 7.6)命令详解:dos2unix
linux·运维·服务器
Christal_pyy4 小时前
树莓派4基于Debian GNU/Linux 12 (Bookworm)设置程序开机自启动
linux·debian
s_little_monster5 小时前
【Linux】权限
linux·运维·数据库·经验分享·学习·学习方法
致奋斗的我们7 小时前
Linux容器(初学了解)
linux·运维·服务器·网络·容器·shell·openeurler
beyoundout8 小时前
主从设备的同步(基于binlog和gtid实现同步)
linux·运维·服务器
念_ovo10 小时前
【Linux】Linux入门(4)其他常用指令
linux·运维·服务器
大梦百万秋13 小时前
走进DevOps:让开发与运维齐头并进
linux·运维·服务器