zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

bash自定义补全
总结下bash的补全 终端下按两次tab就是补全 补全常见的分为下面几种场景: 第一部分的命令补全 命令补全后补全路径到文件 变量补全 类似systemctl命令的选项补全 当然bash支持自定义补全,也就是让我们实现和systemctl命令那样补全 假设我们要systemctl disable --now firewalldsystemctl空格后按tab键会显示systemctl的第二个部分的所有支持的选项此时继续输入di按tab键会补全成systemctl disable,输入--now(相似的太多了,所以基本输入完)补全,当然最后的服务名此时补全不了,因为systemctl的...
shell脚本的选项和参数处理
在写shell脚本时经常会用到命令行选项、参数处理方式,如: 1./test.sh -f 5 -rF --host-file=/etc/hosts 其中-f和-rF都是短选项,–host-file是长选项短选项又分为可选参数和必选参数,不需要参数的短选项可以合着写例如cat和tail的-n有默认值10在shell中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景 手工处理方式 getopts getopt 手工处理不说了,手工处理高度依赖于你在命令行上所传参数的位置,所以一般都只用来处理较简单的参数下面我们依次讨论这后两种处理方式getopts是shell内置的,只支...
rpm包的制作笔记
文章写于 2021-08-02,防止排列在前面,所以 markdown 里的时间改成 2017-05-15 。 rpm 一些知识建议起个 centos:7 的容器里去制作 Linux 里的 so用白话说,就是类似于 windows 的 dll 文件,通常是底层库,或者经常用到的 c 函数。比如说 curl 命令和 wget 命令,他们很多的底层例如 http 请求,dns 解析,hosts 解析这块逻辑是一样的。如果他们全部打包在二进制文件里(也就是静态编译)会造成二进制体积很大(golang 一般都是静态编译的)。如果共用(共用的一个其中原因是因为早期的系统硬盘容量很小)的话体积会很小...
虚拟化扩容硬盘大小
写于 2021/08/27 ,为了避免排到前面,所以日期修了下。 about讲解下扩分区的步骤。扩容只有两种情况,lvm(改 pv 所在分区的硬盘大小) 和非 lvm 纯分区的。无论是哪种,都得先扩容挂载路径所在的分区。推荐使用 parted 命令扩,且推荐使用最新版的 parted。新增硬盘扩到 lvm 里就不讲了,简单得不行。要先确保现场安装好新版本的 parted ,老版本的 parted 没有 resizepart 的命令,有条件的话把 gdisk 也可以安装上。 早期的 Linux 为了兼容 windows 的磁盘,只支持 MBR ,后面支持了 GPT。传统的老牌的分区工具是 ...