Linux 常用命令大全:覆盖日常 99% 操作需求
1、基本命令
pwd :显示当前工作目录的绝对路径,例如在复杂目录结构中快速确认位置,执行后会输出类似/home/user/documents的结果。
cd :切换目录,cd 目录路径可进入指定目录,cd ~回到当前用户的家目录,cd ..返回上一级目录,cd -切换到上一次所在的目录,cd /进入根目录。
ls :列出目录内容,ls显示当前目录下的文件和目录(不包含隐藏文件);ls -l以长格式显示,包含权限、所有者、大小、修改时间等信息;ls -a显示所有文件和目录,包括隐藏文件(以。开头的文件);ls -h与ls -l配合使用,以人类可读的格式显示文件大小(如 K、M、G);ls -t按修改时间排序,最新的文件排在前面;ls -r反向排序;ls -S按文件大小排序。
clear :清空终端屏幕,使终端显示更整洁,也可使用快捷键Ctrl + L实现相同功能。
echo :输出指定的字符串或变量值,echo "Hello World"输出字符串,echo $PATH输出环境变量 PATH 的值。
date :显示或设置系统时间,date显示当前系统时间,date "+%Y-%m-%d %H:%M:%S"按指定格式显示时间,date -s "2023-10-01 12:00:00"设置系统时间。
cal :显示日历,cal显示当前月份的日历,cal 2023显示 2023 年全年的日历,cal 10 2023显示 2023 年 10 月的日历。
2、关机
shutdown :关机或重启系统,shutdown -h now立即关机;shutdown -h +1010 分钟后关机;shutdown -r now立即重启;shutdown -c取消已安排的关机或重启任务;shutdown -h 23:00在 23:00 关机。
poweroff :直接关闭系统,相当于shutdown -h now,操作更简洁。
reboot :重启系统,功能与shutdown -r now类似,使用更方便。
halt :关闭系统,与 poweroff 类似,会停止 CPU 运行,但可能需要手动关闭电源(现在多数系统中与 poweroff 功能相近)。
init :改变系统运行级别,init 0关机,init 6重启,init 3切换到多用户命令行模式,init 5切换到图形界面模式。
3、文件和目录
mkdir :创建目录,mkdir 目录名创建单个目录;mkdir -p dir1/dir2/dir3递归创建多级目录,即使父目录不存在也能一次性创建;mkdir -m 755 dir创建目录时指定权限为 755。
rmdir :删除空目录,rmdir 目录名只能删除空目录,若目录中有文件或子目录则无法删除;rmdir -p dir1/dir2当 dir2 被删除后,如果 dir1 也为空则一并删除。
touch :创建空文件或更新文件的时间戳,touch 文件名若文件不存在则创建空文件,若文件已存在则更新其访问和修改时间;touch -d "2023-10-01" file修改文件的时间戳为指定日期。
rm :删除文件或目录,rm 文件名删除指定文件;rm -r 目录名递归删除目录及其包含的所有文件和子目录;rm -f 文件名强制删除文件,不提示确认;rm -rf 目录名强制递归删除目录,使用时需谨慎,避免误删重要数据;rm -i 文件名删除前提示确认。
mv :移动或重命名文件 / 目录,mv 源文件 目标路径将文件移动到目标路径;mv 旧文件名 新文件名对文件进行重命名;mv 源目录 目标路径移动目录;mv -f 源 目标强制移动,覆盖已存在的目标文件不提示;mv -i 源 目标若目标存在则提示是否覆盖。
4、文件搜索
find :在指定目录下搜索文件,find 搜索路径 -name "文件名"按文件名搜索,支持通配符(如find /home -name "*.txt"搜索 /home 目录下所有.txt 文件);find 搜索路径 -size +10M搜索大于 10M 的文件;find 搜索路径 -mtime -7搜索 7 天内修改过的文件;find 搜索路径 -user 用户名搜索指定用户拥有的文件;find 搜索路径 -type f只搜索普通文件;find 搜索路径 -type d只搜索目录;find 搜索路径 -perm 755搜索权限为 755 的文件或目录;find 搜索路径 -name "*.log" -exec rm {} \;搜索.log 文件并删除。
locate :快速搜索文件,基于数据库搜索,速度比find快,locate 文件名可快速找到包含该文件名的文件路径。使用前可执行updatedb更新数据库(部分系统会自动定期更新);locate -i 文件名忽略大小写搜索;locate -r "正则表达式"按正则表达式搜索。
grep :在文件中搜索指定的字符串,grep "字符串" 文件名在指定文件中搜索该字符串;grep -r "字符串" 目录名递归在目录下的所有文件中搜索;grep -i "字符串" 文件名忽略大小写搜索;grep -n "字符串" 文件名显示匹配行的行号;grep -v "字符串" 文件名显示不包含该字符串的行;grep -A 3 "字符串" 文件名显示匹配行及后面 3 行;grep -B 2 "字符串" 文件名显示匹配行及前面 2 行;grep -C 2 "字符串" 文件名显示匹配行及前后各 2 行。
whereis :查找二进制程序、源代码和手册页的位置,whereis ls查找 ls 命令的相关文件;whereis -b ls只查找二进制文件;whereis -m ls只查找手册页。
which :在环境变量 PATH 指定的路径中查找可执行文件的位置,which python查找 python 可执行文件的路径;which -a ls显示所有匹配的 ls 命令路径。
5、挂载一个文件系统
mount :挂载文件系统,mount /dev/设备名 挂载点将指定设备挂载到挂载点(如mount /dev/sdb1 /mnt/usb挂载 U 盘到 /mnt/usb);mount -o ro /dev/cdrom /mnt/cdrom以只读方式挂载光盘;mount -t ext4 /dev/sda1 /mnt指定文件系统类型为 ext4 进行挂载;mount -o loop 镜像文件 挂载点挂载 ISO 等镜像文件;mount显示当前所有已挂载的文件系统。
umount :卸载文件系统,umount 挂载点或umount /dev/设备名(如umount /mnt/usb或umount /dev/sdb1),卸载前需确保该文件系统没有被使用;umount -l 挂载点懒惰卸载,即使文件系统被使用也强制卸载(稍后实际卸载);umount -a卸载所有除了 proc、sysfs 等之外的文件系统。
mountpoint :判断一个目录是否为挂载点,mountpoint /mnt/usb判断 /mnt/usb 是否是挂载点;mountpoint -q /mnt/usb静默模式,只通过返回值判断。
swapon :启用交换分区或交换文件,swapon /dev/设备名启用交换分区;swapon 交换文件名启用交换文件;swapon -a启用 /etc/fstab 中定义的所有交换设备;swapon -s显示交换设备的使用情况。
6、磁盘空间
df :显示磁盘分区的空间使用情况,df默认以字节为单位显示;df -h以人类可读的格式(K、M、G)显示;df -T显示文件系统类型;df -i显示 inode 使用情况;df -P使用 POSIX 格式输出,便于脚本处理;df /home只显示 /home 所在分区的情况。
du :显示目录或文件的磁盘使用空间,du 目录名显示指定目录下各子目录的磁盘占用;du -h 文件名以人类可读格式显示文件大小;du -sh 目录名显示目录的总大小(不显示子目录详情);du -a 目录名显示目录下所有文件和子目录的大小;du -c 目录名显示总大小并汇总;du --max-depth=1 目录名只显示指定目录下一级子目录和文件的大小。
lsblk :列出块设备信息,lsblk显示所有块设备的树形结构;lsblk -f显示块设备的文件系统信息;lsblk -l以列表形式显示;lsblk -o NAME,SIZE,TYPE,MOUNTPOINT指定显示的列。
fdisk :磁盘分区工具,fdisk -l列出所有磁盘及分区信息;fdisk /dev/sda对 /dev/sda 磁盘进行分区操作(进入交互模式)。
parted :磁盘分区工具,支持更大的磁盘和更多的分区格式,parted -l列出磁盘分区信息;parted /dev/sda对 /dev/sda 进行分区操作。
7、用户和群组
useradd :创建新用户,useradd 用户名创建用户,默认在 /home 目录下创建用户家目录;useradd -d /home/newdir 用户名指定用户家目录;useradd -s /bin/bash 用户名指定用户的默认 shell;useradd -g 组名 用户名指定用户的主要组;useradd -G 组1,组2 用户名指定用户的附加组;useradd -m 用户名自动创建用户家目录;useradd -r 用户名创建系统用户(无家目录)。
passwd :设置或修改用户密码,passwd 用户名为指定用户设置密码,若不指定用户名则为当前用户修改密码;passwd -l 用户名锁定用户(禁止登录);passwd -u 用户名解锁用户;passwd -d 用户名删除用户密码(登录无需密码);passwd -S 用户名显示用户密码状态。
userdel :删除用户,userdel 用户名删除用户,但保留用户家目录;userdel -r 用户名删除用户的同时删除其家目录;userdel -f 用户名强制删除正在登录的用户。
groupadd :创建用户组,groupadd 组名创建指定名称的用户组;groupadd -g 1000 组名指定组 ID 创建组;groupadd -r 组名创建系统组。
groupdel :删除用户组,groupdel 组名删除指定的用户组,需确保该组中没有用户。
usermod :修改用户属性,usermod -g 组名 用户名将用户添加到指定的主要组;usermod -aG 组名 用户名将用户添加到指定的附加组(-a 表示追加);usermod -d 新目录 用户名修改用户家目录;usermod -s /bin/sh 用户名修改用户的默认 shell;usermod -l 新用户名 旧用户名修改用户名;usermod -L 用户名锁定用户;usermod -U 用户名解锁用户。
groupmod :修改用户组属性,groupmod -n 新组名 旧组名修改组名;groupmod -g 新GID 组名修改组 ID。
id :显示用户和组的 ID 信息,id 用户名显示指定用户的 UID、GID 及所属组信息;id -u 用户名只显示 UID;id -g 用户名只显示主要 GID。
who :显示当前登录的用户信息,包括用户名、登录终端、登录时间、远程主机等;who -a显示所有信息;who -r显示当前运行级别。
w :显示当前登录用户及其执行的命令,比 who 更详细,包含用户的 CPU 使用情况等。
last :显示用户登录历史记录;last -n 10显示最近 10 条记录;last -u 用户名显示指定用户的登录历史。
8、文件的权限
chmod :修改文件或目录的权限,权限分为读(r,4)、写(w,2)、执行(x,1),分别对应所有者、所属组和其他用户。chmod 755 文件名为所有者授予读、写、执行权限,所属组和其他用户授予读和执行权限;chmod u+x 文件名为所有者添加执行权限;chmod g-w 文件名取消所属组的写权限;chmod o=r 文件名为其他用户设置只读权限;chmod -R 755 目录名递归修改目录及其内容的权限;chmod a+x 文件名为所有用户添加执行权限;chmod 000 文件名取消所有用户的权限;chmod --reference=参考文件 目标文件将目标文件权限设置为与参考文件相同。
chown :修改文件或目录的所有者和所属组,chown 用户名 文件名将文件所有者改为指定用户;chown 用户名:组名 文件名同时修改所有者和所属组;chown -R 用户名:组名 目录名递归修改目录的所有者和所属组;chown .组名 文件名只修改所属组(使用。分隔)。
chgrp :修改文件或目录的所属组,chgrp 组名 文件名将文件所属组改为指定组;chgrp -R 组名 目录名递归修改目录的所属组;chgrp --reference=参考文件 目标文件将目标文件所属组设置为与参考文件相同。
umask :设置创建文件或目录的默认权限,umask显示当前的 umask 值;umask 022设置 umask 值为 022(创建文件默认权限为 644,目录为 755)。
9、文件的特殊属性
chattr :设置文件的特殊属性,chattr +i 文件名设置文件为不可修改、删除或重命名;chattr +a 文件名使文件只能追加内容,不能删除或修改已有内容;chattr -i 文件名取消不可修改属性;chattr +s 文件名文件删除后数据块被清零;chattr +u 文件名文件删除后可恢复;chattr -R +i 目录名递归设置目录及其内容不可修改。
lsattr :查看文件的特殊属性,lsattr 文件名显示指定文件的特殊属性;lsattr -d 目录名显示目录的特殊属性;lsattr -R 目录名递归显示目录及其内容的特殊属性;lsattr -a 文件名显示包括隐藏文件在内的特殊属性。
10、打包和压缩文件
tar:打包和解包文件,常用于备份。tar -cvf 包名.tar 文件/目录将文件或目录打包成 tar 包;tar -xvf 包名.tar解包 tar 包;tar -tvf 包名.tar查看 tar 包内的内容;tar -czvf 包名.tar.gz 文件/目录打包并以 gzip 压缩;tar -xzvf 包名.tar.gz解压 gzip 压缩的 tar 包;tar -cjvf 包名.tar.bz2 文件/目录打包并以 bzip2 压缩;tar -xjvf 包名.tar.bz2解压 bzip2 压缩的 tar 包;tar -cJvf 包名.tar.xz 文件/目录打包并以 xz 压缩;tar -xJvf 包名.tar.xz解压 xz 压缩的 tar 包。
gzip:压缩或解压缩文件,gzip 文件名压缩文件(压缩后原文件删除,生成.gz 文件);gzip -d 文件名.gz解压缩.gz 文件;gzip -l 文件名.gz查看压缩文件的信息;gzip -k 文件名压缩文件时保留原文件。
bzip2:比 gzip 压缩率更高,bzip2 文件名压缩文件;bzip2 -d 文件名.bz2解压缩;bzip2 -k 文件名压缩时保留原文件;bzip2 -z 文件名强制压缩(即使文件已压缩)。
xz:高压缩率的压缩工具,xz 文件名压缩文件;xz -d 文件名.xz解压缩;xz -k 文件名压缩保留原文件;xz -l 文件名.xz查看压缩信息。
zip:创建 ZIP 格式压缩包,zip 压缩包名.zip 文件/目录创建 ZIP 包;zip -r 压缩包名.zip 目录递归压缩目录;zip -d 压缩包名.zip 文件名从压缩包中删除文件;zip -u 压缩包名.zip 文件名更新压缩包中的文件。
unzip:解压缩 ZIP 格式文件,unzip 压缩包名.zip解压缩;unzip -l 压缩包名.zip查看压缩包内容;unzip 压缩包名.zip -d 目录解压到指定目录;unzip -o 压缩包名.zip覆盖已有文件不提示。
11、RPM 包
rpm -ivh 包名.rpm:安装 RPM 包,-i表示安装,-v显示详细信息,-h显示进度条。
rpm -Uvh 包名.rpm:升级 RPM 包,若包未安装则进行安装。
rpm -e 包名:卸载 RPM 包,只需包名无需完整文件名。
rpm -qa:列出系统中已安装的所有 RPM 包。
rpm -qa | grep 关键词:查找包含关键词的已安装 RPM 包。
rpm -qi 包名:查看指定 RPM 包的详细信息(版本、描述等)。
rpm -ql 包名:列出 RPM 包安装的所有文件路径。
rpm -qf 文件名:查询指定文件由哪个 RPM 包安装。
rpm -V 包名:验证 RPM 包安装的文件是否被修改。
rpm --import 公钥文件:导入 RPM 包的签名公钥,用于验证包的完整性。
12、YUM 软件包升级器
yum install 包名:安装软件包,自动解决依赖关系。
yum update:升级系统中所有可升级的软件包。
yum remove 包名:卸载软件包,同时卸载无用的依赖。
yum list:列出所有可用的软件包(已安装和可安装)。
yum list installed:列出已安装的软件包。
yum list available:列出可安装的软件包。
yum search 关键词:搜索包含关键词的软件包。
yum clean all:清理 YUM 缓存的软件包和元数据。
yum makecache:生成 YUM 缓存,加快后续操作速度。
yum groupinstall "软件包组名":安装整个软件包组。
yum groupremove "软件包组名":卸载软件包组。
yum repolist:列出已启用的 YUM 仓库。
13、DEB 包
dpkg -i 包名.deb:安装 DEB 包,需手动解决依赖问题。
dpkg -r 包名:卸载 DEB 包,保留配置文件。
dpkg -P 包名:彻底卸载 DEB 包,删除配置文件。
dpkg -l | grep 关键词:查找包含关键词的已安装 DEB 包。
dpkg -s 包名:查看指定 DEB 包的状态信息。
dpkg -L 包名:列出 DEB 包安装的所有文件。
dpkg -S 文件名:查询指定文件由哪个 DEB 包安装。
dpkg --configure -a:配置未完成配置的软件包。
dpkg -c 包名.deb:查看 DEB 包内的文件列表(未安装时)。
14、查看文件内容
cat 文件名:显示文件的全部内容,适合查看小文件。
tac 文件名:反向显示文件内容(从最后一行到第一行)。
more 文件名:分页显示文件内容,按空格键翻页,按 q 退出。
less 文件名:比 more 更强大的分页查看工具,支持上下滚动、搜索(按 / 输入关键词,n 下一个,N 上一个),按 q 退出。
head 文件名:显示文件的前几行,默认前 10 行。
head -n 20 文件名:显示文件的前 20 行。
tail 文件名:显示文件的后几行,默认后 10 行。
tail -n 15 文件名:显示文件的后 15 行。
tail -f 文件名:实时跟踪文件的新增内容(常用于查看日志),按 Ctrl+C 退出。
nl 文件名:给文件内容添加行号并显示,类似 cat -n。
od -c 文件名:以 ASCII 码方式显示二进制文件内容。
15、文本处理
sed:流编辑器,用于文本替换、删除等操作。sed 's/旧内容/新内容/' 文件名替换每行第一个匹配的旧内容;sed 's/旧内容/新内容/g' 文件名替换所有匹配的旧内容;sed '/关键词/d' 文件名删除包含关键词的行;sed '3d' 文件名删除第 3 行;sed '2,5d' 文件名删除第 2 到 5 行;sed -i 's/旧/新/g' 文件名直接修改文件内容(谨慎使用)。
awk:文本处理工具,按列处理数据。awk '{print $1}' 文件名打印每行的第 1 列;awk -F ':' '{print $1,$3}' /etc/passwd以:为分隔符,打印第 1 和第 3 列;awk '$3 > 1000' 文件名打印第 3 列大于 1000 的行;awk '/关键词/ {print $0}' 文件名打印包含关键词的行;awk 'BEGIN{total=0} {total+=$1} END{print total}' 文件名计算第 1 列的总和。
sort:对文本内容排序。sort 文件名按默认规则排序;sort -n 文件名按数值大小排序;sort -r 文件名反向排序;sort -k 2 文件名按第 2 列排序;sort -u 文件名去除重复行;sort -t ',' -k 3n 文件名以,为分隔符,按第 3 列数值排序。
uniq:处理重复行(需先排序)。uniq 文件名去除连续重复行;uniq -c 文件名统计连续重复行的次数;uniq -d 文件名只显示重复的行;uniq -u 文件名只显示不重复的行。
cut:截取文本的列。cut -f 1 文件名截取第 1 列(默认制表符分隔);cut -d ':' -f 1,6 /etc/passwd以:为分隔符,截取第 1 和第 6 列;cut -c 1-5 文件名截取每行的第 1 到 5 个字符;cut -c 10- 文件名截取每行第 10 个字符及之后的内容。
paste:合并多个文件的列。paste file1 file2将 file1 和 file2 的内容按列合并;paste -d ',' file1 file2以,作为分隔符合并。
tr:字符转换或删除。tr 'a-z' 'A-Z' < 文件名将文件中 lowercase 转为 uppercase;tr -d 'abc' 文件名删除文件中的 a、b、c 字符;tr -s ' ' 文件名将多个连续空格压缩为一个。
16、字符设置和文件格式转换
iconv -f 原编码 -t 目标编码 原文件 -o 目标文件:转换文件编码,如iconv -f GBK -t UTF-8 old.txt -o new.txt将 GBK 编码的 old.txt 转为 UTF-8 编码的 new.txt。
dos2unix 文件名:将 DOS 格式文件(换行符为 \r\n)转换为 UNIX 格式(换行符为 \n)。
unix2dos 文件名:将 UNIX 格式文件转换为 DOS 格式。
enca -L 语言 文件名:检测文件的编码格式,如enca -L chinese file.txt检测中文文件编码。
enca -L 语言 -x 目标编码 文件名:转换文件编码,如enca -L chinese -x UTF-8 file.txt。
17、文件系统分析
dumpe2fs /dev/设备名:显示 ext 系列文件系统的详细信息(如块大小、inode 数量等),需指定具体分区(如 /dev/sda1)。
e2fsck /dev/设备名:检查并修复 ext 系列文件系统的错误,需在卸载状态下使用,e2fsck -y /dev/sda1自动回答 yes 修复所有错误。
fsck:检查并修复文件系统,自动识别文件系统类型,fsck /dev/sda1;fsck -f /dev/sda1强制检查即使文件系统看似正常。
tune2fs:调整 ext 系列文件系统的参数,tune2fs -l /dev/sda1显示参数;tune2fs -c 50 /dev/sda1设置每挂载 50 次检查文件系统。
badblocks:检查磁盘坏块,badblocks /dev/sda检查整个磁盘;badblocks -o badblocks.list /dev/sda1将坏块列表保存到文件。
18、初始化一个文件系统
mkfs:创建文件系统,mkfs.ext4 /dev/sda1在 /dev/sda1 上创建 ext4 文件系统;mkfs.xfs /dev/sdb1创建 xfs 文件系统;mkfs.vfat /dev/sdc1创建 FAT32 文件系统(常用于 U 盘)。
mkfs.ext4:专门创建 ext4 文件系统,mkfs.ext4 -L 卷标 /dev/sda1创建时指定卷标;mkfs.ext4 -b 4096 /dev/sda1指定块大小为 4096 字节。
mkfs.xfs:创建 xfs 文件系统,mkfs.xfs -f /dev/sdb1强制创建(即使已有文件系统)。
mkswap /dev/设备名:初始化交换分区,mkswap /dev/sda5将 /dev/sda5 初始化为交换分区。
19、SWAP 文件系统
dd if=/dev/zero of=/swapfile bs=1G count=4:创建一个 4GB 的交换文件(if 表示输入文件,of 表示输出文件,bs 是块大小,count 是块数)。
mkswap /swapfile:将文件初始化为交换文件系统。
swapoff /swapfile:关闭交换文件。
swapon -s:显示所有交换设备和文件的使用情况。
free -h:查看内存和交换分区的使用情况,确认 swap 是否生效。
永久启用:编辑 /etc/fstab,添加/swapfile swap swap defaults 0 0,使系统重启后自动挂载。
20、备份
rsync -av 源路径 目标路径:同步文件和目录,-a归档模式(递归、保留权限等),-v详细输出。如rsync -av /home/user /backup备份 /home/user 到 /backup。
rsync -avz 源路径 远程用户@远程主机:目标路径:通过 SSH 远程同步,-z压缩传输数据。
tar -czvf /backup/$(date +%Y%m%d)_etc.tar.gz /etc:按日期创建 /etc 目录的压缩备份。
dump -0u -f /backup/root_dump /:备份根目录到指定文件,-0是备份级别(0 为全量),-u更新备份记录。
restore -rf /backup/root_dump:恢复 dump 创建的备份。
cp -a 源文件 目标文件:复制文件并保留所有属性(权限、时间戳等),适合简单备份。
21、光盘
cdrecord -v dev=/dev/cdrom 镜像.iso:刻录 ISO 镜像到光盘,-v显示详细信息。
mkisofs -o 镜像.iso 目录:将目录内容制作成 ISO 镜像文件。
mount /dev/cdrom /mnt/cdrom:挂载光盘到 /mnt/cdrom 目录。
22、网络
ifconfig:查看和配置网络接口信息,ifconfig显示所有激活的网络接口;ifconfig eth0查看指定接口(如 eth0)的信息;ifconfig eth0 192.168.1.100 netmask 255.255.255.0 为 eth0 设置 IP 和子网掩码;ifconfig eth0 up激活接口;ifconfig eth0 down禁用接口。
ip:更强大的网络配置工具,ip addr查看 IP 地址信息;ip addr add 192.168.1.101/24 dev eth0为 eth0 添加 IP;ip link set eth0 up/down激活 / 禁用接口;ip route查看路由表;ip route add default via 192.168.1.1 设置默认网关。
netstat:查看网络连接、路由表等,netstat -tuln显示所有监听的 TCP 和 UDP 端口;netstat -an显示所有网络连接;netstat -r显示路由表;netstat -s显示网络统计信息。
ss:替代 netstat 的工具,更高效,ss -tuln查看监听端口;ss -an查看所有连接;ss -o state established '( dport = :80 or sport = :80 )'查看 80 端口的已建立连接。
hostname:查看或设置主机名,hostname显示当前主机名;hostname newname临时修改主机名(重启失效);永久修改需编辑/etc/hostname文件。
23、列出目录内容
ls:基础命令,已在基本命令中详述,补充ls -la可查看所有文件(包括隐藏)的详细信息;ls -ld 目录名查看目录本身的信息而非内容。
tree:以树形结构列出目录内容,tree显示当前目录树形结构;tree -L 2只显示 2 级目录;tree -d只显示目录;tree -f显示文件的完整路径。
24、查看文件的类型
file:判断文件类型,file filename显示文件类型(文本、二进制、压缩包等);file -b filename只显示类型描述(无文件名);file -L linkname查看符号链接指向的文件类型。
mime-type:查看文件的 MIME 类型(部分系统需安装),mime-type filename返回类似text/plain的结果。
25、复制文件目录等操作
cp:复制文件和目录,cp source.txt dest.txt复制文件;cp -i source.txt dest.txt覆盖前提示;cp -r dir1 dir2递归复制目录;cp -a dir1 dir2复制目录并保留所有属性;cp *.txt /tmp复制所有 txt 文件到 /tmp。
rsync:高效同步工具,已在备份中详述,补充rsync -av --delete source/ dest/同步并删除 dest 中 source 没有的文件。
scp:通过 SSH 复制文件,scp localfile user@remotehost:/path复制本地文件到远程;scp user@remotehost:/file localpath复制远程文件到本地;scp -r dir user@remotehost:/path递归复制目录。
26、系统常用命令
top:实时监控系统资源使用情况,显示进程 CPU、内存占用等,按q退出;top -p 1234只监控 PID 为 1234 的进程;top -u username只显示指定用户的进程。
htop:增强版 top,支持鼠标操作,htop启动后可直观查看系统状态,按F10退出。
ps:查看进程状态,ps aux显示所有进程;ps -ef以全格式显示进程;ps aux | grep python查找 python 相关进程;ps -l显示当前终端的进程。
pstree:以树形结构显示进程,pstree显示所有进程树;pstree -p显示进程 ID;pstree username显示指定用户的进程树。
kill:终止进程,kill 1234向 PID 为 1234 的进程发送终止信号;kill -9 1234强制终止进程(慎用);killall processname终止所有同名进程。
bg:将前台进程转为后台运行,bg %1将编号为 1 的暂停进程放入后台。
fg:将后台进程调至前台,fg %1将编号为 1 的后台进程调至前台。
jobs:查看后台运行的进程,jobs列出所有后台进程及状态。
nohup:使进程在后台长期运行,nohup command &执行命令并忽略挂起信号,输出保存到 nohup.out。
free:查看内存使用情况,free -h以人类可读格式显示内存和 swap 使用;free -s 5每隔 5 秒刷新一次。
vmstat:报告虚拟内存统计信息,vmstat显示内存、进程、IO 等信息;vmstat 2 5每隔 2 秒输出一次,共 5 次。
iostat:监控 CPU 和 IO 统计,iostat显示 CPU 和设备 IO 信息;iostat -x 1每隔 1 秒显示详细 IO 信息。
sar:系统活动报告工具,sar -u 1 3监控 CPU 使用(1 秒一次,3 次);sar -r查看内存使用;sar -n DEV查看网络接口统计。
history:查看命令历史记录,history显示所有历史命令;history 10显示最近 10 条;!123执行历史记录中编号为 123 的命令;!grep执行最近一条以 grep 开头的命令。
alias:设置命令别名,alias ll='ls -l'将 ll 设为 ls -l 的别名;alias查看所有别名;unalias ll取消别名。
uname:显示系统信息,uname -a显示所有系统信息(内核版本、主机名、架构等);uname -r显示内核版本;uname -m显示机器架构。
uptime:显示系统运行时间和负载,uptime输出格式:当前时间 up 运行时间, 用户数, 负载平均值。
df和du:已在磁盘空间中详述,补充df -Th显示文件系统类型;du -sh *显示当前目录下各文件 / 目录的总大小。
27、VIM
vim 文件名:启动 VIM 并打开文件,若文件不存在则创建。
插入模式 :按i在当前光标前插入;I在行首插入;a在当前光标后插入;A在行尾插入;o在当前行下方新增一行并插入;O在当前行上方新增一行并插入;按Esc退出插入模式。
移动光标:h左移,j下移,k上移,l右移;gg到文件开头;G到文件结尾;nG到第 n 行;^到行首;$到行尾。
删除操作:x删除光标所在字符;dd删除当前行;ndd删除从当前行开始的 n 行;dG删除从当前行到文件结尾;d$删除从光标到行尾。
复制粘贴:yy复制当前行;nyy复制 n 行;p粘贴到光标后;P粘贴到光标前。
查找替换:/关键词向下查找;?关键词向上查找;n下一个匹配;N上一个匹配;:s/旧内容/新内容/替换当前行第一个匹配;:s/旧内容/新内容/g替换当前行所有匹配;:%s/旧内容/新内容/g替换整个文件所有匹配;:%s/旧内容/新内容/gc替换时确认。
末行模式 :按:进入,w保存;q退出;wq保存并退出;q!强制退出不保存;set nu显示行号;set nonu隐藏行号;set autoindent自动缩进;:n跳转到第 n 行。
28、软件包管理命令 (RPM)
rpm -qp 包名.rpm:查询未安装的 RPM 包信息。
rpm -qpl 包名.rpm:列出未安装的 RPM 包将安装的文件。
rpm -qpR 包名.rpm:查看未安装的 RPM 包的依赖关系。
rpm -ivh --force 包名.rpm:强制安装,覆盖已安装文件。
rpm -ivh --nodeps 包名.rpm:忽略依赖关系安装(不推荐,可能导致软件无法运行)。
rpm -Va:验证系统中所有已安装的 RPM 包文件完整性。
rpm -qi --changelog 包名:查看包的更新日志。
点赞
打赏