作为一名长期和Linux打交道的运维从业者,每年都会收到很多新手的提问:“Linux命令太多记不住怎么办?”“明明抄了命令,为什么还是报错?”“2026年学Linux,哪些命令才是真正常用的?”
其实新手没必要陷入“记全命令”的误区——Linux命令虽多,但日常工作、学习中高频使用的也就50个左右,重点还是在于“会用、用对”,而非“死记硬背”。
提示:本文基于主流Linux发行版(Ubuntu 24.04、CentOS Stream 9,2026年仍为最常用版本)编写,所有命令均经过实际测试,可直接复制使用;部分命令存在发行版差异(如apt与yum),会特别标注,避免误导。
在开始记命令前,先掌握3个核心基础,否则就算记住命令,也容易用错、报错。
Linux命令的通用格式:命令 [选项] [参数]
示例:ls -l /home,其中「ls」是命令(列出文件),「-l」是选项(显示详细信息),「/home」是参数(指定目录)。
避坑提示:选项分为“短选项”(以-开头,如-l、-a)和“长选项”(以--开头,如--help),短选项可组合使用(如ls -la = ls -l + ls -a);参数可以是文件、目录路径,也可以是其他指令要求的内容。
ls和LS是两个完全不同的命令,新手最容易因为手抖输错大小写,导致提示“command not found”(命令未找到)。cd home会报错,正确应为cd /home。ls-l(无空格)会提示命令不存在,正确应为ls -l。sudo(临时获取管理员权限)。不用死记硬背所有命令,遇到不会的,用这两个命令直接查帮助,高效又准确。
man 命令:查看命令的详细手册(最常用),按q退出。示例:man ls,可查看ls命令的所有选项、参数及用法。命令 --help:查看命令的简要帮助(快速查阅)。示例:ls --help,快速查看ls命令的常用选项。避坑提示:如果输入man 命令提示“没有手册页”,大概率是该命令未安装,或系统未安装man手册(最小化安装的Linux可能缺失),可通过yum install man(CentOS)或apt install man(Ubuntu)安装。
99%的新手都遇到过这个报错,其实只有4种原因,对应解决方法如下,直接套用即可:
yum install bash-completion或apt install bash-completion,重启终端生效)。yum install nginx(安装nginx,同时获得nginx相关命令)。yum provides */命令(CentOS)或apt search 命令(Ubuntu)查找所属包,再安装。示例:查找nslookup所属包,yum provides */nslookup,找到后安装对应包(如bind-utils)。/data/nginx/sbin/nginx),要么将路径加入环境变量(vi /etc/profile,添加export PATH=$PATH:/路径,执行source /etc/profile生效)。这部分命令是Linux操作的“基石”,无论你是新手还是老用户,每天都会用到,重点掌握,不用死记,用多了自然就会。
login:登录系统(本地终端登录时使用,远程登录一般用ssh)。示例:login test,切换到test用户登录(需输入密码)。logout:注销当前用户(仅在终端登录时生效,远程登录注销后会断开连接)。避坑提示:如果是图形界面,logout无效,需用exit退出终端。exit:退出当前终端(远程登录时,退出即断开连接;本地终端退出后,回到登录界面)。示例:在ssh远程连接中,输入exit,即可断开与服务器的连接。ssh 用户名@IP地址:远程登录Linux服务器(2026年最常用的远程登录方式,加密传输,安全可靠)。示例:ssh test@192.168.1.100,用test用户远程登录IP为192.168.1.100的服务器(需输入test用户密码)。常用选项:-p 端口号,如果服务器ssh端口不是默认22,需指定端口,示例:ssh test@192.168.1.100 -p 2222。目录操作是Linux最基础的操作,核心命令只有5个,掌握后能轻松管理所有目录。
pwd:查看当前所在目录的绝对路径(避免迷路的“指南针”)。示例:在任意目录输入pwd,会显示当前目录路径,如/home/test。cd 目录路径:切换到指定目录(最常用,没有之一)。常用示例:- cd /home:切换到/home目录(绝对路径);- cd test:切换到当前目录下的test子目录(相对路径);- cd ..:切换到上一级目录(两个点,重点记);- cd ~:切换到当前用户的家目录(如test用户的家目录是/home/test);- cd -:切换到上一次所在的目录(比如从/home切换到/root,输入cd -会回到/home)。ls:列出当前目录(或指定目录)下的文件和目录。常用选项(必记):- ls -l(简写ll):以详细格式列出,显示文件权限、所有者、大小、修改时间等信息(最常用);- ls -a:显示所有文件和目录,包括隐藏文件(隐藏文件以.开头,如.bashrc);- ls -la:组合选项,显示所有文件的详细信息(日常最常用,推荐记这个);-ls -h:以人类可读的格式显示文件大小(如KB、MB、GB,避免看一串数字)。示例:ls -la /home,显示/home目录下所有文件(包括隐藏文件)的详细信息。mkdir 目录名:创建新目录。常用选项:-p,递归创建多级目录(避免手动创建父目录)。示例:- mkdir test:在当前目录创建test目录;- mkdir -p /home/test/data:递归创建/home/test/data目录(即使/home/test不存在,也会自动创建)。rmdir 目录名:删除空目录(注意:只能删除空目录,非空目录会报错)。示例:rmdir test,删除当前目录下的空test目录。避坑提示:如果目录非空,需用rm -rf 目录名删除(谨慎使用,下文会详细说明),或先删除目录内文件,再用rmdir删除。文件操作和目录操作一样常用,重点注意“删除命令”的使用,避免误删文件(新手最容易踩坑)。
touch 文件名:新建空文件,或更新已有文件的修改时间。示例:- touch test.txt:在当前目录新建test.txt空文件;- touch /home/test/data.txt:在指定目录新建data.txt空文件;- touch test1.txt test2.txt:一次性新建多个空文件。rm 文件名/目录名:删除文件或目录(核心命令,谨慎使用!)。常用选项(必记):--f:强制删除,不提示(即使文件不存在,也不报错,避免手动确认);- -r:递归删除,用于删除非空目录(删除目录时必须加这个选项);- -rf:组合选项,强制递归删除(最常用,但也是最危险的命令之一)。示例:- rm test.txt:删除当前目录下的test.txt文件(会提示是否删除,输入y确认);- rm -f test.txt:强制删除test.txt文件,不提示;- rm -rf test:强制删除当前目录下的test目录(包括目录内所有文件和子目录,不提示)。避坑预警(重中之重):rm -rf / 或 rm -rf /* 是“自杀命令”,会强制删除系统所有文件和目录,导致系统崩溃,无法恢复!新手绝对不要输入这两个命令,即使是复制网上的指令,也要先核对路径,删除前先用ls查看要删除的内容,确认无误后再执行。cp 源文件/目录 目标路径:复制文件或目录到指定路径。常用选项:- -r:递归复制,用于复制目录(复制目录时必须加这个选项);- -f:强制复制,如果目标路径已有同名文件/目录,直接覆盖,不提示;- -p:复制时保留文件的原始权限、所有者、修改时间(常用于备份文件)。示例:- cp test.txt /home/test:将当前目录下的test.txt文件,复制到/home/test目录下;- cp -r test /home/test:将当前目录下的test目录(包括内部所有内容),复制到/home/test目录下;- cp -rf test /home/test:强制复制test目录到/home/test,覆盖同名目录,不提示。避坑提示:如果目标路径不存在,cp会把文件/目录命名为目标路径;如果目标路径存在,会把文件/目录复制到该路径下。mv 源文件/目录 目标路径:移动文件/目录到指定路径,也可用于重命名文件/目录。示例:- 移动:mv test.txt /home/test,将当前目录下的test.txt文件,移动到/home/test目录下;- 重命名:mv test.txt test1.txt,将当前目录下的test.txt文件,重命名为test1.txt;- 移动并命名:mv test.txt /home/test/data.txt,将test.txt文件移动到/home/test目录下,并命名为data.txt。避坑提示:mv命令移动目录时,不需要加-r选项(和cp、rm不同);如果目标路径已有同名文件/目录,会直接覆盖,建议先查看目标路径是否有同名文件。Linux中大部分配置文件都是文本格式(如/etc/profile、/etc/nginx/nginx.conf),掌握文本处理命令,才能修改配置、查看日志,是进阶必备技能。
重点掌握4个命令,覆盖“查看完整文本、查看部分文本、实时查看”等所有场景。
cat 文件名:查看文本文件的全部内容(适合查看小型文本文件,如配置文件片段)。常用选项:- -n:显示行号,方便定位内容;- -b:显示行号,但不显示空行的行号。示例:cat -n /etc/profile,查看/etc/profile文件的全部内容,并显示行号。避坑提示:如果文本文件过大(如几GB的日志文件),不建议用cat查看,会一次性加载全部内容,导致终端卡顿,建议用more或less命令。more 文件名:分页查看文本文件内容(适合查看大型文本文件),按空格键翻页,按q退出。示例:more /var/log/messages,分页查看系统日志文件。特点:只能向下翻页,无法向上翻页,适合快速查看文件前半部分。less 文件名:分页查看文本文件内容(more命令的增强版,最常用),支持上下翻页、搜索。常用操作(查看时使用):- 空格键:向下翻一页;- 回车键:向下翻一行;- 上/下箭头:向上/向下翻一行;- /关键词:搜索关键词(向下搜索),按n查看下一个匹配项,按N查看上一个匹配项;- q:退出查看。示例:less /var/log/nginx/access.log,分页查看nginx访问日志,可搜索指定IP、URL。head 文件名:查看文本文件的前N行(默认前10行,适合查看文件开头,如日志的最新记录)。常用选项:-n 行数,指定查看的行数。示例:- head /var/log/messages:查看系统日志的前10行;- head -n 20 /var/log/messages:查看系统日志的前20行。tail 文件名:查看文本文件的后N行(默认后10行),最常用场景是“实时查看日志”(如查看nginx实时访问记录)。常用选项:- -n 行数:指定查看的行数;- -f:实时跟踪文件变化,文件新增内容会实时显示(按ctrl+c停止跟踪)。示例:- tail /var/log/messages:查看系统日志的后10行;- tail -n 15 /var/log/messages:查看系统日志的后15行;- tail -f /var/log/nginx/access.log:实时查看nginx访问日志,有新的访问请求会立即显示。Linux中有很多文本编辑器(如vi、vim、nano),其中vim是最常用、功能最强大的编辑器,2026年仍为主流,新手重点掌握vim的基础用法即可。
温馨提示:如果系统未安装vim(最小化安装可能缺失),可通过yum install vim(CentOS)或apt install vim(Ubuntu)安装。
i(在光标前插入)、I(在当前行开头插入)、a(在光标后插入)、A(在当前行结尾插入),即可进入插入模式,此时可编辑文本(左下角会显示“INSERT”)。:(冒号),即可进入末行模式,用于执行保存、退出、查找、替换等命令(左下角会显示冒号,输入命令后按回车执行)。模式切换技巧:插入模式 → 命令模式(按esc键);命令模式 → 末行模式(按:);末行模式 → 命令模式(按esc键)。
vim 文件名 示例:vim /etc/profile,用vim打开/etc/profile配置文件。i进入插入模式,即可编辑文本,编辑完成后按esc键回到命令模式。:进入末行模式,输入wq(w=保存,q=退出),按回车即可保存并退出。:进入末行模式,输入q!(!表示强制),按回车即可不保存并退出(适合编辑错误,不想保存的场景)。:进入末行模式,输入wq!,强制保存并退出(适合编辑只读文件,需加sudo权限,如sudo vim /etc/profile)。dd:删除当前行(最常用,快速删除一行);- ndd:删除当前行及后面n-1行(如3dd,删除当前行及后面2行,共3行);- x:删除光标所在位置的单个字符;- nx:删除光标所在位置及后面n-1个字符(如3x,删除光标所在位置及后面2个字符,共3个)。/,输入关键词,按回车即可查找,按n查看下一个匹配项,按N查看上一个匹配项。示例:在/etc/profile文件中,查找“PATH”关键词,输入/PATH,按回车即可定位到第一个匹配项。避坑提示:新手最容易陷入“无法编辑”的困境,其实是忘记切换到插入模式;如果编辑完成后无法退出,大概率是未回到命令模式,先按esc键,再按:进入末行模式,输入wq即可。
日常工作中,经常需要在文本文件中查找关键词(如日志中的错误信息)、批量替换文本(如批量修改配置文件中的IP),重点掌握grep和sed命令。
grep 关键词 文件名:在指定文本文件中,搜索包含关键词的行(最常用的文本搜索命令)。常用选项:- -i:忽略大小写,搜索时不区分关键词的大小写;- -n:显示匹配行的行号,方便定位;- -v:反向搜索,显示不包含关键词的行;- -r:递归搜索,在指定目录下的所有文件中,搜索包含关键词的行(适合搜索多个文件)。示例:- grep "error" /var/log/messages:在系统日志中,搜索包含“error”关键词的行;- grep -in "error" /var/log/messages:搜索包含“error”的行,忽略大小写,并显示行号;- grep -r "192.168.1.100" /etc/:在/etc目录下的所有文件中,递归搜索包含“192.168.1.100”的行(适合查找配置文件中的IP)。避坑提示:grep区分大小写,默认情况下,“Error”和“error”会被视为不同的关键词,如需忽略大小写,必须加-i选项。sed 's/旧内容/新内容/g' 文件名:批量替换文本文件中的内容(sed是流编辑器,适合批量修改)。说明:s表示替换,g表示全局替换(整个文件中的所有匹配项都替换,不加g只替换每一行的第一个匹配项)。常用选项:-i:直接修改原文件(不加-i,只会显示替换后的结果,不会修改原文件,建议先不加-i测试,确认无误后再加-i)。示例:- 测试替换:sed 's/192.168.1.100/192.168.1.200/g' /etc/profile,查看将/etc/profile文件中所有“192.168.1.100”替换为“192.168.1.200”后的结果(不修改原文件);- 实际替换:sed -i 's/192.168.1.100/192.168.1.200/g' /etc/profile,直接修改原文件,批量替换所有匹配项;- 忽略大小写替换:sed -i 's/error/ERROR/gi' /var/log/messages,忽略大小写,将所有“error”(无论大小写)替换为“ERROR”。避坑提示:使用sed -i修改文件前,建议先备份文件(如cp /etc/profile /etc/profile.bak),避免替换错误导致文件损坏。Linux是多用户、多任务系统,权限管理是其核心功能之一,用于控制不同用户对文件/目录的操作权限(如读、写、执行),新手必须掌握基础权限管理命令,避免权限混乱导致的安全隐患或操作报错。
Linux中,每个文件/目录都有3类权限,分别对应3类用户:
权限的表示方式(以ls -l查看的结果为例):-rwxr-xr--,共10个字符,拆解如下:
示例:drwxr-xr-x,表示这是一个目录,所有者有读、写、执行权限,所属组和其他用户有读、执行权限,无写权限。
ls -l:查看文件/目录的权限(最基础,通过该命令查看当前权限状态)。示例:ls -l test.txt,查看test.txt文件的权限、所有者、所属组等信息。chmod 权限值 文件名/目录名:修改文件/目录的权限(最常用,用数字或字母表示权限)。常用用法(推荐用数字,简单高效):示例:- chmod 755 test.txt:修改test.txt文件的权限为rwxr-xr--(所有者7,所属组5,其他用户4);-chmod 777 test.txt:修改test.txt文件的权限为rwxrwxrwx(所有用户都有读、写、执行权限,谨慎使用,存在安全隐患);-chmod -R 755 test:递归修改test目录及内部所有文件/子目录的权限为755(修改目录权限时,需加-R选项)。字母用法(了解即可):chmod u=rwx,g=rx,o=r test.txt(u=所有者,g=所属组,o=其他用户,=表示设置权限),效果和chmod 755 test.txt一致。避坑提示:修改目录权限时,必须加-R选项,否则只会修改目录本身的权限,不会修改内部文件/子目录的权限;普通用户只能修改自己拥有的文件/目录的权限,无法修改其他用户的文件/目录权限(需加sudo)。chown 所有者:所属组 文件名/目录名:修改文件/目录的所有者和所属组。常用选项:-R:递归修改目录及内部所有文件/子目录的所有者和所属组。示例:- chown test:test test.txt:将test.txt文件的所有者改为test,所属组改为test;- chown -R root:root test:将test目录及内部所有内容的所有者和所属组,都改为root(需加sudo权限)。避坑提示:chown命令需要管理员权限(sudo),普通用户无法修改文件/目录的所有者和所属组;修改所有者时,可以只写所有者(如chown test test.txt),所属组不变;修改所属组时,可以用chgrp 所属组 文件名(单独修改所属组的命令)。sudo 命令:以管理员(root)权限执行命令(普通用户执行系统级命令的必备)。示例:sudo chown root:root test.txt,以root权限修改test.txt文件的所有者和所属组;避坑提示:sudo命令需要输入当前用户的密码(不是root密码),密码输入时不显示(正常现象);不是所有普通用户都能使用sudo,只有在/etc/sudoers文件中配置的用户,才能使用sudo(新手无需修改该文件)。Linux是多用户系统,可创建多个用户,分配不同权限,用于多人共用一台服务器(如运维团队共用一台Linux服务器),核心命令用于创建、删除、修改用户和用户组。
useradd 用户名:创建新用户(默认创建用户的家目录,如/home/用户名)。常用选项:- -m:强制创建用户的家目录(默认已创建,可省略);- -s /bin/bash:指定用户的登录shell(默认是/bin/bash,不指定的话,可能无法正常登录);- -u UID:指定用户的UID(用户唯一标识,默认自动递增)。示例:useradd -m -s /bin/bash test,创建test用户,强制创建家目录,指定登录shell为/bin/bash。避坑提示:useradd命令需要sudo权限;创建用户后,默认没有密码,无法登录,需用passwd命令设置密码。passwd 用户名:设置或修改用户密码(最常用)。示例:-passwd test:设置test用户的密码(输入密码时,不显示,输入两次确认);- passwd:修改当前登录用户的密码(无需指定用户名)。常用选项:-d:删除用户密码(不推荐,会导致用户无需密码即可登录,存在安全隐患)。避坑提示:设置密码时,建议设置复杂密码(字母+数字+特殊符号),避免简单密码被破解;root用户可以修改任意用户的密码,无需输入原密码;普通用户只能修改自己的密码,需输入原密码。userdel 用户名:删除用户。常用选项:-r:删除用户的同时,删除用户的家目录(推荐,避免残留文件)。示例:sudo userdel -r test,删除test用户,同时删除其家目录(/home/test)。避坑提示:删除用户前,需确认该用户没有正在运行的进程(可先用ps -u 用户名查看),否则可能无法删除,或删除后残留进程;userdel命令需要sudo权限。usermod 选项 用户名:修改用户信息(如用户名、家目录、登录shell等)。常用选项:- -l 新用户名:修改用户名;- -d 新家目录:修改用户的家目录;- -s 新shell:修改用户的登录shell。示例:sudo usermod -l test1 test,将test用户的用户名改为test1。避坑提示:修改用户名后,用户的家目录名称不会自动修改,需手动用mv命令修改(如mv /home/test /home/test1);usermod命令需要sudo权限。su 用户名:切换到指定用户(切换后,环境变量也会切换到该用户的环境)。示例:-su test:从当前用户(如root)切换到test用户(需输入test用户的密码);- su - root:从普通用户切换到root用户(-表示切换到root的环境变量,推荐,需输入root密码)。避坑提示:su和sudo的区别:su是切换到指定用户,需要该用户的密码;sudo是临时获取管理员权限,需要当前用户的密码,用完后自动回到普通用户权限,更安全、更常用。用户组用于批量管理用户,将多个用户加入同一个组,可批量分配权限(如让多个用户都能访问某个目录),核心命令如下:
groupadd 组名:创建新用户组。示例:sudo groupadd testgroup,创建testgroup用户组。groupdel 组名:删除用户组。示例:sudo groupdel testgroup,删除testgroup用户组。避坑提示:如果用户组中还有用户,无法直接删除,需先删除组内所有用户,或把用户移出该组,再删除用户组。usermod -g 组名 用户名:将用户加入指定用户组(修改用户的主组)。示例:sudo usermod -g testgroup test,将test用户加入testgroup用户组(test的主组变为testgroup)。usermod -G 组名 用户名:将用户加入指定附加组(用户可属于多个附加组,主组只有一个)。示例:sudo usermod -G testgroup1,testgroup2 test,将test用户加入testgroup1和testgroup2两个附加组。groups 用户名:查看用户所属的所有用户组。示例:groups test,查看test用户属于哪些用户组(会显示主组和附加组)。日常运维中,经常需要查看系统状态(如CPU、内存、磁盘使用情况)、管理进程、启动/停止服务,这些命令是运维必备,新手重点掌握基础用法。
uname 选项:查看系统内核信息、主机名等。常用选项:- -a:查看所有系统信息(最常用,包括内核版本、主机名、硬件架构、系统发行版等);- -r:查看系统内核版本;- -n:查看系统主机名。示例:uname -a,查看系统所有信息,输出类似:Linux localhost.localdomain 5.14.0-362.el9.x86_64 #1 SMP Fri Oct 13 17:42:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux。lsb_release -a:查看Linux发行版信息(如Ubuntu、CentOS的版本)。示例:CentOS系统输入该命令,会显示CentOS的版本(如CentOS Stream 9);Ubuntu系统会显示Ubuntu的版本(如Ubuntu 24.04 LTS)。避坑提示:如果输入该命令报错,可能是系统未安装lsb_release,可通过yum install redhat-lsb-core(CentOS)或apt install lsb-release(Ubuntu)安装。hostname:查看或设置系统主机名。示例:- hostname:查看当前系统主机名;- sudo hostname newname:临时修改系统主机名为newname(重启系统后失效);- 永久修改:CentOS和Ubuntu永久修改方法一致,需修改两个文件,第一步sudo vim /etc/hostname,删除原有内容,输入新主机名(如test-server),保存退出;第二步sudo vim /etc/hosts,将文件中原有主机名替换为新主机名,保存退出,重启系统后生效(reboot)。避坑提示:永久修改主机名后,需重启系统才能生效,临时修改无需重启,但重启后会恢复原有主机名。lscpu:查看CPU详细信息(无需选项,直接执行),包括CPU架构、核心数、线程数、主频等,适合快速了解CPU配置。示例:lscpu,输出结果中重点关注“CPU(s)”(总线程数)、“Core(s) per socket”(每颗CPU核心数)、“Model name”(CPU型号)。避坑提示:该命令在所有主流发行版中均默认自带,无需额外安装,最小化安装系统也能正常使用。free 选项:查看系统内存使用情况(核心命令,运维日常必用)。常用选项:-h:以人类可读格式(KB/MB/GB)显示内存大小,避免查看一串数字。示例:free -h,输出结果解读:- total:总内存大小;- used:已使用内存(包括进程占用、缓存、缓冲);- free:空闲内存;- buff/cache:缓存和缓冲内存(可被释放,并非真正占用);- available:实际可被应用程序使用的内存(重点关注)。避坑提示:新手容易混淆“free”和“available”,不要误以为free为0就是内存不足,available才是真正可用的内存,buff/cache占用过高可通过sync && echo 3 > /proc/sys/vm/drop_caches命令释放(需sudo权限)。df 选项:查看磁盘分区使用情况(查看磁盘是否满,避免磁盘满导致系统报错)。常用选项:-h:人类可读格式显示;-T:显示分区文件系统类型(如ext4、xfs)。示例:df -hT,可查看所有磁盘分区的总容量、已用容量、可用容量、使用率及文件系统类型。避坑提示:重点关注“Use%”列,使用率超过90%需及时清理磁盘(删除无用文件、日志),避免磁盘满导致系统无法正常运行;/根分区(/)使用率过高是最常见问题,优先清理/var/log目录下的日志文件。du 选项 目录/文件:查看指定目录或文件的大小(定位大文件/目录,清理磁盘时常用)。常用选项:-h:人类可读格式;-s:显示目录总大小,不显示子目录细节;-a:显示目录下所有文件和子目录的大小。示例:- du -sh /home:查看/home目录的总大小;- du -ha /var/log:查看/var/log目录下所有文件和子目录的大小,方便定位大日志文件。避坑提示:du和df的区别:df查看磁盘分区的整体使用情况,du查看具体文件/目录的大小;偶尔会出现df显示使用率高,但du找不到大文件的情况,大概率是删除的文件被进程占用,重启对应进程即可同步(如重启nginx释放日志文件占用)。date:查看或设置系统时间(日常核对时间、修改时间时使用)。常用用法:- 查看时间:date,直接显示当前系统时间和日期,输出类似:Wed Feb 3 10:20:30 CST 2026;- 设置时间:sudo date -s "2026-02-03 10:20:30",将系统时间设置为2026年2月3日10点20分30秒(需sudo权限,否则无法修改);- 查看指定格式时间:date "+%Y-%m-%d %H:%M:%S",按“年-月-日 时:分:秒”格式显示,适合脚本中使用。避坑提示:手动设置的系统时间是临时的,重启系统后会恢复默认,若需永久同步时间,建议配置网络时间同步(NTP),执行sudo yum install ntpdate(CentOS)或sudo apt install ntpdate(Ubuntu)安装工具,再执行sudo ntpdate ntp.aliyun.com同步阿里云时间服务器,后续会自动同步。uptime:查看系统运行时间、负载情况(快速判断系统是否正常运行)。示例:uptime,输出类似:10:25:40 up 2d 3h 10m, 2 users, load average: 0.05, 0.08, 0.06。解读:- up 2d 3h 10m:系统已运行2天3小时10分钟;- 2 users:当前有2个用户登录;- load average: 0.05, 0.08, 0.06:系统1分钟、5分钟、15分钟的负载值(负载值越低,系统越空闲,通常不超过CPU核心数即为正常)。避坑提示:负载值过高(如超过CPU核心数2倍以上),说明系统压力过大,需用top命令查看占用资源过高的进程并优化。uptime:查看系统运行时间、负载情况(快速判断系统是否正常运行)。示例:uptime,输出类似:10:25:40 up 2d 3h 10m, 2 users, load average: 0.05, 0.08, 0.06。解读:- up 2d 3h 10m:系统已运行2天3小时10分钟;- 2 users:当前有2个用户登录;- load average: 0.05, 0.08, 0.06:系统1分钟、5分钟、15分钟的负载值(负载值越低,系统越空闲,通常不超过CPU核心数即为正常)。避坑提示:负载值过高(如超过CPU核心数2倍以上),说明系统压力过大,需用top命令查看占用资源过高的进程并优化。进程是Linux系统中正在运行的程序,日常运维中,经常需要查看进程状态(如某个程序是否在运行)、终止异常进程(如程序卡死、占用资源过高),核心命令重点掌握ps、top、kill。
ps 选项:查看系统中的进程(静态查看,只显示执行命令瞬间的进程状态)。常用选项(必记组合):- ps aux:查看系统中所有进程(最常用,a=所有用户进程,u=显示进程所有者,x=显示无终端的进程);- ps ef:查看进程的父进程、进程ID等详细信息,便于追溯进程来源。示例:ps aux | grep nginx,查看系统中所有nginx相关的进程(| grep 用于过滤结果,只显示包含nginx的进程)。结果解读:重点关注4列——USER(进程所有者)、PID(进程ID,终止进程时需要用到)、%CPU(进程占用CPU百分比)、%MEM(进程占用内存百分比)、COMMAND(进程对应的命令)。避坑提示:ps aux查看的是静态结果,若需实时查看进程变化,需用top命令。top:实时查看系统进程状态(动态刷新,默认每3秒刷新一次,适合监控系统资源占用)。常用操作(进入top后使用):- 空格键:立即刷新一次;- k:终止指定进程(输入进程PID,按回车,再输入9强制终止,推荐用9,避免终止失败);- P:按CPU占用率从高到低排序(快速定位CPU占用高的进程);- M:按内存占用率从高到低排序(快速定位内存占用高的进程);- q:退出top监控。示例:进入top后,按P排序,找到CPU占用率最高的进程,记下其PID,按k输入PID,再按9,即可强制终止该进程。避坑提示:终止进程前,务必确认进程用途,不要随意终止系统关键进程(如systemd、kernel相关进程),否则会导致系统崩溃、重启。kill 选项 进程PID:终止指定进程(核心命令,需配合ps或top获取进程PID)。常用选项:- -9:强制终止进程(最常用,无论进程是否处于正常状态,都能强制终止,推荐使用);- -15:正常终止进程(默认选项,会让进程先保存数据,再终止,适合终止正常运行的程序,如nginx、mysql)。示例:- kill -9 1234:强制终止PID为1234的进程;- kill 1234:正常终止PID为1234的进程(等价于kill -15 1234)。避坑提示:1. 必须输入正确的进程PID,输入错误会终止无关进程;2. 若进程有多个子进程,仅终止父进程可能无法彻底终止,需用killall 命令名(如killall nginx),批量终止所有同名进程;3. 普通用户只能终止自己拥有的进程,无法终止root用户的进程(需加sudo)。killall 命令名:批量终止所有同名进程(无需获取PID,适合快速终止某个程序的所有进程)。示例:killall -9 nginx,强制终止系统中所有nginx相关的进程。避坑提示:该命令会终止所有同名进程,若系统中有多个同名但用途不同的进程(如多个python进程),慎用,避免误终止有用进程。Linux中的服务(如nginx、mysql、ssh)是后台长期运行的进程,用于提供特定功能,2026年主流Linux发行版(CentOS Stream 9、Ubuntu 24.04)均使用systemctl命令管理服务,替代了传统的service命令,新手重点掌握systemctl的用法。
systemctl 操作 服务名:核心服务管理命令,常用操作(必记):- start:启动服务;- stop:停止服务;- restart:重启服务(先停止,再启动,适合修改配置后生效);- reload:重载服务(不停止服务,仅重新加载配置,适合不想中断服务的场景,如nginx修改配置后);- status:查看服务运行状态(是否正常运行、启动失败原因);- enable:设置服务开机自启(重启系统后,服务自动启动,推荐配置常用服务);- disable:取消服务开机自启(重启系统后,服务不再自动启动)。sudo systemctl start nginx:启动nginx服务;- sudo systemctl stop nginx:停止nginx服务;- sudo systemctl restart nginx:重启nginx服务;- sudo systemctl reload nginx:重载nginx配置;- systemctl status nginx:查看nginx运行状态(无需sudo);- sudo systemctl enable nginx:设置nginx开机自启;- sudo systemctl disable nginx:取消nginx开机自启。systemctl list-unit-files | grep mysql查找正确服务名);2. 启动、停止、重启、设置自启等操作,需要sudo权限;3. 若服务启动失败,用systemctl status 服务名查看失败原因(通常是配置错误、端口占用),根据提示修改后再启动;4. 传统service命令(如service nginx start)在部分旧版本系统中仍可用,但2026年主流系统优先使用systemctl,建议养成使用systemctl的习惯。netstat 选项:查看端口占用情况(服务启动失败,大概率是端口被占用,需用该命令排查)。常用选项:-tuln(t=显示TCP端口,u=显示UDP端口,l=显示监听中的端口,n=以数字形式显示端口号,不显示域名)。示例:sudo netstat -tuln | grep 80,查看80端口(nginx默认端口)是否被占用,若有输出,说明端口已被占用,需停止占用端口的进程,或修改服务端口。避坑提示:部分系统默认未安装netstat,可通过yum install net-tools(CentOS)或apt install net-tools(Ubuntu)安装;也可使用ss -tuln命令替代(默认自带,用法和netstat -tuln一致)。