久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

驚艷的cygwin

 waston 2017-11-27

5年前倒騰過一次cygwin,,當時體驗感覺不好,。到現(xiàn)在一直用的是GNU utilities for Win32,在Windows的CMD中使用*nix的命令工具包,。

GNU utilities for Win32很久沒有更新,,utils的版本太低,很多功能沒有(比如grep輸出不支持彩色輸出的選項–color)等等,。另,,在Windows的“cmd的自動補全”,、“命令歷史”、“bat編程”太弱,,一直忍受著~
# 以前寫過cmd相關(guān)的博文: Windows命令行CMD的使用小技巧,、如何在Windows下使用GNU命令

最近大半年版本管理使用Git,用的是msysgit,。msysgit帶了MSYS的Bash,。用的過程中體驗不錯,很順暢很有Linux的Feel了:

  • 有Git命令的自動補全
  • 彩色顯示
  • 可以用Bash功能(自動補全,、歷史命令搜索等等)
  • bash腳本編程

昨天想到就倒騰了一下cygwin,,效果驚艷啊,!

安裝

在cyginw的安裝頁面上下載setup.exe,。

啟動選擇安裝目錄和Package的鏡像站點(自動會缺省163的Package鏡像站點),然后選擇和調(diào)整要安裝的Package,。
# 163提供的鏡像讓Package下載分分鐘搞定。163也提供了Ubuntu的鏡像,,163做得很贊,!

安裝后要調(diào)整(比如新增、刪除)也使用setup來完成,。

Package中有Git,,需要就在安裝時選上就可以了。

bash_completion包(命令補全的增強包)讓cygwin補全更強勁,,但會影響命令行自動補全速度和cygwin啟動速度,,建議先安裝上,如果不能接受速度的變慢,,就卸載掉這個包,。
注:參見 有關(guān) SVN、CYGWIN 和 NOTEPAD++

第一次啟動時會生成Home目錄,,在${cygwin}/home/${YOUR_USER_NAME},。
# ${cygwin}表示你的cygwin安裝目錄。

顯示

調(diào)整${HOME}/.bashrc文件,,把注釋掉別名打開:

alias df='df -h'
alias du='du -h'

alias whence='type -a'                        # where, of a sort
alias grep='grep --color'                     # show differences in colour
alias egrep='egrep --color=auto'              # show differences in colour
alias fgrep='fgrep --color=auto'              # show differences in colour

alias ls='ls -h --color=tty'                 # classify files in colour
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'
alias ll='ls -l'                              # long list
alias la='ls -A'                              # all but . and ..
alias l='ls -CF'                              #
alias wch='which -a'

這樣調(diào)整后,,可以ls、grep,、dir輸出彩色顯示,。

另外加上命令的-h選項,這樣文件大小以K,、M,、G顯示,,方便人閱讀。

git輸出(比如log,、status)彩色顯示,,使用下面的命令配置:

git config --global color.ui auto

vi配置

${HOME}/.vimrc文件中加上: # 沒有.vimrc文件就新建。

set number
set hlsearch
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set nocompatible
set backspace=indent,eol,start

syntax enable

說明:

  • syntax enable:打開語法高亮,。cygwin的vi缺省沒有打開,。
  • set nocompatible和set backspace:配置backspace鍵,缺省backspace不起作用,。
  • set fileencoding和set fileencodings:缺省文件編碼和自動識別文件編碼順序
  • set number:顯示行號
  • set hlsearch:搜索到內(nèi)容高亮

參考資料:

配置盤符的鏈接

到D盤,,要/cygdrive/d,可以新建符號鏈接/d,,這樣可以減少錄入(MSYS的做法)

ln -s /cygdrive/c /c
ln -s /cygdrive/d /d
ln -s /cygdrive/e /e

自動補全不區(qū)分大小寫

~/.bashrc文件中添加:

shopt -s nocaseglob

~/.inputrc文件中添加:

set completion-ignore-case on

cygwin的官方文檔:How can I get bash filename completion to be case insensitive?

配置按單詞移動/刪除

.inputrc文件中添加:

# Ctrl+Left/Right to move by whole words
"\e[1;5C": forward-word
"\e[1;5D": backward-word

# Ctrl+Backspace/Delete to delete whole words
"\e[3;5~": kill-word
"\C-_": backward-kill-word

參考資料:Ctrl-Arrow Keys, Ctrl-Backspace, Ctrl-Delete

Windows和cygwin路徑的轉(zhuǎn)換

cygwin的路徑和Windows的路徑表示不一樣,。

要注意的是,cygwin下的cd命令可以直接使用Windows的路徑表示,。

$ cd 'C:\Windows\System32\drivers\etc'

注:不要忘了加上單引號,,因為\是bash元字符,用于轉(zhuǎn)義,。不用上單引號cd命令收到的參數(shù)值就不是C:\Windows\System32\drivers\etc,,運行報錯。

路徑轉(zhuǎn)換的需求減了大半,。

cygpath命令來完成轉(zhuǎn)換,,相關(guān)的選項是:

  -a, --absolute        output absolute path
  -w, --windows         print Windows form of NAMEs (C:\WINNT)
  -u, --unix            (default) print Unix form of NAMEs (/cygdrive/c/winnt)

執(zhí)行的例子:

$ cygpath -au 'C:\Windows\System32\drivers\etc'
/cygdrive/c/Windows/System32/drivers/etc
$ cygpath -aw '/cygdrive/c/Windows/System32/drivers/etc'
C:\Windows\System32\drivers\etc

cygwin的官方文檔:How do I convert between Windows and UNIX paths?

在cygwin的打開指定文件或文件夾到文件瀏覽器

常常會有這樣的需求,比如打開文件瀏覽器explorer,,然后用烏龜看SVN日志等等,。

可以使用使用命令直接打開指定文件或文件夾的位置到explorer

打開文件或文件夾腳本,,可以這個腳本命名成xpl,,放到PATH上。
# xplexplorer的縮寫

#!/bin/bash

cygwin=false;
case "`uname`" in
    CYGWIN*) cygwin=true ;;
esac

if [ "$1" = "" ]; then
	XPATH=. # 缺省是當前目錄
else
	XPATH=$1
	if $cygwin; then
		XPATH="$(cygpath -C ANSI -w "$XPATH")";
	fi
fi

explorer $XPATH

打開文件或文件夾,,并選中的腳本,,可以這個腳本命名成xpf,放到PATH上,。
# xpfexplorer and select file的縮寫

#!/bin/bash

cygwin=false;
case "`uname`" in
    CYGWIN*) cygwin=true ;;
esac

if [ "$1" = "" ]; then
	XPATH=. # 缺省是當前目錄
else
	XPATH=$1
	if $cygwin; then
		XPATH="$(cygpath -C ANSI -w "$XPATH")";
	fi
fi

explorer '/select,' $XPATH

文件權(quán)限問題

現(xiàn)象

Windows的文件的cygwin下沒有權(quán)限:

$ rm foo.txt
error: open("foo.txt"): Permission denied
error: unable to index file foo.txt
$ ll foo.txt
----------+ 1 Jerry None 486 Dec 24 14:16 foo.txt

文件的權(quán)限顯示的是----------+,,沒有讀寫的權(quán)限。

解決方法

編輯/etc/fstab,,在末尾加上下面的一行:

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

關(guān)閉所有cygwin進程,,再重啟cygwin命令行。

顯示文件權(quán)限已經(jīng)正常-rw-r--r--

$ ll foo.txt
-rw-r--r-- 1 Jerry None 486 Dec 24 14:16 foo.txt

注意,! 如果改了/etc/fstab但是沒有生效,,可以重啟一下機器,!

參考資料: cygwin sets file permission to 000

Windows命令的亂碼

Windows命令的輸出中文亂碼,原因是Windows命令輸出的編碼是GBK,。cygwin控制臺mintty的編碼缺省是UTF-8,。mintty的選項的【Text】把編碼改成GBK即可。

參見:本文“文本配置:字體,、編碼”一節(jié)的截圖,。

命令窗口設(shè)置:字體、右鍵粘貼等等

這些設(shè)置對使用的舒適度至關(guān)重要,。

cygwin的執(zhí)行文件是mintty.exe,,在命令窗口的標題的右鍵菜單上有【options】項,有這些配置項,。

外觀

外觀 配置光標顯示,、窗體透明。

文本配置:字體,、編碼

字體 配置顯示字體,。

我喜歡用Consolas字體,這是Windows上一款質(zhì)量很高的等寬字體,。

右鍵粘貼配置

右鍵粘貼配置 配置右鍵用于粘貼,,缺省是彈出菜單。這個配置很方便,!

效果圖

效果圖

展示了ls、grep輸出的彩色顯示,,容器的字體效果,。

vi的語法高亮就不再截圖了。

一些最佳實踐

把命令行輸出放在系統(tǒng)剪貼板上

后記

之前對cygwin這種適配的做法有偏見,,覺得做得不會好,。其實有了一個好點子,又有為之努力的人在,,就會越來越好,,從“丑小鴨”變成驚艷的“天鵝”。

謝謝這些為之不懈努力的人,!

有了cygwin,,讓我對MacBook Pro的需求程度降低了,在Windows上還可以再呆一下子,。 :)

OS作為一個工作環(huán)境,,幫我方便的完成要做的事,關(guān)注點是:

  • 方便的大量的軟件,。Windows這一點太強,。
  • 高質(zhì)量的UI,。Linux這一點太差。
  • 程序員要的舒適的命令行環(huán)境,。Windows的cmd太弱,,有了cygwin可頂一下。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多