基础命令
这些是日常使用 Linux 最频繁的命令。
文件和目录操作
| 命令 |
功能 |
示例 |
ls |
列出目录内容 |
ls -l (长格式显示)
ls -a (显示所有文件,包括隐藏文件)
ls -h (以人类可读方式显示大小,如 K, M, G) |
cd |
切换目录 |
cd /var/log (切换到 /var/log 目录)
cd .. (返回上一级目录)
cd ~ (返回当前用户的家目录) |
pwd |
显示当前工作目录的完整路径 |
pwd |
mkdir |
创建新目录 |
mkdir my_folder (创建名为 my_folder 的目录)
mkdir -p /tmp/test/a/b (递归创建多级目录) |
touch |
创建一个空文件或更新文件时间戳 |
touch new_file.txt |
cp |
复制文件或目录 |
cp source.txt dest.txt (复制文件)
cp -r source_dir/ dest_dir/ (递归复制目录) |
mv |
移动/重命名文件或目录 |
mv old_name.txt new_name.txt (重命名)
mv /tmp/file.txt /home/user/ (移动文件) |
rm |
删除文件或目录 |
rm file.txt (删除文件)
rm -r directory/ (递归删除目录)
rm -f file.txt (强制删除,不提示) |
cat |
查看文件内容(全部显示) |
cat /etc/hosts |
more / less |
分页查看文件内容 |
less /var/log/messages (按 q 退出) |
head |
查看文件开头部分 |
head -n 20 /etc/passwd (查看前20行) |
tail |
查看文件结尾部分 |
tail -n 20 /var/log/messages (查看最后20行)
tail -f /var/log/nginx/access.log (实时跟踪文件更新) |
find |
在目录树中搜索文件 |
find / -name "myfile.txt" (在整个系统中按文件名搜索)
find /home -user "john" (查找属于用户 john 的文件) |
grep |
在文件中搜索文本 |
grep "error" /var/log/messages (在日志文件中搜索包含 "error" 的行)
grep -r "nginx" /etc/ (在 /etc 目录下递归搜索) |
which |
查找命令的可执行文件路径 |
which ls |
处理
| 命令 |
功能 |
示例 |
echo |
输出文本到终端或文件 |
echo "Hello World"
echo "Hello" >> file.txt (追加到文件) |
> |
重定向输出,覆盖文件 |
echo "Hello" > file.txt (覆盖写入) |
>> |
重定向输出,追加到文件 |
echo "World" >> file.txt (追加写入) |
wc |
统计文件的行数、单词数、字节数 |
wc -l /etc/passwd (统计行数) |
sort |
进行排序 |
sort /etc/passwd (按行排序) |
uniq |
去除文件中连续的重复行 |
sort file.txt | uniq (先排序再去重) |
chmod |
修改文件/目录的权限 |
chmod 755 script.sh (设置所有者可读可写可执行,组和其他用户可读可执行)
chmod u+x script.sh (给所有者添加执行权限) |
chown |
修改文件/目录的所有者 |
chown user:group file.txt (同时修改所有者和所属组) |
系统信息与管理
系统信息
| 命令 |
功能 |
示例 |
uname |
显示系统信息 |
uname -a (显示所有信息,包括内核版本、主机名等) |
top |
实时显示系统进程和资源占用情况 |
top (按 q 退出) |
htop |
top 的增强版,更直观 (需要安装) |
htop |
ps |
显示当前运行的进程 |
ps aux (显示所有进程的详细信息)
ps -ef (另一种格式显示所有进程) |
kill / killall |
终止进程 |
kill -9 1234 (强制杀死PID为1234的进程)
killall nginx (杀死所有名为nginx的进程) |
df |
显示磁盘空间使用情况 |
df -h (以人类可读方式显示) |
du |
估计文件/目录的磁盘使用量 |
du -sh /var/log (显示 /var/log 目录的总大小) |
free |
显示内存使用情况 |
free -h (以人类可读方式显示) |
date |
显示或设置系统日期和时间 |
date
date "+%Y-%m-%d %H:%M:%S" |
用户和权限管理
| 命令 |
功能 |
示例 |
whoami |
显示当前用户名 |
whoami |
useradd / userdel |
添加/删除用户 |
sudo useradd testuser (添加用户)
sudo userdel testuser (删除用户)
sudo userdel -r testuser (删除用户及其家目录) |
passwd |
修改用户密码 |
passwd (修改当前用户密码)
sudo passwd testuser (修改其他用户密码) |
su / sudo |
切换用户身份 |
su - testuser (切换到 testuser 用户,并加载其环境变量)
sudo command (以管理员身份执行命令) |
id |
显示用户的UID、GID和所属组 |
id testuser |
groupadd / groupdel |
添加/删除组 |
sudo groupadd developers
sudo groupdel developers |
软件包管理
CentOS 主要使用 yum 和 dnf (CentOS 7/8/9 推荐使用) 作为包管理器。
DNF (推荐)
| 命令 |
功能 |
示例 |
dnf install |
安装软件包 |
sudo dnf install nginx |
dnf remove |
卸载软件包 |
sudo dnf remove nginx |
dnf update |
更新所有已安装的软件包 |
sudo dnf update |
dnf search |
搜索软件仓库中的软件包 |
dnf search "vim" |
dnf list installed |
列出所有已安装的软件包 |
dnf list installed |
dnf history |
查看软件包操作历史 |
dnf history list |
YUM (旧版 CentOS 6)
| 命令 |
功能 |
示例 |
yum install |
安装软件包 |
sudo yum install httpd |
yum remove |
卸载软件包 |
sudo yum remove httpd |
yum update |
更新所有已安装的软件包 |
sudo yum update |
yum search |
搜索软件包 |
yum search "tree" |
网络配置
| 命令 |
功能 |
示例 |
ip / ifconfig |
查看和配置网络接口 (CentOS 7+ 推荐使用 ip) |
ip addr show (显示所有网络接口信息)
ifconfig (旧版命令) |
ping |
测试网络连通性 |
ping google.com |
ss / netstat |
查看网络连接、端口监听状态 (CentOS 7+ 推荐使用 ss) |
ss -tulnp (显示所有 TCP/UDP 端口及进程ID)
netstat -tuln (旧版命令) |
curl / wget |
从网络下载文件 |
curl -I http://example.com (获取HTTP头信息)
wget http://example.com/file.zip (下载文件) |
ssh |
安全地远程登录到另一台主机 |
ssh user@192.168.1.100 |
scp |
安全地在两台主机之间复制文件 |
scp /path/to/local/file.txt user@remote:/path/to/remote/ |
firewall-cmd |
管理防火墙规则 (CentOS 7+) |
sudo firewall-cmd --list-all (查看所有规则)
sudo firewall-cmd --add-service=http --permanent (永久允许HTTP服务)
sudo firewall-cmd --reload (重新加载防火墙) |
进程与服务管理
systemctl (现代 Linux 服务管理器)
这是管理系统服务(如 Nginx, Apache, MySQL)的主要工具。
| 命令 |
功能 |
示例 |
systemctl start |
启动一个服务 |
sudo systemctl start nginx |
systemctl stop |
停止一个服务 |
sudo systemctl stop nginx |
systemctl restart |
重启一个服务 |
sudo systemctl restart nginx |
systemctl reload |
重新加载服务配置 |
sudo systemctl reload nginx |
systemctl enable |
设置服务开机自启 |
sudo systemctl enable nginx |
systemctl disable |
禁止服务开机自启 |
sudo systemctl disable nginx |
systemctl status |
查看服务状态 |
systemctl status nginx |
systemctl list-units |
列出所有已加载的单元 |
systemctl list-units --type=service |
journalctl |
查看系统日志 (特别是服务的日志) |
journalctl -u nginx (查看 nginx 服务的日志)
journalctl -f (实时跟踪日志) |
文本编辑器
在 Linux 服务器上,通常使用命令行编辑器。
| 编辑器 |
特点 |
基本使用 |
vi / vim |
功能强大,学习曲线陡峭,但几乎所有系统都自带 |
vim filename.txt 模式: - 普通模式 (默认): i 进入插入模式, 进入命令模式, Esc 返回普通模式。 - 插入模式: 输入文本。 - 命令模式: w (保存), q (退出), wq (保存并退出), q! (强制退出不保存)。 |
nano |
简单易用,对新手友好 |
nano filename.txt 底部有快捷键提示,如 Ctrl+O 保存, Ctrl+X 退出。 |
压缩与解压
| 命令 |
格式 |
示例 |
tar |
.tar, .tar.gz, .tar.bz2 |
tar -czvf archive.tar.gz /path/to/dir/ (打包并压缩)
tar -xzvf archive.tar.gz (解压并解包) |
zip / unzip |
.zip |
zip -r archive.zip /path/to/dir/ (创建 zip 压缩文件)
unzip archive.zip (解压 zip 文件) |
快捷键
| 快捷键 |
功能 |
Ctrl + C |
终止当前正在运行的命令 |
Ctrl + Z |
暂停当前命令,将其放入后台 |
Ctrl + D |
输入文件结束符,相当于 exit 退出当前 shell |
Ctrl + L |
清屏 |
Ctrl + R |
在历史命令中搜索 |
Ctrl + A |
将光标移动到行首 |
Ctrl + E |
将光标移动到行尾 |
Ctrl + U |
删除从光标到行首的所有内容 |
Ctrl + K |
删除从光标到行尾的所有内容 |
常用技巧
- 使用 Tab 键自动补全: 输入命令或文件名的前几个字母,然后按
Tab 键,系统会自动补全。
- 命令历史: 使用
history 命令查看之前执行过的命令,使用 !数字 可以执行历史记录中对应编号的命令,!100。
- 管道 : 将一个命令的输出作为另一个命令的输入。
ps aux | grep nginx 用来查找 nginx 进程。
- 使用
man 手册页: 几乎所有命令都有详细的帮助手册。man ls 会显示 ls 命令的完整用法说明,按 q 退出。
这份命令大全涵盖了 CentOS 日常运维的大部分场景,建议您从基础命令开始,多加练习,逐步掌握更高级的技巧。