一、文件与目录操作
这是最基础也最常用的命令组,用于管理服务器上的文件和文件夹。
ls:列出目录内容。
ls -l:以长格式显示,包含权限、大小、修改时间等详细信息。ls -a:显示所有文件,包括以 “.” 开头的隐藏文件。
cd:切换当前工作目录。
cd /home:切换到/home目录。cd ..:切换到上一级目录。cd ~:切换到当前用户的家目录。
- pwd:显示当前工作目录的绝对路径。
mkdir:创建新目录。
mkdir test:创建名为test的目录。mkdir -p /a/b/c:递归创建多级目录,即使上级目录不存在。
rm:删除文件或目录。
rm file.txt:删除file.txt文件(需确认)。rm -f file.txt:强制删除文件,无需确认。rm -rf dir:强制递归删除目录及其所有内容,使用时务必谨慎。
cp:复制文件或目录。
cp file1.txt file2.txt:将file1.txt复制为file2.txt。cp -r dir1 dir2:递归复制dir1目录及其内容到dir2。
mv:移动或重命名文件 / 目录。
mv file1.txt /home:将file1.txt移动到/home目录。mv oldname.txt newname.txt:将oldname.txt重命名为newname.txt。
二、系统信息查看
用于了解服务器的硬件、系统版本、资源使用等状态。
uname:查看系统内核信息。
uname -r:显示内核版本,如3.10.0-1160.el7.x86_64。uname -a:显示完整的系统信息,包括内核、主机名、架构等。
- cat /etc/centos-release:查看 CentOS 的具体版本,如
CentOS Linux release 7.9.2009 (Core)。 free:查看内存使用情况。
free -h:以人类可读的格式(如 GB、MB)显示内存信息。
df:查看磁盘分区使用情况。
df -h:以人类可读的格式显示各分区的容量、已用、可用空间。
top:实时查看系统进程和资源占用(CPU、内存)。
- 按
q键退出top界面。
- 按
ps:查看当前运行的进程。
ps aux:显示所有用户的所有进程详细信息。
三、用户与权限管理
用于创建用户、分配权限,保障系统安全。
useradd:创建新用户。
useradd testuser:创建名为testuser的用户。
passwd:设置或修改用户密码。
passwd testuser:为testuser设置密码(输入时密码不显示)。
userdel:删除用户。
userdel testuser:删除testuser用户(默认不删除家目录)。userdel -r testuser:删除用户的同时,删除其家目录。
chmod:修改文件或目录的权限。
chmod 755 file.sh:设置file.sh的权限为所有者可读可写可执行,其他用户可读可执行。chmod +x file.sh:为file.sh添加执行权限。
chown:修改文件或目录的所有者和所属组。
chown testuser:testuser file.txt:将file.txt的所有者和所属组都改为testuser。
四、软件包管理(YUM)
CentOS 7 及以下默认使用 YUM 包管理器,用于安装、更新、卸载软件。
yum install:安装软件包。
yum install nginx:安装 Nginx 服务。
yum update:更新软件包。
yum update nginx:仅更新 Nginx。yum update:更新系统中所有可更新的软件包。
yum remove:卸载软件包。
yum remove nginx:卸载 Nginx 服务。
yum list:列出已安装或可安装的软件包。
yum list installed:列出所有已安装的软件包。
yum search:搜索软件包。
yum search redis:搜索与redis相关的软件包。
五、服务管理(systemctl)
CentOS 7 及以上使用systemctl管理系统服务,替代了传统的service命令。
- 启动服务:
systemctl start nginx - 停止服务:
systemctl stop nginx - 重启服务:
systemctl restart nginx - 查看服务状态:
systemctl status nginx - 设置开机自启:
systemctl enable nginx - 取消开机自启:
systemctl disable nginx
六、网络操作
用于配置和查看服务器的网络信息。
- ifconfig:查看或配置网卡信息(部分系统需安装
net-tools包)。 - ip addr:查看网卡 IP 地址(CentOS 7 及以上推荐使用)。
ping:测试与目标主机的网络连通性。
ping www.baidu.com:测试与百度的连通性,按Ctrl+C停止。
netstat:查看网络连接状态(需安装
net-tools包)。netstat -tuln:查看所有监听中的 TCP 和 UDP 端口。
curl/wget:下载文件或测试 URL。
curl www.baidu.com:获取百度首页的 HTML 内容。wget https://xxx.com/file.tar.gz:下载指定 URL 的文件。
七、文件内容操作
cat:查看文件内容(适合小文件)。
cat file.txt:直接显示文件全部内容。cat -n file.txt:显示内容并带行号。
more/less:分页查看大文件内容。
more largefile.txt:按页显示,按空格翻页,q退出。less largefile.txt:支持上下滚动、搜索(输入/关键词查找,n下一个),更灵活。
head/tail:查看文件开头或结尾内容。
head -n 10 file.txt:显示文件前 10 行。tail -n 20 file.txt:显示文件后 20 行。tail -f /var/log/messages:实时跟踪文件新增内容(常用于查看日志,Ctrl+C退出)。
grep:在文件中搜索关键词(强大的文本过滤工具)。
grep "error" /var/log/nginx/error.log:在 Nginx 错误日志中搜索包含 “error” 的行。grep -i "Error" file.txt:忽略大小写搜索。grep -r "test" /home:递归搜索/home目录下所有文件中包含 “test” 的内容。
sed:文本替换(非交互式编辑)。
sed -i 's/old/new/g' file.txt:将文件中所有 “old” 替换为 “new”(-i直接修改原文件,谨慎使用)。
touch:创建空文件或更新文件时间戳。
touch newfile.txt:创建空文件。touch -d "2023-01-01" file.txt:修改文件的修改时间为指定日期。
八、压缩与解压
tar:打包 / 解压文件(常用与
.tar、.tar.gz、.tar.bz2等格式)。- 打包并压缩为
.tar.gz:tar -zcvf archive.tar.gz dir/(z用 gzip 压缩,c创建,v显示过程,f指定文件名)。 - 解压
.tar.gz:tar -zxvf archive.tar.gz(x解压)。 - 解压
.tar.bz2:tar -jxvf archive.tar.bz2(j用 bzip2 压缩)。
- 打包并压缩为
zip/unzip:处理
.zip格式。- 压缩:
zip -r archive.zip dir/(-r递归压缩目录)。 - 解压:
unzip archive.zip(解压到当前目录)。 - 查看压缩包内容:
unzip -l archive.zip。
- 压缩:
gzip/gunzip:压缩 / 解压单个文件(仅支持
.gz格式,会删除原文件)。- 压缩:
gzip file.txt(生成file.txt.gz,删除file.txt)。 - 解压:
gunzip file.txt.gz(生成file.txt,删除file.gz)。
- 压缩:
九、进程管理进阶
kill:终止进程(需知道进程 ID,可通过
ps或top获取)。kill 1234:发送终止信号给 ID 为 1234 的进程(默认信号 15,优雅终止)。kill -9 1234:强制终止进程(信号 9,用于无法优雅终止的进程,谨慎使用)。
pkill:按进程名终止进程。
pkill nginx:终止所有名为nginx的进程。
pgrep:按名称查找进程 ID。
pgrep nginx:返回所有nginx进程的 ID。
nohup:后台运行进程,断开终端后不终止。
nohup ./script.sh &:后台运行script.sh,输出日志到nohup.out。nohup ./my_script.sh > my_log.log 2>&1 &指定日志文件&:将命令放入后台运行(即使不加nohup,&也能让命令在后台运行,但终端关闭后会终止)。两者结合:实现 “后台运行 + 终端关闭不终止”。2>&1:将标准错误(stderr,如错误信息)也重定向到my_log.log(与 stdout 合并)。nohup ./my_script.sh > /dev/null 2>&1 &不输出日志文件
十、磁盘与存储管理
du:查看文件 / 目录占用的磁盘空间。
du -sh /home:以人类可读格式显示/home目录总大小(s汇总,h人性化)。du -h --max-depth=1 /var:显示/var下一级子目录的大小。
fdisk:磁盘分区管理(需 root 权限)。
fdisk -l:列出所有磁盘及分区信息。fdisk /dev/sda:对/dev/sda磁盘进行分区操作(进入交互模式)。
mount/umount:挂载 / 卸载文件系统。
- 挂载 U 盘(假设设备为
/dev/sdb1):mount /dev/sdb1 /mnt/usb。 - 卸载:
umount /mnt/usb(卸载前确保无程序使用该目录)。
- 挂载 U 盘(假设设备为
lsblk:查看磁盘分区布局(更直观的树形结构)。
lsblk:列出所有块设备(磁盘、分区)的名称、大小、挂载点等。
十一、系统日志与时间管理
查看系统日志:
/var/log/messages:系统通用日志(需 root 权限)。/var/log/secure:用户登录、权限相关日志(如 SSH 登录失败记录)。journalctl:CentOS 7 + 的日志管理工具(替代传统日志文件)。journalctl -u nginx:查看 Nginx 服务的日志。journalctl --since "1 hour ago":查看 1 小时内的日志。
时间管理:
date:显示当前系统时间。date -s "2025-10-24 15:30:00":手动设置系统时间(需 root)。timedatectl:查看 / 设置时区和时间同步。timedatectl set-timezone Asia/Shanghai:设置时区为上海。timedatectl set-ntp yes:开启网络时间同步(NTP)。
十二、其他实用命令
- clear:清空终端屏幕(快捷键
Ctrl+L也可)。 history:查看历史命令记录。
history | grep "yum":搜索包含 “yum” 的历史命令。!123:执行历史记录中第 123 条命令。
ln:创建链接文件(类似 Windows 快捷方式)。
- 软链接(推荐):
ln -s /usr/local/bin/python3 /usr/bin/python(删除原文件后链接失效)。 - 硬链接:
ln file.txt file_link(与原文件共享 inode,删除原文件不影响链接)。
- 软链接(推荐):
scp:远程复制文件(基于 SSH)。
- 本地到远程:
scp localfile.txt user@remote_ip:/home/。 - 远程到本地:
scp user@remote_ip:/home/file.txt ./。
- 本地到远程:
ssh:远程登录服务器。
ssh user@remote_ip:通过用户名 + IP 登录。ssh -p 2222 user@remote_ip:指定端口(默认 22)登录。
查看端口
netstat -tulnp | grep 8080查看进程
ps aux | grep python
emmm...