以下是完整的 Linux 命令大全,适用于 Debian、Ubuntu 及其衍生系统,涵盖系统管理、文件操作、磁盘管理、用户管理、网络调试、安全、进程管理等多个方面。
目录
- 基本命令
- 关机与重启
- 文件和目录管理
- 文件搜索
- 挂载文件系统
- 磁盘空间管理
- 用户和群组管理
- 文件和目录权限
- 文件的特殊属性
- 打包和压缩文件
- DEB 包管理
- 查看文件内容
- 文本处理
- 字符设置和文件格式转换
- 文件系统分析
- 初始化文件系统
- SWAP 文件系统
- 备份与恢复
- 光盘操作
- 网络管理与调试
- 系统监控与性能
- 进程管理
- 硬件管理
- 安全与权限
- 日志管理
- VIM 编辑器
- 进阶工具
- 附录:常用快捷命令
- 总结
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 0
或telinit 0
:关闭系统shutdown -h hh:mm &
:按预定时间关闭系统shutdown -c
:取消按预定时间关闭系统shutdown -r now
:立即重启系统reboot
:重启系统logout
:注销当前用户
3. 文件和目录管理
导航
cd /home
:进入/home
目录cd ..
:返回上一级目录cd ../..
:返回上两级目录cd
或cd ~
:进入个人的主目录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/DVDmount /dev/hdc /mnt/cdrecorder
:挂载 CDRW/DVDmount /dev/hdb /mnt/cdrecorder
:挂载 CDRW/DVDmount -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
:将文本文件转换为 HTMLrecode -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
:启用 swapswapon /dev/hda2 /dev/hdb3
:同时启用多个 swap 分区swapoff /dev/hda3
:禁用 swap
18. 备份与恢复
使用 dump
和 restore
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 获取 IPip 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
:查询主机名与 IPnslookup 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
:结合了ping
和traceroute
的网络诊断工具(需安装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
:立即让网络支持 NATsudo iptables -t nat -I POSTROUTING -j MASQUERADE
:配置 NAT
路由信息
netstat -rn
或route -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
的优先级为 10sleep <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
-
设置中文显示:
-
下载 FileZilla 中文包到本地目录,如
~/
-
解压:
unrar x Filezilla3_zhCN.rar
-
如果没有
unrar
,先安装:sudo apt-get install rar unrar
-
创建符号链接:
sudo ln -f /usr/bin/rar /usr/bin/unrar
-
备份原语言包并安装新语言包:
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
-
重启 FileZilla 即可
-
-
网络工具
netcat (nc)
:网络连接调试工具mtr
:结合了ping
和traceroute
的网络诊断工具(需安装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.txt
或rm ./--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 系统。如果您有特定需求或需要更深入的操作,欢迎随时咨询!
注:部分命令可能需要安装额外的软件包。例如,htop
、nmon
、inxi
、meld
、tree
、sysstat
、smartmontools
、lm-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
-
安装系统统计工具(包含
iostat
、mpstat
、sar
等)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