SiteMap

2016年6月18日土曜日

安裝 Cygwin 在 windows 使用 Linux 的指令

Cygwin 是一套可以讓使用者在 windows 環境使用 Linux 指令與程式的軟體

安裝

安裝完畢後會在桌面多出 Cygwin64 Terminal.lnk 雙擊後可以進入 cygwin 環境
更改字型,透明度
開啟 cygwin 環境後左上角會有小圖示,點擊小圖示 -> options 可以進入設定模式
Looks → Transparency → High
Text → Font → Lucida Console, 11pt
Text → Locale →en_US
Text → Character set → UTF-8
Keys → Shortcuts → Ctrl+Shift+letter shortcuts
Terminal → Type → xterm-256color
設定完畢後如果沒有立即反應,請儲存重開 cygwin 環境

更換login shell
因為 cygwin 沒有 chsh 這個指令, 所以直接對 /etc/passwd 這個檔案做更改
如果沒有 /etc/passwd 這個檔案? 用指令生成它
mkpasswd > /etc/passwd

生成後找到現在使用者的那行,將
/home/Name:/bin/bash
改為
/home/Name:/usr/bin/zsh
然後將桌面上的 Cygwin64 Terminal.lnk 滑鼠右鍵 →內容
C:\tools\cygwin64\bin\mintty.exe --window max -i /Cygwin-Terminal.ico -
改為
C:\tools\cygwin64\bin\mintty.exe --window max -i /Cygwin-Terminal.ico /usr/bin/zsh --login
其中 --window max 代表開啟 cygwin 環境的時候就使用最大化視窗

安裝 zsh 美化組件 Oh My Zsh
omz網址: https://github.com/robbyrussell/oh-my-zsh#basic-installation
安裝指令
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

如果一開始出錯,導致你安裝第二次的話,有可能會遇到這個問題
Cloning Oh My Zsh...
fatal: destination path '/home/Name/.oh-my-zsh' already exists and is not an empty directory.
Error: git clone of oh-my-zsh repo failed
它是這樣講的,在你的 home 已經有了 .oh-my-zsh 這個資料夾了而且裡面不是空的,clone失敗
當然我相信大家都看得懂英文,但是問題就出在 cygwin 環境的 home 資料夾找不到 .oh-my-zsh 這東西,因為它跑到 c:\home\Name\.oh-my-zsh 了,所以將 c:\home\Name\.oh-my-zsh 整個搬到 cygwin 的 home 資料夾裡面在執行一次安裝指令就OK了



將 C:\User\ 設定為 /home/
指令:
echo 'C:/Users/ /home/ ntfs  override,binary,auto 0 0' >> /etc/fstab
 
這樣一來要到 home 只要鍵入 ~ 
等同進入 C:\Users\Name 資料夾 
要到 C:\Users\Name\Desktop 只需要鍵入 ~/Desktop

這樣會造成的缺點是
01. 如果在 cygwin 的模式下用 vim 之類的編輯軟體打開文件, 又那麼剛好這個文件在 windoes 執行過儲存, 有很大可能會碰到 windows 跟 linux 的斷行符號不一樣的問題, vim 會提示警告無法分辨斷行符號, 因為多了個 ^M 這玩意兒。
錯誤訊息之一:"Trailing characters: nocompatible^M"
為什麼呢?  因為 DOS 使用的斷行字元為 ^M$ ,我們稱為 CR 與 LF 兩個符號。 在 Linux 下,僅有使用 LF ($) 來斷行
那麼甚麼是 CR, LF 呢, 它們是 ascii 裡面規範的符號, 請參照 Link
CR(Carriage Return): 回到行頭; LF(Line Feed / New Line): 改行
例如: 在 windows 安裝過 vim windows 版本, 在 c:\User\Name 下面已經有 _vimrc, 此時再去編輯它就會遇到這問題
鳥哥那兒有相關的說明 Link
如果你在 windows 會編輯到的文件跟 cygwin 下編輯到的不一樣, 又或者你會自己執行 dos2unix 來解套, 那麼你可以安心使用這個設定方法。

不區分大寫小寫, 將文字編碼設定為 UTF-8
指令:


安裝 apt-cyg 讓安裝其他程式更容易
apt-cyg 其實就是個裡面寫了執行命令的文字檔案,沒有副檔名
安裝方法
啟動 cygwin 環境後貼上下面指令
cygwin 便會使用 wget 這個程式經過 url 去下載檔案
 
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
 
完成後在執行指令的資料夾會多出個檔案叫 apt-cyg
先變更此檔案的屬性讓其可以執行

chmod 755 apt-cyg

然後移動到

mv apt-cyg /usr/local/bin/

之後就可以直接打入 apt-cyg 來安裝程式了
(在此之前要裝新程式必須執行setup-x86_64.exe)
測試,來安裝 curl ,這東西是發出網路請求,然後得到與提取資料
apt-cyg install curl

執行上面那行指令後會安裝相依程式庫,所以會看到畫面跑一大堆語句出來
安裝完成後會跟你說
Package curl installed

在 cygwin 開啟其他視窗程式
cygstart <your file>
To make things OSX-like add the following to your bashrc
alias open='cygstart'

註: cmd 的指令則是 start


Ref.

bash 轉移 zsh (oh-my-zsh) 設定心得

Cygwinを使ってWindowsのHomeとLinuxっぽくHomeを共有する

WindowsにCygwinをインストールし、初期設定する。日本語OK

綺麗なUIで、UNIXライクなCygwinの使い方

Cygwin で RubyとGitをコンパイルして使おう

轉換linux文件的斷行符號

chsh - デフォルトシェルの変更

cygwinでログインシェルを変更する。

passwd - コマンド (プログラム) の説明

mkpasswd - システム管理コマンドの説明

Cygwinのターミナルエミュレータminttyの導入

zshは至高の利便性?!Cygwinにzshをインストール&設定した導入方法まとめ

CygwinでZshを使う

zshまわりを整理した

gnupack(Cygwin) + oh-my-zsh + tmuxの環境を構築する
Set Default Shell in Cygwin - overflow

https://github.com/robbyrussell/oh-my-zsh#basic-installation

https://github.com/haithembelhaj/oh-my-cygwin

ZSH with mintty on latest cygwin?- overflow

Zshの補完について

zshが無いと死ぬ人がbashでなんとかする

なぜzshを使うのか
まだ oh-my-zsh で消耗してるの?
鳥哥的 Linux 私房菜 第十章、認識與學習BASH

鳥哥的 Linux 私房菜 第九章、vim 程式編輯器

開発ツール/Cygwinをインストールしたユーザー以外でCygwinを使用したときの対処

開発ツール/Cygwinにwgetコマンドをインストールする

apt-cygでLinuxライクにパッケージをインストールしてみる

Cygwinがいつの間にか64bit版がリリースされていた件

綺麗なUIで、UNIXライクなCygwinの使い方

64bit版Cygwinをインストールしてapt-cygするまで

CygwinでWindowsプロセスを全部見る

Windowsの気持ち悪いフォルダ名をアルファベットにする。

cygwin で作ったサービス一覧して、まとめて再起動する方法

CygwinでApache2を動かすぞぉ~

CygwinでWindowsサービスを作る。簡単だった。

「初心者のためのGroovy/Grails入門」グループ


シェルプログラミングの基礎知識


網路農夫-- UNIX C Shell 

Linuxコマンド集 INDEX

Cygwin : 在 windows 環境上使用 Linux 指令

0 件のコメント: