前言:在linux命令使用中,有些命令总是又长又难记,就算是经常使用的命令每次都敲也真的很烦,所以今天教大家一个方法,来简化命令,创建我们自己的内建命令!!!

创建内置命令

创建命令存储目录

现在linux上创建一个保存我们自己命令文件夹

[root@localhost /]# cd /
[root@localhost /]# mkdir scprict
[root@localhost /]# cd scprict

编写命令

[root@localhost scprict]# vi hello

进入文档编译模式后,按i开始编写命令,内容如下

#!/bin/sh
echo hello

ESC后,再按Shift+:,当屏幕下方出现:后,输入wq敲击回车保存,这样命令就创建好了。使用ll命令查看

授权命令

注意,这时的命令还不可以直接执行,不然会提示你权限不够,我们需要对命令进行授权

[root@localhost scprict]# chmod 777 hello

授权后,我们来查看一下,并执行命令



可以看到,授权后的命令是绿色的,并且执行后也输出了hello

Shell命令变内置命令

我们目前虽然已经完成了Shell命令的创建,但此时还存在两个问题:

  • hello命令需要在前边加上./方能执行
  • 此命令的使用范围目前仅限于当前文件夹

    所以此时的hello命令仅仅是个Shell命令,我们还需要把它变为内置命令,操作如下
[root@localhost scprict]# cp hello /bin

你没看错,我们只需要把这个命令复制到bin目录下就可以了,然后我们来试一下



可以看到,经过现在无论是在哪个目录下都可以直接执行hello命令了,而且当我们输入部分命令然后按TAB键时,系统还会自动补全命令进行提示,是不是很奈斯~。

至此,我们就完成了创建内置命令的操作,下面给出了一些我以docker命令为样本编写的内置命令。

Docker命令示例

示例1:以docker ps -a命令缩写的dp命令



命令:

#!/bin/sh
docker ps -a

示例2:以docker logs 命令为缩写的ds命令



命令:

#!/bin/sh
docker logs -f "$@"

示例3:以docker exec命令缩写的de命令



命令:

#!/bin/sh
docker exec -it "$@" sh

总结

至此,我们就掌握了如何创建Linux全局内置命令,我们来回顾一下步骤:

 1. 创建命令存储目录
2. 编写命令
3. 授权命令
4. 移入bin目录下

在Linux中还有好多命令是我们常用但有非常长还难记的,我们就可以用这种方式来简化一下常用的使用命令,但需要注意一点,那就是创建的命令不要和/bin目录下的原有命令重名!

最后,如果大家有更好的命令缩写,欢迎大家留言在下方,咱们一起交流和探讨。感谢观看!

一分钟教你编写Linux全局内置命令的更多相关文章

  1. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...

  2. <linux下内置命令和外部命令>

    Linux下内置命令和外部命令 1.linux的命令可以分为内部命令和外部命令: 内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高. 而外部命令是系统的软件功能,用户需要时才从硬盘中读入内 ...

  3. 【PHP】五分钟教你编写一个实时弹幕网站

    由于博主是个忠实的英雄联盟粉丝,所以经常观看一些明星大神的直播.而一谈到直播,肯定会看到满屏幕飘来飘去的弹幕.那么问题来了,这些视频弹幕网站如何做到实时同步的?PHP如何开发一个类似的网站? 首先要搞 ...

  4. 5分钟教你在Linux下安装VMware

    如果我们只有一台笔记本,又想要搭建一个小集群,怎么办?虚拟机帮你实现梦想,市面上较为常用的虚拟机软件有VMware.VirtualBox.Xen.KVM.hyper-v等,本文主要介绍如何在Linux ...

  5. JS基础-全局内置对象

    对象 JS中有那些内置对象 数据封装类对象 String.Array.Object.Boolean.Number 其他对象 Math.Date.RegExp.Error.Function.Argume ...

  6. Linux bash内置命令集

    man cd  -->查询不到,所以会提示bash的内置命令 . alias bg bind break builtin caller cd command compgen complete c ...

  7. linux 查看内置命令

    使用: man shell builtins 查找结果如下:

  8. linux全方位掌握一个命令--思路比方法更重要

    Linux命令众多,当不清楚一个命令的使用方法时,我们该怎样了解命令的属性和帮助?     1.用type命令了解一个命令的属性 [root@zejin240 testdir]# type cd cd ...

  9. 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)

    手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...

随机推荐

  1. 《Windows内核安全与驱动开发》 2.3 重要的数据结构

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 2.3 重要的数据结构 一.驱动对象  Windows内核采用__的编程方式 ...

  2. golang数据结构之循环链表

    循环链表还是挺有难度的: 向链表中插入第一条数据的时候如何进行初始化. 删除循环链表中的数据时要考虑多种情况. 详情在代码中一一说明. 目录结构如下: circleLink.go package li ...

  3. Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!

    英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多.本来周末打算照着扇贝/极光单词,写一个英语单词自测工具.但苦 ...

  4. NSUserdefaults清除存储内容

    有两种方式 方式一:找到所有的key,然后删除对象 /** *  清除所有的存储本地的数据 */ - (void)clearAllUserDefaultsData { NSUserDefaults * ...

  5. Unity3D for iOS初级教程:Part 3/3(下)

    转自:http://www.cnblogs.com/alongu3d/archive/2013/06/01/3111739.html 消息不会自动消除 你基本的游戏功能已经完成了,但是显示一些关于游戏 ...

  6. hdu3015,poj1990树状数组

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3015 题意:给定n组数,每组数有值x和值h,求n组数两两的val的总和.将所有x和所有h分别离散化(不 ...

  7. 无向图的桥+搜索优化--UESTC1956-北极的猴子

    北极的猴子 Time Limit: 1000 MS     Memory Limit: 256 MB Submit Status 也许你不知道,在北极也有猴子,我们叫它们北极猴.北极猴们在北极一共有n ...

  8. PyCharm设置Python版本,你肯定不知道!

      前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:智小星    PyCharm默认会使用虚拟的Python解释器,即使 ...

  9. 【新手必学】Python爬虫之多线程实战

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:清风化煞_   正文 新手注意:如果你学习遇到问题找不到人解答,可以点 ...

  10. OV7670 RAW输出 bayer 解码

    今天终于搞定OV7670 raw输出啦,兴奋!! 参考链接: https://pikacode.com/liplianin/s2-liplianin/commit/dab97f5d6e3b http: ...