2014年7月22日 星期二

tmux 設定初上手

接續上一篇「tmux 操作初上手」,本篇就來談談 tmux 的設定。


tmux 基本設定


在 tmux 之中幾乎所有的操作都是由 tmux 所定義好的指令集來達成的,包括畫面切割、多重同步輸入以及畫面顯示調整等,在 tmux 之中都可以用特定的指令去完成,也可以將各式各樣的按鍵組合綁定(bind)到不同的指令上,讓平時可以更方便使用。

tmux 幾乎所有的設定都可以藉由命令列輸入指令進行修改,若想要每次開啟 tmux 時都可以有設定好的環境則需要透過建立與設定 $HOME/.tmux.conf 設定檔,或是設定系統全域通用的設定檔 /etc/tmux.conf

設定檔中的指令,會在 tmux server 啟動的時候被讀取並執行。

我們首先介紹三個實用的設定指令:
  • set-option
  • set-window-option
  • bind-key

2014年7月19日 星期六

tmux 操作初上手

tmux 為 Terminal Multiplexer 之縮寫,從原文我們可以了解使用 tmux 的目的,即是為了達到終端機介面的多工執行。

在以往較為被 Unix, Linux 使用者熟悉的多工終端機是由 GNU Project 所推出的 GNU Screen,作為多工終端機使用的 GNU Screen 擁有許多傑出的功能,故常被作為多工終端機的首要選項,但近來 tmux 也逐漸成為另一支異軍突起的多工終端機,讓多工終端機有其他不一樣的選擇。

與 GNU Screen 相較之下,tmux 在多工輸入、畫面的切割以及調整、多人共用 Session 等方面,都能夠與 GNU Screen 互別苗頭,因此也是值得使用的一款多工終端機。

以下筆者將針對 tmux 中幾個重要的元素做個詳細的介紹,如有任何不足的地方歡迎大家討論與指教。


2014年5月22日 星期四

GitLab installation on Debian 7(Wheezy)

Git是目前主流的版控軟體,GitHub更是目前主流的版控平台,但把程式碼放上去,就幾乎代表將程式碼公開(除非購買私人空間),而且對於企業來說,將自己程式碼放到外部環境也不太適合,因此便有了 GitLab 工具的誕生,提供使用者可以在自己的環境假設類似GitHub的共享平台。以下筆者提供的安裝過程,是以Debian 7的環境進行安裝,並以Nginx做為SSL加密以及 reverse proxy的角色。


首先我們先進行系統套件的更新以及安裝所需套件:
$ apt-get install ruby bundler sudo vim dialog build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev python-docutils libpq-dev
$ gem install bundler --no-ri --no-rdoc
$ gem install rake
$ bundle install
$ gem install charlock_holmes

2014年3月2日 星期日

解放開發環境建置之原罪 - Packer / Brief Introduction of Packer

Packer - 幫您打包好不同虛擬機器 image 的好幫手!


什麼是 Packer ?

近年虛擬化技術隨著雲端技術大鳴大放,程式開發者也受益於虛擬化技術,使得原本的開發環境能夠透過虛擬機器建立標準化開發環境並能夠藉由虛擬機器 image 相互交流,有Packer 這套工具可幫助使用者快速且大量的製作運用在不同平台上(Virtualbox, VMWare, Amazon EC2, DigitalOcean, Docker, Google Compute Engine, Openstack, QEMU)的虛擬機器 image。只要在設定擋上寫好設定,接下來的安裝步驟通通可以交給 Packer 來幫你處理了。是不是很方便呢!

2014年2月23日 星期日

解放開發環境建置之原罪 - Vagrant 網路設定篇 / Network Settings

前言


* 先前已撰寫一「解放開發環境建置之原罪 - Vagrant」,該文簡介如何利用 Vagrant 建立多個虛擬機器。

這些虛擬機器都是利用 NAT 搭配 Port forwarding 的方式,與外面網路進行溝通(換句話說,與虛擬機器之間的溝通都是透過 HOST/DOMAIN0,並非直接與虛擬機器連線溝通)。如果我們想要不透過 Port forwarding 的方式直接與虛擬機器連線溝通,就需要讓虛擬機器使用 Public/Private IP,或者我們想創造一個只有虛擬機器間可相互溝通但與外界隔絕的環境,我們就必須設定所謂的內部網路(internal network),這些都可以在 Vagrantfile 中進行設定,以建立我們所需要的各種環境。
以下就逐一介紹各種環境的設置方法。

2014年2月14日 星期五

解放開發環境建置之原罪 - Vagrant / Brief Introduction of Vagrant

什麼是 Vagrant?


* Vagrant 是一套用來管理與建置虛擬機器的工具。對於需要在許多不同環境下開發與測試的開發者來講可有很大的幫助。

* 以往開發者在進行專案測試前,都要花費許多時間進行環境的建置。一段時間後,當環境變髒亂時。開發者又要重新整理,甚至是重新建置整個測試環境。這不僅耗費開發者大量的時間,也耗盡開發者不少精力。而這些瑣碎事都可透過 Vagrant 來進行管理,您說這是不是太棒了!:-D