博客 / 詳情

返回

Mac 終端效率神技

一、 增強各種預覽的插件

  • 預覽查看圖片分辨率&大小
  • 代碼語法高亮
  • 快速預覽zip壓縮包內容
  • 快速預覽markdown格式內容
brew cask install qlcolorcode betterzipql qlimagesize qlmarkdown

二、 iTerm2

具體的配置網上一大堆。貼一個本人親身操刀操作過的教程

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

所以我們將很多命令保存且編輯。這裏也是分享出我個人常用的配置。不斷更新,喜歡的同學可以拿去直接使用

# 輸入自己常用的命令
# finder 相關指令
alias co='code ./'
alias fo='open ./'

# pod 和 xcode 工程相關指令
alias o='open *.xcodeproj'
alias po='open *.xcworkspace'
alias pru='pod repo update'
alias pi='pod install'
alias pu='pod update'
alias piu='pod install --repo-update'
alias repoanalysis='specbackwarddependency /Users/liubinpeng/.cocoapods/repos/XXCompany_specs'
alias 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'
alias errorShow=' >1.log 2>&1'
# git 相關指令
alias gck='git checkout'
alias gm='git merge'
alias gb='git branch'
alias gbr='git branch -a'
alias gs='git status'
alias gc='git clone'
alias gl='git log'
alias ga='git add .'
alias gpull='git pull'
alias gpush='git push'
alias gcm='git commit -m'
alias glocalbranchPush='git push --set-upstream origin '
alias 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"
# npm 相關指令
alias ns='npm start'
alias ni='npm install'
alias nb='npm run build'
alias nig='npm install -g '
alias nt='npm test'

# Vue 相關命令
alias vc='vue-init webpack' # (vue-init webpack test1)用法 vc test1

# React 
alias rc='create-react-app' #(create-react-app todolist)用法 rc todolist

# React Native 命令
alias rnc='react-native init' #(react-native init todolist)用法 rnc todolist
alias 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;' # RN 打 Release 包

# 終端打開應用程序
## 瀏覽器打開
alias OpenWithSafari='open -a "/Applications/Safari.app" '
alias OpenWithChrome='open -a "/Applications/Google Chrome.app" '
## 用 Typora 打開 markdown 文件預覽寫作效果。
alias OpenMDPreview='open -a "/Applications/Typora.app" '
## 用 DB Browser for SQLite 打開 db 文件
alias OpenDB='open -a "/Applications/DB Browser for SQLite.app" '
## 用 SourceTree 打開工程
alias openSourceTree='open -a "/Applications/Sourcetree.app/" '
# Flutter 環境變量

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Users/liubinpeng/flutter/bin:$PATH


# Android SDK 路徑

export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/emulator
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools


# iOS 模擬器開啓
alias iOSSimulator='open -a Simulator'

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion


# Node Version Manager
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"

export N_PREFIX=/usr/local/bin/node #根據你的安裝路徑而定
export PATH=$N_PREFIX/bin:$PATH
export PATH=/Users/liubinpeng/Desktop/Github/GitWorkflow/bin:$PATH


# chrome 源碼探究
# export PATH=/Users/liubinpeng/Desktop/Tech-Research/iOS/depot_tools:$PATH


# 指定 pyhton 版本
# Setting PATH for Python 2.7
PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
# Setting PATH for Python 3.7.4
PATH="/usr/local/Cellar/python/3.7.4/bin:${PATH}"

alias python='/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'
alias python3='/usr/local/Cellar/python/3.7.4/bin/python3'



# 禁止終端利用 homebrew 安裝插件時候的自動更新

alias disableHomebrewUpdate="export HOMEBREW_NO_AUTO_UPDATE=true"


# 終端搜索資料相關的設置(開關開啓後稍微有點延遲)

function proxy_off(){
    unset ALL_PROXY
    echo -e "已關閉代理"
}

function proxy_on(){
    export ALL_PROXY=socks5://127.0.0.1:1081
    echo -e "已開啓代理"
}

 
# PHP 包管理工具,composer
export PATH="~/.composer/vendor/bin:$PATH"

# python 版本切換工具,全局生效 
export PYENV_ROOT=~/.pyenv
export PATH=$PYENV_ROOT/shims:$PATH


# 效率
# 統計當前文件夾下文件的數量
alias 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
  1. 百度網盤全速下載
  • 先將你需要下載的地址複製進瀏覽器
  • 然後在域名 baidu 後面拼接 wp
  • 回車。訪問頁面,選擇下載地址1即可全速下載。
// 之前
https://pan.baidu.com/s/1ubcQH34m69hIjYu3CD2S2g
// 之後
https://pan.baiduwp.com/s/1ubcQH34m69hIjYu3CD2S2g

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'
  1. 安裝 ack 包.
brew install ack

使用起來很簡單,比如 ack + 你要查找的關鍵詞,它可以將查到的結果展示在下面,有完整的文件路徑.

效果圖

終端每次執行 brew install 都會更新,非常耗時,如何禁止更新。

export HOMEBREW_NO_AUTO_UPDATE=true

七、 Mac 終端如何搜索資料

強烈安利一個我用過最快速、最便宜也就是性價比最高的搜索資料工具。鏈接 個人使用的也就是一年120元不到,一個月 60G 流量足夠了,打開一些網站秒開。

另外很多開發都需要終端下載一些資源,但是終端走的通道和瀏覽器不一樣,所以瀏覽器可以搜索資料,終端還是不可以,所以可以在 .zshrc 或者 .bash_profile 下加下面的腳本

function proxy_off(){
    unset ALL_PROXY
    echo -e "已關閉代理"
}

function proxy_on(){
    export ALL_PROXY=socks5://127.0.0.1:1081
    echo -e "已開啓代理"
}

使用 proxy_on 開啓終端搜索資料模式、proxy_off 關閉終端搜索資料模式。

八、 雲服務器使用場景

作為一個大前端開發者,我經常使用雲服務器部署個人 App 服務、個人博客部署、自動化定時任務等等。

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

本來是用 Markdown 寫作,提交到 Github 某個 repo 作為博客的,後來想想還是不夠方便,所以用 Nodejs 寫了個部署腳本。

採用 HEXO 方便處理 md 文件;自己的編寫的樣式;開發了 Node 腳本,將 knowledge-kit 這個 repo 中的博客文件,按照需要的格式遷移到 hexo source 目錄下。 需要的可以直接下載 clone,修改下代碼路徑。代碼裏面有註釋。詳情可以查看這個 Repo

雲服務器個人使用的是騰訊雲,可以部署自己的 HTTPS 證書。各種 GUI 面板很方便。

持續更新中...

user avatar witchan 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.