目录1.文件与目录操作2.文件查看与编辑3.重定向、管道与快捷键4.权限与用户管理5.进程与系统资源管理命令6.网络相关7.压缩与打包8.文本处理9.软件包管理10.系统信息与控制最常用命令在配置好环境之后就要学习一些基础的指令了。1.文件与目录操作命令写法语法示例lsls [选项] [目录或文件]ls -l→ 以列表形式显示当前目录内容ls -a→ 显示所有文件包括隐藏文件ls /home→ 显示 /home 目录内容cdcd [目录路径]cd /var/log→ 进入 /var/log 目录cd ..→ 返回上一级目录cd ~或cd→ 进入当前用户的家目录pwdpwdpwd→ 显示当前所在的绝对路径例如/home/usernamemkdirmkdir [选项] 目录名mkdir myfolder→ 创建名为 myfolder 的目录mkdir -p a/b/c→ 递归创建多级目录a下b下crmdirrmdir 目录名rmdir emptyfolder→ 删除空目录非空会失败rmrm [选项] 文件或目录rm file.txt→ 删除文件 file.txtrm -r myfolder→ 递归删除 myfolder 目录及其内容rm -f file.txt→ 强制删除不提示确认cpcp [选项] 源 目标cp a.txt b.txt→ 将 a.txt 复制为 b.txtcp -r dir1/ dir2/→ 递归复制整个目录cp file1 file2 /target/→ 将多个文件复制到目标目录mvmv [选项] 源 目标mv old.txt new.txt→ 重命名文件mv file.txt /tmp/→ 将 file.txt 移动到 /tmp 目录touchtouch 文件名touch newfile→ 创建空文件 newfiletouch existing.txt→ 更新 existing.txt 的修改时间findfind [路径] [条件]find /home -name *.txt→ 查找 /home 下所有 .txt 文件find . -type f -size 10M→ 当前目录下大于 10MB 的普通文件lnln [选项] 源 目标ln -s /usr/bin/python3 mypython→ 创建软链接类似快捷方式ln origin.txt hardlink.txt→ 创建硬链接2.文件查看与编辑命令写法语法示例catcat [选项] 文件cat file.txt→ 一次性显示全部内容cat a.txt b.txt merge.txt→ 合并两个文件并写入新文件lessless 文件less longfile.log→ 分页查看按空格下一页q退出/关键词搜索moremore 文件more longfile.log→ 分页查看按空格翻页不支持反向翻页headhead [选项] 文件head -n 20 file.txt→ 显示前 20 行head file.txt→ 默认显示前 10 行tailtail [选项] 文件tail -n 15 file.txt→ 显示最后 15 行tail -f app.log→ 实时跟踪日志文件新增内容常用grepgrep [选项] 模式 文件grep error log.txt→ 在 log.txt 中查找包含 error 的行grep -i warning log.txt→ 忽略大小写查找 warninggrep -r TODO ./src/→ 递归查找目录下所有文件nanonano 文件nano readme.md→ 打开或创建文件使用 CtrlO 保存CtrlX 退出vimvim 文件vim script.sh→ 打开文件按i进入插入模式按Esc退出插入模式输入:wq保存退出3.重定向、管道与快捷键功能/命令写法语法示例输出重定向覆盖命令 文件echo hello out.txt→ 将 hello 写入 out.txt若文件存在则覆盖输出重定向追加命令 文件echo world out.txt→ 将 world 追加到 out.txt 末尾输入重定向命令 文件wc -l file.txt→ 将 file.txt 的内容作为 wc -l 的输入统计行数管道命令1 | 命令2ls -l | grep .txt→ 列出当前目录所有文件再筛选出包含 .txt 的行ps aux | grep mysql→ 查看进程并过滤 mysql条件执行且命令1 命令2make make install→ 只有make成功才执行make install条件执行或命令1 || 命令2ping -c1 google.com || echo 网络不通→ 如果 ping 失败则输出提示后台运行命令 ./long_script.sh → 将脚本放到后台执行终止当前命令Ctrl C在终端按CtrlC可终止正在运行的前台程序如ping、tail -f挂起当前命令Ctrl Z按CtrlZ暂停当前前台命令可用fg恢复恢复挂起或后台任务fg/bgfg→ 将最近挂起的任务调回前台bg→ 让挂起的任务在后台继续运行自动补全Tab键输入cd /var/log时按Tab可自动补全路径或命令查看历史命令historyhistory→ 显示最近执行过的命令列表!123→ 重新执行历史中编号为 123 的命令4.权限与用户管理当我们输入ll相当于ls -l的简写时会看到文件前有一串字符串比如-rwxr-xr-x那么它们是什么意思Linux 把能够访问文件的人分为三类顺序固定死第 1 组u - User/Owner文件的所有者通常是创建这个文件的人。第 2 组g - Group文件所属的用户组相当于一个部门部门里的人共享这个权限。第 3 组o - Others其他人系统里除了所有者和本组成员之外的陌生人。每个人对文件能做什么事分为三种它们各自代表一个固定数字读r - Read看文件内容、列出文件夹列表的权限。数值为 4。写w - Write修改文件内容、在文件夹里新建或删除文件的权限。数值为 2。执行x - eXecute把文件当成程序或脚本来运行、或者进入文件夹的权限。数值为 1。没有权限-用短横线表示。数值为 0。每一组人的权限就是把他们拥有的 r、w、x 对应的数字相加。最高分是 7421最低分是 0。所以常见的权限有777755644等。接下来就可以看常见的命令有哪些了。命令语法格式核心选项说明 实战示例chmodchmod [选项] 权限 文件/目录-R递归修改整个目录chmod 755 script.sh→ 设置文件权限为 rwxr-xr-xchmod ux file.txt→ 给文件所有者添加执行权限chmod -R 644 mydir/→ 递归修改目录下所有文件权限为 rw-r–r–chownchown [选项] 用户[:组] 文件/目录-R递归修改整个目录chown john file.txt→ 将文件所有者改为 johnchown john:staff file.txt→ 同时更改所有者为 john所属组为 staffchown -R root:root /var/www→ 递归修改目录及其下所有文件的属主和属组为 rootuseradduseradd [选项] 用户名-m自动创建用户家目录-s指定用户登录的 shelluseradd tom→ 创建新用户 tomuseradd -m -s /bin/bash jerry→ 创建用户 jerry 并自动创建家目录指定 shell 为 bashuserdeluserdel [选项] 用户名-r删除用户时连同家目录一起删除userdel tom→ 删除用户 tom保留其家目录userdel -r jerry→ 删除用户 jerry 及其对应的家目录和邮件池passwdpasswd [用户名]不加用户名则修改当前用户passwd→ 修改当前登录用户的密码passwd tom→ root 用户强制修改 tom 用户的密码susu [选项] [用户名]-切换用户时同时切换环境变量su→ 切换到 root 用户保持当前用户环境变量su - john→ 切换到 john 用户并完全加载 john 的环境变量sudosudo 命令以 root 权限执行临时命令sudo systemctl restart mysql→ 以 root 权限重启 mysql 服务需要当前用户拥有 sudo 权限groupsgroups [用户名]不加用户名则查当前用户groups→ 显示当前用户所属的用户组groups tom→ 显示 tom 用户所属的所有用户组usermodusermod [选项] 用户名-aG追加用户到指定组-s修改用户的登录 shellusermod -aG docker tom→ 将 tom 用户追加到 docker 用户组-a 代表追加usermod -s /bin/zsh tom→ 修改 tom 用户的登录 shell 为 zshidid [用户名]不加用户名则查当前用户id→ 显示当前用户的 UID、GID 和所属组信息id tom→ 显示 tom 用户的 UID、GID 和所属组详细信息5.进程与系统资源管理命令命令语法格式核心选项说明 实战示例psps [选项]aux显示所有用户所有进程详细信息-ef标准格式显示所有进程ps aux→ 静态查看当前系统所有运行中的进程详情ps -eftoptop实时动态监控按 q 退出top→ 动态查看 CPU、内存占用率及排名前列的进程相当于 Windows 任务管理器htophtop需单独安装交互式界面htop→ 彩色文本界面支持鼠标点击、上下键选进程、按 F9 直接终止进程killkill [选项] PID-9强制终止无条件杀死kill 1234→ 发送常规终止信号通知 PID 为 1234 的进程正常关闭kill -9 1234→ 暴力强杀进程可能导致进程数据来不及保存而丢失pkillpkill [选项] 进程名-f匹配完整命令行参数pkill nginx→ 批量杀死所有进程名中包含nginx的进程pkill -f python script.py→ 杀死运行特定脚本的那个 python 进程jobsjobs查阅当前终端的后台任务jobs→ 显示当前窗口处于后台运行Running或暂停挂起Stopped的任务列表fgfg [任务编号]调回前台fg %1→ 将后台任务编号为 1 的程序调回前台恢复正常交互状态bgbg [任务编号]后台继续bg %2→ 让被暂停Stopped的任务编号为 2 的程序在后台继续默默运行freefree [选项]-h人性化单位显示为 G/Mfree -h→ 查看当前系统的物理内存Mem和虚拟内存Swap的已用、剩余情况dfdf [选项]-h人性化单位显示为 G/Mdf -h→ 查看所有磁盘分区的总容量、已用百分比以及挂载点dudu [选项] [目录/文件]-s仅显示总计大小-h人性化单位--max-depth1只看一级子目录du -sh /home→ 统计/home文件夹一共占用了多少磁盘空间du -h --max-depth1→ 逐个排查当前目录下哪个一级子文件夹体积最大uptimeuptime看系统整体负载状况uptime→ 显示系统已运行时间、当前登录人数以及过去 1/5/15 分钟的系统平均负载top运行中的常用快捷键在top交互界面中直接按下键盘上的以下字母区分大小写可以快速调整视图P大写按CPU 占用率从高到低对进程排序揪出吃 CPU 的内鬼。M大写按内存占用率从高到低对进程排序查看谁最占内存。N大写按 PID进程号大小进行排序。k小写快捷杀死进程。输入k后再输入对应的 PID 即可对其发送关闭信号。q小写退出top视图返回 Linux 命令行。进程关闭的最佳实践关闭程序时应优先使用kill PID或pkill 进程名发送 SIGTERM 信号给程序预留保存数据和清理缓存的时间。只有当程序彻底卡死、毫无响应时才考虑使用kill -9 PID强行剥夺其运行权限。6.网络相关命令写法语法核心选项说明 实战示例ipip [选项] 对象 动作现代网络配置工具替代 ifconfigip addr show→ 显示所有网络接口的 IP 地址ip link set eth0 up→ 启用 eth0 网卡ifconfigifconfig [接口]传统网络配置工具需安装 net-toolsifconfig→ 显示所有网卡信息ifconfig eth0 192.168.1.10→ 临时设置 IPpingping [选项] 目标-c指定发送包的数量ping -c 4 google.com→ 只发送 4 个 ICMP 包测试连通性ping 8.8.8.8→ 持续 ping按 CtrlC 停止netstatnetstat [选项]-tulnp显示所有监听端口及对应程序netstat -tulnp→ 显示所有监听端口及对应程序需 net-toolsnetstat -anssss [选项]替代 netstat更快显示监听端口ss -tulnp→ 替代 netstat更快显示监听端口ss -tancurlcurl [选项] URL-O下载文件并保存为原名curl https://api.example.com→ 获取网页内容curl -O https://example.com/file.zip→ 下载文件并保存为原名wgetwget [选项] URL-c断点续传wget https://example.com/file.zip→ 下载文件wget -c http://bigfile.iso→ 断点续传sshssh [用户]主机-p指定端口ssh root192.168.1.100→ 以 root 用户远程登录ssh -p 2222 johnexample.com→ 指定端口 2222 登录scpscp [选项] 源 目标基于 SSH 的安全文件传输scp file.txt user192.168.1.100:/home/user/→ 上传本地文件到远程scp user192.168.1.100:/remote/file.txt ./→ 下载远程文件到当前目录rsyncrsync [选项] 源 目标-avz归档、显示进度、压缩rsync -avz /local/dir/ userhost:/remote/dir/→ 同步目录支持增量ip命令是ifconfig的现代替代品新 Linux 发行版推荐使用ip。查看端口监听时优先使用ss因为netstat可能默认未安装。7.压缩与打包命令语法格式核心选项说明 实战示例tartar [选项] 归档文件名 [要处理的文件/目录]-c创建归档-x解包-v显示过程-f指定文件名-zgzip 压缩/解压-jbzip2 压缩/解压-t查看内容tar -cvf archive.tar mydir/→ 打包 mydir 目录为 archive.tar无压缩tar -xvf archive.tar→ 解包到当前目录tar -czvf archive.tar.gz mydir/→ 打包并用 gzip 压缩tar -xzvf archive.tar.gz→ 解压 gzip 压缩包tar -cjvf archive.tar.bz2 mydir/→ 用 bzip2 压缩tar -xjvf archive.tar.bz2→ 解压 bzip2 包tar -tvf archive.tar→ 查看包内文件列表不释放gzipgzip [选项] 文件名-d解压-k保留原文件gzip file.txt→ 压缩为 file.txt.gz原文件消失gzip -d file.txt.gz→ 解压或 gunzip file.txt.gzgzip -k file.txt→ 压缩并保留原文件gunzipgunzip 文件名.gzgzip 解压的另一种写法gunzip file.txt.gz→ 解压 gz 文件恢复为 file.txtzipzip [选项] 压缩包名 文件/目录-r递归压缩目录zip archive.zip file1.txt file2.txt→ 创建 zip 包zip -r archive.zip mydir/→ 递归压缩整个目录unzipunzip [选项] 压缩包-d解压到指定目录-l查看内容unzip archive.zip→ 解压到当前目录unzip archive.zip -d /target/dir→ 解压到指定目录unzip -l archive.zip→ 查看 zip 包内容不解压8.文本处理命令语法格式核心选项说明 实战示例echoecho [选项] [字符串]-e启用转义字符解释-n不输出末尾的换行符echo Hello→ 输出 Helloecho $PATH→ 输出环境变量 PATH 的值echo -e a\nb→ 输出两行启用转义sortsort [选项] [文件]-r反向排序-n按数值大小排序-k指定排序字段-t指定字段分隔符sort names.txt→ 按字母顺序对文件行排序sort -r names.txt→ 反向排序从 Z 到 Asort -n numbers.txt→ 按数值大小排序sort -k 2 -t , data.csv→ 以逗号分隔按第2列排序uniquniq [选项] [文件]-c在每行前显示重复次数-d只输出重复行-u只输出不重复行uniq names.txt→ 去除相邻的重复行通常先sortsort names.txtcutcut [选项] [文件]-f指定字段列-d指定字段分隔符默认 TAB-c按字符位置切割cut -f 1,3 -d , data.csv→ 取第1、3列逗号分隔cut -c 1-5 file.txt→ 提取每行第1-5个字符awkawk 模式 {动作} [文件]-F指定输入字段分隔符{print $N}打印第 N 个字段END处理完所有行后执行awk {print $1} file.txt→ 打印每行第一个字段默认空格/TAB分隔awk -F , {print $2} data.csv→ 指定逗号为分隔符打印第2列awk $3 50 {print $1, $3} scores.txt→ 第3列大于50时打印第1、3列awk {sum$1} END {print sum} numbers.txt→ 求第一列总和sedsed s/原/新/ [文件]s/原/新/替换第一个匹配s/原/新/g全局替换-i直接修改文件可加备份后缀-n静默模式常与p命令配合sed s/old/new/ file.txt→ 替换每行第一个 old 为 newsed s/old/new/g file.txt→ 全局替换所有 old 为 newsed -i.bak s/error/ERROR/g log.txt→ 直接修改文件并备份原文件为 .baksed -n 5,10p file.txt→ 只打印第5到10行wcwc [选项] [文件]-l统计行数-w统计单词数-c统计字节数-m统计字符数wc -l file.txt→ 统计文件行数wc -w file.txt→ 统计单词数wc -c file.txt→ 统计字节数9.软件包管理操作命令RHEL/CentOS 7核心选项说明 实战示例更新软件源列表yum check-update检查仓库中所有可用的更新yum check-update→ 列出所有可升级的软件包安装软件yum install 包名-y自动回答 yes无需确认yum install nginx→ 安装 nginxyum -y install vim→ 自动确认安装 vim卸载软件yum remove 包名-y自动确认删除yum remove nginx→ 卸载 nginx 及其依赖yum -y remove vim→ 自动确认卸载 vim升级所有软件yum update-y自动确认所有更新yum update→ 升级所有已安装的软件包yum -y update→ 自动确认升级搜索软件包yum search 关键词在已配置的仓库中搜索软件包yum search python3→ 搜索名称或描述包含 python3 的包查看已安装的包yum list installed列出所有已安装的软件包yum list installed→ 查看已安装的所有包yum list installed | grep nginx→ 过滤查看 nginx 是否安装清理缓存yum clean all清除所有缓存的软件包和元数据yum clean all→ 清理所有缓存释放磁盘空间查看软件包信息yum info 包名显示软件包的详细信息yum info nginx→ 查看 nginx 包的版本、大小、描述等列出仓库yum repolist显示所有已启用的仓库yum repolist→ 查看当前系统可用的软件源列表安装本地 RPMyum localinstall rpm文件安装本地 RPM 包并自动解决依赖yum localinstall package.rpm→ 安装本地 RPM 包10.系统信息与控制命令语法格式核心选项说明 实战示例unameuname [选项]-a显示所有系统信息-r显示内核版本-s显示内核名称-m显示机器硬件架构uname -a→ 显示所有系统信息内核、主机名、架构等uname -r→ 显示内核版本uname -s→ 显示内核名称如 Linuxuname -m→ 显示机器硬件架构如 x86_64hostnamehostname [新主机名]查看或临时修改主机名hostname→ 查看当前主机名hostname my-server→ 临时修改主机名为 my-server重启失效hostnamectlhostnamectl [选项]systemd 系统的主机名管理工具hostnamectl→ 查看主机名及相关信息hostnamectl set-hostname my-server→ 永久修改主机名systemd 系统datedate [选项] [格式]%格式自定义输出格式-s设置系统时间需 rootdate→ 显示当前日期和时间date %Y-%m-%d %H:%M:%S→ 自定义格式显示时间date -s 2025-01-15 10:30:00→ 设置系统时间需 root 权限uptimeuptime显示系统运行时间、登录用户数和系统负载uptime→ 显示系统已运行时间、当前登录用户数、过去 1/5/15 分钟的系统平均负载dmesgdmesg [选项]-T显示可读时间戳-H人性化显示-w实时监控新内核消息dmesg→ 查看内核环形缓冲区消息dmesg | tail -20→ 查看内核日志最后20行dmesg -T→ 显示可读时间戳dmesg -H→ 人性化显示带颜色和分页shutdownshutdown [选项] [时间]-h关机-r重启-c取消计划分钟延迟执行shutdown -h now→ 立即关机shutdown -r 5→ 5分钟后重启shutdown -c→ 取消计划的关机/重启shutdown 22:00→ 在22:00关机rebootreboot立即重启系统需 root 权限reboot→ 立即重启系统reboot --force→ 强制重启不发送信号给进程whowho [选项]显示当前登录系统的用户信息who→ 显示当前登录用户、终端、登录时间who -b→ 显示系统最近启动时间ww [选项]显示当前登录用户及其正在执行的命令w→ 显示当前登录用户、终端、登录时间、空闲时间、当前进程w -h→ 不显示标题行lastlast [选项]显示用户登录历史记录last→ 显示所有用户的登录历史last reboot→ 显示系统重启历史freefree [选项]-h人性化单位显示为 G/M-m以 MB 为单位显示free -h→ 查看内存使用情况人性化单位free -m→ 以 MB 为单位显示内存使用情况最常用命令命令基本用法核心选项说明 实战示例lsls [选项] [目录]-l详细列表-a显示隐藏文件-h人性化文件大小ls -l→ 详细列表ls -a→ 显示所有文件包括隐藏文件ls -lh→ 详细列表人性化大小llll通常是ls -l的别名ll→ 直接显示详细列表部分系统自带别名pwdpwd显示当前工作目录的绝对路径pwd→ 显示如/home/usercdcd [目录]切换工作目录cd /var/log→ 进入日志目录cd ..→ 返回上一级目录cd ~或cd→ 返回家目录catcat [文件]查看文件全部内容cat file.txt→ 查看文件内容lessless [文件]分页查看大文件less log.txt→ 分页查看空格翻页q退出headhead [选项] [文件]-n显示前N行head -20 file.txt→ 显示前20行tailtail [选项] [文件]-n显示后N行-f实时跟踪tail -15 file.txt→ 显示最后15行tail -f app.log→ 实时跟踪日志mkdirmkdir [选项] 目录名-p递归创建多级目录mkdir newdir→ 创建目录mkdir -p a/b/c→ 递归创建多级目录rmdirrmdir 目录名删除空目录rmdir emptydir→ 删除空目录rmrm [选项] 文件/目录-r递归删除-f强制删除rm file.txt→ 删除文件rm -r dir/→ 递归删除目录rm -f file→ 强制删除touchtouch 文件名创建空文件或更新时间戳touch newfile→ 创建空文件cpcp [选项] 源 目标-r递归复制目录cp a.txt b.txt→ 复制文件cp -r dir1 dir2→ 复制目录mvmv [选项] 源 目标移动或重命名文件/目录mv old.txt new.txt→ 重命名mv file /tmp/→ 移动文件findfind [路径] [条件]-name按文件名查找find /home -name *.txt→ 查找所有txt文件grepgrep [选项] 模式 文件-r递归查找-i忽略大小写grep error log.txt→ 查找包含error的行grep -r TODO ./src/→ 递归查找echoecho [字符串]输出字符串或变量echo Hello→ 输出Helloecho $PATH→ 输出环境变量chmodchmod [权限] 文件修改文件权限chmod 755 script.sh→ 设置可执行权限psps [选项]aux显示所有进程ps auxkillkill [信号] PID-9强制终止kill 1234→ 正常终止进程kill -9 1234→ 强制终止tartar [选项] 文件-czvf打包并gzip压缩-xzvf解压gzip包tar -czvf backup.tar.gz /home→ 打包压缩tar -xzvf backup.tar.gz→ 解压sshssh [用户]主机远程登录ssh user192.168.1.100→ 远程登录scpscp [选项] 源 目标基于SSH的安全文件传输scp file.txt userhost:/path/→ 上传文件
【Linux】基础命令
目录1.文件与目录操作2.文件查看与编辑3.重定向、管道与快捷键4.权限与用户管理5.进程与系统资源管理命令6.网络相关7.压缩与打包8.文本处理9.软件包管理10.系统信息与控制最常用命令在配置好环境之后就要学习一些基础的指令了。1.文件与目录操作命令写法语法示例lsls [选项] [目录或文件]ls -l→ 以列表形式显示当前目录内容ls -a→ 显示所有文件包括隐藏文件ls /home→ 显示 /home 目录内容cdcd [目录路径]cd /var/log→ 进入 /var/log 目录cd ..→ 返回上一级目录cd ~或cd→ 进入当前用户的家目录pwdpwdpwd→ 显示当前所在的绝对路径例如/home/usernamemkdirmkdir [选项] 目录名mkdir myfolder→ 创建名为 myfolder 的目录mkdir -p a/b/c→ 递归创建多级目录a下b下crmdirrmdir 目录名rmdir emptyfolder→ 删除空目录非空会失败rmrm [选项] 文件或目录rm file.txt→ 删除文件 file.txtrm -r myfolder→ 递归删除 myfolder 目录及其内容rm -f file.txt→ 强制删除不提示确认cpcp [选项] 源 目标cp a.txt b.txt→ 将 a.txt 复制为 b.txtcp -r dir1/ dir2/→ 递归复制整个目录cp file1 file2 /target/→ 将多个文件复制到目标目录mvmv [选项] 源 目标mv old.txt new.txt→ 重命名文件mv file.txt /tmp/→ 将 file.txt 移动到 /tmp 目录touchtouch 文件名touch newfile→ 创建空文件 newfiletouch existing.txt→ 更新 existing.txt 的修改时间findfind [路径] [条件]find /home -name *.txt→ 查找 /home 下所有 .txt 文件find . -type f -size 10M→ 当前目录下大于 10MB 的普通文件lnln [选项] 源 目标ln -s /usr/bin/python3 mypython→ 创建软链接类似快捷方式ln origin.txt hardlink.txt→ 创建硬链接2.文件查看与编辑命令写法语法示例catcat [选项] 文件cat file.txt→ 一次性显示全部内容cat a.txt b.txt merge.txt→ 合并两个文件并写入新文件lessless 文件less longfile.log→ 分页查看按空格下一页q退出/关键词搜索moremore 文件more longfile.log→ 分页查看按空格翻页不支持反向翻页headhead [选项] 文件head -n 20 file.txt→ 显示前 20 行head file.txt→ 默认显示前 10 行tailtail [选项] 文件tail -n 15 file.txt→ 显示最后 15 行tail -f app.log→ 实时跟踪日志文件新增内容常用grepgrep [选项] 模式 文件grep error log.txt→ 在 log.txt 中查找包含 error 的行grep -i warning log.txt→ 忽略大小写查找 warninggrep -r TODO ./src/→ 递归查找目录下所有文件nanonano 文件nano readme.md→ 打开或创建文件使用 CtrlO 保存CtrlX 退出vimvim 文件vim script.sh→ 打开文件按i进入插入模式按Esc退出插入模式输入:wq保存退出3.重定向、管道与快捷键功能/命令写法语法示例输出重定向覆盖命令 文件echo hello out.txt→ 将 hello 写入 out.txt若文件存在则覆盖输出重定向追加命令 文件echo world out.txt→ 将 world 追加到 out.txt 末尾输入重定向命令 文件wc -l file.txt→ 将 file.txt 的内容作为 wc -l 的输入统计行数管道命令1 | 命令2ls -l | grep .txt→ 列出当前目录所有文件再筛选出包含 .txt 的行ps aux | grep mysql→ 查看进程并过滤 mysql条件执行且命令1 命令2make make install→ 只有make成功才执行make install条件执行或命令1 || 命令2ping -c1 google.com || echo 网络不通→ 如果 ping 失败则输出提示后台运行命令 ./long_script.sh → 将脚本放到后台执行终止当前命令Ctrl C在终端按CtrlC可终止正在运行的前台程序如ping、tail -f挂起当前命令Ctrl Z按CtrlZ暂停当前前台命令可用fg恢复恢复挂起或后台任务fg/bgfg→ 将最近挂起的任务调回前台bg→ 让挂起的任务在后台继续运行自动补全Tab键输入cd /var/log时按Tab可自动补全路径或命令查看历史命令historyhistory→ 显示最近执行过的命令列表!123→ 重新执行历史中编号为 123 的命令4.权限与用户管理当我们输入ll相当于ls -l的简写时会看到文件前有一串字符串比如-rwxr-xr-x那么它们是什么意思Linux 把能够访问文件的人分为三类顺序固定死第 1 组u - User/Owner文件的所有者通常是创建这个文件的人。第 2 组g - Group文件所属的用户组相当于一个部门部门里的人共享这个权限。第 3 组o - Others其他人系统里除了所有者和本组成员之外的陌生人。每个人对文件能做什么事分为三种它们各自代表一个固定数字读r - Read看文件内容、列出文件夹列表的权限。数值为 4。写w - Write修改文件内容、在文件夹里新建或删除文件的权限。数值为 2。执行x - eXecute把文件当成程序或脚本来运行、或者进入文件夹的权限。数值为 1。没有权限-用短横线表示。数值为 0。每一组人的权限就是把他们拥有的 r、w、x 对应的数字相加。最高分是 7421最低分是 0。所以常见的权限有777755644等。接下来就可以看常见的命令有哪些了。命令语法格式核心选项说明 实战示例chmodchmod [选项] 权限 文件/目录-R递归修改整个目录chmod 755 script.sh→ 设置文件权限为 rwxr-xr-xchmod ux file.txt→ 给文件所有者添加执行权限chmod -R 644 mydir/→ 递归修改目录下所有文件权限为 rw-r–r–chownchown [选项] 用户[:组] 文件/目录-R递归修改整个目录chown john file.txt→ 将文件所有者改为 johnchown john:staff file.txt→ 同时更改所有者为 john所属组为 staffchown -R root:root /var/www→ 递归修改目录及其下所有文件的属主和属组为 rootuseradduseradd [选项] 用户名-m自动创建用户家目录-s指定用户登录的 shelluseradd tom→ 创建新用户 tomuseradd -m -s /bin/bash jerry→ 创建用户 jerry 并自动创建家目录指定 shell 为 bashuserdeluserdel [选项] 用户名-r删除用户时连同家目录一起删除userdel tom→ 删除用户 tom保留其家目录userdel -r jerry→ 删除用户 jerry 及其对应的家目录和邮件池passwdpasswd [用户名]不加用户名则修改当前用户passwd→ 修改当前登录用户的密码passwd tom→ root 用户强制修改 tom 用户的密码susu [选项] [用户名]-切换用户时同时切换环境变量su→ 切换到 root 用户保持当前用户环境变量su - john→ 切换到 john 用户并完全加载 john 的环境变量sudosudo 命令以 root 权限执行临时命令sudo systemctl restart mysql→ 以 root 权限重启 mysql 服务需要当前用户拥有 sudo 权限groupsgroups [用户名]不加用户名则查当前用户groups→ 显示当前用户所属的用户组groups tom→ 显示 tom 用户所属的所有用户组usermodusermod [选项] 用户名-aG追加用户到指定组-s修改用户的登录 shellusermod -aG docker tom→ 将 tom 用户追加到 docker 用户组-a 代表追加usermod -s /bin/zsh tom→ 修改 tom 用户的登录 shell 为 zshidid [用户名]不加用户名则查当前用户id→ 显示当前用户的 UID、GID 和所属组信息id tom→ 显示 tom 用户的 UID、GID 和所属组详细信息5.进程与系统资源管理命令命令语法格式核心选项说明 实战示例psps [选项]aux显示所有用户所有进程详细信息-ef标准格式显示所有进程ps aux→ 静态查看当前系统所有运行中的进程详情ps -eftoptop实时动态监控按 q 退出top→ 动态查看 CPU、内存占用率及排名前列的进程相当于 Windows 任务管理器htophtop需单独安装交互式界面htop→ 彩色文本界面支持鼠标点击、上下键选进程、按 F9 直接终止进程killkill [选项] PID-9强制终止无条件杀死kill 1234→ 发送常规终止信号通知 PID 为 1234 的进程正常关闭kill -9 1234→ 暴力强杀进程可能导致进程数据来不及保存而丢失pkillpkill [选项] 进程名-f匹配完整命令行参数pkill nginx→ 批量杀死所有进程名中包含nginx的进程pkill -f python script.py→ 杀死运行特定脚本的那个 python 进程jobsjobs查阅当前终端的后台任务jobs→ 显示当前窗口处于后台运行Running或暂停挂起Stopped的任务列表fgfg [任务编号]调回前台fg %1→ 将后台任务编号为 1 的程序调回前台恢复正常交互状态bgbg [任务编号]后台继续bg %2→ 让被暂停Stopped的任务编号为 2 的程序在后台继续默默运行freefree [选项]-h人性化单位显示为 G/Mfree -h→ 查看当前系统的物理内存Mem和虚拟内存Swap的已用、剩余情况dfdf [选项]-h人性化单位显示为 G/Mdf -h→ 查看所有磁盘分区的总容量、已用百分比以及挂载点dudu [选项] [目录/文件]-s仅显示总计大小-h人性化单位--max-depth1只看一级子目录du -sh /home→ 统计/home文件夹一共占用了多少磁盘空间du -h --max-depth1→ 逐个排查当前目录下哪个一级子文件夹体积最大uptimeuptime看系统整体负载状况uptime→ 显示系统已运行时间、当前登录人数以及过去 1/5/15 分钟的系统平均负载top运行中的常用快捷键在top交互界面中直接按下键盘上的以下字母区分大小写可以快速调整视图P大写按CPU 占用率从高到低对进程排序揪出吃 CPU 的内鬼。M大写按内存占用率从高到低对进程排序查看谁最占内存。N大写按 PID进程号大小进行排序。k小写快捷杀死进程。输入k后再输入对应的 PID 即可对其发送关闭信号。q小写退出top视图返回 Linux 命令行。进程关闭的最佳实践关闭程序时应优先使用kill PID或pkill 进程名发送 SIGTERM 信号给程序预留保存数据和清理缓存的时间。只有当程序彻底卡死、毫无响应时才考虑使用kill -9 PID强行剥夺其运行权限。6.网络相关命令写法语法核心选项说明 实战示例ipip [选项] 对象 动作现代网络配置工具替代 ifconfigip addr show→ 显示所有网络接口的 IP 地址ip link set eth0 up→ 启用 eth0 网卡ifconfigifconfig [接口]传统网络配置工具需安装 net-toolsifconfig→ 显示所有网卡信息ifconfig eth0 192.168.1.10→ 临时设置 IPpingping [选项] 目标-c指定发送包的数量ping -c 4 google.com→ 只发送 4 个 ICMP 包测试连通性ping 8.8.8.8→ 持续 ping按 CtrlC 停止netstatnetstat [选项]-tulnp显示所有监听端口及对应程序netstat -tulnp→ 显示所有监听端口及对应程序需 net-toolsnetstat -anssss [选项]替代 netstat更快显示监听端口ss -tulnp→ 替代 netstat更快显示监听端口ss -tancurlcurl [选项] URL-O下载文件并保存为原名curl https://api.example.com→ 获取网页内容curl -O https://example.com/file.zip→ 下载文件并保存为原名wgetwget [选项] URL-c断点续传wget https://example.com/file.zip→ 下载文件wget -c http://bigfile.iso→ 断点续传sshssh [用户]主机-p指定端口ssh root192.168.1.100→ 以 root 用户远程登录ssh -p 2222 johnexample.com→ 指定端口 2222 登录scpscp [选项] 源 目标基于 SSH 的安全文件传输scp file.txt user192.168.1.100:/home/user/→ 上传本地文件到远程scp user192.168.1.100:/remote/file.txt ./→ 下载远程文件到当前目录rsyncrsync [选项] 源 目标-avz归档、显示进度、压缩rsync -avz /local/dir/ userhost:/remote/dir/→ 同步目录支持增量ip命令是ifconfig的现代替代品新 Linux 发行版推荐使用ip。查看端口监听时优先使用ss因为netstat可能默认未安装。7.压缩与打包命令语法格式核心选项说明 实战示例tartar [选项] 归档文件名 [要处理的文件/目录]-c创建归档-x解包-v显示过程-f指定文件名-zgzip 压缩/解压-jbzip2 压缩/解压-t查看内容tar -cvf archive.tar mydir/→ 打包 mydir 目录为 archive.tar无压缩tar -xvf archive.tar→ 解包到当前目录tar -czvf archive.tar.gz mydir/→ 打包并用 gzip 压缩tar -xzvf archive.tar.gz→ 解压 gzip 压缩包tar -cjvf archive.tar.bz2 mydir/→ 用 bzip2 压缩tar -xjvf archive.tar.bz2→ 解压 bzip2 包tar -tvf archive.tar→ 查看包内文件列表不释放gzipgzip [选项] 文件名-d解压-k保留原文件gzip file.txt→ 压缩为 file.txt.gz原文件消失gzip -d file.txt.gz→ 解压或 gunzip file.txt.gzgzip -k file.txt→ 压缩并保留原文件gunzipgunzip 文件名.gzgzip 解压的另一种写法gunzip file.txt.gz→ 解压 gz 文件恢复为 file.txtzipzip [选项] 压缩包名 文件/目录-r递归压缩目录zip archive.zip file1.txt file2.txt→ 创建 zip 包zip -r archive.zip mydir/→ 递归压缩整个目录unzipunzip [选项] 压缩包-d解压到指定目录-l查看内容unzip archive.zip→ 解压到当前目录unzip archive.zip -d /target/dir→ 解压到指定目录unzip -l archive.zip→ 查看 zip 包内容不解压8.文本处理命令语法格式核心选项说明 实战示例echoecho [选项] [字符串]-e启用转义字符解释-n不输出末尾的换行符echo Hello→ 输出 Helloecho $PATH→ 输出环境变量 PATH 的值echo -e a\nb→ 输出两行启用转义sortsort [选项] [文件]-r反向排序-n按数值大小排序-k指定排序字段-t指定字段分隔符sort names.txt→ 按字母顺序对文件行排序sort -r names.txt→ 反向排序从 Z 到 Asort -n numbers.txt→ 按数值大小排序sort -k 2 -t , data.csv→ 以逗号分隔按第2列排序uniquniq [选项] [文件]-c在每行前显示重复次数-d只输出重复行-u只输出不重复行uniq names.txt→ 去除相邻的重复行通常先sortsort names.txtcutcut [选项] [文件]-f指定字段列-d指定字段分隔符默认 TAB-c按字符位置切割cut -f 1,3 -d , data.csv→ 取第1、3列逗号分隔cut -c 1-5 file.txt→ 提取每行第1-5个字符awkawk 模式 {动作} [文件]-F指定输入字段分隔符{print $N}打印第 N 个字段END处理完所有行后执行awk {print $1} file.txt→ 打印每行第一个字段默认空格/TAB分隔awk -F , {print $2} data.csv→ 指定逗号为分隔符打印第2列awk $3 50 {print $1, $3} scores.txt→ 第3列大于50时打印第1、3列awk {sum$1} END {print sum} numbers.txt→ 求第一列总和sedsed s/原/新/ [文件]s/原/新/替换第一个匹配s/原/新/g全局替换-i直接修改文件可加备份后缀-n静默模式常与p命令配合sed s/old/new/ file.txt→ 替换每行第一个 old 为 newsed s/old/new/g file.txt→ 全局替换所有 old 为 newsed -i.bak s/error/ERROR/g log.txt→ 直接修改文件并备份原文件为 .baksed -n 5,10p file.txt→ 只打印第5到10行wcwc [选项] [文件]-l统计行数-w统计单词数-c统计字节数-m统计字符数wc -l file.txt→ 统计文件行数wc -w file.txt→ 统计单词数wc -c file.txt→ 统计字节数9.软件包管理操作命令RHEL/CentOS 7核心选项说明 实战示例更新软件源列表yum check-update检查仓库中所有可用的更新yum check-update→ 列出所有可升级的软件包安装软件yum install 包名-y自动回答 yes无需确认yum install nginx→ 安装 nginxyum -y install vim→ 自动确认安装 vim卸载软件yum remove 包名-y自动确认删除yum remove nginx→ 卸载 nginx 及其依赖yum -y remove vim→ 自动确认卸载 vim升级所有软件yum update-y自动确认所有更新yum update→ 升级所有已安装的软件包yum -y update→ 自动确认升级搜索软件包yum search 关键词在已配置的仓库中搜索软件包yum search python3→ 搜索名称或描述包含 python3 的包查看已安装的包yum list installed列出所有已安装的软件包yum list installed→ 查看已安装的所有包yum list installed | grep nginx→ 过滤查看 nginx 是否安装清理缓存yum clean all清除所有缓存的软件包和元数据yum clean all→ 清理所有缓存释放磁盘空间查看软件包信息yum info 包名显示软件包的详细信息yum info nginx→ 查看 nginx 包的版本、大小、描述等列出仓库yum repolist显示所有已启用的仓库yum repolist→ 查看当前系统可用的软件源列表安装本地 RPMyum localinstall rpm文件安装本地 RPM 包并自动解决依赖yum localinstall package.rpm→ 安装本地 RPM 包10.系统信息与控制命令语法格式核心选项说明 实战示例unameuname [选项]-a显示所有系统信息-r显示内核版本-s显示内核名称-m显示机器硬件架构uname -a→ 显示所有系统信息内核、主机名、架构等uname -r→ 显示内核版本uname -s→ 显示内核名称如 Linuxuname -m→ 显示机器硬件架构如 x86_64hostnamehostname [新主机名]查看或临时修改主机名hostname→ 查看当前主机名hostname my-server→ 临时修改主机名为 my-server重启失效hostnamectlhostnamectl [选项]systemd 系统的主机名管理工具hostnamectl→ 查看主机名及相关信息hostnamectl set-hostname my-server→ 永久修改主机名systemd 系统datedate [选项] [格式]%格式自定义输出格式-s设置系统时间需 rootdate→ 显示当前日期和时间date %Y-%m-%d %H:%M:%S→ 自定义格式显示时间date -s 2025-01-15 10:30:00→ 设置系统时间需 root 权限uptimeuptime显示系统运行时间、登录用户数和系统负载uptime→ 显示系统已运行时间、当前登录用户数、过去 1/5/15 分钟的系统平均负载dmesgdmesg [选项]-T显示可读时间戳-H人性化显示-w实时监控新内核消息dmesg→ 查看内核环形缓冲区消息dmesg | tail -20→ 查看内核日志最后20行dmesg -T→ 显示可读时间戳dmesg -H→ 人性化显示带颜色和分页shutdownshutdown [选项] [时间]-h关机-r重启-c取消计划分钟延迟执行shutdown -h now→ 立即关机shutdown -r 5→ 5分钟后重启shutdown -c→ 取消计划的关机/重启shutdown 22:00→ 在22:00关机rebootreboot立即重启系统需 root 权限reboot→ 立即重启系统reboot --force→ 强制重启不发送信号给进程whowho [选项]显示当前登录系统的用户信息who→ 显示当前登录用户、终端、登录时间who -b→ 显示系统最近启动时间ww [选项]显示当前登录用户及其正在执行的命令w→ 显示当前登录用户、终端、登录时间、空闲时间、当前进程w -h→ 不显示标题行lastlast [选项]显示用户登录历史记录last→ 显示所有用户的登录历史last reboot→ 显示系统重启历史freefree [选项]-h人性化单位显示为 G/M-m以 MB 为单位显示free -h→ 查看内存使用情况人性化单位free -m→ 以 MB 为单位显示内存使用情况最常用命令命令基本用法核心选项说明 实战示例lsls [选项] [目录]-l详细列表-a显示隐藏文件-h人性化文件大小ls -l→ 详细列表ls -a→ 显示所有文件包括隐藏文件ls -lh→ 详细列表人性化大小llll通常是ls -l的别名ll→ 直接显示详细列表部分系统自带别名pwdpwd显示当前工作目录的绝对路径pwd→ 显示如/home/usercdcd [目录]切换工作目录cd /var/log→ 进入日志目录cd ..→ 返回上一级目录cd ~或cd→ 返回家目录catcat [文件]查看文件全部内容cat file.txt→ 查看文件内容lessless [文件]分页查看大文件less log.txt→ 分页查看空格翻页q退出headhead [选项] [文件]-n显示前N行head -20 file.txt→ 显示前20行tailtail [选项] [文件]-n显示后N行-f实时跟踪tail -15 file.txt→ 显示最后15行tail -f app.log→ 实时跟踪日志mkdirmkdir [选项] 目录名-p递归创建多级目录mkdir newdir→ 创建目录mkdir -p a/b/c→ 递归创建多级目录rmdirrmdir 目录名删除空目录rmdir emptydir→ 删除空目录rmrm [选项] 文件/目录-r递归删除-f强制删除rm file.txt→ 删除文件rm -r dir/→ 递归删除目录rm -f file→ 强制删除touchtouch 文件名创建空文件或更新时间戳touch newfile→ 创建空文件cpcp [选项] 源 目标-r递归复制目录cp a.txt b.txt→ 复制文件cp -r dir1 dir2→ 复制目录mvmv [选项] 源 目标移动或重命名文件/目录mv old.txt new.txt→ 重命名mv file /tmp/→ 移动文件findfind [路径] [条件]-name按文件名查找find /home -name *.txt→ 查找所有txt文件grepgrep [选项] 模式 文件-r递归查找-i忽略大小写grep error log.txt→ 查找包含error的行grep -r TODO ./src/→ 递归查找echoecho [字符串]输出字符串或变量echo Hello→ 输出Helloecho $PATH→ 输出环境变量chmodchmod [权限] 文件修改文件权限chmod 755 script.sh→ 设置可执行权限psps [选项]aux显示所有进程ps auxkillkill [信号] PID-9强制终止kill 1234→ 正常终止进程kill -9 1234→ 强制终止tartar [选项] 文件-czvf打包并gzip压缩-xzvf解压gzip包tar -czvf backup.tar.gz /home→ 打包压缩tar -xzvf backup.tar.gz→ 解压sshssh [用户]主机远程登录ssh user192.168.1.100→ 远程登录scpscp [选项] 源 目标基于SSH的安全文件传输scp file.txt userhost:/path/→ 上传文件