一、文件与目录操作(最常用,必掌握)
Linux中"一切皆文件",目录也是一种特殊文件,这部分命令是日常操作的高频场景,务必熟练掌握。
1. ls --- 列出目录内容
功能:列出指定目录下的文件和子目录,默认列出当前目录内容,是最常用的"查看"命令。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash ls # 基础用法:列出当前目录下的可见文件/目录(不含隐藏文件) ls [目录路径] # 列出指定目录下的内容,例:ls /home ls -l # 长格式显示(核心选项),包含权限、所有者、大小、修改时间等详细信息 ls -a # 显示所有文件/目录,包括以"."开头的隐藏文件(如.bashrc) ls -lh # 人性化显示文件大小(将字节转为KB/MB/GB,更易读) ls -lt # 按文件修改时间排序(最新修改的在最前面) ls -ltr # 按修改时间反向排序(最旧的在最前面) ls -R # 递归显示目录内容(包含所有子目录下的文件) ls -ld [目录名] # 只显示指定目录的详细信息,不显示目录内内容 |
2. cd --- 切换工作目录
功能:切换当前终端的工作目录,是操作目录的"导航"命令。
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash cd [目录路径] # 切换到指定目录,例:cd /home/user(绝对路径)、cd Documents(相对路径) cd .. # 切换到上一级目录(两个点表示上一级) cd ~ # 切换到当前用户的家目录(家目录路径:root用户是/root,普通用户是/home/用户名) cd - # 切换到上一次所在的工作目录(相当于"返回"上一步) cd / # 切换到系统根目录(所有目录的顶层目录) |
3. pwd --- 显示当前工作路径
功能:打印当前终端所在的绝对路径,避免"迷路"(尤其是切换多个目录后)。
|---------------------------------------------------|
| bash pwd # 基础用法:直接打印当前绝对路径,例:/home/user/Documents |
4. mkdir --- 创建目录
功能:创建新的目录,支持创建单个目录或多级目录。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash mkdir [目录名] # 创建单个目录,例:mkdir test mkdir -p [目录路径] # 递归创建多级目录(核心选项),例:mkdir -p a/b/c(无需手动创建a和b目录) mkdir -m [权限] [目录名] # 创建目录时直接指定权限,例:mkdir -m 755 testdir(权限后续会讲解) mkdir dir1 dir2 # 同时创建多个目录,例:mkdir test1 test2 |
5. rm --- 删除文件/目录
功能:删除文件或目录,**慎用!**Linux没有"回收站",删除后无法直接恢复。
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash rm [文件名] # 删除单个文件,例:rm file.txt rm -f [文件名] # 强制删除文件(核心选项),不提示确认(即使文件不存在也不报错) rm -r [目录名] # 递归删除目录(核心选项),删除目录及其所有子目录和文件,会提示确认 rm -rf [目录名] # 强制递归删除目录(最常用也最危险),不提示确认,例:rm -rf testdir(切勿误删系统目录) rm file1 file2 # 同时删除多个文件,例:rm a.txt b.txt |
6. cp --- 复制文件/目录
功能:将文件或目录复制到指定位置,支持复制单个、多个文件或整个目录。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash cp [源文件] [目标路径] # 复制单个文件到指定路径,例:cp file.txt /home/user cp [源文件1] [源文件2] [目标路径] # 同时复制多个文件到指定路径,例:cp a.txt b.txt /tmp cp -i [源文件] [目标路径] # 覆盖前提示确认(核心选项,避免误覆盖),例:cp -i file.txt /home cp -r [源目录] [目标路径] # 递归复制目录(核心选项),复制目录及其所有内容,例:cp -r testdir /tmp cp -a [源文件/目录] [目标路径] # 归档复制(核心选项),保留文件/目录的权限、所有者、修改时间等所有属性,常用于备份 cp -v [源文件] [目标路径] # 显示复制过程(可选,方便查看复制进度) |
7. mv --- 移动文件/目录(或重命名)
功能:移动文件/目录到指定位置,也可用于给文件/目录重命名(同一目录下移动即重命名)。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash mv [源文件/目录] [目标路径] # 移动文件/目录,例:mv file.txt /home/user、mv testdir /tmp mv -i [源文件/目录] [目标路径] # 覆盖前提示确认(核心选项),避免误覆盖 mv [旧名称] [新名称] # 重命名文件/目录(同一目录下),例:mv file.txt newfile.txt、mv testdir newdir mv -v [源文件/目录] [目标路径] # 显示移动过程(可选) |
8. touch --- 创建空文件/修改文件时间戳
功能:创建空白文件,或修改已有文件的访问时间、修改时间(不改变文件内容)。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash touch [文件名] # 创建单个空文件,例:touch file.txt touch [文件名1] [文件名2] # 同时创建多个空文件,例:touch a.txt b.txt touch -a [文件名] # 只修改文件的访问时间(access time) touch -m [文件名] # 只修改文件的修改时间(modify time) touch -d "2024-01-01 12:00" [文件名] # 自定义修改文件的时间戳 |
二、文件内容查看(日常排查必备)
查看文件内容是Linux运维中高频操作(如查看日志、配置文件),不同命令适用于不同场景,按需选择即可。
9. cat --- 查看文件内容(适合小文件)
功能:一次性显示文件的全部内容,适合查看内容较少的文件(大文件会瞬间刷屏,不推荐)。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash cat [文件名] # 基础用法:显示文件全部内容,例:cat /etc/hosts cat -n [文件名] # 显示内容并标注行号(核心选项),方便定位内容位置,例:cat -n /etc/passwd cat -b [文件名] # 显示行号,但不标注空行的行号 cat [文件1] [文件2] # 同时显示多个文件的内容,例:cat a.txt b.txt cat > [文件名] # 从终端输入内容,创建并写入文件(按Ctrl+C结束输入),例:cat > test.txt cat [文件1] > [文件2] # 将文件1的内容覆盖写入文件2(注意:文件2原有内容会被清空) cat [文件1] >> [文件2] # 将文件1的内容追加写入文件2(文件2原有内容保留) |
10. more / less --- 分页查看文件内容(适合大文件)
功能:分页显示文件内容,避免大文件刷屏,两者用法类似,less功能更强大(推荐使用less)。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # more 用法(简单分页,只能向下翻页) more [文件名] # 分页显示文件内容,按空格键翻页,按q键退出 more -n 10 [文件名] # 每页显示10行内容 # less 用法(推荐,支持上下翻页、搜索) less [文件名] # 分页显示文件内容,按↑↓键上下翻页,按空格键翻页,按q键退出 less -N [文件名] # 显示内容并标注行号 less /[关键词] [文件名] # 搜索文件中的关键词(按n键查看下一个匹配项,按N键查看上一个) less +G [文件名] # 直接跳转到文件末尾(查看日志常用) |
11. head / tail --- 查看文件开头/结尾内容
功能:head查看文件开头部分内容,tail查看文件结尾部分内容,常用于查看日志(日志默认追加到文件末尾)。
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # head 用法 head [文件名] # 默认查看文件前10行内容,例:head /etc/passwd head -n [行数] [文件名] # 查看文件前N行内容,例:head -n 5 /etc/passwd(查看前5行) head -c [字节数] [文件名] # 查看文件前N字节内容,例:head -c 100 file.txt # tail 用法(核心,查看日志必备) tail [文件名] # 默认查看文件后10行内容,例:tail /var/log/messages tail -n [行数] [文件名] # 查看文件后N行内容,例:tail -n 20 /var/log/messages(查看后20行) tail -f [文件名] # 实时跟踪文件内容(核心选项),文件有新内容会自动刷新,按Ctrl+C退出(查看实时日志神器) tail -F [文件名] # 实时跟踪文件内容,即使文件被删除、重新创建,也能继续跟踪(比-f更稳定) |
12. wc --- 统计文件内容(行数、单词数、字节数)
功能:统计文件的行数、单词数、字节数,常用于统计日志行数、代码行数等。
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash wc [文件名] # 基础用法:同时统计 行数 单词数 字节数,例:wc file.txt(输出格式:行数 单词数 字节数 文件名) wc -l [文件名] # 只统计行数(核心选项),例:wc -l /var/log/messages(统计日志行数) wc -w [文件名] # 只统计单词数(以空格/制表符分隔) wc -c [文件名] # 只统计字节数 wc -m [文件名] # 只统计字符数(包含中文等多字节字符) |
三、查找与搜索(快速定位文件/内容)
当系统文件较多时,手动查找效率极低,这两个命令可以快速定位文件或文件中的指定内容。
13. find --- 查找文件/目录(按路径、名称、大小等条件)
功能:根据指定条件(路径、名称、大小、修改时间等)查找文件或目录,功能强大,灵活度高。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash find [查找路径] -name [文件名模式] # 按文件名查找(最常用),例:find /home -name "*.txt"(查找/home下所有.txt文件) find [查找路径] -iname [文件名模式] # 按文件名查找,忽略大小写,例:find / -iname "test"(匹配Test、TEST等) find [查找路径] -type [类型] # 按文件类型查找,类型:f(普通文件)、d(目录)、l(软链接),例:find / -type f -name "*.log" find [查找路径] -size [大小] # 按文件大小查找,例:find / -type f -size +100M(查找大于100M的文件)、find . -size -10K(查找小于10K的文件) find [查找路径] -mtime [天数] # 按修改时间查找,例:find . -mtime -7(查找7天内修改过的文件)、find . -mtime +30(查找30天前修改过的文件) find [查找路径] -user [用户名] # 按文件所有者查找,例:find /home -user root(查找/home下所有者为root的文件) find [查找路径] -perm [权限] # 按文件权限查找,例:find / -perm 777(查找权限为777的文件,权限后续讲解) find [查找路径] -name "*.txt" -exec rm -f {} \; # 查找并删除符合条件的文件({}表示找到的文件,\;结束命令) |
14. grep --- 文本内容搜索(在文件中查找关键词)
功能:在文件或命令输出中查找指定关键词,是排查日志、配置文件的核心命令。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash grep [关键词] [文件名] # 基础用法:在指定文件中查找关键词,例:grep "root" /etc/passwd grep -i [关键词] [文件名] # 忽略大小写查找(核心选项),例:grep -i "error" /var/log/messages(匹配Error、ERROR等) grep -n [关键词] [文件名] # 查找并显示关键词所在的行号(核心选项),方便定位,例:grep -n "listen" /etc/nginx/nginx.conf grep -v [关键词] [文件名] # 反向匹配(核心选项),查找不包含关键词的行,例:grep -v "注释" config.txt(过滤注释行) grep -r [关键词] [目录路径] # 递归搜索(核心选项),在指定目录下所有文件中查找关键词,例:grep -r "test" /home grep -A [行数] [关键词] [文件名] # 显示关键词所在行及后面N行内容,例:grep -A 3 "error" log.txt(显示error行及后面3行) grep -B [行数] [关键词] [文件名] # 显示关键词所在行及前面N行内容 grep -C [行数] [关键词] [文件名] # 显示关键词所在行及前后N行内容 ps aux | grep [进程名] # 结合管道(|),查找指定进程,例:ps aux | grep nginx(查找nginx进程) |
四、文件权限与用户管理(系统安全基础)
Linux是多用户、多任务系统,权限管理是系统安全的核心,每个文件/目录都有对应的所有者、所属组和访问权限。
15. chmod --- 修改文件/目录权限
功能:修改文件或目录的访问权限,权限分为读(r)、写(w)、执行(x),对应数字权限:r=4、w=2、x=1,组合后为3位数字(如755、644)。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash chmod [权限] [文件/目录] # 用数字权限修改,例:chmod 755 file.txt、chmod 644 config.conf chmod [权限符号] [文件/目录] # 用符号权限修改(更直观),例: chmod +x script.sh # 给文件添加执行权限(所有用户),脚本运行必备 chmod -w file.txt # 取消文件的写权限(所有用户) chmod u+rwx file.txt # 给文件所有者(u)添加读、写、执行权限 chmod g+rw file.txt # 给文件所属组(g)添加读、写权限 chmod o-r file.txt # 取消其他用户(o)的读权限 chmod -R [权限] [目录] # 递归修改目录及其所有子目录、文件的权限(核心选项),例:chmod -R 755 testdir |
常用权限说明:755(所有者rwx,所属组rx,其他用户rx)、644(所有者rw,所属组r,其他用户r)、777(所有用户rwx,慎用,不安全)。
16. chown --- 修改文件/目录的所有者和所属组
功能:修改文件或目录的所有者(用户)和所属组(用户组),只有root用户可修改。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash chown [用户名] [文件/目录] # 修改文件所有者,例:chown user1 file.txt chown [用户名]:[用户组] [文件/目录] # 修改文件所有者和所属组,例:chown user1:group1 file.txt chown :[用户组] [文件/目录] # 只修改文件所属组,例:chown :group1 file.txt chown -R [用户名]:[用户组] [目录] # 递归修改目录及其所有内容的所有者和所属组,例:chown -R user1:group1 testdir |
17. su / sudo --- 切换用户/提升权限
功能:su用于切换用户,sudo用于以管理员(root)权限执行命令,避免直接登录root用户(更安全)。
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # su 用法 su [用户名] # 切换到指定用户,例:su root(切换到root用户,需要输入root密码) su - [用户名] # 切换到指定用户,并加载该用户的环境变量(推荐用法),例:su - user1 su - # 快速切换到root用户(等同于su - root) # sudo 用法(需要配置sudo权限,普通用户默认无此权限) sudo [命令] # 以root权限执行指定命令,例:sudo rm -rf /tmp/testdir、sudo systemctl restart nginx sudo -i # 切换到root用户的交互式终端(等同于su - root,无需重复输入root密码) sudo -u [用户名] [命令] # 以指定用户的权限执行命令,例:sudo -u user1 touch file.txt |
18. useradd / userdel --- 创建/删除用户
功能:创建新用户、删除已有用户,仅root用户可执行。
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # useradd 用法(创建用户) useradd [用户名] # 基础用法:创建用户,默认创建家目录(/home/用户名)、默认用户组 useradd -u [用户ID] [用户名] # 指定用户ID创建用户,例:useradd -u 1001 user1 useradd -g [用户组] [用户名] # 指定用户所属组创建用户,例:useradd -g group1 user1 useradd -m [用户名] # 强制创建家目录(默认已创建,可省略) useradd -s [shell路径] [用户名] # 指定用户登录shell,例:useradd -s /bin/bash user1 # userdel 用法(删除用户) userdel [用户名] # 删除用户,但保留家目录和用户相关文件 userdel -r [用户名] # 彻底删除用户(核心选项),删除用户的同时,删除家目录及所有相关文件,例:userdel -r user1 |
19. passwd --- 修改用户密码
功能:修改当前用户或其他用户的密码,root用户可修改所有用户密码,普通用户只能修改自己的密码。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash passwd # 修改当前用户密码,输入旧密码后,输入新密码(密码不显示) passwd [用户名] # root用户修改指定用户密码,例:passwd user1(无需输入旧密码,直接设置新密码) passwd -l [用户名] # 锁定用户(禁止登录),例:passwd -l user1 passwd -u [用户名] # 解锁用户,例:passwd -u user1 |
20. 用户组相关命令(groupadd/groupdel/groupmod)
功能:Linux中用户组用于统一管理多个用户的权限,创建、删除、修改用户组,仅root用户可执行,常与用户管理命令配合使用。
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # groupadd --- 创建用户组(核心命令) groupadd [用户组名] # 基础用法:创建普通用户组,例:groupadd group1 groupadd -g [组ID] [用户组名] # 指定组ID创建用户组,例:groupadd -g 1001 group1(组ID建议大于1000,避免与系统组冲突) # groupdel --- 删除用户组(核心命令) groupdel [用户组名] # 删除指定用户组,例:groupdel group1 # 注意:若用户组下有用户(该组是用户的主组),需先删除用户或修改用户的主组,否则无法删除 # groupmod --- 修改用户组(核心命令) groupmod -n [新组名] [旧组名] # 修改用户组名称,例:groupmod -n newgroup1 group1(将group1改为newgroup1) groupmod -g [新组ID] [用户组名] # 修改用户组ID,例:groupmod -g 1002 group1(将group1的ID改为1002) # 补充:将用户添加到用户组/从用户组移除 usermod -aG [用户组名] [用户名] # 将用户添加到指定附加组,例:usermod -aG group1 user1(user1仍保留原主组) usermod -g [用户组名] [用户名] # 将用户的主组改为指定组,例:usermod -g group1 user1(替换原主组) gpasswd -d [用户名] [用户组名] # 将用户从指定附加组中移除,例:gpasswd -d user1 group1 # 查看用户组相关信息 cat /etc/group # 查看系统中所有用户组的详细信息(组名、组ID、组内用户) groups [用户名] # 查看指定用户所属的所有用户组,例:groups user1 |
五、磁盘与系统信息(系统监控必备)
查看磁盘使用情况、内存占用、进程状态等,是排查系统异常(如磁盘满、内存溢出)的基础。
21. df --- 查看磁盘分区使用情况
功能:显示系统所有磁盘分区的总容量、已用容量、剩余容量、使用率等信息。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash df # 基础用法:显示磁盘分区信息(默认以字节为单位,不直观) df -h # 人性化显示(核心选项),将字节转为KB/MB/GB,例:df -h(查看所有分区使用情况) df -i # 查看磁盘inode使用情况(inode不足会导致无法创建新文件,即使磁盘有剩余空间) df -T # 显示磁盘分区的文件系统类型(如ext4、xfs) df [分区路径] # 查看指定分区的使用情况,例:df -h /(查看根分区使用情况) |
22. du --- 查看文件/目录占用空间大小
功能:查看单个文件或目录的实际占用空间,与df不同,du专注于"文件/目录本身",df专注于"磁盘分区"。
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash du [文件/目录] # 基础用法:显示文件/目录占用的字节数,例:du file.txt、du testdir du -h [文件/目录] # 人性化显示(核心选项),例:du -h testdir(查看目录总占用大小) du -sh [文件/目录] # 只显示总大小(核心选项),不显示子目录详情,例:du -sh /home(查看/home目录总占用) du -h --max-depth=1 [目录] # 显示目录下一级子目录的占用大小,不递归显示,例:du -h --max-depth=1 / |
23. free --- 查看系统内存使用情况
功能:显示系统物理内存(RAM)、交换内存(swap)的总容量、已用容量、剩余容量等信息。
|-----------------------------------------------------------------------------------------------------------------------------|
| bash free # 基础用法:显示内存信息(默认以字节为单位) free -h # 人性化显示(核心选项),例:free -h(直观查看内存使用情况) free -m # 以MB为单位显示内存信息 free -g # 以GB为单位显示内存信息 |
24. top / htop --- 实时监控系统进程与资源
功能:实时显示系统的CPU、内存、进程等资源使用情况,top是系统自带,htop更美观(需手动安装)。
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # top 用法(系统自带) top # 启动实时监控,按q键退出 top -p [PID] # 只监控指定进程(PID是进程ID),例:top -p 1234(监控PID为1234的进程) top -u [用户名] # 只监控指定用户的进程,例:top -u user1 # 监控界面核心指标说明: # %Cpu(s):CPU使用率(us:用户进程占用,sy:系统进程占用,id:空闲) # KiB Mem:物理内存使用情况 # KiB Swap:交换内存使用情况 # PID:进程ID,USER:进程所有者,%CPU:进程占用CPU百分比,%MEM:进程占用内存百分比 # htop 用法(推荐,需安装:CentOS用yum install htop,Ubuntu用apt install htop) htop # 启动实时监控,界面更美观,支持鼠标操作,按q键退出 |
25. ps --- 查看系统进程(静态)
功能:静态显示系统当前的进程信息(不实时刷新),与top(实时)互补,常用于查看进程是否运行。
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash ps aux # 基础用法(最常用),显示所有进程的详细信息(a:所有用户进程,u:显示所有者,x:显示无终端进程) ps -ef # 显示所有进程的完整信息(包含父进程ID),例:ps -ef | grep nginx(查找nginx进程及其父进程) ps -aux | grep -v grep # 过滤掉grep自身进程,避免干扰,例:ps -aux | grep nginx | grep -v grep ps -l # 显示当前终端的进程信息 |
26. kill / killall --- 终止进程
功能:终止指定进程(当进程异常、卡死时使用),仅root用户可终止所有用户的进程,普通用户只能终止自己的进程。
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # kill 用法(按PID终止进程,需先通过ps/top获取PID) kill [PID] # 发送默认信号(15)终止进程,例:kill 1234(终止PID为1234的进程) kill -9 [PID] # 强制终止进程(核心选项),信号9不可被进程忽略,用于卡死的进程,例:kill -9 1234 kill -1 [PID] # 重启进程(发送信号1),例:kill -1 1234(重启PID为1234的进程) # killall 用法(按进程名终止进程,无需获取PID,更方便) killall [进程名] # 终止所有同名进程,例:killall nginx(终止所有nginx进程) killall -9 [进程名] # 强制终止所有同名进程,例:killall -9 nginx |
六、网络命令(网络排查与访问)
查看网络状态、测试网络连通性、下载文件等,是网络运维的基础命令。
27. ping --- 测试网络连通性
功能:测试本地主机与目标主机(IP或域名)的网络连通性,常用于判断网络是否正常。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash ping [目标IP/域名] # 基础用法:持续发送数据包,按Ctrl+C停止,例:ping www.baidu.com、ping 192.168.1.1 ping -c [次数] [目标IP/域名] # 发送指定次数的数据包后停止,例:ping -c 4 www.baidu.com(发送4个包) ping -i [间隔时间] [目标IP/域名] # 指定数据包发送间隔(单位:秒),例:ping -i 2 www.baidu.com(每2秒发送一个包) ping -s [数据包大小] [目标IP/域名] # 指定数据包大小(单位:字节),例:ping -s 100 www.baidu.com |
28. ifconfig / ip --- 查看/配置网卡信息
功能:查看网卡的IP地址、MAC地址、网卡状态等信息,ifconfig是旧命令,ip是新命令(推荐使用ip)。
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # ifconfig 用法(部分系统需安装net-tools工具:yum install net-tools / apt install net-tools) ifconfig # 查看所有网卡的详细信息(包括IP、MAC、网卡状态) ifconfig [网卡名] # 查看指定网卡的信息,例:ifconfig eth0(查看eth0网卡) ifconfig [网卡名] [IP地址] netmask [子网掩码] # 临时配置网卡IP(重启后失效),例:ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # ip 用法(推荐,系统自带,功能更强大) ip addr # 查看所有网卡的IP、MAC等信息(等同于ifconfig) ip addr show [网卡名] # 查看指定网卡信息,例:ip addr show eth0 ip link set [网卡名] up # 启动网卡,例:ip link set eth0 up ip link set [网卡名] down # 关闭网卡,例:ip link set eth0 down ip route # 查看系统路由表(网关信息) |
29. netstat / ss --- 查看网络端口状态
功能:查看系统所有端口的监听状态、连接状态,netstat是旧命令,ss是新命令(推荐使用ss,速度更快)。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # netstat 用法(需安装net-tools工具) netstat -tulnp # 查看所有监听端口(核心命令),t:TCP端口,u:UDP端口,l:监听状态,n:显示IP/端口(不解析域名),p:显示进程名/PID netstat -an # 查看所有端口的连接状态(包括监听和已连接) # ss 用法(推荐,系统自带) ss -tulnp # 与netstat -tulnp功能一致,查看所有监听端口,例:ss -tulnp | grep 80(查看80端口监听情况) ss -an # 查看所有端口连接状态 ss -s # 查看网络连接统计信息 |
30. curl / wget --- 下载文件/访问网页
功能:curl用于发送HTTP/HTTPS请求、访问网页,wget用于下载文件,两者都是常用的网络工具。
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # curl 用法 curl [URL] # 访问指定网页,显示网页源码,例:curl www.baidu.com curl -o [文件名] [URL] # 下载文件并指定文件名,例:curl -o nginx.tar.gz https://nginx.org/download/nginx-1.24.0.tar.gz curl -L [URL] # 跟随跳转(当URL跳转时使用),例:curl -L https://example.com curl -I [URL] # 只显示HTTP响应头,不显示网页内容,例:curl -I www.baidu.com # wget 用法(下载文件专用,更方便) wget [URL] # 直接下载文件,保存为默认文件名,例:wget https://nginx.org/download/nginx-1.24.0.tar.gz wget -O [文件名] [URL] # 下载文件并指定文件名,例:wget -O nginx.tar.gz https://nginx.org/download/nginx-1.24.0.tar.gz wget -c [URL] # 断点续传(下载中断后,继续从断点下载),例:wget -c https://example.com/largefile.zip wget -P [目录路径] [URL] # 下载文件到指定目录,例:wget -P /tmp https://nginx.org/download/nginx-1.24.0.tar.gz |
七、压缩与解压(文件备份/传输必备)
Linux中常用的压缩格式有.tar、.tar.gz、.tar.bz2、.zip,不同格式对应不同的压缩解压命令。
31. tar --- 打包/解压.tar/.tar.gz/.tar.bz2格式(最常用)
功能:tar本身是"打包"命令,结合压缩工具(gzip、bzip2)可实现压缩,支持多种压缩格式,是Linux中最常用的压缩解压工具。
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # 打包(不压缩,生成.tar文件) tar -cvf [打包文件名].tar [文件/目录] # c:创建打包文件,v:显示打包过程,f:指定打包文件名,例:tar -cvf test.tar testdir # 压缩(生成.tar.gz格式,最常用) tar -zcvf [压缩文件名].tar.gz [文件/目录] # z:使用gzip压缩,例:tar -zcvf test.tar.gz testdir tar -zcvf [压缩文件名].tar.gz [文件1] [文件2] # 压缩多个文件,例:tar -zcvf files.tar.gz a.txt b.txt # 压缩(生成.tar.bz2格式,压缩率更高) tar -jcvf [压缩文件名].tar.bz2 [文件/目录] # j:使用bzip2压缩,例:tar -jcvf test.tar.bz2 testdir # 解压.tar文件 tar -xvf [打包文件名].tar # x:解压,例:tar -xvf test.tar tar -xvf [打包文件名].tar -C [目标目录] # 解压到指定目录,例:tar -xvf test.tar -C /tmp # 解压.tar.gz文件(最常用) tar -zxvf [压缩文件名].tar.gz # 例:tar -zxvf test.tar.gz tar -zxvf [压缩文件名].tar.gz -C [目标目录] # 解压到指定目录,例:tar -zxvf test.tar.gz -C /tmp # 解压.tar.bz2文件 tar -jxvf [压缩文件名].tar.bz2 # 例:tar -jxvf test.tar.bz2 tar -jxvf [压缩文件名].tar.bz2 -C [目标目录] # 解压到指定目录 |
32. zip / unzip --- 压缩/解压.zip格式(跨平台,与Windows兼容)
功能:zip是跨平台的压缩格式,可与Windows兼容,适合需要在Windows和Linux之间传输的文件。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # zip 用法(压缩,需安装zip工具:yum install zip / apt install zip) zip [压缩文件名].zip [文件/目录] # 压缩文件/目录,例:zip test.zip testdir zip -r [压缩文件名].zip [目录] # 递归压缩目录(核心选项),例:zip -r test.zip testdir zip -q [压缩文件名].zip [文件/目录] # 静默压缩,不显示压缩过程 # unzip 用法(解压,需安装unzip工具:yum install unzip / apt install unzip) unzip [压缩文件名].zip # 解压到当前目录,例:unzip test.zip unzip [压缩文件名].zip -d [目标目录] # 解压到指定目录,例:unzip test.zip -d /tmp unzip -l [压缩文件名].zip # 查看压缩文件内的内容,不解压 unzip -o [压缩文件名].zip # 强制解压,覆盖现有文件,不提示 |
八、软件安装与卸载(系统运维基础)
Linux不同发行版的软件安装命令不同,主要分为两类:CentOS/RHEL(yum)、Ubuntu/Debian(apt),以下是通用用法。
33. CentOS / RHEL 系统(yum命令)
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash yum install [软件名] # 安装软件,例:yum install nginx、yum install net-tools yum remove [软件名] # 卸载软件,例:yum remove nginx yum update # 更新系统所有已安装软件 yum update [软件名] # 只更新指定软件,例:yum update nginx yum search [软件名] # 搜索软件,例:yum search nginx yum list installed # 查看已安装的所有软件 yum clean all # 清理yum缓存(解决软件安装失败的缓存问题) |
34. Ubuntu / Debian 系统(apt命令)
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash apt update # 更新软件源(必须先执行,否则无法安装最新软件) apt install [软件名] # 安装软件,例:apt install nginx、apt install net-tools apt remove [软件名] # 卸载软件(保留配置文件),例:apt remove nginx apt purge [软件名] # 彻底卸载软件(删除配置文件),例:apt purge nginx apt upgrade # 更新系统所有已安装软件 apt search [软件名] # 搜索软件,例:apt search nginx apt list --installed # 查看已安装的所有软件 |
九、其他常用命令(提升效率必备)
这些命令虽不高频,但能极大提升操作效率,新手建议了解并掌握。
35. echo --- 输出内容/打印环境变量
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash echo [内容] # 输出指定内容,例:echo "Hello Linux"(输出字符串)、echo 123(输出数字) echo \[表达式\] # 计算表达式并输出结果,例:echo [1+1](输出2)、echo \[10-5\](输出5) echo [环境变量] # 打印环境变量,例:echo PATH(查看系统环境变量PATH)、echo USER(查看当前用户名) echo [内容] > [文件] # 将内容覆盖写入文件,例:echo "test content" > test.txt echo [内容] >> [文件] # 将内容追加写入文件,例:echo "new content" >> test.txt |
36. history --- 查看历史命令
功能:查看当前用户执行过的所有历史命令,避免重复输入复杂命令。
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash history # 查看所有历史命令(默认保存1000条,可修改配置) history [数字] # 查看最近N条历史命令,例:history 10(查看最近10条) ! [命令序号] # 执行历史命令中指定序号的命令,例:!100(执行第100条历史命令) ! # 引用上一条命令的最后一个参数,例:上一条命令是cp a.txt /tmp,! 就是/tmp history -c # 清空所有历史命令(临时清空,退出终端后失效) |
37. man --- 查看命令帮助手册
功能:查看任何Linux命令的详细帮助文档(包括命令用法、选项、参数、示例),是"自学神器"。
|-------------------------------------------------------------------------------------------------|
| bash man [命令名] # 查看指定命令的帮助手册,例:man ls、man grep、man tar # 帮助手册操作:按空格键翻页,按↑↓键上下滚动,按/关键词搜索,按q键退出 |
38. clear --- 清空终端屏幕
|--------------------------------------------|
| bash clear # 清空终端屏幕,快捷键:Ctrl+L(与clear功能一致) |
39. alias --- 设置命令别名(提升效率)
功能:给常用的复杂命令设置别名,简化输入(临时别名,退出终端后失效;永久别名需修改配置文件)。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash alias [别名]='[原命令]' # 设置临时别名,例:alias ll='ls -l'(输入ll等同于输入ls -l)、alias rm='rm -i'(避免误删) unalias [别名] # 删除别名,例:unalias ll # 设置永久别名(需修改~/.bashrc文件) echo "alias ll='ls -l'" >> ~/.bashrc # 将别名写入配置文件 source ~/.bashrc # 生效配置(无需重启终端) |
40. vim --- 文本编辑命令(新手必备编辑器)
功能:vim是Linux系统自带的强大文本编辑器,可用于编辑配置文件、脚本、文档等,新手需掌握基础操作(替代简单的vi编辑器,功能更全面)。
温馨提示:首次使用需确保系统安装vim(CentOS:yum install vim;Ubuntu:apt install vim),否则可先用vi命令(用法与vim基础操作一致)。
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # 1. 打开/创建文件(核心操作) vim [文件名] # 打开指定文件,若文件不存在则创建,例:vim test.txt、vim /etc/profile vim +[行号] [文件名] # 打开文件并直接跳转到指定行,例:vim +10 test.txt(跳转到第10行,编辑配置文件常用) # 2. vim核心模式(新手必记,3种核心模式切换) # ① 命令模式(默认模式):打开文件后自动进入,用于执行保存、退出、跳转等操作 # ② 插入模式:按i键进入,用于输入、编辑文本(左下角显示-- INSERT --) # ③ 末行模式:按冒号(:)进入,用于执行保存、退出、查找替换等命令(左下角显示冒号) # 3. 常用操作(命令模式下执行) i # 进入插入模式(光标前插入) a # 进入插入模式(光标后插入) o # 进入插入模式(光标下一行插入新行) Esc # 退出插入模式/末行模式,返回命令模式(核心快捷键) dd # 删除当前行(快速删除,按两次d) ndd # 删除当前行及后面n-1行,例:3dd(删除当前行+后面2行,共3行) yy # 复制当前行 nyy # 复制当前行及后面n-1行,例:2yy(复制当前行+下一行,共2行) p # 粘贴复制/删除的内容(粘贴到光标下一行) u # 撤销上一步操作(相当于Ctrl+Z) Ctrl+r # 恢复撤销的操作(相当于Ctrl+Y) # 4. 末行模式常用命令(先按Esc返回命令模式,再按:进入) :w # 保存文件(不退出) :q # 退出vim(文件未修改时可用) :wq # 保存并退出(核心命令,最常用) :q! # 强制退出(不保存修改,慎用,避免误操作) :set nu # 显示行号(编辑配置文件定位行常用) :set nonu # 取消显示行号 :/[关键词] # 查找文件中的关键词(按n键查看下一个,按N键查看上一个) :%s/[旧内容]/[新内容]/g # 全局替换(将文件中所有旧内容替换为新内容),例::%s/test/hello/g(替换所有test为hello) :1,$s/[旧内容]/[新内容]/g # 与上一条功能一致,全局替换 # 5. 新手常用组合操作(直接套用) # 打开文件→编辑→保存退出:vim test.txt → 按i编辑 → 按Esc → 输入:wq → 回车 # 打开文件→查看行号→编辑→保存:vim test.txt → 按Esc→输入:set nu → 按i编辑 → 按Esc→输入:w → 回车 # 查找并替换→保存:按Esc→输入:/test(查找test)→ 按Esc→输入:%s/test/hello/g → 输入:w → 回车 |