我的 command prompt 設定

2018-01-29 更新

適用於 macOS 10.13.2

來一點嘻嘻哈哈的配色吧!

PS1="\[\033[1;31m\]\t\[\033[0m\] \[\033[1;33m\]\u\[\033[0m\] \[\033[1;32m\]\h\[\033[0m\] \[\033[1;34m\]\w\[\033[0m\] 🦁 "

但建議還是把 emoji 拿掉,我在 iTerm2 換行會怪怪的

2015-07-13

因為買了新電腦,想把command prompt改得比較實用一點,發現自己完全忘記怎麼改了,再度驗證了考LPIC是沒有用的XD

Mac的個人command prompt檔案位置在 ~/.bash_profile
如果沒看到的話,自己打開隱藏檔,如果還是沒看到的話就自己nano一個新的

sudo nano ~/.bash_profile

重新讀取 .bash_profile 指令:

source ~/.bash_profile

目前的prompt:

export PS1=”[$(date +%k:%M:%S)] \[email protected]\h \w $”

範例顯示:

[ 1:55:58] [email protected] ~ $

總共有哪些指令要另外爬文找了,參考文獻裡面有

—參考文獻—
[1] How to reload .bash_profile from the command line? – http://stackoverflow.com/questions/4608187/how-to-reload-bash-profile-from-the-command-line
[2] How to suppress (or customize) Mac Terminal shell prompt – http://stackoverflow.com/questions/14416274/how-to-suppress-or-customize-mac-terminal-shell-prompt
[3] Bash Shell PS1: 10 Examples to Make Your Linux Prompt like Angelina Jolie – http://www.thegeekstuff.com/2008/09/bash-shell-ps1-10-examples-to-make-your-linux-prompt-like-angelina-jolie/
[4] Customize Your Shell & Command Prompt – http://blog.taylormcgann.com/tag/prompt-color/
[5] [Unix] 讓Bash增添色彩 與 多字元換行問題 – http://blog.xuite.net/sphjlc062218/thinking/63628944-%5BUnix%5D+%E8%AE%93Bash%E5%A2%9E%E6%B7%BB%E8%89%B2%E5%BD%A9+%E8%88%87+%E5%A4%9A%E5%AD%97%E5%85%83%E6%8F%9B%E8%A1%8C%E5%95%8F%E9%A1%8C

在Mac上利用 .NET Core SDK 跨平台開發 C Sharp

基本相依套件

先裝好以下套件:

Homebrew(http://brew.sh/index_zh-tw.html)
X Code Command Line Tool(自己去App Store抓)

1. 安裝相依套件

brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

2. 安裝 .NET Core for Mac

下載pkg來安裝:
https://www.microsoft.com/net/download

3. OS X 10.11 會發現不能跑dotnet指令

處理一下預設的路徑即可:

ln -s /usr/local/share/dotnet/dotnet /usr/local/bin

4. 測試

dotnet new
dotnet restore
dotnet run

Hello World 就出現拉~

然後就安裝Visual Studio Code,測試一下那IDE的自動完成功能。

其實VSC很聰明,基於ATOM,裝什麼就去商店抓,相依還會自己檢查,我後來想,會用這個工具主要是Debug,可以設中斷點、看堆疊,不然其實Build在CMD處理即可,PHP這種Debug可以硬幹,直接顯示在網頁上,但是我想現在應該不能這樣了,現在可是後端工程師XD!

::安裝C#套件並啟用

這個微軟的套件其實是 C# for Visual Studio Code (powered by OmniSharp)
http://www.omnisharp.net/

也會有一些相依性的東西在默默安裝

不過目前Debug區出現了一些警告,我還沒研究這是什麼…

—— 參考文獻 ——
[1] .NET – Powerful Open Source Cross Platform Development : https://www.microsoft.com/net/
[2] core/known-issues.md at master · dotnet/core · GitHub – https://github.com/dotnet/core/blob/master/cli/known-issues.md

macOS Sierra 10.12 使用心得與技巧

2016-09-20,macOS新版本一上架我就立刻下載安裝了,忍受El Capitan的kernel爆炸太久了,就賭這新版本應該會比以前更好用(吧)。

安裝完立刻把Siri關掉,我沒事是不會跟電腦聊天的,接著陸續安裝好基本需求工具(謎之音:X-Force全系列都開不起來,有這方面需求的人要注意),以及分割100GB給Bootcamp,大致上完成了應用方面的軟體安裝。

目前使用上沒有太大問題,但感覺系統還沒有很穩定,像是有一次從休眠模式醒來後,顯示卡延遲了快30秒才能正常顯示顏色,還有就是使用Safari時,如果已經安裝好Chrome,他會詢問是否要從Chrome匯入書籤,我明明就按不要結果他全部都匯入進來了…整個崩潰,現在書籤超亂。開發環境的部分,因為我想把開發環境轉移到虛擬機器上,所以就不針對開發工具做測試了。接下來有幾個小地方想特別介紹一下:

1. 打開「允許任何來源的App安裝」這功能竟然不見了

如果有在 Mac OS X 測試安裝過非官方認證的App,一定看過這個畫面

file

但是在macOS Sierra被拿掉了,沒關係,只要在Terminal輸入以下指令就可以變出這個功能:

sudo spctl --master-disable

2. 新功能「大寫鎖定鍵自動切換輸入法」目前跟Chrome 53.0.2785.116 (64-bit)有衝突

目前的版本macOS Sierra 10.12有個自動切換輸入法的功能,就是當你使用中文輸入法,想輸入英文時,除了直接切換成英文輸入法之外,還可以按下caps lock鍵來暫時輸入英文,在macOS Sierra中,按下caps lock後還可以自動幫你切換成英文輸入法,但是這功能在Chrome中會造成當機,可以暫時先把它關閉:

typer

但我不知道是要等Chorme更新還是Sierra更新就是了XD

3. 「螢幕擷取」終於可以選擇輸出檔案格式

這真是太感動了,直接看圖就知道

window

實在是困擾我超級久,之前每次螢幕截圖都還要轉檔超麻煩的

WordPress 轉址與中文網址在 IIS 上會遇到的問題

以下包含暫時解法,因為是直接動WordPress Kernel

1. WordPress 網址無法轉址(Permalinks)

要修改 web.config 檔

 <?xml version="1.0" encoding="UTF-8"?>

<configuration>

 <system.webServer>

 <rewrite>

 <rules>

 <rule name="wordpress" stopProcessing="true">

 <match url=".*" />

 <conditions logicalGrouping="MatchAll">

 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />

 </conditions>

 <action type="Rewrite" url="index.php" />

 </rule>

 </rules>

 </rewrite>

 </system.webServer>

</configuration>

2. WordPress 中文網址無法正常轉址

修改 wp-includes/ 底下的 class-wp.php

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';

改成

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding( $_SERVER['PATH_INFO'], 'UTF-8', 'Big5') : '';

然後

list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );

改成

list( $req_uri ) = explode( '?', mb_convert_encoding( $_SERVER['REQUEST_URI'], 'UTF-8', 'Big5' )  );

3. WordPress 中文檔案上傳錯誤
修改 wp-admin/includes/ 底下的 file.php

$filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );

改成

$fileTypeNameArr = explode( '.', $filename );
$countNum = count( $fileTypeNameArr ) - 1;
$fileExt = $fileTypeNameArr[$countNum];
$filename = time() . '-' . rand( 0,999999999 ) . '.' . $fileExt;

—-參考文獻—-
[1] Using Permalinks – https://codex.wordpress.org/Using_Permalinks
[2] [WordPress]中文網址,發生404錯誤,教你如何解決? – http://dev.brucelulu.com/topics/180
[3] How to Setup WordPress Permalinks – https://gist.github.com/jonahvsweb/5479580
[4] IIS permalinks compatibility – web.config not working? – http://stackoverflow.com/questions/27988710/iis-permalinks-compatibility-web-config-not-working
[5] 解決 WordPress 在 IIS 中無法使用固定網址的問題 – http://www.minitw.com/archives/server/solved-can-not-be-used-in-iis-wordpress-permalink-issue.htm?variant=zh-tw
[6] WordPress小技巧(1):解決中文檔名圖片無法上傳問題 – http://www.cc.net.tw/2013/07/434/

Google Cloud的MySQL炸掉了 之 參數調整方法

搜尋了一下,還蠻多人有一樣的困擾的,MySQL突然就被衝到炸掉。
首先第一步,調閱MySQL log來看一下,發現記憶體調用失敗,於是把內部log打開:

[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log

[mysqld]
log_error=/var/log/mysql/mysql_error.log

發現總是跑出

InnoDB: The InnoDB memory heap is disabled

如果沒開,他會直接吃主機記憶體,處理一下 /etc/mysql/my.cnf,加入這句:

innodb_use_sys_malloc =  0

重開後就出現訊息

InnoDB: Initializing buffer pool, size = 128.0M

是的,預設buffer pool為128MB,稍微爬文了一下發現是夠用的,以中型網站來說。
這個參數並不是越大越好,要看機器本身夠不夠用。

—-參考文獻—-
[1] Ubuntu 安裝和設定 MySQL – http://www.arthurtoday.com/2009/11/ubuntu-910-mysql.html
[2] mytop – MySQL 效能監測工具 – http://www.arthurtoday.com/2013/04/ubuntu-install-mytop.html
[3] Amazon EC2 免費實例: MySQL 崩潰之資料庫 log 查看及設定調教 – http://40era.com/4245/
[4] 15.14 InnoDB Startup Options and System Variables – http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html
[5] How and When To Enable MySQL Logs – http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs
[6] How to Fix ERROR InnoDB: The InnoDB memory heap is disabled – https://www.debian-tutorials.com/how-to-fix-error-innodb-the-innodb-memory-heap-is-disabled

指定單一資料夾權限給WebFaction的新SSH使用者

因為客戶Host在WebFaction上,而我們的WebFaction也有其他客戶共用,所以不能讓他的FTP有太多權限,如果只在WebFaction的Panel上增加SSH使用者,他的權限可以大到能瀏覽整個Project List及裡面的檔案,為了隱私權我們只好透過SSH調整一下在主機上的使用者權限

我們假設新使用者名稱為 new_user_001

1. 透過Terminal連線到WebFaction,使用最高權限帳號

2. 先開放整個HOME給新使用者

setfacl -m u:new_user_001:--x $HOME

3. 移除webapps底下所有檔案的權限

setfacl -m u:new_user_001:--- $HOME/webapps/* 

**注意:這邊的語法僅適用目前Host已存在的專案,若日後有新增專案,這個指令要再做一次!
**或者也可以針對新專案更改權限設定:

setfacl -m u:new_user_001:--- $HOME/webapps/新專案名稱

4. 給予指定資料夾 讀取/寫入/執行 的權限

setfacl -R -m u:new_user_001:rwx $HOME/webapps/專案名稱

5. 給予指定資料夾在未來有新增檔案時的 讀取/寫入/執行 的權限

setfacl -R -m d:u:new_user_001:rwx $HOME/webapps/專案名稱

6. 為現在登入的最高權限者,給予指定資料夾 group owner 權限

chmod g+s $HOME/webapps/專案名稱

7. 為現在登入的最高權限者,給予指定資料夾所有權限

setfacl -R -m d:u:目前登入的最高權限使用者:rwx $HOME/webapps/專案名稱

———參考文獻———-
[1] General Topics (Granting Access to Specific Users) – https://docs.webfaction.com/software/general.html#granting-access-to-specific-users

[2] 第十三章、Linux 帳號管理與 ACL 權限設定 (13.3.1 什麼是 ACL 與如何支援啟動 ACL) – http://linux.vbird.org/linux_basic/0410accountmanager.php#acl_talk

Chrome 新版的書籤管理員好難用 之 取消方法

Chrome 新版書籤

最近突然發現,Chrome加入書籤的方式改變了,原本滿懷期待的進入書籤管理員想一探究竟,沒想到是悲劇的開始…

以前習慣先把書籤全部塞到”其他書籤”裡,滿到一個程度之後才開始移動、分類,新版的書籤系統無法進入”其他書籤”資料夾,而且也沒有”尚未分類的書籤”這個選項,也就是說不管我分類了沒,一次只能顯示全部的書籤,不知道該怎麼管理…

這時腦中突然想到Google Labs這個單字,馬上在網址輸入以下指令:

chrome://flags/

Chrome Flags

搜尋關鍵字”bookmarks”,應該是第二個搜尋結果,把”啟用強化書籤”選成[已停用]

強化書籤

之後最下方會提醒使用者重啟瀏覽器,這奇怪的書籤管理員就暫時不會來煩你拉~

但是不知道哪一天他會變成強制的新功能就是了…也許花一點時間來適應他比較實際一點。

Ubuntu 14.04 安裝Apache, MySQL, PHP (LAMP) + WordPress 權限設定

Step 1 : Apache

安裝前請先sudo apt-get update
其他就不多說了,直接裝吧

sudo apt-get update
sudo apt-get install apache2

Step 2 : MySQL

安裝指令

sudo apt-get install mysql-server php5-mysql

設定安全性

sudo mysql_install_db
sudo mysql_secure_installation

Step 3 : PHP

安裝指令

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

修改一下路徑設定檔

sudo nano /etc/apache2/mods-enabled/dir.conf

裡面原本長這樣

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

現在要把index.php往前移

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

重啟Apache

sudo service apache2 restart

權限要先設定

設定apache2成爲自己設定之資料夾的group owner,同時也是owner

sudo chown -R www-data:www-data /home/my_user_name/my_path

把自己加進www-data的group裡面

sudo usermod -a -G www-data my_user_name

把www-data列爲最高group priority

sudo usermod -g www-data my_user_name

(以下是附贈的,斟酌使用)
把user踢出group,注意要先把group priority設成別的

sudo deluser

顯示目前group

groups my_user_name

更改資料夾權限

sudo chmod -R 775 /home/my_user_name/my_path

Step 4 : phpMyAdmin

自行下載並安裝phpMyAdmin比較好控制,現在載好的版本感覺是不用調整參數,預設cookie

參照以下網址(跟本沒動過阿XD)
paste.plurk.com/show/2081776

要自己重新設定的話,網址如下
/phpmyadmin/setup/index.php

Step 5 : 目錄更改

接下來要做的事情是,把根目錄改成自己的指定路徑:

sudo nano /etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/html

改成

DocumentRoot /home/my_user_name/my_path

注意不可以使用 ~/ 作爲home directory的簡寫

sudo service apache2 restart

修改 apache2.conf

sudo nano /etc/apache2/apache2.conf

新增

<Directory /path/to/another/directory>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
    Allow from all
</Directory>

重啓apache

sudo service apache2 restart

—參考文獻
[1] How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04 – https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04
[2] Where to place my local website starting with the 2.4.7 version of apache2? – http://askubuntu.com/questions/448944/where-to-place-my-local-website-starting-with-the-2-4-7-version-of-apache2
[3] Apache can’t access folders in my home directory – http://askubuntu.com/questions/325498/apache-cant-access-folders-in-my-home-directory
[4] How to give apache2 permission to write and read files? – http://askubuntu.com/questions/246437/how-to-give-apache2-permission-to-write-and-read-files
[5] How To Install and Secure phpMyAdmin on Ubuntu 12.04 – https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-12-04
[6] Howto: Linux Add User To Group – http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/
[7] Permissions issue: how can Apache access files in my Home directory? – http://askubuntu.com/questions/26848/permissions-issue-how-can-apache-access-files-in-my-home-directory
[8] Enable Userdir – http://www.server-world.info/en/note?os=Ubuntu_14.04&p=httpd&f=5
[9] phpMyAdmin sample configuration – http://paste.plurk.com/show/2081776/