Linux基础常用命令教学:从入门到熟练
📅 2026/7/19 4:28:27
👁️ 阅读次数
📝 编程学习
1. 引言:为什么学习Linux命令?
Linux作为服务器、云计算、容器和嵌入式开发领域的核心操作系统,其命令行界面(CLI)是高效管理和操作系统的关键。掌握基础Linux命令不仅能提升工作效率,更是深入理解计算机系统运作、进行自动化运维和开发的必备技能。本文将从零开始,系统讲解Linux中最常用、最核心的命令,帮助初学者快速上手。
2. 环境准备与终端基础
在开始学习命令前,你需要一个Linux环境。可以选择:
- 物理机安装:如Ubuntu、CentOS。
- 虚拟机:使用VirtualBox或VMware安装Linux系统。
- 云服务器:购买阿里云、腾讯云等提供的Linux云服务器。
- Windows子系统(WSL):在Windows 10/11上安装WSL。
打开终端(Terminal)后,你会看到类似user@hostname:~$的提示符,其中~代表当前用户的家目录(home directory),$表示普通用户权限(#表示root超级用户)。
3. 文件与目录操作命令
3.1 查看与导航
- pwd:打印当前工作目录的完整路径。
pwd输出:/home/username
- ls:列出目录内容。
ls # 简单列出 ls -l # 以长格式列出(显示权限、所有者、大小等) ls -a # 列出所有文件,包括隐藏文件(以.开头) ls -lh # 以人类可读的格式(如K, M)显示文件大小 ls -ld #查看目录本身信息 - cd:切换目录。
cd /home # 切换到绝对路径 /home cd .. # 切换到上级目录 cd ~ # 切换到当前用户的家目录 cd - # 切换到上一个所在的目录
3.2 创建、删除与移动
- mkdir:创建新目录。
mkdir new_folder # 创建单个目录 mkdir -p parent/child # 创建多级目录(如果父目录不存在则一并创建) - touch:创建空文件或更新文件时间戳。
touch file.txt - cp:复制文件或目录。
cp source.txt dest.txt # 复制文件 cp -r source_dir/ dest_dir/ # 递归复制目录 - mv:移动或重命名文件/目录。
mv old.txt new.txt # 重命名文件 mv file.txt /tmp/ # 将文件移动到 /tmp 目录 - rm:删除文件或目录。(谨慎使用!)
rm file.txt # 删除文件 rm -r folder/ # 递归删除目录及其内容 rm -rf folder/ # 强制递归删除,无确认提示(极其危险!)
4. 文件内容查看与编辑
4.1 查看文件内容
- cat:连接文件并打印到标准输出(适合查看小文件)。
cat file.txt - less / more:分页查看大文件(推荐使用
less,支持上下翻页)。less large_log.txt # 在 less 中:空格键向下翻页,b键向上翻页,q键退出 - head:显示文件开头部分(默认10行)。
head -n 20 file.txt # 显示前20行 - tail:显示文件末尾部分,常用于实时查看日志。
tail -n 5 file.txt # 显示最后5行 tail -f app.log # 实时追踪文件新增内容(Ctrl+C 退出)
4.2 文本编辑
- vim / vi:功能强大的模态编辑器(学习曲线陡峭但效率极高)。
vim file.txt 进入后按 i 进入插入模式编辑,按 Esc 退出插入模式,输入 :wq 保存并退出
5. 系统信息与进程管理
5.1 系统状态
- uname:显示系统信息。
uname -a # 显示所有信息(内核版本、主机名等) - df:报告文件系统磁盘空间使用情况。
df -h # 以人类可读格式显示 - free:显示内存使用情况。
free -h # 以人类可读格式显示 - top / htop:动态显示进程信息(
htop是top的增强版)。
5.2 进程管理
- ps:报告当前进程的快照。
ps aux # 查看所有用户的所有进程详细信息 ps -ef | grep nginx # 查找包含"nginx"的进程 - kill:向进程发送信号以终止进程。
kill 1234 # 向PID为1234的进程发送TERM信号(请求终止) kill -9 1234 # 发送KILL信号(强制终止) - pkill:通过进程名终止进程。
pkill firefox
6. 网络相关命令
- ping:测试与目标主机的网络连通性。
ping google.com ping -c 4 8.8.8.8 # 发送4个包后停止 - ifconfig / ip addr:查看和配置网络接口(
ip命令更现代)。ip addr show - netstat / ss:显示网络连接、路由表、接口统计等(
ss是netstat的更快替代)。ss -tuln # 查看所有监听的TCP和UDP端口 - curl:强大的命令行数据传输工具,常用于测试API、下载文件。
curl https://api.example.com/data curl -O https://example.com/file.zip # 下载文件并保留远程文件名 - wget:非交互式网络下载器。
wget https://example.com/file.zip
7. 权限与用户管理
7.1 文件权限
使用ls -l查看文件权限,输出如-rwxr-xr--。
- 第一位:文件类型(
-普通文件,d目录)。 - 后九位:三组权限(所有者、所属组、其他人),每组为 rwx(读、写、执行)。
- chmod:修改文件权限。
chmod 755 script.sh # 数字模式:所有者rwx,组rx,其他人rx chmod u+x script.sh # 符号模式:给所有者增加执行权限 - chown:修改文件所有者和所属组。
chown user:group file.txt
7.2 用户与组
- whoami:显示当前登录用户名。
- id:显示用户和组信息。
id # 显示当前用户的 uid、gid 和所属组 id username # 显示指定用户的信息 - groups:显示用户所属的组。
groups # 显示当前用户所属组 groups zzx # 显示用户 zzx 所属组 - sudo:以超级用户(root)权限执行命令。
sudo apt update # 在 Ubuntu/Debian 上更新软件包列表 sudo systemctl restart nginx # 重启 nginx 服务 - su:切换用户身份。
su - # 切换到 root 用户(需要 root 密码) su - zzx # 切换到 zzx 用户(需要 zzx 的密码) sudo su - # 使用 sudo 权限切换到 root(需要当前用户有 sudo 权限) - passwd:修改用户密码。
passwd # 修改当前用户密码 sudo passwd zzx # 修改用户 zzx 的密码(需要 root 权限) - useradd:添加用户。
sudo useradd zzx # 添加用户 zzx(Rocky 中自动创建家目录) sudo useradd -m -s /bin/bash zzx # Ubuntu 中需要 -m 手动创建家目录 sudo useradd -d /opt/zzx zzx # -d 指定用户家目录 sudo useradd -u 3000 zzx # 指定用户 uid - userdel:删除用户。
sudo userdel zzx # 删除用户 zzx,保留家目录 sudo userdel -r zzx # 删除用户 zzx,同时删除家目录和邮箱 - usermod:修改用户信息。
sudo usermod -aG qa zzx # 将用户 zzx 加入附加组 qa(-a 避免覆盖原有组) sudo usermod -s /bin/sh zzx # 修改用户登录 shell sudo usermod -L zzx # 锁定用户账户 sudo usermod -U zzx # 解锁用户账户 - groupadd:创建组。
sudo groupadd dba # 创建组 dba sudo groupadd -g 3000 dba # 创建并指定组的 gid - groupmod:修改组。
sudo groupmod -n ops op # 修改组名,-n 新组名 旧组名 sudo groupmod -g 4000 devops # 修改组GID - groupdel:删除组。
sudo groupdel dba # 删除组 dba(组内不能有用户) - gpasswd:组成员管理。
sudo gpasswd -a zzx qa # 将用户 zzx 添加到组 qa 中 sudo gpasswd -d zzx qa # 将用户 zzx 从组 qa 中移除 sudo gpasswd -A zzx qa # 设置用户 zzx 为组 qa 的管理员 - visudo:安全编辑 sudoers 配置文件。
sudo visudo # 编辑 /etc/sudoers 文件(会进行语法检查)
相关配置文件:
/etc/passwd:用户账户信息/etc/shadow:用户密码信息(加密)/etc/group:组信息/etc/sudoers:sudo 权限配置
注意事项:
- 用户和组管理通常需要 root 权限,使用
sudo或切换到 root 用户执行。 - 删除用户或组前,确保没有进程或文件依赖。
- 修改系统配置文件建议使用专用命令(如
visudo),避免直接编辑导致语法错误。
8. 压缩与归档
- tar:打包与解包文件(常与压缩结合)。
tar -czvf archive.tar.gz folder/ # 创建gzip压缩的tar包 tar -caf archive.tar.gz folder/ #a表示根据后缀gz/bz2/xz自动选择压缩工具 tar -xzvf archive.tar.gz # 解压gzip压缩的tar包 tar -xf archive.tar.gz - gzip / gunzip:压缩/解压 .gz 文件。
- zip / unzip:创建和解压 .zip 文件。
9. 查找与搜索
- find:在目录树中查找文件。
find /home -name "*.txt" # 按文件名查找 find . -type f -size +10M # 查找大于10MB的文件 find . -mtime -7 # 查找7天内修改过的文件 - grep:在文件中搜索文本模式。
grep "error" log.txt # 在文件中搜索"error" grep -r "TODO" src/ # 递归搜索目录 grep -i "warning" file.txt # 忽略大小写搜索
10. 总结与练习建议
掌握这些基础命令是成为Linux熟练用户的第一步。建议:
- 动手实践:在自己的Linux环境中逐一尝试每个命令。
- 善用帮助:使用
man 命令名(如man ls)或命令名 --help查看详细手册。 - 组合使用:学习使用管道(
|)将命令组合,例如ps aux | grep python。 - 记录笔记:将常用命令和选项整理成自己的速查表。
命令行是Linux的灵魂,越用越熟练。祝你学习愉快!
编程学习
技术分享
实战经验