图片来源:https://www.pixiv.net/en/artworks/101040610 基本语法 getopts用来在shell脚本中解析命令行传入的选项 optstring optstring指定要解析哪些选项,哪些选项需要额外参数(如-f选项需要一个用户指定的文件名),需要额外参数的选项后面添加冒号 比如下面这条命令,使用tar创建一个tar包“test.tar” 其中, c选项表示“创建”,不需要参数;f选项指定生成的文件名,需要参数。所以解析这两个选项的optstring应该写成 特殊变量 解析错误 示例 下面编写一个简单的备份文件脚本,演示getopts的用法 脚本的基本功能和用法: 参考:
shell
图片来源:https://www.pixiv.net/artworks/101597578 大端序(网络序):高字节在低地址 小端序:高字节在高地址 判断当前运行环境的字节序 C++ 通过自定义变量值判断 另外,C++标准中对于结构体的非活跃成员的访问属于未定义行为,虽然使用g++编译运行都没问题,但以下代码不能保证运行结果正确 使用GCC宏 C++20标准库已经内置了字节序相关变量 Shell 输出“1”则为小端序,输出“0”则为大端序 查看CPU参数 CPU相关信息里的“Byte Order”字段有字节序信息 转换 Linux函数 Shell 反转字节序,输入输出均为十进制数 参考:
图片来源:https://www.pixiv.net/artworks/100039624 Fork bomb 将文件内容写入剪贴板 打印剪贴板内容 解锁被pam锁定无法登录的用户 创建大文件,修改bs和count参数可以调整大小,合理的bs大小能提高执行效率,下面的命令在我的SSD上创建文件仅需0.35秒 Vim编辑后发现因权限不足无法保存,可以在Vim内将未保存的内容导出同时再使用sudo权限强行写入原文件,然后使用“:e!”重新加载当前文件 查看各个系统目录含义 查看ASCII码表 备份文件 获取当前时间戳 将时间戳转换为日期 创建临时文件、文件夹 URL解码 二进制处理 查看二进制文件 截取二进制文件,利用dd命令,skip参数跳过前n个字节,count参数控制读取长度 将十六进制文本转换为二进制文件 字节序反转 网络 显示IP,有多个网卡的话可能会显示多个,使用空格分割 SSH远程执行命令 SSH远程执行本地shell脚本 如果要远程后台执行一个长时间的任务,并且立刻返回,仅仅“nohup command &”是不行的,还需要把输入输出重定向 设置静态IP地址 设置默认路由 网速监控 Core Dump 查看 coredump 文件大小限制 查看 coredump 文件生成位置和生成格式 临时修改 coredump 文件生成位置和生成格式 不生成 coredump 文件,修改配置文件 /etc/sysctl.d/50-coredump.conf 。 若要使修改后配置立即生效,执行 列出所有生成的 coredump 文件(不包括 gdb 手动生成的) 查看 coredump 文件信息 使用 gdb 调试 GDB 内手动生成 coredump 进程 通过程序名获取进程 PID 查看运行中进程的环境变量 启动 查看系统开机启动耗时 查看开机各个进程启动耗时 查看启动日志 参考: