![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 69
运维开发王义杰
我是一名使用go的运维开发工程师,我的博客是我与朋友们共享最新软件工程知识的门户。我致力于将我在软件开发领域的实践经验和心得分享给我大家。我的目标是通过我的博文,为朋友们的学习和成长提供支持,同时也从他们的反馈和问题中获得新的启发和成长
展开
-
linux: Makefile编写技巧温故
在系统运维中,Makefile 是一种强大的工具,用于管理和自动化各种任务。它能够有效地处理任务执行、文件生成、系统管理等操作。本文将介绍一些常见的Makefile编写技巧,帮助运维工程师更好地利用Makefile来自动化任务。原创 2024-07-23 21:01:34 · 458 阅读 · 0 评论 -
linux: 深入理解bash关联数组
为了解决这一问题,Bash 4.0 及以上版本引入了关联数组(Associative Arrays),允许我们使用字符串作为键,从而实现类似于其他编程语言中的 Map 或字典的功能。通过掌握关联数组的声明、访问、遍历和删除方法,以及其实际应用场景,我们可以编写出更加高效和易读的 Bash 脚本。在日常工作和开发中,合理使用关联数组将大大提高我们的工作效率。访问关联数组中的元素与访问普通数组类似,只是使用字符串键而不是整数索引。Bash 提供了一种简单的方法来遍历关联数组的键和值。关键字来声明一个关联数组。原创 2024-07-21 12:27:57 · 389 阅读 · 0 评论 -
linux: 深入理解与使用数组
数组为 Bash 脚本编程提供了强大的数据管理能力,使我们能够高效地处理多个值。通过掌握数组的声明、初始化、访问、修改、遍历、删除及其实际应用,我们可以编写出更加灵活和高效的 Bash 脚本。在日常工作和开发中,合理使用数组将大大提高我们的工作效率。在 Bash 脚本编程中,数组是一种强大的数据结构,允许我们在单个变量中存储多个值。无论是处理数据列表、批量操作文件,还是执行复杂的计算任务,数组都能提供高效的解决方案。数组元素可以通过索引来访问,索引从 0 开始。命令删除数组中的某个元素或整个数组。原创 2024-07-21 12:27:39 · 395 阅读 · 0 评论 -
信息安全:了解 OpenSSH 中的各种算法选项
在系统中,命令的参数,用于列出 OpenSSH 中支持的各种加密和验证算法。原创 2024-07-16 21:24:59 · 699 阅读 · 0 评论 -
linux: 使用 setfacl 命令管理文件访问控制列表
ACL(Access Control List,访问控制列表)是一种比传统UNIX权限更细粒度的权限控制机制。它允许为文件和目录设置更为具体的用户和组权限,而不仅仅是所有者、所属组和其他用户的权限。setfacl命令提供了比传统UNIX权限系统更强大的权限管理功能,允许管理员为文件和目录设置更精细的访问控制。通过灵活使用setfacl和getfacl,可以实现复杂的权限需求,保障系统的安全和高效管理。原创 2024-07-12 21:03:06 · 1228 阅读 · 0 评论 -
Linux:配置和使用IPv6的全面指南
IPv6是一种为了解决IPv4地址不足问题而设计的协议。它使用128位地址空间,可以提供约3.4×10^38个独特的IP地址,极大地扩展了可用的互联网地址池。IPv6还引入了简化的报头、更好的安全性和内置的支持多播和任播。全局单播地址(Global Unicast Address)链路本地地址(Link-Local Address)唯一本地地址(Unique Local Address,ULA)多播地址(Multicast Address)任播地址(Anycast Address)原创 2024-07-05 21:07:09 · 1560 阅读 · 0 评论 -
linux: 如何高效处理Shell脚本中的大量参数
在编写Shell脚本时,我们常常需要处理大量的参数。为了提高代码的可读性和可维护性,我们需要一些技巧来高效地管理这些参数。本文将探讨几种有效的方法,帮助我们简化Shell脚本中的参数处理。原创 2024-07-01 21:18:44 · 582 阅读 · 0 评论 -
Linux: 深入探讨KDUMP,内核崩溃调试利器
KDUMP是Linux内核中的一项关键功能,用于在系统崩溃时生成内存转储(core dump)。这对于系统管理员和开发人员来说,分析和调试系统崩溃问题至关重要。本文将详细介绍KDUMP的工作原理、配置方法以及在实际操作中的应用。原创 2024-06-29 12:19:14 · 1034 阅读 · 0 评论 -
linux: 使用Makefile封装功能并传递参数
Makefile是一个强大的工具,用于自动化构建过程和任务管理。通过Makefile,我们可以定义和调用其他目标,并传递参数,实现功能的封装和复用。本文将介绍如何在Makefile中实现这一目标,并提供详细的示例代码。原创 2024-06-29 12:18:55 · 411 阅读 · 0 评论 -
Linux:如何在脚本开发中实现程序在用户退出后仍保持运行
通过上述方法,我们可以在Linux环境下实现程序在用户退出后继续运行,避免依赖于systemd等进程管理工具。每种方法各有优劣,可以根据具体需求选择最适合的方案。原创 2024-06-28 07:47:31 · 907 阅读 · 0 评论 -
Linux:深入解析参数扩展
在Linux系统中,命令行的强大功能离不开各种参数扩展(Parameter Expansion)的支持。通过对参数进行不同方式的扩展,用户可以在命令行中实现复杂的字符串处理任务。本文将深入讲解Linux中的几种常见参数扩展方法及其应用场景,并通过实例帮助读者理解这些概念。原创 2024-06-26 20:30:42 · 823 阅读 · 0 评论 -
Linux:中使用getopts处理脚本参数
getopts是一种用于解析命令行参数的工具。与getopt不同的是,getopts是Shell内建的命令,不需要额外安装。getopts可以处理短选项(如-a)和带参数的选项(如-b value),但不支持长选项(如--help通过getopts,我们可以简化Shell脚本中命令行参数的处理过程。使用getopts不仅可以使代码更清晰,还能自动处理错误情况,提高脚本的健壮性。希望本文能帮助你更好地理解和使用getopts来处理Linux脚本参数。原创 2024-06-25 21:16:09 · 509 阅读 · 0 评论 -
Linux: Shell脚本实现支持长选项参数
本文介绍了在Linux Shell脚本中实现支持长选项参数的两种方法。使用getopt命令可以方便地解析短选项和长选项,而手动解析则更加灵活。通过这两种方法,可以使脚本的选项更加直观和易用,从而提高脚本的可读性和用户体验。原创 2024-06-25 21:15:47 · 346 阅读 · 0 评论 -
linux: 了解 C 开发 IO 操作
在 Linux 平台上进行开发,IO 操作是一个非常重要的领域,掌握 IO 操作不仅能够提升应用程序的性能,还能够提高系统资源的利用效率。那么,如何才能算得上精通 IO 呢?本文将从几个方面进行详细探讨,包括文件 IO、网络 IO 以及高级 IO 技术。原创 2024-06-22 16:22:25 · 686 阅读 · 0 评论 -
Linux: 深入解析GRUB2引导加载器的核心原理
GRUB2是第二代GRUB引导加载器,它解决了第一代GRUB(现在称为GRUB Legacy)的一些局限性,提供了更强大的功能和更灵活的配置方式。GRUB2不仅支持多种操作系统,还支持多种文件系统和设备类型,成为Linux系统中最常见的引导加载器。通过编辑grub.cfg文件,用户可以为不同的启动需求创建自定义启动选项。例如,为特定内核配置不同的启动参数,或为特殊用途创建临时启动项。GRUB2作为现代计算机系统中的重要组成部分,为用户提供了强大且灵活的引导功能。原创 2024-06-12 22:55:49 · 1171 阅读 · 0 评论 -
Linux:编写 Shell 脚本时如何优雅地处理函数返回状态,多行文本和脚本路径
在 Shell 脚本中,正确处理函数返回状态、设计和使用main函数、利用 Heredoc 处理多行文本以及获取脚本所在位置是编写高质量脚本的重要技巧。通过掌握这些技巧,可以编写出更加灵活、可读和易于维护的 Shell 脚本。原创 2024-06-07 21:37:00 · 1032 阅读 · 0 评论 -
Linux: Shell脚本中处理文件路径参数,兼容相对路径与绝对路径
通过上述脚本,我们可以兼容处理相对路径和绝对路径,并进行有效性检查。这不仅提高了脚本的灵活性,还增强了健壮性,避免因路径问题导致的错误。原创 2024-05-31 21:02:58 · 231 阅读 · 0 评论 -
linux: gpg签名与验签详解
GPG签名是通过使用发送者的私钥对数据进行加密,生成一个唯一的数字签名。接收者可以使用发送者的公钥验证签名,以确保数据的完整性和发送者的身份真实性。通过本文的介绍,我们详细解释了GPG签名和验签的基本概念、操作步骤及其背后的原理,并提供了具体的命令和代码示例。同时,本文还介绍了在使用GPG进行操作时的调试方法,以帮助用户排查和解决可能出现的问题。通过理解和应用这些知识,我们可以更好地使用GPG来确保数据的安全性和完整性。原创 2024-05-17 20:38:02 · 560 阅读 · 0 评论 -
linux: 使用OpenSSL检测和处理PEM证书
通过本文的方法和脚本,您可以在Linux系统中高效地检测PEM证书是否为自签名证书,并查询其过期时间。这些技术和自动化脚本将大大简化证书管理任务,提高工作效率。使用OpenSSL结合其他命令,可以轻松实现证书信息的处理和查询,满足日常运维和开发的需求。原创 2024-05-17 20:13:14 · 464 阅读 · 0 评论 -
linux: 探索 GRUB 配置的核心, 理解 /etc/default/grub、grub2.cfg 和 /etc/grub.d/
在 Linux 系统中,GRUB(GRand Unified Bootloader)是最常用的启动加载器之一。它负责在计算机启动时管理多个操作系统的引导过程。grub2.cfg,以及目录,帮助大家理解它们的功能、如何互动,以及如何安全地进行修改。原创 2024-05-14 20:27:36 · 1319 阅读 · 0 评论 -
QEMU: Checking if IOMMU is enabled by kernel: WARN (IOMMU appears to be disabled in kernel
在使用 QEMU 和虚拟化技术时,遇到这个警告信息表示我们的系统中的 IOMMU(输入输出内存管理单元)功能没有在内核中启用。IOMMU 是硬件技术,用来增强虚拟化环境中的设备 I/O 安全性和性能。通过在物理设备和虚拟机之间提供地址转换,它允许安全地将 I/O 设备直接分配给虚拟机,这个过程通常被称为设备直通(Passthrough)。原创 2024-05-14 20:24:37 · 404 阅读 · 0 评论 -
linux: 使用两个空的硬盘创建一个逻辑卷并挂载到/opt目录
要在Red Hat 8系统中使用两个空的硬盘创建一个逻辑卷并挂载到/opt。原创 2024-05-14 20:17:37 · 398 阅读 · 0 评论 -
Linux: Makefile自动化基础指南
在开发过程中,我们经常使用Makefile来自动化构建流程。。我们将通过具体示例和详细解释,帮助读者理解并掌握这一技巧。Makefile是一个自动化工具,用于在Unix和类Unix系统上管理项目的构建。它通过定义规则和目标,简化了编译和链接的过程,也可以用于linux系统的任务自动化编排。# 定义变量# 目标:all# 构建目标build:# 构建命令,例如编译代码# 部署目标deploy:# 部署命令,例如复制文件# 清理目标clean:# 清理命令,例如删除生成文件allbuild。原创 2024-05-10 20:18:18 · 316 阅读 · 0 评论 -
linux: Makefile 脚本关键概念解析
Makefile 是在 Unix 系统下用来管理项目编译的工具,其语法和概念对自动化构建和管理项目非常重要。Makefile 提供了灵活而强大的功能来管理项目的编译和构建过程。每个目标之后跟随的命令行,是实际执行的操作,如编译、打包等。目标是 Makefile 中最重要的部分,它指定了要生成的文件或执行的命令。模式规则用来指定一类文件的生成规则,通常用于处理文件名后缀的转换。即使没有明确的命令,Makefile 也会使用隐式规则进行编译。Makefile 可以包含其他文件,方便大型项目的管理。原创 2024-05-09 22:20:01 · 908 阅读 · 0 评论 -
Linux: 如何正确处理夏令时
随着全球化业务的不断扩展,正确处理和理解夏令时(Daylight Saving Time, DST)在信息技术管理中变得越来越重要。夏令时的目的是为了更好地利用夏季的日照时间,通过将时钟拨快一小时来延长傍晚的日光。然而,这种时间调整给全球运作的IT系统带来了额外的复杂性。本文将详细介绍在Linux系统中如何设置和验证夏令时,以确保时间数据的准确性和一致性。原创 2024-04-23 20:31:41 · 577 阅读 · 0 评论 -
Go:管理Linux文件权限和所有者
在Linux系统管理中,文件权限和所有者的管理是维护系统安全的重要方面。适当的文件权限设置可以防止未授权访问,而正确的文件所有者设置则确保文件的正确访问控制。本文将介绍如何使用Go语言编写一个工具函数,该函数可以在Linux环境下检查和修复指定文件的权限和所有者。原创 2024-04-18 21:02:16 · 395 阅读 · 0 评论 -
通过c语言调用系统curl动态库示例
在本文中,我们将通过一个简单的示例来讲解如何在Ubuntu系统中通过C语言调用动态库(共享库)的方法。我们将使用libcurl库,这是一个基于客户端的URL传输库(支持HTTP, HTTPS, FTP等协议),广泛用于各种程序和应用中以访问网页和服务器数据。原创 2024-03-15 13:17:25 · 517 阅读 · 0 评论 -
系统容器LXD:容器技术的革命
LXD作为一种创新的容器解决方案,其类虚拟机的隔离性、易于管理的特点以及卓越的性能,使其在云计算和微服务架构中具有广泛的应用前景。随着技术的不断发展和完善,LXD有望成为未来容器技术领域的一个重要里程碑。在我们这个不断追求高效、安全和可扩展性解决方案的时代,LXD无疑是向前迈出的一大步。对于正在追求技术进步的我们来说,深入理解和掌握LXD等先进技术,将使我们能够更好地设计和实现复杂的系统解决方案,为企业和团队带来更大的价值。原创 2024-03-09 14:42:20 · 426 阅读 · 0 评论 -
在 Windows WSL Ubuntu 上安装原生Docker
微软在WSL2中加入对Systemd的支持,不仅提高了与Linux应用的兼容性,也大大简化了在Windows上使用Linux原生Docker的过程。这一进步对于依赖容器化开发环境的开发者来说意义重大,它不仅展示了微软对开发者社区需求的重视,也进一步加深了Windows与Linux生态系统之间的整合。现在,开发者可以在Windows上享受到几乎与Linux原生环境相同的开发体验,这无疑将推动跨平台开发的进一步发展。我们期待微软在未来继续推动技术的界限,为开发者社区提供更多的支持和便利。原创 2024-03-09 13:16:45 · 1220 阅读 · 0 评论 -
linux shell: Ksh、Csh与Bash的探索之旅
在深入研究Linux和UNIX操作系统的过程中,我们经常会遇到各种各样的Shell环境。Shell是用户与操作系统交互的界面,它既是一个命令语言,也是一个程序设计语言。今天,我们将一起探索三种流行的Shell:Korn Shell (ksh)、C Shell (csh)以及Bourne-Again Shell (bash),它们各自的特点、优劣,以及它们之间的区别。原创 2024-03-08 22:09:19 · 1054 阅读 · 0 评论 -
go: 如何获取linux用户的uid和gid
在Go中,我们可以使用包来获取Linux用户的ID和组ID。以下是一个简单的示例:这段代码首先调用函数来获取当前用户的信息,然后打印出用户ID () 和组ID ()。如果在获取用户信息时发生错误,程序会抛出panic。注意: 如果普通用户使用sudo执行程序,程序内的当前用户是root当我们使用执行程序时,程序内的当前用户将是,而不是普通用户。这是因为命令的作用就是以超级用户()的身份运行命令。在Go中,我们可以使用包的函数来获取指定用户名的用户信息,包括用户ID和组ID。以下是一个简单的示例:这段代码原创 2024-02-20 22:38:03 · 491 阅读 · 0 评论 -
linux:如何查看用户密码策略
在Linux中,查看用户的密码策略涉及到几个方面,包括密码的复杂度要求、过期时间、历史密码重用限制等。这些设置通常通过PAM(Pluggable Authentication Modules)配置和。请注意,在修改这些设置之前,建议先备份相应的配置文件。错误的配置可能会导致安全问题或阻止用户正常登录。同时,不同的Linux发行版可能会有细微的差别,在具体操作时需要留意。原创 2024-02-04 14:27:40 · 1168 阅读 · 0 评论 -
linux: 硬盘分区工具parted讲解
parted是一个用于管理硬盘分区的命令行工具,可以用于创建、调整、复制和删除硬盘分区。它支持多种分区表格式,包括但不限于 GPT 和 MBR。在使用parted/dev/sda以下是一些基本的parted。原创 2024-02-04 09:37:37 · 480 阅读 · 0 评论 -
linux: 硬盘MBR分区和GPT分区的区别
选择 DOS/MBR 或 GPT 主要取决于硬件支持(特别是主板和 BIOS/UEFI 支持)、操作系统兼容性以及对磁盘大小和分区数量的需求。对于新的、大容量的硬盘和现代系统,推荐使用 GPT 分区表。对于老旧系统或需要确保最广泛兼容性的情况,MBR 仍然是一个可行的选择。原创 2024-02-03 22:22:21 · 522 阅读 · 0 评论 -
linux: 网卡名称eth和ens前缀有什么意义和区别
ethX:早期 Linux 系统的传统命名方式,简单但在多个网络接口时可能不稳定。ensX:较新的、可预测的命名方式,基于接口的物理位置,保证名称的一致性和稳定性。在使用哪种命名方式上,主要取决于 Linux 发行版的版本和系统的配置。新版的系统(尤其是使用 systemd 的系统)通常使用ensX或其他类似的可预测命名方式,而旧版系统可能仍使用ethX。需要注意的是,管理员可以通过 udev 规则等方式自定义网络接口的命名,以符合特定的需求或偏好。原创 2024-02-03 22:21:59 · 1115 阅读 · 0 评论 -
Linux:Shell脚本使用 NC 工具检查 IP 地址的端口联通性
在 Linux 系统管理和网络诊断中,检查 IP 地址的端口联通性是一项常见而重要的任务。本文将指导您使用nc(Netcat)工具通过 Shell 脚本来实现这一功能。nc是一种网络工具,用于读取和写入数据 across network connections,使用 TCP 或 UDP 协议。原创 2024-02-03 14:02:58 · 622 阅读 · 0 评论 -
linux: Shell脚本设计函数的成功和异常返回值
Shell 脚本是一种强大的工具,广泛用于自动化和系统管理任务。在编写复杂的 Shell 脚本时,使用函数是一种常见的做法,它有助于提高代码的可读性和可维护性。本文将探讨如何在 Shell 脚本中设计函数的成功和异常返回值,以便于更有效地处理错误和管理脚本的执行流程。原创 2024-02-03 14:02:23 · 408 阅读 · 0 评论 -
linux: 深入理解Shell中的输出重定向和错误处理
在Unix-like系统中,I/O流的重定向是常见的操作,它可以改变命令输出的去向。stdoutstderrstdin如图展示了两个nc命令的运行情况,它们的重定向操作有所不同。原创 2024-02-03 09:47:33 · 405 阅读 · 0 评论 -
Linux:权限管理解析,没有目录权限是否可以访问文件
读取权限(r):对于文件,这意味着用户可以查看文件内容。对于目录,用户可以列出目录内容。写入权限(w):对于文件,用户可以修改文件内容。对于目录,用户可以在目录中添加或删除文件。执行权限(x):对于文件,这表示用户可以执行该文件。对于目录,用户可以进入目录并访问目录中的文件和子目录。Linux中的权限管理是一个强大且灵活的工具,能够为系统安全提供多层保护。理解和正确应用这些权限对于任何希望维护系统安全和功能性的用户或管理员来说都是至关重要的。原创 2024-02-03 09:47:07 · 411 阅读 · 0 评论 -
linux: arp -n 显示HWAddress incomplete原因分析
arp -n命令显示IP对应的HWAddress为"incomplete"通常表明ARP请求无法正确解析。这可能是由于网络问题、设备状态、防火墙设置、IP地址冲突或网络配置错误等原因造成的。通过逐一排查和修正这些问题,通常可以解决这个问题。作者遇到的问题是:云环境限制了arp协议,附加地址需要申请。原创 2024-01-24 21:59:41 · 1097 阅读 · 0 评论