Mac
還記得剛做第一份工作的時候拿到一台新的macbook
的時候還蠻興奮的,不過很快地就開始有適應不良的狀況。由於我是因為工作的關係,不得不習慣公司配給我的電腦。
身邊有許多人買了一台macbook
以後,不了解自己電腦的人也很多,我想把我在接手一台新筆電的過程記錄下來。當然以下流程比較針對用macbook
進行開發的朋友,如果有其他需求的歡迎在留言區裡面留言。
由於這次我是接手別人的舊電腦,有些地方跟剛拿到一台新電腦的狀況會不一樣!
- 刪除mac使用者名稱:點選使用者與群組,開啟鎖頭後直接點選減號即可
- 改變mac使用者名稱:
選擇「蘋果」()選單>「系統偏好設定」,然後按一下「使用者與群組」。
➡️ 按一下 ,然後輸入您登入時所用的管理者名稱和密碼。
➡️ 在左側的使用者列表中,按住Control 鍵並按一下您要重新命名的使用者,接著選擇「進階選項」。
➡️ 更改「帳號名稱」欄位,使其與個人專屬檔案夾的新名稱相同。
⚠️ 若原本資料夾內有東西則會被刪除,改名前先做好備份 - 下方欄彈性內縮:系統偏好設定 ➡️ Dock 與選單列 ➡️ 自動隱藏與顯示Dock
- 滑鼠(使用觸控板不會遇到)
👀 軌跡:系統偏好設定 ➡️ 滑鼠 ➡️ 改變軌跡速度
👀 右鍵:系統偏好設定 ➡️ 滑鼠 ➡️ 輔助按鈕
👀 縮放:系統偏好設定 ➡️ 滑鼠 ➡️ 智慧型縮放 - Finder 新增家目錄(Home) :Finder 偏好設定 ➡️ 勾選家目錄
- 顯示隱藏的資料夾:快捷鍵
command + shift + .
- Command + Tab:切換正在開啟的應用程式
- 在 Finder 利用指令找資料夾 ➡️
Cmd + Shift + g
- 在 Finder 利用指令連接FTP ➡️ 打開Finder,按下command+K
Chrome
- 書籤調整:右上角三個點 ➡️ 書籤 ➡️ 書籤管理員
下載
- Office 365
- JetBrains Toolbox:當有額外想要安裝的軟體,就可以利用Toolbox安裝
➡️ RubyMine:寫 Rails
➡️ Webstorm:寫 Javascript - Typora
ITerm2
- 先安裝ITerm2編輯器,安裝指令為
brew install — cask iterm2
- 進入iTerm2 ️ ➡️Preferences ➡️ Color,並且將Github專案拉近自己電腦中,右下角匯入完後,就可以選擇自己喜歡的顏色了。
Oh My Zsh
- 安裝指令(直接從官方github複製):
sh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
nano ~/.bashrc
佈置環境(把原本的robbyrussell
改成agnoster
),並且重新執行 command line ➡️exec $SHELL
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="agnoster"
- 裝完之後環境如下,因此還要再另外改字體樣式
- 改動的方法為
brew tap homebrew/cask-fonts
➡️brew search nerd
(nerd相關字體)➡️brew install font-ubuntu-mono-nerd-font
➡️ 在 Preferences 👉 Profiles 👉 Texts 👉 下方文字選下載的字題即可
- 產生命令列提示:使用 zsh-autosuggestions
🥷 個人使用
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
➡️ 並且在zshrc
內加入source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
- 相關設定參考資料:
Command Line
- 查看電腦啟動 ruby 位置 :
which ruby
➡️/usr/bin/.rbenv/shims/ruby
為啟動版本控管rbenv
的ruby
➡️/user/bin/ruby
則是啟動系統 ruby - 一些常用的 command prompt 快捷鍵
Tab => 把沒打完的自動打完(依據以前打過的指令)
ctrl + L => 清除command prompt的東西
ctrl + A => 將游標移到最前面
ctrl + E => 將游標移到最後面ctrl + U(Q) => 刪除該行
ctrl + K => 刪除游標後面,保留游標前面
ctrl + W => 刪除游標前面,保留游標後面(若指令有空白字元時,會一落一落刪)
ctrl + H => 刪除游標後面,保留游標前面(刪除一個字元)
ctrl + D => 刪除游標前面,保留游標面(刪除一個字元)
ctrl + Y => 用了上述刪除指令的反悔復原ctrl + P => 看上一個指令
ctrl + N => 看下一個指令
問題
- 要如何處理手動執行
source ~/.bashrc
的問題:
➡️ Google 關鍵字:bashrc auto source
.bashrc
不會自動讀入
Been there, done that. What I came aware of, OS X doesn’t read.bashrc
file on bash start. Instead, it reads the following files (in the following order):/etc/profile
❤️~/.bash_profile
❤️~/.bash_login
❤️~/.profile
if [ -s ~/.bashrc ]; then
source ~/.bashrc;
fi
- 常理來說,
~/.bash_profile
會自動讀入,但如果有使用oh-my-zsh
就不會自動讀入 ➡️ If you are using oh-my-zsh, the default one that will be loaded automatically is~/.zshrc
. All you need to do is adding the following at the end of~/.zshrc
,取而代之的是在~/.zshrc
寫入:
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
- 如果利用system ruby bundle 會出問題:️網頁的最底下利用更動環境變數解決了,但因用版本控管工具的解法還是比較好。這方面就不採納!
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to RubyGems using sudo.
Password:
- Mysql2::Error::ConnectionError: Can’t connect to MySQL server on ‘127.0.0.1’ (61) ➡️ 目前還找不到確切的問題,所以利用walk around的方式把資料庫放在docker 內,讓專案連進 docker 的資料庫
> mysql -u root (登入動作)ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- pg 無法使用問題,以及解決方式:
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
# 解決方式
$ rm /usr/local/var/postgres/postmaster.pid
$ brew services restart postgresql
- brew 無法寫入:
Mysql
- 大多數的專案不會將
database.yml
放進 git 內,所以開發者必須好好留住該檔案。
- 使用
gem mysql2
時可能會遇到的問題:
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before
bundling.
解決方法:
# 解法1
bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"# 解法2
gem install mysql2 -- --with-cflags=\"-I/usr/local/opt/openssl/include\" --with-ldflags=\"-L/usr/local/opt/openssl/lib\"# 解法3
bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"
bundle install
如果裝了bundle,但是本地的mysql建置卻有問題的話,在docker啟動 mysql也是一種選擇,所以後來要告訴讀者要怎麼在mac使用docker
rails db:migrate
問題:
Access denied for user 'root'@'localhost' (using password: YES)
Couldn't create 'tungrp_dev' database. Please check your configuration.rails aborted!
Mysql2::Error::ConnectionError: Access denied for user 'root'@'localhost' (using password: YES)
/Users/chenhanting/Documents/liteshop/tungrp-backend/bin/rails:9:in `<top (required)>'/Users/chenhanting/Documents/liteshop/tungrp-backend/bin/spring:15:in `<top (required)>'
遇到權限不足,代表database.yml
密碼打錯,更正即可。如果忘記密碼,可以:
- Make sure you have Stopped MySQL first (above).
- Run the server in safe mode with privilege bypass:
sudo mysqld_safe --skip-grant-tables
- In a new window connect to the database, set a new password and flush the permissions & quit:
mysql -u root
- Run the server in safe mode with privilege bypass: sudo mysqld_safe — skip-grant-tables(連結)
# Terminal
mysql -u root# mysql
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;
# Terminal
mysql -u root# mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
- 遇到 Mysql2::Error::ConnectionError: Can’t connect to MySQL server on ‘127.0.0.1’ (61) 如何解決
首先先brew services stop mysql
,再 Stop the mysql server
sudo mysql.server stop
再來 Start mysql in safe mode
sudo mysqld_safe --skip-grant-tables
最後 exec $SHELL
,再brew services start mysql
。確定 mysql -u root -p
可以登入後就可以rails db:migrate
Docker
無法本地無法連上mysql,就可以使用 docker 連 mysql。首先要先下載docker,下載完之後就可以使用docker指令
終端機:
mysql:5.7
的部分,可以改成mysql:latest
/mysql:5.6
mysql_han
這邊可以填寫取名自己喜歡的名字
# mysql
docker run --name mysql_han -e MYSQL_ROOT_PASSWORD=password -p "3306:3306" -d mysql:5.7# postgres
docker run --name postgres_han -e POSTGRES_PASSWORD=password -d postgres
安裝畫面長這樣:
pg也可以:
docker run --name pg_han -e MYSQL_ROOT_PASSWORD=password -p "3306:3306" -d postgres:latest
Ruby
- rails db:setup = rails db:(create + migrate + seed)
- rails db:prepare = rails db:(create + migrate + seed)
- In a nutshell
rails db:seed:replant
truncates all the database tables for the current environment and then loads the seeds. Run the task with--trace
option can see in detail what all it does.
rbenv
ruby 的版本控管工具一共有三種,分別為rvm
, chruby
, rbenv
。個人是沒有什麼偏好,在第一間公司的時候用的是rvm
,之後就一直用rbenv
。
- 系統的 ruby 切換到 rbenv (參考這裡)
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
- ruby versions
- rbenv version
- rbenv local 2.7.1 ➡️ 切換到2.7.1版 ⚠️ 如果有環境變數則無效
- env | grep RBENV
- rbenv shell 2.7.1 ➡️ 改變 RBENV_VERSION
我後來直接在bash_profile
裡面寫入 rbenv shell — unset
,使去除環境變數 RBENV_VERSION
- 使用rbenv安裝ruby最新版本卻發現沒有,可以upgrade看看。
brew upgrade rbenv ruby-build
設定alias
- 設定
icloud
路徑:在~/.bash_profile設定以下指令並且 exec $SHELL 即可使用
alias icloud='cd ~/Library/Mobile\ Documents/com~apple~CloudDocs'
- 刪除rbenv
➡️ Remove using brew: brew remove rbenv
➡️ Delete .rbenv
directory: rm -rf ~/.rbenv
➡️ Open .bash_profile
file and delete any lines with rbenv in them: vi ~/.bash_profile
➡️ Open .bashrc
file and delete any lines with rbenv in them: vi ~/.bashrc
SSH
Ngrok
ngrok 做為一個轉發的伺服器,可以把外界的請求轉發到你指定的 Port,使用的背景原理是連接到 ngrok 雲端伺服器,將你本機指定的地址公開,再將由 ngrok 一串公開的網址來存取內容。
他的優點是快速而且還提供了 https 的服務讓你使用上更安全,甚至還可以設置密碼保護。
- 使用方式:下載 ➡️ 解壓縮 ➡️ 將ngrok放在要執行的資料夾(我放在icloud裡面)➡️ 在放置 ngrok 位置的地方執行 ngrok指令
- bash 指令中,alias可以加入參數嗎?
答案為不行(詳述在上方連結 ⬆️),不過可以在shell裡面寫function,並外部執行:
# 使用 ngrok
ngrok() {
cd "$icloud_path/Documents/application"
./ngrok http "$1"
}
如此一來,執行ngrok 3000
即可執行ngrok指令。
環境變數
以下三個mac使用者
常碰到的環境設定檔裡面,我的設定檔設定方式如下
- bash_profile ➡️ alias 為個人電腦的快捷鍵
- bashrc
- zshrc
SourceTree
- Invalid Username or password 的解決辦法:
1. Open finder, click Cmd + Shift + g2. enter ~/Library/3. Go to Application Support/SourceTree folder4. delete userName@STAuth-bitbucket.org5. Open KeyChain Access6. search for sourctree7. delete the ‘login’ item8. clone your source from bitbucket9. KeyChain will ask for you bitbucket pass
Bundle
- 如果bundle出現問題則可以試試看
bundle config set --local path 'vendor/bundle'