Linux 系统常用命令教程
Linux 是服务器、嵌入式设备、开发环境和容器平台中常见的操作系统。掌握一些常用命令,可以帮助你更高效地查看文件、管理进程、配置权限、排查网络和完成日常运维。
本教程以常用命令为主,按使用场景分类,适合初学者快速上手,也适合日常查阅。
一、目录与文件管理
1. 查看当前目录
pwd
输出示例:
/home/user
2. 列出目录内容
ls
ls -l
ls -la
常用参数:
-l:以详细列表形式显示文件权限、所有者、大小和时间。-a:显示隐藏文件,即以点号开头的文件。-h:以人类可读格式显示文件大小。-t:按修改时间排序。
示例:
ls -lah
3. 进入目录
cd /etc
返回上一级目录:
cd ..
返回家目录:
cd
4. 创建目录
mkdir project
递归创建多级目录:
mkdir -p project/src/main
5. 创建文件
创建空文件:
touch notes.txt
6. 复制文件
复制文件:
cp source.txt target.txt
复制目录:
cp -r project/ backup_project/
7. 移动或重命名
移动文件:
mv notes.txt docs/notes.txt
重命名文件:
mv a.txt b.txt
8. 删除文件和目录
删除文件:
rm notes.txt
强制删除文件,不提示:
rm -f notes.txt
删除目录及其内容:
rm -r directory/
谨慎使用:
rm -rf directory/
注意:rm -rf / 是非常危险的命令,可能造成系统文件被删除,千万不要执行。
二、文件查看与编辑
1. 查看文件内容
cat config.txt
适合小文件。
2. 分页查看大文件
less largefile.txt
常用操作:
- 按空格向下翻页。
- 按
b向上翻页。 - 按
/keyword搜索。 - 按
q退出。
查看尾部内容:
tail -f app.log
tail -f 常用于实时查看日志。
3. 查看前几行
head -n 20 data.txt
4. 快速编辑文件
使用 nano:
nano notes.txt
使用 vim:
vim notes.txt
vim 基本操作:
- 按
i进入插入模式。 - 按
Esc退出编辑。 - 输入
:wq保存并退出。 - 输入
:q!不保存退出。
三、搜索与查找
1. 按文件名查找
find /etc -name "*.conf"
查找当前目录下的文件:
find . -name "*.txt"
2. 搜索文件内容
grep "error" app.log
忽略大小写:
grep -i "error" app.log
递归搜索目录:
grep -r "timeout" ./logs
显示匹配行号:
grep -n "user" nginx.conf
3. 使用 locate 快速查找
locate nginx.conf
如果数据库未更新,可执行:
sudo updatedb
四、文件权限与用户组
Linux 中每个文件都有所有者、所属组和其他用户的权限。
权限通常表示为:
-rw-r--r--
含义:
- 第一个字符:文件类型,
-是普通文件,d是目录。 - 接下来三组字符:所有者、组、其他用户。
r:可读。w:可写。x:可执行。
1. 查看权限
ls -l file.txt
2. 修改权限
数字方式:
chmod 644 file.txt
常见权限数字:
4:读。2:写。1:执行。
例如:
chmod 755 script.sh
表示:
- 所有者:读、写、执行。
- 组:读、执行。
- 其他:读、执行。
3. 修改所有者
sudo chown user:user group file.txt
递归修改目录权限:
sudo chown -R www-data:www-data /var/www/html
4. 添加可执行权限
chmod +x backup.sh
五、进程管理
1. 查看进程
ps aux
2. 实时查看资源占用
top
或:
htop
如果未安装,可尝试:
sudo apt install htop
或:
sudo yum install htop
3. 查找指定进程
ps aux | grep nginx
4. 结束进程
kill 1234
强制结束:
kill -9 1234
按进程名结束:
pkill nginx
注意:结束系统关键进程可能影响服务,建议先确认进程用途。
六、网络与远程操作
1. 查看 IP 地址
新命令:
ip addr
旧命令:
ifconfig
2. 测试网络连通性
ping 8.8.8.8
停止时可按 Ctrl + C。
3. 查看端口占用
ss -lntp
或:
netstat -lntp
查找某个端口:
ss -lntp | grep :80
4. DNS 查询
dig example.com
或:
nslookup example.com
5. SSH 登录远程服务器
ssh user@server_ip
指定端口:
ssh -p 2222 user@server_ip
生成 SSH 密钥:
ssh-keygen -t rsa
将公钥复制到服务器:
ssh-copy-id user@server_ip
七、软件包管理
不同 Linux 发行版使用不同的包管理器。
Debian / Ubuntu
更新软件源:
sudo apt update
安装软件:
sudo apt install nginx
卸载软件:
sudo apt remove nginx
清除依赖:
sudo apt autoremove
搜索软件:
apt search nginx
CentOS / RHEL / Rocky Linux
安装软件:
sudo yum install nginx
或使用 dnf:
sudo dnf install nginx
更新软件:
sudo yum update
八、磁盘与系统信息
1. 查看磁盘空间
df -h
查看当前目录占用:
du -sh *
2. 查看内存
free -h
3. 查看 CPU 信息
lscpu
4. 查看系统版本
cat /etc/os-release
5. 查看内核版本
uname -a
6. 查看已加载模块
lsmod
九、压缩与解压
1. 创建 tar 压缩包
tar -czvf backup.tar.gz /path/to/files
参数说明:
-c:创建压缩包。-z:使用 gzip 压缩。-v:显示过程。-f:指定文件名。
2. 解压 tar 包
tar -xzvf backup.tar.gz
3. 解压到指定目录
tar -xzvf backup.tar.gz -C /tmp
4. 创建 zip
zip -r backup.zip project/
5. 解压 zip
unzip backup.zip
十、日志与排错
1. 查看系统日志
journalctl -xe
查看指定服务日志:
journalctl -u nginx -f
2. 查看历史命令
history
3. 统计文件行数
wc -l data.txt
4. 查找最近修改的文件
find . -type f -mtime -1
十一、常用快捷键
在终端中熟练使用快捷键可以提升效率。
Tab:自动补全命令或路径。Ctrl + C:终止当前命令。Ctrl + D:退出终端。Ctrl + Z:挂起当前任务。Ctrl + L:清屏。Ctrl + R:搜索历史命令。Ctrl + A:移动光标到行首。Ctrl + E:移动光标到行尾。Ctrl + U:清空光标前内容。Ctrl + K:清空光标后内容。
十二、实用工作流示例
示例 1:查看某个端口被哪个进程占用
sudo lsof -i :80
或:
sudo ss -lntp | grep :80
示例 2:批量修改文件后缀
将当前目录下所有 .html 文件改为 .htm:
for f in *.html; do mv "$f" "${f%.html}.htm"; done
示例 3:统计目录中文件数量
find . -type f | wc -l
示例 4:定时备份文件
将 data/ 目录打包并保存到 backup/:
tar -czvf backup_$(date +%F).tar.gz data/
结语
Linux 命令非常丰富,日常使用建议遵循三个原则:
- 先理解命令用途,再执行高风险操作。
- 对重要数据先备份,再批量处理。
- 善用
man命令和--help查看帮助。
查看命令帮助:
man ls
或:
ls --help
当你对基础命令熟练后,可以进一步学习 Shell 脚本、Cron 定时任务、Systemd 服务管理、Docker 容器和日志分析等更高级的 Linux 运维内容。