Mac 终端效率神技

一、 增强各种预览的插件

  • 预览查看图片分辨率&大小

  • 代码语法高亮

  • 快速预览zip压缩包内容

  • 快速预览markdown格式内容

    brew cask install qlcolorcode betterzipql qlimagesize qlmarkdown

二、 iTerm2

具体的配置网上一大堆。贴一个本人亲身操刀操作过的教程

程序员经常与终端操作打交道,所以很多命令便是做成了命令行模式,在自带的 Terminal 命令都保存在 .bash_profile 文件中,使用了 iterm2,命令都保存在 .zshrc 中。

所以我们将很多命令保存且编辑。这里也是分享出我个人常用的配置。不断更新,喜欢的同学可以拿去直接使用

1# 输入自己常用的命令 2# finder 相关指令 3alias co='code ./' 4alias fo='open ./' 5 6# pod 和 xcode 工程相关指令 7alias o='open *.xcodeproj' 8alias po='open *.xcworkspace' 9alias pru='pod repo update' 10alias pi='pod install' 11alias pu='pod update' 12alias piu='pod install --repo-update' 13alias repoanalysis='specbackwarddependency /Users/liubinpeng/.cocoapods/repos/XXCompany_specs' 14alias plint='pod lib lint --sources=git@git.***-inc.com:client/App-Specs.git,git@git.***-inc.com:client/CocoaPods-Specs.git --allow-warnings --verbose --use-libraries' 15alias errorShow=' >1.log 2>&1' 16# git 相关指令 17alias gck='git checkout' 18alias gm='git merge' 19alias gb='git branch' 20alias gbr='git branch -a' 21alias gs='git status' 22alias gc='git clone' 23alias gl='git log' 24alias ga='git add .' 25alias gpull='git pull' 26alias gpush='git push' 27alias gcm='git commit -m' 28alias glocalbranchPush='git push --set-upstream origin ' 29alias glg="git log --graph --pretty=format:'%Cred%h%Crest -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative" 30# npm 相关指令 31alias ns='npm start' 32alias ni='npm install' 33alias nb='npm run build' 34alias nig='npm install -g ' 35alias nt='npm test' 36 37# Vue 相关命令 38alias vc='vue-init webpack' # (vue-init webpack test1)用法 vc test1 39 40# React 41alias rc='create-react-app' #(create-react-app todolist)用法 rc todolist 42 43# React Native 命令 44alias rnc='react-native init' #(react-native init todolist)用法 rnc todolist 45alias RNRelease='react-native bundle --entry-file index.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_iOS --sourcemap-output release_ios/index.ios.map;' # RNRelease46 47# 终端打开应用程序 48## 浏览器打开 49alias OpenWithSafari='open -a "/Applications/Safari.app" ' 50alias OpenWithChrome='open -a "/Applications/Google Chrome.app" ' 51## 用 Typora 打开 markdown 文件预览写作效果。 52alias OpenMDPreview='open -a "/Applications/Typora.app" ' 53## 用 DB Browser for SQLite 打开 db 文件 54alias OpenDB='open -a "/Applications/DB Browser for SQLite.app" ' 55## 用 SourceTree 打开工程 56alias openSourceTree='open -a "/Applications/Sourcetree.app/" ' 57# Flutter 环境变量 58 59export PUB_HOSTED_URL=https://pub.flutter-io.cn 60export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn 61export PATH=/Users/liubinpeng/flutter/bin:$PATH 62 63 64# Android SDK 路径 65 66export ANDROID_HOME=~/Library/Android/sdk 67export PATH=${PATH}:${ANDROID_HOME}/emulator 68export PATH=${PATH}:${ANDROID_HOME}/tools 69export PATH=${PATH}:${ANDROID_HOME}/platform-tools 70 71 72# iOS 模拟器开启 73alias iOSSimulator='open -a Simulator' 74 75export NVM_DIR="$HOME/.nvm" 76[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 77[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 78 79 80# Node Version Manager 81export NVM_DIR="$HOME/.nvm" 82[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 83[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 84# Add RVM to PATH for scripting. Make sure this is the last PATH variable change. 85export PATH="$PATH:$HOME/.rvm/bin" 86 87export N_PREFIX=/usr/local/bin/node #根据你的安装路径而定 88export PATH=$N_PREFIX/bin:$PATH 89export PATH=/Users/liubinpeng/Desktop/Github/GitWorkflow/bin:$PATH 90 91 92# chrome 源码探究 93# export PATH=/Users/liubinpeng/Desktop/Tech-Research/iOS/depot_tools:$PATH 94 95 96# 指定 pyhton 版本 97# Setting PATH for Python 2.7 98PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 99export PATH 100# Setting PATH for Python 3.7.4 101PATH="/usr/local/Cellar/python/3.7.4/bin:${PATH}" 102 103alias python='/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7' 104alias python3='/usr/local/Cellar/python/3.7.4/bin/python3' 105 106 107 108# 禁止终端利用 homebrew 安装插件时候的自动更新 109 110alias disableHomebrewUpdate="export HOMEBREW_NO_AUTO_UPDATE=true" 111 112 113# 终端搜索资料相关的设置(开关开启后稍微有点延迟) 114 115function proxy_off(){ 116 unset ALL_PROXY 117 echo -e "已关闭代理" 118} 119 120function proxy_on(){ 121 export ALL_PROXY=socks5://127.0.0.1:1081 122 echo -e "已开启代理" 123} 124 125 126# PHP 包管理工具,composer 127export PATH="~/.composer/vendor/bin:$PATH" 128 129# python 版本切换工具,全局生效 130export PYENV_ROOT=~/.pyenv 131export PATH=$PYENV_ROOT/shims:$PATH 132 133 134# 效率 135# 统计当前文件夹下文件的数量 136alias showFilesCount='ls -l |grep "^-"|wc -l'

退出编辑,执行 source .zshrc

验证:在你的 git 项目所在的目录的终端下输入 glg Git日志

三、 为你的终端添加常用快捷键

我们经常在终端做着一些纯指令的事情,天天敲、月月敲这个时间的很浪费的,一天节约5分钟,一年节约365*5/60 = 30H。一算吓一跳。我们每年在一些终端的指令上浪费了这么多时间。今天记录下如何给自己的 Mac 终端添加快捷键。

如果是 zsh 的话,可以编辑 .zshrc 文件里面的内容。自带的终端则编辑 bash_profile 脚本具体看上一条。

1. 输出文件目录结构

brew install tree

用法:

  1. 我们可以在目录遍历时使用 -L 参数指定遍历层级

    tree -L 2
    
  2. 如果你想把一个目录的结构树导出到文件 Readme.md ,可以这样操作

    tree -L 2 >README.md //然后我们看下当前目录下的 README.md 文件
    
  3. 只显示文件夹

    tree -d 
    
  4. 显示项目的层级,n表示层级数。例:显示项目三层结构,tree -l 3

    tree -L n 
    
  5. tree -I pattern 用于过滤不想要显示的文件或者文件夹。比如要过滤项目中的node_modules文件夹

    tree -I “node_modules”
    

2. 浏览器相关

  1. 搜索

    在指定的站点下搜索 inurl: jobbole.com intitle:Hybrid

3. 百度云盘破解

  1. 会员体验一般为60秒,通过本代码可以一直以会员的速度下载。

    git clone https://github.com/CodeTips/BaiduNetdiskPlugin-macOS.git && ./BaiduNetdiskPlugin-macOS/Other/Install.sh

  2. 百度网盘全速下载

4. 常用快捷键

很多情况下,我们会在终端编辑文件,为了提交效率就有了以下快捷键。

  • ESC + dd:删除当前一行的数据

四、「安全与隐私」中系统不显示「任何来源」

在终端执行下面的命令

sudo spctl --master-disable

五、 系统错误信息的集中展示

pod spec lint *** 2>&1|tee 1.log

经常在终端做操作,有个情况就是在 iOS 的组件库维护的时候去检测合法性。你会发现满屏幕都是信息,甚至好几页,但是事实上错了问题后我们去翻页的时候发现很不方便定位问题,所以想到的就是将该过程产生的任何输出,集中打印到一个地方去查看。代码如上。

几个概念:

  • 0 stdin,1 stdout,2 stderr
  • |:管道。管道的作用是提供一个通道,将上一个程序的标准输出重定向到下一个程序作为下一个程序的标准输入。
  • tee:从标准输入中读取,并将内容写到标准输出以及文件中。

六、 终端查找文件

  1. 终端查找以‘.log’结尾的文件

    find . -name '*.log'

  2. 安装 ack 包.

    brew install ack

使用起来很简单,比如 ack + 你要查找的关键词,它可以将查到的结果展示在下面,有完整的文件路径.

效果图

终端每次执行 brew install 都会更新,非常耗时,如何禁止更新。

export HOMEBREW_NO_AUTO_UPDATE=true

七、 Mac 终端如何搜索资料

强烈安利一个我用过最快速、最便宜也就是性价比最高的搜索资料工具。链接 个人使用的也就是一年120元不到,一个月 60G 流量足够了,打开一些网站秒开。

另外很多开发都需要终端下载一些资源,但是终端走的通道和浏览器不一样,所以浏览器可以搜索资料,终端还是不可以,所以可以在 .zshrc 或者 .bash_profile 下加下面的脚本

1function proxy_off(){ 2 unset ALL_PROXY 3 echo -e "已关闭代理" 4} 5 6function proxy_on(){ 7 export ALL_PROXY=socks5://127.0.0.1:1081 8 echo -e "已开启代理" 9}

使用 proxy_on 开启终端搜索资料模式、proxy_off 关闭终端搜索资料模式。

八、 云服务器使用场景

作为一个大前端开发者,我经常使用云服务器部署个人 App 服务、个人博客部署、自动化定时任务等等。

个人博客本地部署可以分享下我的做法:

本来是用 Markdown 写作,提交到 Github 某个 repo 作为博客的,后来想想还是不够方便,所以用 Nodejs 写了个部署脚本。

采用 HEXO 方便处理 md 文件;自己的编写的样式;开发了 Node 脚本,将 knowledge-kit 这个 repo 中的博客文件,按照需要的格式迁移到 hexo source 目录下。 需要的可以直接下载 clone,修改下代码路径。代码里面有注释。详情可以查看这个 Repo

云服务器个人使用的是腾讯云,可以部署自己的 HTTPS 证书。各种 GUI 面板很方便。

持续更新中...

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )