别名和自定义功能是我最喜欢的终端自定义之一。 它们使最常用的命令更短,并允许对标准命令进行改进,从而使您可以根据自己的需要和偏好来定制终端中的编程。 我目前使用iTerm2替代终端,使用zsh进行外壳解释,使用oh-my-zsh进行配置管理。 另外,如果您想知道,我使用的是oh-my-zsh agnoster主题。 我还要提到,我的zsh配置不完全是我自己创建的。 我已经编译了我多年来遇到的有用的函数和别名,但是不幸的是,没有全部引用它们。
但是,这是我发现,创建和修改的别名和自定义函数。 我将从终端窗口的初始加载开始。 这部分有点冗长,因此我将其放在这里。
我喜欢一点点ASCII艺术,开始新的一天,这就是它的作用。
1)首先计算iTerm的屏幕宽度。
2)如果宽度小于ASCII字体,则仅打印动态页眉和页脚。 否则,它将完整打印ASCII插图。 打印时看起来像这样:


接下来,我将针对具有不同JDK版本的不同项目进行开发。 最近,较早的项目(使用1.6)最终升级到1.7,因此我没有做太多切换,但是在1.7和1.8之间切换时它仍然很有用。 该命令也很容易使用:
setjdk 1.7会将JDK设置为1.7,依此类推…
函数setjdk(){
如果[$#-ne 0]; 然后
removeFromPath'/系统/库/框架/JavaVM.framework/Home/bin'
如果[-n“ $ {JAVA_HOME + x}”]; 然后
removeFromPath $ JAVA_HOME
科幻
导出JAVA_HOME =`/ usr / libexec / java_home -v $ @`
导出PATH = $ JAVA_HOME / bin:$ PATH
科幻
}
现在,我将跳过基本的ZSH配置更改。 简而言之,我只是为agnoster主题设置字体,设置插件,并采购oh-my-zsh配置。 下一部分主要是使用户功能与我的特定需求更相关,或者至少使实现更易于访问。 这些基于电力线字体的修补版本。
同样,大多数只是用户功能的首选实现,例如列表,更改目录等。接下来,我们还有更多的别名! 我将介绍一些特定的别名,以期使本文简短。
1)thef * ck —“可纠正您先前的控制台命令的强大应用程序。”此命令适用于我输入速度太快,输入明显错误但我不想校正自己的情况。 很有帮助!
别名Desktop =“ cd〜/ Desktop”
别名sourceit =” cp〜/ .zshrc〜/ .bash_profile; 明确; 来源〜/ .bash_profile”
别名clear =“” sourceit; 明确”
别名fuck ='eval $(thefuck $(fc -ln -1
尾-n 1)); fc -R'
2)我在Django中开发了很多个人项目,并在Heroku上托管。 “本地项目快捷方式”只是使平凡的命令更易于访问。
alias runserver ='python manage.py runserver'#Django项目的运行服务器
别名herokurun ='heroku local'#Heroku本地
3)Git快捷键-因为谁真的想再输入5个字符。
## git快捷方式
别名gitCleanLocal =” git reset — hard; git clean -fd”
别名gitSmash =“”查找。 -type d -depth 1 -exec git — git-dir = {} /。git — work-tree = $ PWD / {} pull origin master \;”
alias gst ='git status'#Git状态
别名gc ='git commit'#Git提交
alias gco ='git checkout'#Git结帐
别名ga ='git add'#Git添加
4)repl快捷键-Swift尝试和学习很有趣,但是我并不经常使用它。 八度快捷方式
#Tomcat快捷方式
alias tomstart ='/ Library / Tomcat / bin / startup.sh'#启动tomcat服务器
alias tomstop ='/ Library / Tomcat / bin / shutdown.sh'#停止tomcat服务器
5)ZSH快捷方式
别名zshconfig =” atom〜/ .zshrc”
6)重新启动
别名swift =” lldb-repl”
别名octave =” / usr / local / octave / 3.8.0 / bin / octave-3.8.0; 出口;”
5)Addspace —我使用它,因为Mac的文档不断增长。 它使分离应用程序和保持井井有条变得更加容易。
别名addspace =“”默认为com.apple.dock持久应用-array-add'{tile-data = {}; tile-type = \“ spacer-tile \”;}'&killall Dock“#在菜单中添加一个空格
它使您可以使码头看起来更像这样:


接下来,我有一些非常简单的自定义函数:
— — — — — — — — — — — — — — — — —
#2.6自定义功能
— — — — — — — — — — — — — — — — —
gitDelete(){git push origin —删除$ 1}
notify(){
osascript -e'显示通知“'$ 1'”,标题为“'$ 2'”'
}
— — — — — — — — — — — — — — — — — —
#3.文件和文件夹管理
— — — — — — — — — — — — — — — — — —
#extract:使用一个命令提取最知名的档案
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
提取(){
如果[-f $ 1]; 然后
案例$ 1
* .tar.bz2)tar xjf $ 1 ;;
* .tar.gz)tar xzf $ 1 ;;
* .bz2)bunzip2 $ 1 ;;
* .rar)unrar e $ 1 ;;
* .gz)gunzip $ 1 ;;
* .tar)tar xf $ 1 ;;
* .tbz2)tar xjf $ 1 ;;
* .tgz)tar xzf $ 1 ;;
* .zip)解压缩$ 1 ;;
* .Z)解压缩$ 1 ;;
* .7z)7z x $ 1 ;;
*)回声“'$ 1'不能通过extract()提取” ;;
埃萨克
其他
回显“'$ 1'不是有效文件”
科幻
}
— — — — — — — — — — — — — — — —
#6.网络
— — — — — — — — — — — — — — — —
别名netCons ='lsof -i'#netCons:显示所有打开的TCP / IP套接字
alias flushDNS ='dscacheutil -flushcache'#flushDNS:刷新DNS缓存
别名lsock ='sudo / usr / sbin / lsof -i -P'#lsock:显示打开的套接字
别名lsockU ='sudo / usr / sbin / lsof -nP
grep UDP'#lsockU:仅显示打开的UDP套接字
别名lsockT ='sudo / usr / sbin / lsof -nP
grep TCP'#lsockT:仅显示打开的TCP套接字
alias ipInfo0 ='ifconfig en0'#ipInfo0:获取有关en0的连接信息
alias ipInfo1 ='ifconfig en1'#ipInfo1:获取有关en1连接的信息
别名openPorts ='sudo lsof -i
grep LISTEN'#openPorts:所有监听连接
alias showBlocked ='sudo ipfw list'#showBlocked:所有ipfw规则inc /被阻止的IP
#ii:显示有用的主机相关信息
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
ii(){
echo -e“ \ n您已登录$ {RED} $ HOST”
echo -e“ \ n附加信息:$ NC”; 优名
echo -e“ \ n $ {RED}用户登录:$ NC”; -
echo -e“ \ n $ {RED}当前日期:$ NC”; 日期
echo -e“ \ n $ {RED}机器状态:$ NC”; 正常运行时间
echo -e“ \ n $ {RED}当前网络位置:$ NC”; 选择
echo -e“ \ n $ {RED}公共IP地址:$ NC”; myip
#echo -e“ \ n $ {RED} DNS配置:$ NC”; scutil — DNS
回声
}
1)gitDelete只是删除一个远程分支
2)通知实际上是超级有用的。 在构建长期运行的项目(例如maven构建)时,这会将警报发布到Mac的通知中心,以说明输入内容。
3)提取是提取大多数已知档案的快捷方式
4)联网和主机信息快捷方式
就是这样! 我想要的人完整的.zshrc文件在此处提供。