首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux Shell命令自动补全实现

背景介绍 最近在完成一个由linux shell脚本编写工具时,发现在实现多个功能时,冗长多个参数不仅难记而且大小写混杂,虽然“悉心”地写了完备'-h'帮助文档,但是为了实现其中一个功能,仍然需要输入多个冗长字符串来定位某个大选项下小选项所对应功能...实现思路 在 linux shell 下本身有着体验极佳命令补全功能,即[Tab][Tab]。现通过自定义该程序命令补全脚本实现命令补全。...,如下: variable description COMP_WORDS 类型为数组,存放当前命令行中输入所有单词 COMP_CWORD 类型为整数,当前输入单词在COMP_WORDS中索引 COMPREPLY...类型为数组,候选补全结果 COMP_WORDBREAKS 类型为字符串,表示单词之间分隔符 COMP_LINE 类型为字符串,表示当前命令行输入字符 COMP_POINT 类型为整数,表示光标在当前命令哪个位置....bash_profile中进行调用,亦可放于/etc/bash_completion.d/下,这样在下次登录终端时即可自动source自动补全脚本。

5.8K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自动解锁 Linux加密磁盘命令

    Linux 统一密钥设置Linux Unified Key Setup(LUKS)是一个很好工具,也是 Linux 磁盘加密通用标准。...NBDE 采用以下技术实现: Clevis 框架:一个可插拔框架工具,可自动解密和解锁 LUKS 卷 Tang 服务器:用于将加密密钥绑定到网络状态服务 Tang 向 Clevis 客户端提供加密密钥...cryptsetup luksFormat 命令对磁盘进行加密。...(Type uppercase yes):Enter passphrase for /dev/vdc1:Verify passphrase: 使用 cryptsetup luksOpen 命令将加密分区映射到一个逻辑设备上...现在,每当你重启服务器时,加密后磁盘应该会自动解密,并通过 Tang 服务器取回密钥进行挂载。 如果 Tang 服务器因为任何原因不可用,你需要手动提供密码,才能解密和挂载分区。

    2K00

    Linux定时器自动运行命令工具

    创建一个 cronjob 要创建一个 cronjob,你可以使用 crontab 命令,并添加 -e 选项: $ crontab -e 这将使用默认文本编辑器打开 crontab。...0 分运行@monthly 在每月第一天 0 时 0 分运行 例如,下面的 crontab 命令在每天 0 时运行备份脚本: /opt/backup.sh @daily 如何停止一个 cronjob...想要在启动后停止 cronjob,你必须编辑 crontab,删除触发该作业命令行,然后保存文件。...$ EDITOR=nano crontab -e 如需停止一个正在运行作业,可以 使用标准 Linux 进程命令 来停止一个正在运行进程。...它是自动 一旦你编写完 crontab,保存了文件并且退出了编辑器。你 cronjob 就已经被调度了,剩下工作都交给 cron 完成。

    1.7K00

    linux命令自动补全总结

    linux命令自动补全 centos7下执行yum install bash-completion之后重启系统正常。...自动补全,但是,直接 source 执行该脚本后,docker命令后敲tab,会有错误。...kubectl命令自动补全 kubectl这个命令行工具非常重要,与之相关命令也很多,我们也记不住那么多命令,而且也会经常写错,所以命令自动补全是非常有必要,kubectl命令行工具本身就支持complication...以下是linux系统设置命令: source <(kubectl completion bash) echo "source > ~/.bashrc...在shell命令行可以使用“Tab”键自动补全命令或文件名,这种功能其实可以在shell脚本中实现,使得使用“Tab”键可以自动补全自定义shell函数,相关命令有三个,compgen、complete

    6.6K50

    Linux设置开机自动开启服务应用操作命令

    $ vim /etc/rc.local 方法二:Linux通过chkconfig设置开机启动服务 创建脚本 vim /etc/init.d/bootshell 编辑脚本内容如下(脚本前面三行格式固定).../init.d目录下test2脚本。...同时在rc0.d和rc6.d目录下,创建名字为K90bootshell 文件连接,第一个字符为K,系统在关闭系统时候,会运行bootshell,添加一个stop,告诉脚本,现在是关闭模式。...注意上面的三行中,第二,第三行是必须,否则在运行chkconfig --add bootshell时,会报错。 运行级别,越小越优先运行,优先级相同时候按创建时间启动。...检验配置 chkconfig --list 删除服务 chkconfig --del bootshell 关闭Linux某个开机自启动服务 chkconfig --level 2345 bootshell

    1.3K00

    Linux系统date命令无法修改或同步时间解决办法

    今天,在站长交流群里面,又一个站长抱怨服务器每星期都必须手动重启一次,否则 QQ 登陆功能无法使用,原因是服务器时间快了 5 分钟以上,腾讯服务器拒绝提供 API 服务。...本以为只要加一个简单 linux 时间同步任务计划即可,结果我拿到 root 后,发现并不是那么一回事。...在我正确添加了 ntpdate 任务计划之后,手动执行了时间同步命令,发现时间依然没有变化。 手动执行 date -s 16:00:00 命令修改时间之后,发现时间依然不变,奇了怪了!...=1 执行完毕后,发现 date -s 命令可以设置时间了,果断再执行了一把 ntpdate -u pool.ntp.org 命令,发现可以同步了!...附录: ①、若没有 ntpdate 命令,Centos 请执行 yum -y install ntp*  ②、更改系统时区为北京时间:cp -f /usr/share/zoneinfo/Asia/Shanghai

    3.5K40

    Linux命令-自动挂载文件etcfstab功能详解

    三、/etc/fstab文件中参数 下面我们看看看/etc/fstab文件,这是我linux环境中/etc/fstab文件中内容 cat /etc/fstab 查看当前系统已经存在挂载信息 在文件中我已经把每一列都做出来表示方便识别...filetype needs_recovery sparse_super Default mount options:    (none) Filesystem state:         clean 简单点方式我们可以通过下面这个命令来查看...,默认为async auto/noauto 当下载mount -a 命令时,此文件系统是否被主动挂载。...默认为auto rw/ro 是否以以只读或者读写模式挂载 exec/noexec 限制此文件系统内是否能够进行”执行”操作 user/nouser 是否允许用户使用mount命令挂载 suid/nosuid...,async等默认参数设置 第五列:能否被dump备份命令作用:dump是一个用来作为备份命令

    2.7K30

    linux网络设置及解决无法连接网络_linux命令cp复制并更名

    执行 ifconfig 命令 ●查看指定网络接口信息 ifconfig 网络接口 以太网卡名字不是常见eth0,变成了ens33。...ONBOOT=yes #设置网络接口是否在 Linux 操作系统启动时激活。...但是,直接执行”route”命令无法直接看出默认网关地址 3.2、配置 1、添加到指定网段路由记录 route add -net 网段地址 gw IP地址(吓一跳地址) 2、删除到指定网段路由记录...该时间包括1s 进程执行时实际使用 CPU 时间,1s进程耗费在阻塞上时间(如等待完成I/O操作)和其他进程所耗费时间(Linux是多进程系统,1s在执行过程中,可能会有别的进程抢占CPU ) 。...; 2、若看到”Wetwork is unreachable”反馈信息,则表示没有可用路由记录(如默认网关),无法达到目标主机所在网络。

    3.8K30

    关于redis-server服务启动之后,无法再输入Linux命令问题!

    今天刚接触redis,在Linux系统中下载安装redis过程都十分顺利,但是在启动redis-server服务之后出现了一些小插曲,出现了一个小问题,具体问题就是当服务启动之后无法再继续输入Linux...命令,更不说去开启redis客户端了!...后面无法再继续输入命令,我首先想到是Ctrl + C 来退出,事实证明确实可以退出,但是确是真实退出,当再次使用 ps -ef | grep redis 查询进程时发现redis 进程已经被杀死了...(这篇博客为:https://blog.csdn.net/zq_dser/article/details/56834185 ) 解决方案: 我们可以在启动redis服务时在命令最后面添加一个 & ,比如...同级下面,小伙伴们要填写自己配置文件路径),回车启动之后再次敲击回车就可以继续输入命令了!

    2.2K30

    二维矩阵节点链式消除和自动补齐!消消乐类游戏可参考!

    操作方法 点击选中开始节点,按住拖动到相邻节点,相邻节点添加至选择链中,沿着链往回拖,将会取消之前选择节点,松开手指以后,选择节点将会消失,空节点上方节点将会自动掉落,上方自动随机生成新数字方块掉落...沿着 X 轴遍历完成后,做自动掉落动画; 6. 遍历方式类似,依次从 X 轴正向,按照 Y 轴遍历所有非空节点,根据偏差量,计算运动距离和运动时间,动画播放以后,更新节点数组信息; 7....通过上一步记录选择节点链,进行消除,消除以后,显示就是下图效果(每次游戏生成随机数是不一样,所以每个图数字对不上,但是位置都是固定几个位置,看时候,需要注意)。 ?...消除格子以后,就需要额外补齐,消除了几个,就在屏幕上方补充几个,补充时候,需要根据补充有多少,注意 Y 轴显示位置,显示出来效果就是下图所示。 ?...而动画,分为 2 部分,原屏幕中和新增加节点。 ? 先进行原节点动画控制,按照单元格,各自做自己动画,同时播放,就会出现整体掉落效果。 ?

    85010
    领券