linux常用命令大全(linux基础命令入门到精通+实例讲解 ...

2025-12-24 04:53:33 · 作者: AI Assistant · 浏览: 17

本文系统性地整理了Linux系统中常用命令的详解与实际应用,结合CentOS7环境,从文件管理文本处理系统性能监控安全配置,覆盖了从命令语法具体场景的全方位内容,旨在帮助开发者和运维人员快速掌握Linux操作的核心技能。

Linux常用命令详解与实践应用

Linux作为一个功能强大且高度可定制的操作系统,其命令行工具是日常开发和运维任务中不可或缺的一部分。掌握常用命令Shell脚本系统编程运维工具,不仅能够提升工作效率,还能帮助我们深入理解系统运行机制。本文将以CentOS7系统为背景,结合实例和最佳实践,系统讲解这些命令的使用方法和场景。

文件管理

cd 是进入目录的命令,语法为 cd [路径]。它支持相对路径、绝对路径、特殊符号 ~(当前用户的主目录)和 ..(上一级目录)。例如,cd /home/user 会切换到用户的主目录,而 cd - 会返回上一次所在的目录。

pwd 命令用于显示当前工作路径,常用于确认当前所处的目录位置。例如,运行 pwd 可以查看当前路径是否为 ~/Documents

ls 命令用于列出目录内容,支持多个选项。ls -a 会显示所有隐藏文件,ls -lh 则会以人类可读的格式列出文件信息。ls 命令的灵活性使其成为日常操作中不可或缺的工具。

touch 用于创建新文件,如 touch a.txt 将在当前目录下创建一个名为 a.txt 的空文件。

mkdir 用于创建目录,mkdir dir1 会在当前目录下创建一个名为 dir1 的目录。mkdir -p ./dir1/dir2 会递归创建目录,即使父目录不存在也能自动建立。

rm 用于删除文件或目录,使用时需注意选项。rm 文件 删除文件,rm -r 目录 删除目录及其内容。rm -rf * 是一个高危命令,会强制删除当前目录下所有文件,因此必须格外谨慎使用。

find 命令用于在目录结构中搜索文件或目录。find /home -mtime -2 会查找过去两天内被修改过的文件。find . -size +100M 可查找大于100MB的文件。find . -type f 则仅查找普通文件。find . -mtime +2 -exec rm {} ; 是一个高效删除旧文件的实例,适用于清理日志或临时文件。

mv 用于移动或重命名文件。mv a b 将文件 a 移动到 b,如果 b 是目录,则 a 被移动到该目录下;如果 b 不存在,则 a 被重命名为 bmv -t ./test a.txt b.txt 将两个文件移动到 ./test 目录中。

cp 用于复制文件或目录。cp -ai 文件 目标目录 可复制文件并保留属性,-i 选项会在覆盖前提示用户。cp -ai /opt/abc /opt/git/ 是一个典型的复制示例。

文件权限

chmod 用于修改文件或目录的权限,支持符号模式和数字模式。chmod 777 文件 表示设置所有用户(包括其他用户)对文件拥有读、写和执行权限。chmod -R 777 目录 会递归修改目录下所有文件的权限。

chown 用于更改文件或目录的所有者及所属组。chown -R admin:root /opt/ 表示将 /opt 目录及其内容的所有者设置为 admin,所属组设置为 root

系统信息与性能监控

uname -m 显示当前系统的硬件架构,如 x86_64uname -r 显示当前运行的内核版本,cat /proc/version 可查看更详细的系统信息。lsb_release -a 显示系统发行版本,适用于大多数Linux发行版。

top 命令用于动态监控系统资源使用情况,如CPU和内存。top -d 2 -p 7427 会每隔2秒更新一次,并监控进程ID为7427的进程状态。

vmstat 2 10 用于查看系统状态,每隔2秒采集一次,共10次,可监控内存、IO读写和CPU使用情况。

free -h 显示系统内存及虚拟内存的使用情况,df -h 显示磁盘空间使用情况。iostat 可用于查看磁盘IO读写和CPU使用情况。

sar -u 3 5 用于查看CPU使用情况,3秒一次,共5次。sar -d 2 3 则用于评估磁盘性能。

ps aux | grep firefox 用于查找特定进程,如Firefox浏览器,kill -9 进程号 可强制终止进程。

systemctl 用于查看和管理系统服务,如 systemctl status sshd 可查看SSH服务的状态。

系统安全

echo > ~/.bash_history && history -c 是一个彻底清除历史命令的方法,echo > ~/.bash_history 会清空历史记录文件,history -c 会清空shell内存中的历史记录。这两个命令结合使用可以防止敏感操作被记录。

文本处理

cat 是一个强大的文本处理命令,支持多种选项。cat filename | grep "关键词" -A10 可查找文件中包含关键词的行并显示其后10行内容。cat -n filename | grep "关键词" 则会显示含关键词的行及其行号。

sed 用于文本编辑和处理,支持多种操作。sed -n '2,$p' filename 会显示文件从第2行到最后一行的内容。sed -i '4,$d' filename 会删除第4行到最后一行。sed -i '$a 增加的字符串' filename 会在最后一行之后添加指定字符串。

grep 用于搜索文本内容,grep -i 'HELLO' . -r -n 会在当前目录及其子目录中查找包含“HELLO”的文件,并显示其路径和行号。grep -o '关键词' test.log | wc -l 可统计关键词在文件中的出现次数。

less 用于分页查看文件内容,支持搜索功能。less a.txt | grep 关键词 可将文件内容通过管道传给 grep 命令,实现高效的文本筛选。

用户与权限管理

useradd 用于创建新用户,useradd 用户名 会创建一个新用户。userdel -r 用户名 用于删除用户及其主目录。

usermod 用于修改用户信息,usermod -g 组名 用户名 将用户分配到指定组,usermod -aG 组名 用户名 则将用户添加到组中。groups test 可查看用户所属的组。

passwd 用于修改用户密码,passwd 可让用户修改自己的密码,passwd -d 用户名 可设置空密码,passwd -l 用户名 会禁用用户,passwd -u 用户名 则解禁用户。

groupadd 用于创建用户组,groupadd 组名 会创建一个新组。groupdel 用于删除用户组,groupdel 组名 会删除组。

su 用于切换用户环境,su - 用户名 可切换到指定用户的完整环境,而 su 用户名 只切换身份,不改变环境变量。

sudo 用于以root权限执行命令,sudo 命令 会提示用户输入自己的密码,而不是目标用户的密码。sudoers 文件用于配置sudo权限,只有在该文件中设置了对应用户的权限时,普通用户才能使用 sudo

SSH免密登录

SSH免密登录是一种提升系统操作效率的方式,常用于服务器管理和自动化任务。通过 ssh-keygen -t rsa 生成私钥,然后将公钥写入 ~/.ssh/authorized_keys 文件,并设置权限为 chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys。若使用 Putty,则需要将生成的私钥转换为 ppk 格式,使用 puttygen 工具加载 id_rsa 文件并保存为 ppk 格式。

磁盘管理

fdisk -l 用于查看磁盘信息,如硬盘容量和分区情况。fdisk /dev/sd 是一个用于管理磁盘分区的工具,常用于磁盘扩容分区删除等操作。例如,fdisk -l 可列出所有磁盘和分区,fdisk /dev/sda 则用于操作 /dev/sda 磁盘的分区。

mountumount 命令用于挂载和卸载文件系统。例如,mount /dev/sr0 /mnt 将光驱挂载到 /mntumount /mnt 则卸载该挂载点。

df -h 用于显示磁盘空间使用情况,df -i 可显示磁盘的inode使用情况,这对于理解磁盘容量限制和文件系统状态非常重要。

系统性能与监控

系统性能监控是Linux运维的核心任务之一,涉及多个命令和工具的组合使用。top 是最常用的实时监控工具,vmstatiostat 则用于更详细的统计分析。

sar 是一个系统性能分析工具,支持多种监控指标。sar -u 3 5 可查看CPU使用情况,sar -d 2 3 用于分析磁盘性能。这些命令的数据可以用来分析系统瓶颈,优化资源配置。

压缩、解压与打包

tar 是一个常用的文件打包与解压工具,支持多种压缩格式。例如,tar -zcvf archive.tar.gz /path/to/files 可打包并压缩文件,tar -zxvf archive.tar.gz 用于解压。

gzipgunzip 用于压缩和解压单个文件,gzip a.txt 会将 a.txt 压缩为 a.txt.gzgunzip a.txt.gz 则解压该文件。

zipunzip 是Windows和Linux通用的压缩工具。zip -r project.zip project/ 可压缩整个项目目录,unzip project.zip 则解压。tar -jcvf archive.tar.bz2 /path/to/files 使用 bzip2 压缩,适用于需要高压缩率的场景。

软件安装与管理

yumRedHat系Linux(如CentOS)中常用的软件包管理工具。yum install -y "kernel-devel-uname-r == $(uname -r)" 用于安装与当前内核版本一致的 kernel-devel 包。yum install 包名 可安装软件包,yum remove 包名 用于卸载。

aptDebian系Linux(如Ubuntu)中常用的包管理工具,支持安装、删除和更新软件包。apt install 包名 用于安装,apt remove 包名 用于卸载,apt update 用于更新软件包列表。

rpmRedHat系Linux的包管理工具,rpm -qa 可列出已安装的所有软件包,rpm -ivh 包名 用于安装,rpm -e 包名 可卸载。

debDebian系Linux的软件包格式,dpkg -i 包名.deb 用于安装 .deb 包。

开发与运维最佳实践

在Linux开发和运维中,最佳实践包括: - 命令补全:在命令输入时,按 Tab 键可以自动补全命令或文件名,这有助于提高效率和减少错误。 - 日志分析:使用 tail -f 实时查看日志文件,grep 可用于快速搜索日志中的关键字。 - 系统维护:定期使用 sync 命令确保数据写入磁盘,避免因意外关机导致数据丢失。 - 安全操作:在执行高风险命令(如 rm -rf)前,务必确认路径和参数,避免误删重要文件。 - 自动化脚本:使用 Shell脚本 实现自动化任务,如批量文件删除、日志监控、服务重启等。

常见问题与解决方法

在使用Linux过程中,可能会遇到一些常见问题,如: - history记录问题:使用 echo > ~/.bash_history && history -c 彻底清除历史记录。 - 文件删除失败:上传中文文件可能导致 rm 命令无法识别,使用 find -inum inode号 -exec rm -rf {} ; 可删除乱码文件。 - 权限问题:在修改文件权限或所有者时,需使用 chmodchown 命令,并注意递归操作(-R 参数)。 - 命令找不到:使用 whichwhereis 查找命令路径,或确保环境变量 PATH 中包含该命令的目录。

学习建议与资源推荐

对于初学者而言,学习Linux命令需要系统化实践性。建议结合以下资源进行学习: - 书籍:如《鸟哥的Linux私房菜》,适合入门和进阶。 - 视频课程:如慕课网、B站等平台的Linux编程与系统管理课程。 - 在线文档:如Linux命令手册(man 命令)或官方文档。 - 学习社区:如QQ群、GitHub开源项目、Stack Overflow等。

同时,学习过程中应注重动手实践,通过实际操作掌握命令的使用方法。遇到问题时,可以使用 man 命令查阅文档,或使用 grepless 分析日志文件。

总结

Linux命令是开发和运维工作的基石,掌握它们不仅能够提高日常操作的效率,还能帮助我们深入理解系统内部机制。本文从文件管理系统信息性能监控安全配置文本处理用户权限磁盘管理软件安装等多个方面,详细介绍了常用命令及其应用场景。通过实例讲解最佳实践,我们可以在实际操作中灵活运用这些命令,提升工作效率与系统安全性。

关键字列表
Linux命令, 文件管理, 文本处理, 系统性能, 文件权限, 用户权限, 磁盘管理, 软件安装, Shell脚本, 运维工具