美文网首页iOS开发
如何用shell 自定义终端命令?

如何用shell 自定义终端命令?

作者: 护念 | 来源:发表于2018-01-25 21:46 被阅读66次

用shell 自定义终端命令能干些啥?

你在工作中一定会遇到这样的情形:频繁的在终端敲一组命令(多个命令,只是为了实现某个作用),长此以往,你或许早也厌烦了这种状态,毕竟在这个追求效率的时代,我们想要摆脱这种状态、提升工作效率,对吧!

那么谁能让你脱离苦海呢?
自定义终端命令,这么说你可能还是没有一个直观的感受,那么先来看下图自定义终端命令update_m的使用过程。

PS: update_m是我在工作中自定义的一个终端命令。

Snip20180124_2.png
如果没有定义这个命令的话,我要怎么做呢?
git add .
git commit -m "test"
git push origin develop
cd ../deploy_gems
git checkout develop        
git pull
cd ../shop_pg
rake build
cp pkg/shop_pg-0.0.1.gem ../deploy_gems
cd ../deploy_gems
git add .
git commit -m "test"
git push origin develop
curl -u yyy:xxx@2000 http://up.test.yurl.vip/gem_update\?target_gem\=shop_pg
# 老老实实一步步在终端输入上面的命令

以一敌十有木有?是的,它可以帮你大大节省时间,这也是为什么我要写这篇的主要原因。

先来热个身

在具体开始定义快捷命令之前,我们先来热个身,先来认识下什么是shell?
下面是Linux 云服务器部署课程中的说法:

Shell 是指和电脑沟通的指令,这又分很多种,Unix 上常见使用 Bash Shell,Mac 也是默认用 Bash,但也有人推荐改用 Zsh 更为花俏。Windows 则是用 PowerShell。Shell 可以只当作是 Shell command 用,但也可以当作 Shell script 使用,就像编程语言一样。

简单点说就是:
1、shell 的作用在于解释我们输入到终端的命令,然后让电脑去做我们希望它做的事
2、shell 有许多种:如Bash、Power、Zsh(全栈营课程配置的都是这种)

好了,既然是热身,我们先试着自定义一个简单的命令吧!

step1
打开终端,执行
vim ~/.zshrc
按e打开zsh的定义文件

step2
键盘按i,进入insert模式,光标定义到适当位置后,复制下面代码:

say_hello() {
 echo "hello world"
 # 程序都是从hello world 开始,这里也从了这个惯例吧
}

然后保存离开(esc 然后 输入冒号(:) 然后输入wq)


Snip20180123_1.png

step3
更新下zsh命令,执行:
source ~/.zshrc
然后可以在终端中试下,刚刚我们定义的命令,终端输入:
say_hello
下图这样表示成功了:

Snip20180123_2.png

自定义一个大家常会用到的

为了简化起见,便于理解,自定义一个大家常常会用到的一组命令,就下面的这组操作吧。

git add .
git commit -m "test"
git push origin develop

怎么写呢?
vi编辑器打开 ~/.zshrc(具体方法不再赘述),写入下面的代码

# 姑且把它叫做update_m 用做更新分支并推到develop
update_b() {
    git add .
    git commit -m "test"
    git push origin develop       # 这里确保你的项目有develop分支
}

保存离开,回到终端,更新zsh source ~/.zshrc
随便找一个项目测试下,我们自定义的update_b命令,正确执行后如下:

Snip20180124_3.png
你可能会说这样就没法输commit信息了吗?让我们优化下代码
update_b() {
    git add .
    git commit -m $1              # $1 代表我们传入的第一个参数
    git push origin develop       # 这里确保你的项目有develop分支
}

执行后如下:


Snip20180124_4.png

再看一个连接远端机器的

这个是我工作中之前用到的一个,比前面介绍的都复杂,但很有用。
在~/.zshrc下,写入下面代码:

function debug1() {
echo "-----下面将切入到172.16.11.${1} puma.stderr.log😊 ,请耐心等待..."    #欢迎语句

# 这里利用密码登录(不用手动输入密码)
sshpass -p "密码字符串" ssh -tt root@192.168.x.xxx << EOF
# 跳到第二台远端机器
ssh -tt devel
# 再跳到第三台远端机器
ssh  172.16.11.$1                           #根据参数不同,切到不同机器
if [ $1 -eq 6 ]; then
    # 如果第一个参数是6 则切到/var/log/manage
    cd /var/log/manage
else
    # 否则切到这个目录
    cd /var/log/yeeshop
fi
# 追踪下面的日子文件 puma.stderr.log
tail -200f puma.stderr.log
EOF
}

PS: 这里在免密码登录时,需要利用sshpass,这里有它的安装方式

最后

相信你看了这几个例子也基本明白如何去自定义一个自己的终端快捷命令了,如果你对bash 的语法感兴趣呢?又或者你定义命令时对一些语法不清楚。可以参考这里

另外,如果你在bash下(~/.bashrc)定义命令,和zsh下其实是一样的,更新的时候更新bash(source ~/.bashrc)就ok啦!

博客原文地址:http://dmy-blog.logdown.com/posts/5204516-define-terminal-shortcut-commands-with-shell

相关文章

  • 如何用shell 自定义终端命令?

    用shell 自定义终端命令能干些啥? 你在工作中一定会遇到这样的情形:频繁的在终端敲一组命令(多个命令,只是为了...

  • shell脚本基础

    shell介绍 shell命令: 在linux终端能被解析的命令,就是shell命令。 shell脚本: 多个sh...

  • Mac 微信双开~

    创建shell脚本 创建一个文件 后缀名为 .sh如: ???shell脚本 在文件中添加终端命令 nohup /...

  • 【Linux Shell 脚本攻略】Day01

    1、终端 终端是交互式工具,用户可以通过终端与shell环境进行交互。shell命令都是在shell终端中输入并执...

  • Mac终端shell类型切换

    查看shell类型 可以执行命令echo $SHELL,先查看终端类型。 shell类型切换命令 切换到bash输...

  • linux常用命令1

    这些命令其实是shell命令(用户操作内核的方式 命令工具) 红帽的shell命令 /bin/bash 终端其实就...

  • windows terminal 使用

    Windows 终端是一个面向命令行工具和 shell(如命令提示符、PowerShell 和适用于 Linux ...

  • 某些知识点的链接

    Markdown语法vim编辑器命令ubuntu终端命令shell常用命令shell命令解释 栈链的基本操作mys...

  • VSCode 中切换默认终端(PowerShell、CMD、WS

    命令面板(Ctrl+Shift+P)中,输入shell选择终端:选择默认 Shell : 之后选择目标Shell。...

  • Fabric01-1

    一:shell脚本基础 1.shell命令 : 在linux终端能够被解析出来的命令2.shell脚本 : 多个s...

网友评论

    本文标题:如何用shell 自定义终端命令?

    本文链接:https://www.haomeiwen.com/subject/miubaxtx.html