新闻详情

新闻详情

首页 / 资讯中心 / 详情

90DaysOfDevOps Day 15:DevOps 工程师每日必备的 Linux 命令实战指南

发布时间:2026/9/30 10:51:52来源:尧图网络
90DaysOfDevOps Day 15:DevOps 工程师每日必备的 Linux 命令实战指南
文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载本文是 90DaysOfDevOps 项目 Linux 学习周的第二天Day 15。延续 Day 14 用 HashiCorp Vagrant 在 Virtual Box 中搭建的 Ubuntu Desktop 虚拟机环境本篇将以实操方式系统讲解 DevOps 工程师以及所有开发、运维人员在终端中每天都会用到的 Linux 基础命令——从进入虚拟机、权限提升到文件与目录的增删改查、用户与组管理、文件权限模型再到awk/xargs/cut等文本处理工具。读完本文你将掌握一套可以立即上手的终端工作流并理解这些命令背后的 Linux 权限与进程机制为后续系统管理、网络与容器编排的学习打好地基。为什么 DevOps 离不开 Linux 终端在 Day 14 中我们已经阐明大量 DevOps 工具链容器、编排、配置管理、CI/CD从诞生之初就以 Linux 为首要运行平台生产环境里的服务器绝大多数也是没有图形界面的 Linux 系统。Windows 或 macOS 上我们可以靠鼠标点击 UI 完成操作但在 Linux 服务器上一切都要通过终端完成。Day 15 的目的就是让你在终端里跑起来——用命令创建、查看、移动、删除文件管理用户与权限并对文本输出做快速处理。本文的实操环境基于仓库中的 VAGRANTFILEchenhan/ubuntu-desktop-20.04镜像、8GB 内存、4 核 CPU、128MB 显存在终端中进入虚拟机的方式是先cd到存放该 VAGRANTFILE 的目录执行vagrant up启动再执行vagrant ssh直接登录。通过vagrant ssh登录不需要用户名密码只有在 Virtual Box 控制台界面登录时才需要用户名vagrant密码vagrant。登录成功后会看到类似vagrantvagrant:~$的提示符接下来的所有命令都在这个会话中执行。随时查手册man命令Linux 命令成百上千参数更是数不胜数没有人能全部记住。关键在于掌握如何查man command打开指定命令的手册manual页查看该命令的全部选项与用法man man查看 man 手册本身的使用说明按q键quit退出 man 页面。后续文中出现的每个命令都可以用man 命令名找到更详尽的参数说明这是自主深入学习的起点。权限提升sudo与sudo susudo command类似 Windows 的右键 → 以管理员身份运行。以root身份执行单条命令执行前会提示输入密码。适合一次性操作例如安装应用或服务sudo su切换到 root 用户之后连续执行的命令都拥有最高权限直到输入exit退出。在原文档中特别提醒在测试虚拟机里这样做没问题但长期以root身份漫游是很危险的习惯坏事情可能发生日常建议能用sudo command完成的单次操作就不要长期停留在 root shell用exit及时退回普通用户。清理工作台clearclear命令清空屏幕上所有历史输出把提示符移到顶部得到一个干净的工作区。Windows 命令行中对应的命令是cls。频繁使用clear配合下一节的history可以始终保持终端整洁且可回溯。目录与文件的基础操作创建目录mkdir在用户主目录~下创建一个名为Day15的目录mkdir Day15从源码结构的视角看Linux 中将目录、文件都抽象为 inode 上的条目mkdir实际是创建了一个新的目录条目并写入其.与..两个隐藏链接这是后续cd、ls等一切路径操作的基础。切换目录cdcd Day15 # 进入 Day15 目录Tab 键可自动补全目录名 cd .. # 返回上一级目录cd ..表示回到上一级cd不带参数则回到用户主目录。删除目录rmdirrmdir Day15 # 仅当目录为空时才能删除注意rmdir只能删除空目录若目录中有文件需要使用rm -r递归删除。打印工作目录pwd在文件系统里层层深入后容易迷失pwdprint working directory会输出当前所在的绝对路径。它看起来像 password 的缩写但含义是打印当前工作目录。创建文件touchtouch Day15touch创建一个空文件如果文件已存在则只更新其时间戳不破坏内容。结合上面演示终端中mkdir 90DaysOfDevOps、touch Day15、ls连续执行后可以看到新目录与新文件都出现在当前目录列表中列出内容lsls列出当前目录下的所有文件与文件夹是最常用的命令之一。常用变体ls普通列出ls -l以长格式显示权限、属主、大小、修改时间ls -a显示包括隐藏文件以.开头在内的所有条目ls -al两者结合查看详细权限信息下文权限章节会再次用到。查找、移动与删除查找文件locate与updatedblocate Day15 # 按文件名索引搜索整个文件系统 sudo updatedb # 重新建立文件系统索引若已知文件存在却查不到结果时执行 sudo apt install mlocate # 若系统未安装 locate用 apt 安装locate依赖预先构建的数据库所以新建的文件可能查不到先sudo updatedb重建索引再查即可。移动文件mvmv Day15 90DaysOfDevOps # 把 Day15 文件移动到 90DaysOfDevOps 目录下用mv重命名mv Day15 day15 # 改为小写 mv day15 AnotherDay # 彻底改名 ls # 用 ls 验证结果mv是移动与重命名二合一的命令目标位置是目录就移动目标名是文件就改名。删除文件rmrm AnotherDay # 删除单个文件 rm -R 目录 # 递归删除目录及其内容 rm -R -f 目录 # -f 强制删除不再逐个确认原文档特别给出一个危险的警告示例sudo rm -R -f /会把整个系统删光——永远不要在生产或学习环境中执行。-Rrecursive与-fforce组合的破坏力极大删除前务必核对路径。复制文件cpcp Day15 Desktop # 将 Day15 文件复制到 Desktop 目录cp语法与mv相似但保留原文件适用于备份与分发配置同样支持cp -R递归复制目录。写入与读取文件内容写入内容echo重定向echo可以把字符串打印到终端也可以结合重定向符写入文件echo Hello #90DaysOfDevOps Day15 # 覆盖写入文件 echo Commands are fun! Day15 # 追加到文件末尾日常我还常用echo检查系统环境变量是否已设置例如echo $PATH这在排查 CI/CD 环境问题时很实用。查看内容catcatconcatenate拼接用于快速查看文件内容尤其适合阅读配置类文本文件cat Day15内容检索grep管道面对长而复杂的配置文件逐行阅读太低效用grep按关键词检索cat Day15 | grep #90DaysOfDevOps|管道把cat的输出交给grep过滤只显示包含指定字符串的行。这一管道 过滤器的组合模式是整个 Linux 命令行哲学小而专一工具的组合的核心体现后面的awk、xargs、cut都沿用了同样的思路。Shell 历史history清屏之后还想找回之前敲过的命令history会列出本次会话及历史会话中执行过的所有命令history列出命令历史history -c清空历史记录!3直接重新执行历史列表中的第 3 条命令history | grep Command按关键词检索历史命令。在生产服务器上排查这条命令是什么时候执行的非常常见可以通过环境变量为每条历史命令附加日期时间。以下配置来自原文档可直接写入~/.bash_profileecho export HISTTIMEFORMAT%d-%m-%Y %T ~/.bash_profile同理还可以让历史文件容纳更多记录echo export HISTSIZE100000 ~/.bash_profile echo export HISTFILESIZE10000000 ~/.bash_profile其中HISTTIMEFORMAT控制历史命令的时间戳显示格式%d-%m-%Y %T即日-月-年 时:分:秒HISTSIZE控制内存中保留的命令条数HISTFILESIZE控制历史文件~/.bash_history可存储的最大行数。配置写入后需重新加载 shellsource ~/.bash_profile或重新登录才生效。用户与组管理修改密码passwdpasswd交互式修改当前用户密码。注意输入密码时屏幕不会回显隐藏输入所以密码不会出现在history里但如果命令以-p PASSWORD形式携带明文密码它会暴露在history中应避免这种写法。新建用户useraddsudo useradd NewUser # 需要 sudo 权限仓库中的 create-user.sh 脚本给出了更完整的用户创建/删除实践可作为 DevOps 自动化视角的参考它先用sudo useradd -m $username创建带主目录的用户再用sudo chpasswd $username:$password从标准输入设置密码并支持以./create-user.sh del username的形式调用userdel -rf删除用户。这正体现了交互命令 脚本化的进阶路径。创建组与加入组groupadd/usermodsudo groupadd DevOps # 创建组 DevOps sudo usermod -a -G DevOps NewUser # 把 NewUser 追加到 DevOps 组usermod参数含义-aappend表示追加-G指定组名。追加到sudo组即可获得提权能力生产环境极少这样做usermod -a -G sudo NewUser文件权限模型与chmod/chownLinux 中所有文件与目录都有三类权限读read、写write、执行execute。权限以八进制数字表示原文档给出的完整对照表如下数值含义符号表示0无任何权限---1仅执行--X2仅写入-W-3写入与执行-WX4仅读取R--5读取与执行R-X6读取与写入RW-7读取、写入与执行RWX像777、775这样的三位数字每一位分别代表用户User— 组Group— 其他人Everyone的权限。用ls -al可以查看文件的权限位图中-rw-rw-r-- 1 vagrant vagrant ... Day15的含义是这是一个普通文件属主 vagrant 拥有读写rw-属组 vagrant 拥有读写rw-其他用户仅有读r--。修改权限chmodchmod 750 Day15 # 属主 rwx组 r-x其他人无权限 ls -al Day15 # 验证变更 chmod -R 750 目录 # -R 对整个目录树递归生效DevOps 工程师经常需要让脚本或二进制具备可执行权限此时chmod x 文件或按上表组合数字即可。从源码视角看chmod修改的是 inode 中的 mode 位内核在进程访问文件时据此做权限检查这也是容器与安全上下文如后续 OpenShift SCC讨论的底层基础。修改属主chownsudo chown NewUser Day15 # 把 Day15 的属主从 vagrant 改为 NewUser同样支持-R递归修改整个目录树只有 root或具备相应能力的用户才能执行chown所以命令前加了sudo。文本处理利器awk、xargs与cut按列提取awkawk适合从命令输出中抽取特定字段。例如who输出的每一行包含用户名、终端、登录时间等信息若只想要用户名第一列who | awk {print $1}awk按空白分割行$1表示第一个字段{print $1}打印该字段。这是日志与进程输出分析的常用手法。紧凑化输出xargsxargs从标准输入读取数据流把它转换成另一个命令的参数。原文档给出的经典案例是列出系统全部 Linux 用户账户并压缩成一行cut -d: -f1 /etc/passwd # 用 : 分割取第 1 列得到全部用户名多行 cut -d: -f1 /etc/passwd | sort | xargs # 排序后用 xargs 拼成紧凑的一行/etc/passwd是系统用户账户数据库每行格式为用户名:x:UID:GID:注释:主目录:shellcut -d: -f1即以冒号为分隔符取出用户名列xargs默认把多行输入拼接为单行参数串适合批量传给后续命令。按位置切分cutcut用于从每行文本中移除/提取指定片段可按字节位置、字符或字段切分cut -d -f 2 list.txt # 以空格为分隔符取出第 2 字段原文档也坦承cut组合方式极多有时为了提取数据反而花了太多时间手动处理反而更快——这提醒我们工具要用对场景。随时中断Ctrl C如果命令输入有误或不想继续执行按Ctrl C即可取消当前命令行并回到干净的提示符。这是终端里最常用、也最容易被忽略的命令之一。小结与后续学习路径至此Day 15 覆盖了 DevOps 工程师在终端中的核心工具箱查询与提权man、sudo、sudo su、exit、clear文件与目录mkdir、cd、rmdir、pwd、touch、ls、locate、updatedb、mv、rm、cp内容处理echo、cat、grep、history含HISTTIMEFORMAT/HISTSIZE调优用户与组passwd、useradd、groupadd、usermod以及仓库脚本 create-user.sh 展示的自动化写法权限模型0–7 权限数值表、ls -al、chmod、chown文本处理awk、xargs、cut与管道组合兜底操作Ctrl C中断。原文档作者强调这已经是相当重的一份清单但这些命令确实每天都会用到——无论是管理 Linux 服务器还是 Linux 桌面。下一步可以继续 Day 16学习如何用apt更新系统、安装软件并深入了解 Linux 文件系统与存储管理。想要边学边练的读者可以直接用仓库中的 VAGRANTFILE 快速拉起一台 Ubuntu 虚拟机把本文每条命令亲手执行一遍——终端熟练度来自重复而不是阅读。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐如何永久保存微信聊天记录WeChatMsg聊天数据分析工具完整指南如何永久保存微信聊天记录WeChatMsg聊天数据分析工具完整指南 你是否曾担心重要的微信聊天记录会丢失那些珍贵的对话、工作记录和情感交流是否都只存在于手揭秘OptiScaler打破硬件限制的跨平台超分辨率解决方案揭秘OptiScaler打破硬件限制的跨平台超分辨率解决方案 OptiScaler是一款开源工具能够让不同品牌的显卡都能使用多种超分辨率技术实现游戏画质与图形学游戏开发如何用hand-gesture-recognition-mediapipe构建你的第一个交互应用如何用hand gesture recognition mediapipe构建你的第一个交互应用 hand gesture recognition mediap人工智能计算机视觉机器学习上一篇微信网页开发必备WeixinApi快速入门教程与实战示例下一篇FreeShow部署与分发跨平台构建、安装包制作与自动更新系统创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

100. 如何绘制平坦式原理图?I Cadence Allegro 电子设计 快问快答 2026/9/30 11:26:27

100. 如何绘制平坦式原理图?I Cadence Allegro 电子设计 快问快答

平坦式原理图是一种基础且直观的电路设计方式,其所有页面处于同一层次,通过跨页连接符(Off-Page Connector) 实现不同页面之间的信号连接。绘制平坦式原理图的过程,本质上与创建一个标准原理图工程十分相似——从新建工…

阅读更多 →
CTF夺旗赛从入门到拿奖 零基础CTF训练路线——学生党最火的网安进阶玩法! 2026/9/30 11:26:27

CTF夺旗赛从入门到拿奖 零基础CTF训练路线——学生党最火的网安进阶玩法!

网安圈里,学生党最羡慕的是什么? 不是"会挖洞",而是——CTF拿奖。 为什么CTF这么火?因为它是网安能力最硬的"证明": 简历写"CTF获奖",面试官眼睛都亮保研、求职、大厂实习&a…

阅读更多 →
启动与链接 2026/9/30 11:26:20

启动与链接

启动流程:从向量表的第一项到main,首先初始化MSP主栈指针,后进入Reset_Handlerg_pfnVectors:.word _estack /* 初始主栈指针 (MSP) - 硬件自动加载 */.word Reset_Handler /* 复位入口 - 硬件自…

阅读更多 →
【MySQL】上 2026/9/30 11:26:20

【MySQL】上

一:MySQL概述数据库(DataBase DB): 存储数据的仓库,数据是有组织的进行存储数据库管理系统(DataBase Management Sysstem DBMS): 操纵和管理数据库的大型软件SQL(Structured Query Language): 操作关系型数据库的编程语言,定义了一套操作关系…

阅读更多 →
跨本体零样本部署,物理AI人类学习路线的现实边界 2026/9/30 11:26:20

跨本体零样本部署,物理AI人类学习路线的现实边界

【具身AGI导读】跨本体零样本被反复演示,但真正决定落地成本的,是演示结束之后那段没人替你走完的路。把两千余个真实场景搬进仿真,让一个导航模型零样本适配四种机器人本体——这是行业侧拿出的进度。学术侧给出了另一半:一篇机器…

阅读更多 →
配置写了却不生效:AI 生成的配置项 key 为什么是错的 2026/9/30 11:26:13

配置写了却不生效:AI 生成的配置项 key 为什么是错的

压测跑到 200 并发,接口开始大面积超时。 我先看数据库连接数。稳在 10。一个连接都没多。 连接池配的 50。 我去翻配置文件,写得整整齐齐: spring:datasource:hikari:max-active: 50min-idle: 5max-active: 50。 我盯着这行看了大概半分钟,然后反应过来。 HikariCP …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉