摘要: Linux , Python
目前创新互联已为1000+的企业提供了网站建设、域名、虚拟主机、网站运营、企业网站设计、南沙网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
工作中需要频繁使用到一个字符串的md5,因此编写一个md5命令工具,输入字符串直接得到输出,并且命令支持参数设置,比如是否事先格式化,指定不同参数可以支持多功能输出,操作步骤如下
直接vim一个脚本,脚本名md5不需要.py后缀,这样更像一个命令,注意在脚本第一行引入python解释器,并设置utf-8编码
其中-f支持先格式化再得到md5,-l支持传入多个字符串用空格分开
赋予可执行权限
测试是否符合要求
直接放置到 /usr/local/bin 目录下(需要root权限)
也可以使用软连接的方式,推荐使用绝对路径
之后就可以在环境变量中直接使用到md5命令
shebang :中文翻译“释伴”,由 #! 开头的字符串,出现在文本文件的 第一行 。类UNIX操作系统的程序载入器会分析shebang后的内容,将这些内容作为解释命令,并调用该指令,并将载有 shebang的文件路径作为该解释器 的参数
比如 #!/bin/bash 就是使用/bin/bash作为解释器运行脚本,如果以Python作为解释器运行脚本先找到Python解释器的路径,一般在Linux自带的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行为 # coding=utf-8 用来指定编码格式,否则Python2输出中文乱码
对于自定义脚本,推荐放置在 /usr/local/bin 目录,有多个可执行文件目录在环境变量中,区别如下:
/bin : 包含二进制可执行文件,为系统最基本的命令,如ls等
/sbin : 与/bin 类似,不同之处是其为root权限命令文件
/usr/bin : 系统预装可执行文件,会随着系统升级而改变
/usr/sbin : 同上,不同之处是其为root权限运用
/usr/local/bin : 三级目录,用户自己的可执行文件,系统不管理
/usr/local/sbin : root权限用户程序
一般来说,如果 Linux 系统中如果安装有图形操作系统(例如:X-WINDOW)的话,那么命令行辅助工具就是:X-TERM,即:从X-WINDOW里面可以直接选择X-TERM,就可以进入 Linux 命令行方式,然后如果又想从命令行方式再返回图形界面,则在命令行方式输入:exit,即可又返回到X-WINDOW图形界面。
如果在安装 Linux 操作系统的时候,根本就没有安装图形操作系统界面,那么也就无所谓什么Linux 的命令行辅助工具了。因为 Linux 系统一启动起来就自动进入命令行方式。
在 Linux 命令行中,当输入字符后,按Tab 键,Shell 就会列出以这些字符开头的所有可用命令,如果只有一个命令匹配到,按一次 Tab 键就自动将这个命令补全。
如果输入pass,此时按 Tab 键,因为以pass开头的命令只有passwd这个命令, Shell 就会自动补全 passwd 命令。
另外如果输入的字符匹配多个命令则会列出所有可用的命令,比如,如果输入do,此时按 Tab 键 Shell 就会自列出可用的命令。
但是系统自带的命令补全功能有限,自动补全功能仅限于命令和文件名。
可以安装 Bash 命令补全增强软件包 bash-completion来实现更多命令的补全。
以Centos为例
直接通过yum命令安装
bash-completion版本信息
配置命令补全
命令补全的脚本存放在/usr/share/bash-completion/completions/目录,可以在这个目录查看支持增强补全功能的命令。
再试试输入docker命令后按tab键:
可以看到后续可用命令的提示,妈妈再也不用担心我记不住命令了。
同样对于kubenetes也可以实现命令的自动补全和提示:
如果是在安装bash-completion之后安装git是不能自动命令补全,需要手动进行一些配置。
git安装之后文档里会有git-completion.bash文件
安装完git之后重新source一下bash-completion
看看配置之后的效果
如果觉得有用记得收藏点赞
如何学习 Linux 命令和工具呢? 相信这是一个令许多Linux 初学者和爱好者欲前又止的颇为头疼的一件事,也是我目前一直在思考的问题。因为我也期望能够更轻松地学好用好 Linux 命令和工具。 以下是我的一些思考结果。
0. 安装一个 Linux 版本
虽然 Windows 下提供了像 cygwin 类似的工具来模拟 Unix 环境和实用工具,不过,品尝原滋原味的口味不是更好吗? 最重要的是有真实的氛围。
1. 摒弃神秘感和畏惧感
a. Linux 命令只是一个可靠的小程序,用来完成特定用途的一件事;
b. Linux 命令提供了多种选项来控制其行为,以产生多样的效果和灵活性。不过,需要掌握的常用选项并不多。
简而言之, 需要知道两件事: 它是用来做什么事的; 有哪些常用选项和适用场合。 初期不必贪多求全。
2. 三个要过关
a. 英语障碍。 好的文档和帮助信息都是英文编写的。因此英语要过关, 至少要达到熟练无障碍阅读的地步; 只要有高中英语水平和一本中英词典就足够应对了;
b. 理解障碍。 学习Linux 命令无非是要理解其用途及用法。有时候,需要补习计算机专业基础知识来理解和使用该工具所涵盖的含义和用途;
c. 心态障碍。 大多数 Linux 命令提供了 N 多选项,往往令人无所适从。因此,要耐心,细心、静心。用一种探索的精神去深入。
若能克服上述障碍和困难,相信会受益匪浅的。把它看成一种挑战和进步的机会,不要逃避。
3. 若干准则
a. 先将最常用的命令及常用选项掌握纯熟,不要贪多求全; 掌握正则表达式;
b. 从选项较少的简单的命令学起,逐步复杂化; 当然也可反着来,先征服最难的;
c. 每天一个命令, 持之以恒;
d. 相关命令关联学习, 比如 which , whereis , type, locate , find .
4. 若干技巧
a. man , info , --help , -h 参看帮助信息;
b. man -k keyword ; apropos keyword 根据关键字查看相关的命令;
c. 使用文本文件;
d. 善于将任务分解为若干简单的子任务;
e. 掌握管道、IO重定向;
5. 命令的学习步骤
S1: man cmd or cmd --help 首先了解其基本用途;
S2: 阅读其选项,动手实践,确切理解其选项含义; 揣摩作者为什么要设计这些选项;
S3: 自己思考下, 对于其用途,最常用的是什么需求和适用场合;
S4: 利用该命令(或组合其他命令)解决问题;
6. 找一本好的参考书籍
推荐 《Shell脚本学习指南》。 这本书非常具有实用性, 它不是照本宣科地从语法讲起, 从一开始就专注于 LINUX 的常用标准工具和脚本编写的重要技巧。 建议先找一本简单的入门书了解下,再来阅读此书比较好,适用于对 Shell 有一知半解,期望能够系统深入地学习和使用 Shell 的读者。 我觉得买了这本书非常实在划算。