本文最后更新于2025年03月24日;如遇到问题,请及时留言告知。

以下为本人结合 Linux 服务器(CentOS\Debian)长期维护经验积累的常用指令或三方命令工具,如有补充或修改建议可以在评论区留言。

一、文件和目录管理

ls:列出当前目录的内容

ls /目录名称     #列出指定目录下的子文件
ls -l /指定目录  #详细列出指定目录下的文件

cd:更改当前工作目录:

cd ~       #切换到用户的家目录
cd /目录名  #切换到指定的目录下
cd ../     #切换到上一级目录

pwd:显示当前目录的完整路径

cp:复制文件或目录:

# 将文件 file1.txt 复制到目录 /tmp
cp file1.txt /tmp
# 复制时保留所有元信息(权限、所有者、时间戳、符号链接等)
cp -a source target
例:
cp -a /var/www/html /backup/

mv:移动或重命名文件和目录:

# 将 file.txt 重命名为 newfile.txt
mv file.txt newfile.txt

rm:删除文件或目录:

rm file.txt          #删除文件 file.txt
rm -rf mydirectory/  #删除目录及其内容

touch:创建新文件或更新文件的时间戳:

# 创建一个新文件 newfile.txt
touch newfile.txt

mkdir:创建新目录:

# 创建一个新目录 mydirectory。
mkdir mydirectory

二、文件查看和编辑

cat:查看文件内容:

# 示例 1:查看file.txt的内容:
cat file.txt

# 示例 2:查看操作系统版本号:
cat /etc/redhat-release

# 示例 3:查看CPU信息:
cat /proc/cpuinfo

less:分页查看大型文件:

# 使用 less 分页查看文件 largefile.log:
less largefile.log

more:分页查看文件:

# 分页查看长文件file.txt:
more file.txt

head/tail: 查看文件的前/后10行:

# 示例 1:查看file.txt的前/后10行:
head file.txt
tail file.txt

# 示例 2:显示文件的前/后20行:
head -n 20 file.txt
tail -n 20 file.txt

如果需要实时监视日志文件的变化,可以使用 tail -f 命令,它会持续显示新添加到文件末尾的内容。

find:用于在文件系统中搜索文件和目录:

# 示例 1:在当前目录及子目录中查找名为file.txt的文件:
find . -name file.txt

# 示例 2:查找当前目录及其子目录中在最近7天内修改的文件:
find . -type f -mtime -7

vi 或 vim:文本编辑器:

# 使用 Vim 编辑文件 file.txt:
vi file.txt

常用操作:

  • 按 I 或者 Insert 进入编辑模式;
  • 按 ESC 键退出编辑模式,进入命令模式;
  • 在命令模式输入 :wq 或者大写字母 ZZ 保存并退出;
  • 在命令模式输入 :q 退出,如果文件已修改输入:q!强制退出而不保存更改。

nano:简单的文本编辑器:

# 使用 Nano 编辑文件 file.txt:
nano file.txt

三、系统信息和监控

uname:显示系统信息:

uname -a

hostname:显示主机名:

hostname

uptime:显示系统运行时间和负载:

uptime

df:显示磁盘空间使用情况:

# 列出所有文件系统的磁盘空间使用情况,并显示文件系统类型
df -Th

# 只显示磁盘使用情况的基本信息,不包括文件系统类型
df -h

du:显示当前目录的磁盘使用情况:

# 显示目录 /var 的磁盘使用情况:
du -sh /var

top:实时查看系统性能和进程信息:

top

htop:交互式进程查看器。[非内部命令] 官网:https://htop.dev/

htop

查看内存占用

#用于显示系统的内存信息,包括物理内存(RAM)和交换空间的使用情况。
cat /proc/meminfo

# 用于以人类可读的方式显示系统的内存使用情况
free -h

# 用于列出系统上所有进程的详细信息,并按内存使用量(RSS,Resident Set Size)进行排序
ps aux --sort -rss

# 一个交互式的实时系统监视工具,用于查看系统的进程和系统性能(按Q键退出)
top

# 用于显示有关虚拟内存统计信息的详细信息
vmstat -s

mount:用于挂载文件系统或设备 一般用法:

mount [选项] <设备或文件系统> <挂载点>

示例用法:

1. 挂载设备:
# 挂载 /dev/sdb1 分区到 /mnt/data 目录
mount /dev/sdb1 /mnt/data

2. 挂载网络文件系统(NFS):
# 挂载远程NFS共享到本地目录
mount -t nfs 192.168.1.100:/path/to/share /mnt/nfs

3.挂载ISO文件:
# 挂载名为 example.iso 的ISO文件到 /mnt/iso 目录
mount -o loop example.iso /mnt/iso

4.查看已挂载的文件系统:
# 使用 mount 命令,不带参数,可以查看当前系统上已挂载的文件系统
mount

5.卸载文件系统:
# 使用 umount 命令可以卸载已挂载的文件系统
umount /mnt/data

四、用户和权限管理

who:显示当前登录用户:

who

useradd:创建新用户:

# 创建新用户 newuser
sudo useradd newuser

passwd:更改用户密码:

# 更改用户 newuser 的密码
sudo passwd newuser

userdel:删除用户:

# 删除用户 olduser
sudo userdel olduser

chmod:修改文件或目录权限:

# 更改file.txt的权限,使所有用户都可以读写
chmod 666 file.txt

chown:修改文件或目录所有者:

# 更改file.txt的所有者到用户名 user
chown user file.txt

sudo:以超级用户权限执行命令:

# 以超级用户权限执行命令。
sudo command-to-run

修改 root 用户名

五、网络工具

ifconfig:显示和配置网络接口信息:

ifconfig

ping:测试主机之间的连接:

# Ping 主机 example.com
ping example.com

nslookup 或 dig:查询DNS信息:

# 查询主机名 example.com 的IP地址
nslookup example.com

netstat:显示网络信息:

# 显示网络统计信息
netstat -tuln

# 查看端口占用
netstat -tlunp

ss:显示套接字统计信息:

ss -tuln

防火墙控制

# 启用防火墙
sudo systemctl start firewalld
# 关闭防火墙
sudo systemctl stop firewalld
# 重启防火墙 
sudo systemctl restart firewalld

wget: 用于下载文件的命令行工具:

# 示例 1:下载单个文件:
wget http://example.com/file.png

# 示例 2:从文件列表下载多个文件:
wget -i filelist.txt

curl: 用于发送HTTP请求并获取服务器响应的命令行工具:

# 示例 1:下载单个文件:
curl -O https://example.com/file.zip

# 示例 2:将文件保存为指定的文件名:
curl -o my-file.zip https://example.com/file.zip

# 示例 3:显示HTTP响应头信息
curl -I https://example.com

# 示例 4:发送POST请求
curl -X POST -d "param1=value1&param2=value2" https://example.com/api

#示例 5:上传文件
curl -F "file=@my-file.txt" https://example.com/upload

六、软件包管理

yum:用于安装、更新和删除软件包(CentOS 7及之前版本)

# 安装名为package_name的软件包
sudo yum install package_name

dnf:用于安装、更新和删除软件包(CentOS 8及更高版本)

# 更新已安装的软件包
sudo dnf update

rpm:管理RPM软件包:

# 查询已安装的软件包
rpm -qa

# 查询已安装软件包的安装目录
rpm -ql 软件名

七、系统日志查看

journalctl:查看系统日志:

journalctl

tail:查看文件末尾的日志:

# 查看文件 /var/log/syslog 的最后10行
tail -n 10 /var/log/syslog

grep:在文件中搜索特定内容:

# 在 file.txt 中搜索含有"example"的行
grep "example" file.txt

八、进程管理

ps:显示当前进程:

# 显示当前正在运行的进程
ps aux

查看指定PID的详细信息 ps -p PID -o pid,ppid,cmd 例如,如果要查看PID为8560的进程的详细信息,可以运行以下命令:ps -p 8560 -o pid,ppid,cmd

kill:终止进程:

#终止某个进程
kill PID

#强制终止某个进程( 谨慎使用,可能会导致数据损坏或系统不稳定)  
kill -9 PID

pgrep 和 pkill:根据进程名查找和终止进程:pgrep process-name

iotop:查看硬盘读写情况 [非内部命令] 安装并使用“iotop”工具,列出CentOS系统上正在进行磁盘读写的进程:

# 安装 iotop
sudo yum install iotop
# 运行 iotop
sudo iotop

九、硬件信息

lscpu //显示CPU信息。

lshw //显示硬件信息。

lsblk //显示块设备信息。

十、系统维护和监控

crontab:管理定时任务:

# 编辑用户的定时任务:
crontab -e

at:执行一次性定时任务:

# 在一次性定时任务中执行命令:
at now + 1 hour

watch:周期性运行命令并实时显示输出:

# 每2秒执行一次命令 command-to-run 并实时显示输出:
watch -n 2 command-to-run

十一、常用应用操作命令

Node 相关

Node.js(通常称为 Node)是一个开源的、跨平台的JavaScript运行环境,允许开发人员使用JavaScript语言编写服务器端应用程序。

ps -ef|grep node//查看运行中的 node 项目 npm install npm@9.6.7 -g//npm 降级或安装指定版本

PM2 相关

PM2(Process Manager 2)是一个用于管理Node.js应用程序的进程管理器。PM2(Process Manager 2)是一个用于管理Node.js应用程序的进程管理器。

查看进程
pm2 list  
监控
pm2 monit
停止
pm2 stop 0    //停止PM2列表中进程为0的进程
pm2 stop all	//停止PM2列表中所有的进程
删除进程
pm2 delete 0	//删除PM2列表中进程为0的进程
pm2 delete all	//删除PM2列表中所有的进程

Docker 相关

Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。

进程操作

docker info  //查看 docker 信息
docker --help  //查看 docker 帮助
systemctl start docker  //启动 docker
systemctl stop docker  //停止 docker
systemctl restart docker  //重启 docker
systemctl status docker  //查看 docke r状态

容器操作

运行容器:

docker run [选项] IMAGE [命令] [ARG...]

常用选项:

  • -d:后台运行容器
  • --name:为容器指定一个名称
  • -p:端口映射,格式为 <主机端口>:<容器端口>
  • -v:挂载卷,格式为 <主机目录>:<容器目录>
  • -e:设置环境变量
停止容器:

docker stop 容器ID/容器名

启动容器:

docker start 容器ID/容器名

删除一个容器:

docker rm 容器名/容器ID

查看容器列表

docker ps [选项] //列出容器

常用选项: docker ps -a

-a:显示所有容器,包括未运行的。

执行容器中的命令:

docker exec -it 容器名/容器ID /bin/bash

docker exec -it 容器名/容器ID /bin/sh