Linux与自动化的基础

Linux简介

Linux是一种开源的类Unix操作系统,广泛应用于服务器、桌面和嵌入式设备。常见的Linux发行版包括 UbuntuCentOSDebian,它们各有特色,但都以稳定性和安全性著称。

与图形界面相比,Linux的**命令行界面(CLI)**是与系统交互的主要方式。CLI不仅高效、灵活,还特别适合自动化任务。通过CLI,用户可以管理系统文件、配置网络、监控性能等。

自动化在运维中的重要性不容忽视。随着系统规模扩大,手动操作变得繁琐且易出错。自动化能带来以下优势:

  • 提高效率:自动执行重复性任务,节省时间。
  • 减少错误:减少人为干预,降低失误风险。
  • 增强一致性:确保任务在不同环境中一致执行。
  • 提升可审计性:记录自动化流程,便于追踪。

基本CLI命令

掌握基本的CLI命令是Linux自动化的起点。以下是文件管理、权限设置和进程查看领域的核心命令。

1. 文件管理

  • ls:列出目录内容。
    • 示例:ls -l 以长格式显示文件详情。
  • cd:更改当前目录。
    • 示例:cd /var/log 切换到日志目录。
  • pwd:显示当前目录路径。
  • mkdir:创建新目录。
    • 示例:mkdir backups 创建名为“backups”的目录。
  • rm:删除文件或目录。
    • 示例:rm -r old_logs 删除“old_logs”目录及其内容。
  • cp:复制文件或目录。
    • 示例:cp config.txt backup/ 将文件复制到“backup”目录。
  • mv:移动或重命名文件。
    • 示例:mv old.txt new.txt 重命名文件。

2. 权限设置

Linux通过权限控制文件访问,权限包括读(r)写(w)**和**执行(x),分别适用于文件所有者、所属组和其他用户。

  • chmod:修改权限。
    • 示例:chmod 755 script.sh 设置脚本为所有者可读写执行,其他人可读执行。
  • chown:更改所有者和所属组。
    • 示例:chown user:group file.txt 将文件归属改为“user”和“group”。

3. 进程查看

进程是运行中的程序实例,监控和管理进程是运维的基础。

  • ps:显示进程快照。
    • 示例:ps aux 查看所有用户进程的详细信息。
  • top:实时显示进程和资源使用情况。
  • kill:终止进程。
    • 示例:kill 1234 停止PID为1234的进程。
  • grep:搜索文本,常用于过滤输出。
    • 示例:ps aux | grep apache 查找Apache相关进程。

Shell入门

Shell 是用户与Linux内核之间的桥梁,Bash(Bourne Again SHell) 是最常用的Shell。它支持:

  • 命令执行:直接运行命令。
  • 脚本编写:将命令组合成可执行脚本。
  • 管道和重定向:如 | 将输出传递给另一命令,> 将输出保存到文件。

在自动化中,Bash脚本 是核心工具。通过脚本,可以将多个命令整合,实现复杂任务的自动化。


初探自动化:使用cron调度简单任务

cron 是Linux内置的任务调度工具,可定时执行命令或脚本,常用于备份、清理等任务。

cron基础

  • crontab:每个用户有独立的crontab文件,用于定义调度任务。

  • 语法:每行一个任务,格式为:

    `* * * * * command_to_execute`
    

    依次代表:分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-7)。

实践示例:定时清理临时文件

目标:每天凌晨2点清理 /tmp 中超过7天的文件。

  1. 编写脚本: 创建 clean_tmp.sh

    #!/bin/bash 
    find /tmp -type f -mtime +7 -exec rm {} \;`
    
    • find 查找文件,-mtime +7 表示超7天,-exec rm 删除。
  2. 设置cron: 运行 crontab -e,添加:

    0 2 * * * /path/to/clean_tmp.sh`
    

    表示每天2:00执行脚本。

  3. 验证: 用 crontab -l 检查任务。


总结

本文介绍了Linux自动化的基础,包括Linux简介、CLI命令、Shell入门和cron调度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/976042.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能基础知识笔记一:核函数

1、简介 核函数有严格的数学要求,凡满足Mercer定理【参考本文第9章节】的都可以作为核函数。Mercer 定理确保高维:间任意两个向量的内积一定可以被低维空间中两个向量的某种计算表示(多数时候是内积的某换)。本节通过一个例子讲解核函数的使用。 2、核函数定义 设…

本地部署DeepSeek-R1(Ollama+Docker+OpenWebUI知识库)

安装Ollama 打开 Ollama官网 https://ollama.com/下载安装 Ollama服务默认只允许本机访问,修改允许其它主机访问 OLLAMA_HOST0.0.0.0 ollama serve也可以添加系统环境变量 都知道模型体积很大,顺便也通过环境变量修改模型存放位置,我这…

图论算法篇:BFS宽度优先遍历

那么bfs算法的大名想必大家都一定听闻过,那么也许有的人在认识我们bfs算法之前是先接触的我们的dfs算法,那么目前我们的算法世界中的两种搜索算法就是我们的dfs和我们的bfs,那么废话不多说,就让我们进入bfs算法的学习 BFS算法原理…

初识.git文件泄露

.git 文件泄露 当在一个空目录执行 git init 时,Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了 这是一种常见的安全漏洞,指的是网站的 .git 目录…

【SpringBoot】【JWT】使用JWT的claims()方法存入Integer类型数据自动转为Double类型

生成令牌时使用Map存入Integer类型数据,将map使用claims方法放入JWT令牌后,取出时变成Double类型,强转报错: 解决: 将Integer转为String后存入JWT令牌,不会被自动转为其他类型,取出后转为Integ…

JVM之JVM的组成

Java 虚拟机(JVM)是 Java 程序的运行核心,它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统(Class Loading System) 类加载系统负责在程序运行时动态地将 Java 类加载到 J…

数据库面试题(基础常考!!!)

在数据库领域,无论是日常开发还是面试场景,都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述,帮助大家更好地应对面试和实际工作中的挑战。 面试题一:三范式详解 什么是三范式 三范式是关…

Linux网络 网络层

IP 协议 协议头格式 4 位版本号(version): 指定 IP 协议的版本, 对于 IPv4 来说, 就是 4. 4 位头部长度(header length): IP 头部的长度是多少个 32bit, 也就是 4 字节,4bit 表示最大的数字是 15, 因此 IP 头部最大长度是 60 字节. 8 位服务类型(Type Of Service):…

uniapp 微信小程序打包之后vendor.js 主包体积太大,解决办法,“subPackages“:true设置不生效

现在是打包的时候,vendor.js 的内容全部打到了主包里面, 说一下我的方法: 1. 通过发行 小程序打包 这样打包的体积是最小的,打包之后打开微信开发工具,然后再上传 2.manifest.json,在“mp-weixin”里添加代码 "…

python-leetcode-N 皇后

51. N 皇后 - 力扣(LeetCode) class Solution:def solveNQueens(self, n: int) -> List[List[str]]:res []board [[.] * n for _ in range(n)]def is_safe(row, col):for i in range(row):if board[i][col] Q:return Falseif col - (row - i) >…

【蓝桥杯单片机】客观题

一、第十三届省赛(一) 二、第十三届省赛(二)

如何进行ERP系统的定制开发?

在当今数字化时代,企业资源规划(ERP)系统已然成为企业提升管理效能、优化资源配置以及实现精细化管理的关键工具。然而,鉴于不同企业在行业特性、业务流程以及管理需求等方面存在显著差异,通用型的ERP系统往往难以契合…

基于SpringBoot的校园消费点评管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

MySQL数据库——常见慢查询优化方式

大家好,这里是编程Cookbook。本文详细介绍MySQL的慢查询相关概念,分析步骤及其优化方案等。 文章目录 什么是慢查询日志?慢查询日志的相关参数如何启用慢查询日志?方式一:修改配置文件方式二:通过命令动态启…

【前端基础篇】Day 1

总结: 1. Web标准的构成 2. 基本标签 目录 1. Web标准的构成 2. 基本标签 2.1快捷键 2.2.1标题标签 2.2.2段落和换行标签 2.2.3文本格式化标签 2.2.4div和span标签 2.3.1 图像标签和路径 2.3.2路径 2.3.3超链接标签 2.4注释标签 2.5特殊字符 1. Web标准…

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…

我与Linux的爱恋:了解信号量+共享内存+消息队列的应用

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;Linux的学习 文章目录 信号量共享内存应用---Server&Client通信client.ccserver.ccnamepipe.hppShm.hpp 消息队列——实现Client&ServerCom.hppClient.ccServer.cc 信号量 信号量…

跟着李沐老师学习深度学习(十六)

继续学习深度学习&#xff08;十六&#xff09; 继续理解transformer 对于transformer的理解感觉还是云里雾里的&#xff0c;今天又找了一些视频进行一个梳理。 一个浅解 在B站学习发现评论区真的很不错&#xff0c;在沐神讲transformer论文的评论下&#xff0c;有一个评论…

DeepSeek-R1本地部署保姆级教程

一、DeepSeek-R1本地部署配置要求 &#xff08;一&#xff09;轻量级模型 ▌DeepSeek-R1-1.5B 内存容量&#xff1a;≥8GB 显卡需求&#xff1a;支持CPU推理&#xff08;无需独立GPU&#xff09; 适用场景&#xff1a;本地环境验证测试/Ollama集成调试 &#xff08;二&a…

hbase集群部署

1.hbase集群的搭建&#xff08;以及内部逻辑&#xff09; 虽然Hmaster有多个&#xff0c;但是属于热备&#xff0c;起作用的就active上的这个。 部署流程&#xff1a; 因为我配置的hadoop是一个非HA的&#xff0c;所以修改为以下 如果是HA的hadoop一定要做以下这一步。 在启动…