DataTables.net server side processing

http://www.datatables.net/release-datatables/extras/Scroller/server-side_processing.html

http://activeengine.net/2010/12/19/how-to-create-server-side-paging-for-datatables-net-with-asp-net/

http://stackoverflow.com/questions/8667649/how-do-i-modify-ajax-url-of-a-query-datatable

http://datatables.net/ref#fnDrawCallback

AngularJS – controller簡介

controller就像是MVVM中的「view model」,可以在一個app下定義多個controller, 每個controller包含不同的callback function, 用法:

var app = angular.module(‘myApp’, []);

app.controller(‘ctrlName’, function($scope){

$scope.Func1 = function(){

//detail of the callback function

}

});

AngularJS – directives簡介

directives是AngularJS重要的屬性,可以讓特定element以自訂屬性達到模組化功能。使用方法:

var app = angular.module(‘myApp’, []);

app.directive(‘directiveName’, function(){

restrict: ‘指定此directive的使用方式, 有A(屬性)/E(元素)/C(類別)/M(註解), 以A和E較常用’, ex: A: <div my-directive="exp"></div>, E: <my-directive>,

controller: function($scope){

this.Func1 = function(){ 自訂此controller的callback函數; }

},

template: ‘預先寫好的html片段’,

replace: ‘如果設為true則template會取代原來的元素,否則append到原來的元素’,

compile: funcion(element, attrs, transclude){ //先於link,編譯template到DOM元素

//return link function物件;

},

link: funcion(scope, element, attrs, ctrl){ //將local scope變數與DOM元素建立關聯

element.bind(‘eventName’, function(){

套用的element綁定事件callback, 後面的attr和ctrl兩參數可作用在其他的element上,

ex: scope.$apply.(attr.enter); //當element觸發’eventName’事件時, 執行此scope的所有具有enter屬性的回呼函數

});

},

priority: ‘當一個DOM元素包含多重directive,可設定此directive優先權。值愈大愈高,預設值是0’,

terminal: ‘如果設為true,在有設priority的多重directive下,執行到此directive時就會中止’,

scope: ‘true 或 {}’, //如果設為:

/*

true – 此directive會產生一個新的scope。注意: 多重directive的元素,只會有一個新scope。此設定不適用有template的情況,template有自己的’isolate’ scope。

{} – 獨立於directive的’isolate’ scope將會套用在此directive的template。{}裡的property可衍生parent的scope變數到自己的scope:
。@ 或 @attr – 綁定此DOM的屬性,得到的永遠是string。例如template: <widget my-attr="hello {{name}}">,此widget有scope: { localName:’@myAttr’ },則這裡localName的值會反映到parent scope的{{name}}
。= 或 =attr – local scope與parent scope的屬性雙向綁定,改變會互相反映。如果parent scope的屬性不存在會拋出NON_ASSIGNABLE_MODEL_EXPRESSION錯誤,避免這情況可以設為=? 或 =?attr。
例如:template: <widget my-attr="parentModel">,此widget有scope: { localModel:’=myAttr’ },則這裡localModel的值和parent scope的parentModel會互相反映。
。& 或 &attr – 綁定計算的expression。例如template: <widget my-attr="count=count+value">,此widget有scope: { localFn:’&myAttr’ },則這裡localFn會指向count=count+value表達式。
綜合範例:
<div ng-show="visible">
<h3>{{title}}</h3>
<div class="body" ng-transclude></div>
<div class="footer">
<button ng-click="onOk()">Save changes</button>
<button ng-click="onCancel()">Close</button>
</div>
</div>
可用以下的scope設定綁定:
scope: {
title: ‘@’, // the title uses the data-binding from the parent scope
onOk: ‘&’, // create a delegate onOk function
onCancel: ‘&’, // create a delegate onCancel function
visible: ‘=’ // set up visible to accept data-binding
}

*/

});

useful live demo:

http://jsfiddle.net/colvint/uAwJG/

https://github.com/angular/angular.js/wiki/JSFiddle-Examples

KnockoutJS – 不用ko foreach的bind array方法

http://jsfiddle.net/G9T3u/13/

HTML:

<ul id=’tw’/>

JavaScript:

var li_array = [];
li_array.push({item:’A’});
li_array.push({item:ko.observable(‘B’)});
li_array.push({item:’C’});

var inner_html = “;
for(i=0, max =li_array.length; i<max; i++){
inner_html += ‘<li data-bind="text: items()[‘+i+’].item"/>’;
}
$(‘#tw’).html(inner_html);
var viewModel = function(list){
this.items = ko.observableArray(list);
}
ko.applyBindings(new viewModel(li_array));
li_array[1].item(‘b’);

最近要survey的東東

http://code.angularjs.org/

http://egghead.io/ Angular course

http://angular-ui.github.io/ng-grid/ Angular grid

http://morlay.tla42.org/coding/2013/02/20/AngularJS-Core/ Angular核心

http://morlay.tla42.org/coding/2013/03/01/AngularJS-Socket.IO/

http://expressjs.com/

http://sailsjs.org/

https://www.firebase.com/

http://mongodb.github.io/node-mongodb-native/

http://cnodejs.org/topic/5206581b44e76d216aae072e

javascript getter setter

http://robertnyman.com/javascript/javascript-getters-setters.html

http://ejohn.org/blog/javascript-getters-and-setters

 

 

cURL指令用法

curl 是 Linux 下一個很強大的 http 命令列工具
1) 取得網頁內容,螢幕輸出

$ curl http://www.linuxidc.com

2) -o: 取得網頁內容,檔案輸出

$ curl -o page.html http://www.linuxidc.com

3) -x: 指定 http 使用的 proxy

$ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com


4) -D: 把 http response 裡面的 cookie 資訊另存新檔

$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

5)-b: 把 cookie 資訊加到 http request 裡

$ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com

6)-A: 設定瀏覽器資訊
#Windows 2000上的 IE6.0

$ curl -A “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

# Linux Netscape 4.73

$ curl -A “Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686″ -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

7)-e: 設定 referrer
另外一個伺服器端常用的限制方法,就是檢查 http 訪問的 referer。比如你先訪問首頁,再訪問裡面所指定的下載頁,這第二次訪問的 referer 位址就是第一次訪問成功後的頁面位址。這樣,伺服器端只要發現對下載頁面某次訪問的 referer 位址不是首頁的位址,就可以斷定那是個盜連了

$ curl -A “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e “mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com

8)-O: 使用伺服器上的檔案名,存在本地

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

9)可使用 Regular Expression 抓取所有 match 的檔案,指定 match 的群組內容為新檔名

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen%5B1-10%5D.JPG
$ curl -o #2-#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

原來: ~zzh/001.JPG -> 下載後:001-zzh.JPG
原來: ~nick/001.JPG -> 下載後:001-nick.JPG

10)-c: 續傳 (只能用在原本是 curl 傳輸的檔案)

$ curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG

11) -r: 分塊下載

$ curl -r 0-10240 -o “zhao.part1″ http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
$ curl -r 10241-20480 -o “zhao.part1″ http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
$ curl -r 20481-40960 -o “zhao.part1″ http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
$ curl -r 40961- -o “zhao.part1″ http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3

Linux用 cat zhao.part* > zhao.mp3合併
Windows用copy /b 合併

12) -u: 指定 FTP 帳號密碼

$ curl -u name:passwd ftp://ip:port/path/file
$ curl ftp://name:passwd@ip:port/path/file

13) -T: 上傳檔案

$ curl -T localfile -u name:passwd ftp://upload_site:port/path/
$ curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi

(注意這時候使用的協定是 HTTP 的 PUT method)

14) Http GET 與 POST 模式
GET 模式什麼 option 都不用,只需要把變數寫在 url 裡面就可以了比如:

$ curl http://www.linuxidc.com/login.cgi?user=nickwolfe&password=12345

而 POST 模式的 option 則是 -d

$ curl -d “user=nickwolfe&password=12345″ http://www.linuxidc.com/login.cgi

到底該用 GET 模式還是 POST 模式,要看對面伺服器的程式設定。比如 POST 模式下的文件上傳

<form action="http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi" enctype="multipar/form-data" method="POST">
<input name="upload" type="file"/>
<input name="nick" type="submit" value="go"/></form>

這樣一個 HTTP 表單,我們要用 curl 進行模擬,就該是這樣的語法:

$ curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi

15) https 使用本地認證

$ curl -E localcert.pem https://remote_server

16) 通過 dict 協定去查字典

$ curl dict://dict.org/d:computer

文章轉自: http://evelynnote.blogspot.tw/2011/03/curl.html

wget 指令用法與教學

GNU Wget 1.12,非互動式檔案下載工具。
用法: wget [選項]... [URL]...
長選項必須用的參數在使用短選項時也是必須的。

啟動:
  -V,  --version             顯示 Wget 版本並離開
  -h,  --help                印出這段說明文字
  -b,  --background          啟動後進入背景作業
  -e,  --execute=指令        執行 ‘.wgetrc’ 形式的指令

紀錄訊息及輸入檔案:
  -o,  --output-file=檔案      將紀錄訊息寫入<檔案>中
  -a,  --append-output=檔案    將紀錄訊息加入<檔案>末端
  -d,  --debug                 印出偵錯訊息
  -q,  --quiet                 安靜模式 (不輸出訊息)
  -v,  --verbose               詳細輸出模式 (預設使用這個模式)
  -nv, --non-verbose           關閉詳細輸出模式,但不啟用安靜模式
  -i,  --input-file=FILE       download URLs found in local or external FILE.
  -F,  --force-html            以 HTML 方式處理輸入檔
  -B,  --base=URL              resolves HTML input-file links (-i -F)
     relative to URL.

下載:
  -t,  --tries=次數               設定重試次數 (0 表示無限)
       --retry-connrefused        即使連線被拒仍然會不斷嘗試
  -O   --output-document=檔案     將資料寫入指定檔案中
  -nc, --no-clobber               不覆寫已經存在的檔案
  -c,  --continue                 繼續下載已下載了一部份的檔案
       --progress=方式            選擇下載進度的表示方式
  -N,  --timestamping             除非遠端檔案比較新,否則不下載遠端檔案
  -S,  --server-response          顯示伺服器回應訊息
       --spider                   不下載任何資料
  -T,  --timeout=秒數             指定所有時限為同一數值
       --dns-timeout=秒數         指定 DNS 查找主機的時限
       --connect-timeout=秒數     指定連線時限
       --read-timeout=秒數        指定讀取資料的時限
  -w,  --wait=秒數                每次下載檔案之前等待指定秒數
       --waitretry=秒數           每次重覆嘗試前稍等一段時間 (由 1 秒至指定秒數不等)
       --random-wait              每次下載之前隨機地指定等待的時間
       --no-proxy                 禁止使用代理伺服器
  -Q,  --quota=大小               設定下載資料的限額大小
       --bind-address=位址        使用本機的指定位址 (主機名稱或 IP) 進行連線
       --limit-rate=速率          限制下載速率
       --no-dns-cache             不記憶 DNS 查找主機的資料
       --restrict-file-names=OS   只使用作業系統能夠接受的字元作為檔案字元
       --ignore-case              ignore case when matching files/directories.
  -4,  --inet4-only               只會連接 IPv4 地址
  -6,  --inet6-only               只會連接 IPv6 地址
       --prefer-family=FAMILY     優先採用指定的位址格式,可以是 IPv6、IPv4 或者 none
       --user=用戶                指定 ftp 和 http 用戶名稱
       --password=PASS            指定 ftp 和 http 密碼
       --ask-password             prompt for passwords.
       --no-iri                   turn off IRI support.
       --local-encoding=ENC       use ENC as the local encoding for IRIs.
       --remote-encoding=ENC      use ENC as the default remote encoding.

目錄:
  -nd  --no-directories            不建立目錄
  -x,  --force-directories         強制建立目錄
  -nH, --no-host-directories       不建立含有遠端主機名稱的目錄
       --protocol-directories      在目錄中加上通訊協定名稱
  -P,  --directory-prefix=名稱     儲存檔案前先建立指定名稱的目錄
       --cut-dirs=數目             忽略遠端目錄中指定<數目>的目錄層

HTTP 選項:
       --http-user=用戶          指定 HTTP 用戶名稱
       --http-passwd=密碼        指定 HTTP 密碼
       --no-cache                不使用伺服器中的快取記憶資料
       --default-page=NAME       Change the default page name (normally
     this is `index.html'.).
  -E,  --adjust-extension        save HTML/CSS documents with proper extensions.
       --ignore-length           忽略 ‘Content-Length’ 標頭欄位
       --header=字串             在連線資料標頭中加入指定字串
       --max-redirect            maximum redirections allowed per page.
       --proxy-user=用戶         設定代理伺服器用戶名稱
       --proxy-password=密碼     設定代理伺服器密碼
       --referer=URL             在 HTTP 請求中包括 ‘Referer: URL’ 標頭
       --save-headers            將 HTTP 連線資料標頭存檔
  -U,  --user-agent=AGENT        宣稱為 AGENT 而不是 Wget/VERSION
       --no-http-keep-alive      不使用 HTTP keep-alive (持久性連線)
       --no-cookies              不使用 cookie
       --load-cookies=檔案       程式啟動時由指定檔案載入 cookie
       --save-cookies=檔案       程式結束後將 cookie 儲存至指定檔案
       --keep-session-cookies    會載入和儲存暫時性的 cookie
       --post-data=字串          使用 POST 方式送出字串
       --post-file=檔案          使用 POST 方式送出檔案內容
       --content-disposition     honor the Content-Disposition header when
     choosing local file names (EXPERIMENTAL).
       --auth-no-challenge       send Basic HTTP authentication information
     without first waiting for the server's challenge.

HTTPS (SSL/TLS) 選項:
       --secure-protocol=PR      選擇安全通訊協定,可以使用 auto, SSLv2, SSLv3 或 TLSv1
       --no-check-certificate    不檢驗伺服器的憑證
       --certificate=檔案                指定用戶端的憑證檔案名稱
       --certificate-type=類型           用戶端憑證的類型,可以是 PEM 或 DER
       --private-key=檔案                指定私鑰檔案
       --private-key-type=類型           私鑰的類型,可以是 PEM 或 DER
       --ca-certificate=檔案             載有憑證管理中心 (CA) 簽章的檔案
       --ca-directory=目錄               載有憑證管理中心 (CA) 簽章的目錄
       --random-file=檔案                作為 SSL 隨機數產生程序 (PRNG) 的來源數據檔案
       --egd-file=檔案                   產生隨機數據的 EGD socket 檔案名稱

FTP 選項:
       --ftp-user=用戶           指定 FTP 用戶名稱
       --ftp-password=密碼       設定 FTP 密碼
       --no-remove-listing       不刪除 ‘.listing’ 檔案
       --no-glob                 不展開有萬用字元的 FTP 檔名
       --no-passive-ftp          不使用「被動」傳輸模式
       --retr-symlinks           在遞迴模式中,下載鏈結指示的目標檔案 (不包括目錄)

遞迴下載:
  -r,  --recursive            遞迴下載
  -l,  --level=數字           最大搜尋深度 (inf 或 0 表示無限)
       --delete-after         刪除下載後的檔案
  -k,  --convert-links        make links in downloaded HTML or CSS point to
     local files.
  -K,  --backup-converted     將檔案 X 轉換前先備份為 X.orig
  -m,  --mirror               相等於 -N -r -l inf --no-remove-listing 選項
  -p,  --page-requisites      下載所有顯示網頁所需的檔案,例如圖片等
       --strict-comments      用嚴格方式 (SGML) 處理 HTML 注釋。

遞迴下載時有關接受/拒絕的選項:
  -A,  --accept=清單                接受的檔案樣式,以逗號分隔
  -R,  --reject=清單                排除的檔案樣式,以逗號分隔
  -D,  --domains=清單               接受的網域,以逗號分隔
       --exclude-domains=清單       排除的網域,以逗號分隔
       --follow-ftp                 跟隨 HTML 文件中的 FTP 鏈結
       --follow-tags=清單           會跟隨的 HTML 標籤,以逗號分隔
  -G,  --ignore-tags=清單           會忽略的 HTML 標籤,以逗號分隔
  -H,  --span-hosts                 遞迴模式中可進入其它主機
  -L,  --relative                   只跟隨相對鏈結
  -I,  --include-directories=清單   準備下載的目錄
  -X,  --exclude-directories=清單   準備排除的目錄
  -np, --no-parent                  不進入上層的目錄

請將錯誤報告或建議寄給 >bug-wget@gnu.org<。

文章轉自: http://werdna1222coldcodes.blogspot.com/2012/04/wget.html

Ubuntu常用命令大全

查看軟件xxx安裝內容
#dpkg -L xxx

查找軟件
#apt-cache search 正則表達式
查找文件屬於哪個包
#dpkg -S filename apt-file search filename

查詢軟件xxx依賴哪些包
#apt-cache depends xxx

查詢軟件xxx被哪些包依賴
#apt-cache rdepends xxx

增加一個光盤源
#sudo apt-cdrom add

系統升級
#sudo apt-get update
#sudo apt-get upgrade
#sudo apt-get dist-upgrade

清除所以刪除包的殘餘配置文件
#dpkg -l |grep ^rc|awk 『{print $2}』 |tr [」"n」] [」 「]|sudo xargs dpkg -P –

編譯時缺少h文件的自動處理
#sudo auto-apt run ./configure

查看安裝軟件時下載包的臨時存放目錄
#ls /var/cache/apt/archives

備份當前系統安裝的所有包的列表
#dpkg –get-selections | grep -v deinstall > ~/somefile

從上面備份的安裝包的列表文件恢復所有包
#dpkg –set-selections < ~/somefile sudo dselect

清理舊版本的軟件緩存
#sudo apt-get autoclean

清理所有軟件緩存
#sudo apt-get clean

刪除系統不再使用的孤立軟件
#sudo apt-get autoremove

查看包在服務器上面的地址
#apt-get -qq –print-uris install ssh | cut -d"』 -f2

系統

查看內核
#uname -a

查看Ubuntu版本
#cat /etc/issue

查看內核加載的模塊
#lsmod

查看PCI設備
#lspci

查看USB設備
#lsusb

查看網卡狀態
#sudo ethtool eth0

查看CPU信息
#cat /proc/cpuinfo

顯示當前硬件信息
#lshw

硬盤

查看硬盤的分區
#sudo fdisk -l

查看IDE硬盤信息
#sudo hdparm -i /dev/hda

查看STAT硬盤信息
#sudo hdparm -I /dev/sda

#sudo apt-get install blktool
#sudo blktool /dev/sda id

查看硬盤剩餘空間
#df -h
#df -H

查看目錄佔用空間
#du -hs 目錄名

優盤沒法卸載
#sync fuser -km /media/usbdisk

內存

查看當前的內存使用情況
#free -m

進程

查看當前有哪些進程
#ps -A

中止一個進程
#kill 進程號(就是ps -A中的第一列的數字) 或者 killall 進程名

強制中止一個進程(在上面進程中止不成功的時候使用)
#kill -9 進程號 或者 killall -9 進程名

圖形方式中止一個程序
#xkill 出現骷髏標誌的鼠標,點擊需要中止的程序即可

查看當前進程的實時狀況
#top

查看進程打開的文件
#lsof -p

ADSL 配置 ADSL
#sudo pppoeconf

ADSL手工撥號
#sudo pon dsl-provider

激活 ADSL
#sudo /etc/ppp/pppoe_on_boot

斷開 ADSL
#sudo poff

查看撥號日誌
#sudo plog

如何設置動態域名
#首先去http://www.3322.org申請一個動態域名
#然後修改 /etc/ppp/ip-up 增加撥號時更新域名指令 sudo vim /etc/ppp/ip-up
#在最後增加如下行 w3m -no-cookie -dump

網絡

根據IP查網卡地址
#arping IP地址

查看當前IP地址
#ifconfig eth0 |awk 『/inet/ {split($2,x,」:」);print x[2]}』

查看當前外網的IP地址
#w3m -no-cookie -dumpwww.edu.cn|grep-o『[0-9]"{1,3″}".[0-9]"{1,3″}".[0-9]"{1,3″}".[0-9]"{1,3″}』
#w3m -no-cookie
-dumpwww.xju.edu.cn|grep-o'[0-9]"{1,3″}".[0-9]"{1,3″}".[0-9]"{1,3″}".[0-9]"{1,3″}』
#w3m -no-cookie -dump ip.loveroot.com|grep -o'[0-9]"{1,3″}".[0-9]"{1,3″}".[0-9]"{1,3″}".[0-9]"{1,3″}』

查看當前監聽80端口的程序
#lsof -i :80

查看當前網卡的物理地址
#arp -a | awk 『{print $4}』 ifconfig eth0 | head -1 | awk 『{print $5}』

立即讓網絡支持nat
#sudo echo 1 > /proc/sys/net/ipv4/ip_forward
#sudo iptables -t nat -I POSTROUTING -j MASQUERADE

查看路由信息
#netstat -rn sudo route -n

手工增加刪除一條路由
#sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
#sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

修改網卡MAC地址的方法
#sudo ifconfig eth0 down 關閉網卡
#sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
然後改地址
#sudo ifconfig eth0 up 然後啟動網卡

統計當前IP連接的個數
#netstat -na|grep ESTABLISHED|awk 『{print $5}』|awk -F: 『{print $1}』|sort|uniq -c|sort -r -n
#netstat -na|grep SYN|awk 『{print $5}』|awk -F: 『{print $1}』|sort|uniq -c|sort -r -n

統計當前20000個IP包中大於100個IP包的IP地址
#tcpdump -tnn -c 20000 -i eth0 | awk -F 「.」 『{print $1〞.」$2〞.」$3〞.」$4}』 | sort | uniq -c | sort -nr | awk 『 $1 > 100 『

屏蔽IPV6
#echo 「blacklist ipv6〞 | sudo tee /etc/modprobe.d/blacklist-ipv6

服務

添加一個服務
#sudo update-rc.d 服務名 defaults 99

刪除一個服務
#sudo update-rc.d 服務名 remove

臨時重啟一個服務
#/etc/init.d/服務名 restart

臨時關閉一個服務
#/etc/init.d/服務名 stop

臨時啟動一個服務
#/etc/init.d/服務名 start

設置

配置默認Java使用哪個
#sudo update-alternatives –config java

修改用戶資料
#sudo chfn userid

給apt設置代理
#export http_proxy=http://xx.xx.xx.xx:xxx

修改系統登錄信息
#sudo vim /etc/motd

中文

轉換文件名由GBK為UTF8
#sudo apt-get install convmv convmv -r -f cp936 -t utf8 –notest –nosmart *

批量轉換src目錄下的所有文件內容由GBK到UTF8
#find src -type d -exec mkdir -p utf8/{} “; find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} “; mv utf8/* src rm -fr utf8

轉換文件內容由GBK到UTF8
#iconv -f gbk -t utf8 $i > newfile

轉換 mp3 標籤編碼
#sudo apt-get install python-mutagen find . -iname 「*.mp3」 -execdir mid3iconv -e GBK {} “;

控制台下顯示中文
#sudo apt-get install zhcon 使用時,輸入zhcon即可

文件

快速查找某個文件
#whereis filename
#find 目錄 -name 文件名

查看文件類型
#file filename

顯示xxx文件倒數6行的內容
#tail -n 6 xxx

讓tail不停地讀地最新的內容
#tail -n 10 -f /var/log/apache2/access.log

查看文件中間的第五行(含)到第10行(含)的內容
#sed -n 『5,10p’ /var/log/apache2/access.log

查找包含xxx字符串的文件
#grep -l -r xxx .

全盤搜索文件(桌面可視化)
gnome-search-tool

查找關於xxx的命令
#apropos xxx man -k xxx

通過ssh傳輸文件
#scp -rp /path/filenameusername@remoteIP:/path
#將本地文件拷貝到服務器上
#scp -rpusername@remoteIP:/path/filename/path
#將遠程文件從服務器下載到本地

查看某個文件被哪些應用程序讀寫
#lsof 文件名

把所有文件的後輟由rm改為rmvb
#rename 』s/.rm$/.rmvb/』 *

把所有文件名中的大寫改為小寫
#rename 『tr/A-Z/a-z/』 *

刪除特殊文件名的文件,如文件名:–help.txt
#rm — –help.txt 或者 rm ./–help.txt

查看當前目錄的子目錄
#ls -d */. 或 echo */.

將當前目錄下最近30天訪問過的文件移動到上級back目錄
#find . -type f -atime -30 -exec mv {} ../back “;

將當前目錄下最近2小時到8小時之內的文件顯示出來
#find . -mmin +120 -mmin -480 -exec more {} “;

刪除修改時間在30天之前的所有文件
#find . -type f -mtime +30 -mtime -3600 -exec rm {} “;

查找guest用戶的以avi或者rm結尾的文件並刪除掉
#find . -name 『*.avi’ -o -name 『*.rm’ -user 『guest’ -exec rm {} “;

查找的不以java和xml結尾,並7天沒有使用的文件刪除掉
#find . ! -name *.java ! -name 『*.xml’ -atime +7 -exec rm {} “;

統計當前文件個數
#ls /usr/bin|wc -w

統計當前目錄個數
#ls -l /usr/bin|grep ^d|wc -l

顯示當前目錄下2006-01-01的文件名
#ls -l |grep 2006-01-01 |awk 『{print $8}』

FTP

上傳下載文件工具-filezilla
#sudo apt-get install filezilla

filezilla無法列出中文目錄?
站點->字符集->自定義->輸入:GBK

本地中文界面
1)下載filezilla中文包到本地目錄,如~/
2)#unrar x Filezilla3_zhCN.rar
3) 如果你沒有unrar的話,請先安裝rar和unrar
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
4)備份原來的語言包,再安裝;實際就是拷貝一個語言包。
#sudo cp /usr/share/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo.bak
#sudo cp ~/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo
5)重啟filezilla,即可!

解壓縮

解壓縮 xxx.tar.gz
#tar -zxvf xxx.tar.gz

解壓縮 xxx.tar.bz2
#tar -jxvf xxx.tar.bz2

壓縮aaa bbb目錄為xxx.tar.gz
#tar -zcvf xxx.tar.gz aaa bbb

壓縮aaa bbb目錄為xxx.tar.bz2
#tar -jcvf xxx.tar.bz2 aaa bbb

解壓縮 RAR 文件
1) 先安裝
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
2)
解壓
#unrar x aaaa.rar

解壓縮 ZIP 文件
1) 先安裝
#sudo apt-get install zip unzip
#sudo ln -f /usr/bin/zip /usr/bin/unzip
2)
解壓
#unzip x aaaa.zip

Nautilus

顯示隱藏文件
Ctrl+h

顯示地址欄
Ctrl+l

特殊 URI 地址
* computer:/// – 全部掛載的設備和網絡
* network:/// – 瀏覽可用的網絡
* burn:/// – 一個刻錄 CDs/DVDs 的數據虛擬目錄
* smb:/// – 可用的 windows/samba 網絡資源
* x-nautilus-desktop:/// – 桌面項目和圖標
*file:///– 本地文件
* trash:/// – 本地回收站目錄
* ftp:// – FTP 文件夾
* ssh:// – SSH 文件夾
* fonts:/// – 字體文件夾,可將字體文件拖到此處以完成安裝
* themes:/// – 系統主題文件夾

查看已安裝字體
在nautilus的地址欄裡輸入」fonts:///「,就可以查看本機所有的fonts

程序

詳細顯示程序的運行信息
#strace -f -F -o outfile

日期和時間

設置日期
#date -s mm/dd/yy

設置時間
#date -s HH:MM

將時間寫入CMOS
#hwclock –systohc

讀取CMOS時間
#hwclock –hctosys

從服務器上同步時間
#sudo ntpdate time.nist.gov
#sudo ntpdate time.windows.com

控制台

不同控制台間切換
Ctrl + ALT + ← Ctrl + ALT + →

指定控制台切換
Ctrl + ALT + Fn(n:1~7)

控制台下滾屏
SHIFT + pageUp/pageDown

控制台抓圖
#setterm -dump n(n:1~7)

數據庫

mysql的數據庫存放在地方
#/var/lib/mysql

從mysql中導出和導入數據
#mysqldump 數據庫名 > 文件名
#導出數據庫
#mysqladmin create 數據庫名 #建立數據庫
#mysql 數據庫名 < 文件名 #導入數據庫

忘了mysql的root口令怎麼辦
#sudo /etc/init.d/mysql stop
#sudo mysqld_safe –skip-grant-tables
#sudo mysqladmin -u user password 『newpassword」
#sudo mysqladmin flush-privileges

修改mysql的root口令
#sudo mysqladmin -uroot -p password 『你的新密碼』

其它

下載網站文檔
#wget -r -p -np -khttp://www.21cn.com
· r:在本機建立服務器端目錄結構;
· -p: 下載顯示HTML文件的所有圖片;
· -np:只下載目標站點指定目錄及其子目錄的內容;
· -k: 轉換非相對鏈接為相對鏈接。

如何刪除Totem電影播放機的播放歷史記錄
#rm ~/.recently-used

如何更換gnome程序的快捷鍵
點擊菜單,鼠標停留在某條菜單上,鍵盤輸入任意你所需要的鍵,可以是組合鍵,會立即生效; 如果要清除該快捷鍵,請使用backspace

vim 如何顯示彩色字符
#sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc

如何在命令行刪除在會話設置的啟動程序
#cd ~/.config/autostart rm 需要刪除啟動程序

如何提高wine的反應速度
#sudo sed -ie 『/GBK/,/^}/d’ /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE

#chgrp
[語法]: chgrp [-R] 文件組 文件…
[說明]: 文件的GID表示文件的文件組,文件組可用數字表示, 也可用一個有效的組名表示,此命令改變一個文件的GID,可參看chown。
-R 遞歸地改變所有子目錄下所有文件的存取模式
[例子]:
#chgrp group file 將文件 file 的文件組改為 group

#chmod
[語法]: chmod [-R] 模式 文件…
或 chmod [ugoa] {+|-|=} [rwxst] 文件…
[說明]: 改變文件的存取模式,存取模式可表示為數字或符號串,例如:
#chmod nnnn file , n為0-7的數字,意義如下:
4000 運行時可改變UID
2000 運行時可改變GID
1000 置粘著位
0400 文件主可讀
0200 文件主可寫
0100 文件主可執行
0040 同組用戶可讀
0020 同組用戶可寫
0010 同組用戶可執行
0004 其他用戶可讀
0002 其他用戶可寫
0001 其他用戶可執行
nnnn 就是上列數字相加得到的,例如 chmod 0777 file 是指將文件 file 存取權限置為所有用戶可讀可寫可執行。
-R 遞歸地改變所有子目錄下所有文件的存取模式
u 文件主
g 同組用戶
o 其他用戶
a 所有用戶
+ 增加後列權限
– 取消後列權限
= 置成後列權限
r 可讀
w 可寫
x 可執行
s 運行時可置UID
t 運行時可置GID
[例子]:
#chmod 0666 file1 file2 將文件 file1 及 file2 置為所有用戶可讀可寫
#chmod u+x file 對文件 file 增加文件主可執行權限
#chmod o-rwx 對文件file 取消其他用戶的所有權限

#chown
[語法]: chown [-R] 文件主 文件…
[說明]: 文件的UID表示文件的文件主,文件主可用數字表示, 也可用一個有效的用戶名表示,此命令改變一個文件的UID,僅當此文件的文件主或超級用戶可使用。
-R 遞歸地改變所有子目錄下所有文件的存取模式
[例子]:
#chown mary file 將文件 file 的文件主改為 mary
#chown 150 file 將文件 file 的UID改為150

Ubuntu命令行下修改網絡配置

以eth0為例
1. 以DHCP方式配置網卡
編輯文件/etc/network/interfaces:
#sudo vi /etc/network/interfaces
並用下面的行來替換有關eth0的行:
# The primary network interface – use DHCP to find our address
auto eth0
iface eth0 inet dhcp
用下面的命令使網絡設置生效:
#sudo /etc/init.d/networking restart
當然,也可以在命令行下直接輸入下面的命令來獲取地址
#sudo dhclient eth0

2. 為網卡配置靜態IP地址
編輯文件/etc/network/interfaces:
#sudo vi /etc/network/interfaces
並用下面的行來替換有關eth0的行:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
將上面的ip地址等信息換成你自己就可以了.

用下面的命令使網絡設置生效:
#sudo /etc/init.d/networking restart

3. 設定第二個IP地址(虛擬IP地址)
編輯文件/etc/network/interfaces:
#sudo vi /etc/network/interfaces
在該文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
根據你的情況填上所有諸如address,netmask,network,broadcast和gateways等信息.
用下面的命令使網絡設置生效:
#sudo /etc/init.d/networking restart

4. 設置主機名稱(hostname)
使用下面的命令來查看當前主機的主機名稱:
#sudo /bin/hostname
使用下面的命令來設置當前主機的主機名稱:
#sudo /bin/hostname newname
系統啟動時,它會從/etc/hostname來讀取主機的名稱.

5. 配置DNS
首先,你可以在/etc/hosts中加入一些主機名稱和這些主機名稱對應的IP地址,這是簡單使用本機的靜態查詢.
要訪問DNS 服務器來進行查詢,需要設置/etc/resolv.conf文件.
假設DNS服務器的IP地址是192.168.3.2, 那麼/etc/resolv.conf文件的內容應為:
search test.com
nameserver 192.168.3.2

安裝AMP服務

如果採用Ubuntu Server CD開始安裝時,可以選擇安裝,這系統會自動裝上apache2,php5和mysql5。下面主要說明一下如果不是安裝的Ubuntu server時的安裝方法。
用命令在Ubuntu下架設Lamp其實很簡單,用一條命令就完成。在終端輸入以下命令:
#sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd #phpmyadmin
裝好後,mysql管理員是root,無密碼,通過http://localhost/phpmyadmin就可以訪問mysql了

修改 MySql 密碼
終端下輸入:
#mysql -u root
#mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 「123456〞;
』123456『是root的密碼,可以自由設置,但最好是設個安全點的。
#mysql> quit; 退出mysql

apache2的操作命令
啟動:#sudo /etc/init.d/apache2 start
重啟:#sudo /etc/init.d/apache2 restart
關閉:#sudo /etc/init.d/apache2 stop
apache2的默認主目錄:/var/www/

文章轉自: http://www.blogjava.net/bukebushuo/archive/2009/08/27/283427.html

Bash Shell 快速鍵列表

Bash Shell 快速鍵列表

  • Alt-F: 到此行最後面
  • Alt-B: 到此行最前面
  • Ctrl-A: 回到此行最前面
  • Ctrl-E: 到此行的最後面
  • Ctrl-U: 清除一行中游標之前的所有文字
  • Ctrl-K: 清除一行字游標之後的所有文字
  • Ctrl-H: 移除游標前的一個字元(同 backspace)
  • Ctrl-D: 移除游標後的一個字元(若於命令列有字的話)
  • Ctrl-D: 結束輸入(如果您在 shell 下,就會跳出該 shell)
  • Ctrl-C: 終止正在執行的程式
  • Ctrl-Z: 暫時停止程式(將該工作放到背景) (fg 1, fg 2 拿回)
  • Ctrl-S: 停止輸出到畫面上(類似 Scroll Lock, ex: cat xxx 需暫停時使用)
  • Ctrl-Q: 回復輸出到畫面上(恢復Ctrl+S的輸出)
  • Ctrl-W: 刪除游標之前的最後一個單字
  • Ctrl-R: 搜尋過去的命令 (繼續往回找 Ctrl-r(上一個的上一個), 找過頭 Ctrl-R (Ctrl+Shift+r) 往下找)
  • Ctrl-F: 游標向後移動
  • Ctrl-B: 游標向前移動
  • Ctrl-P: 找上個指令(同上箭頭)
  • Ctrl-N: 找下個指令(同下箭頭)
  • Ctrl-T: 相近兩個字元互換位置
  • Ctrl-Z: 丟到背景執行, 可用 fg 回復
  • Ctrl-L: 清畫面
  • Ctrl-J: 同 Enter
  • Ctrl-I: 同 Tab
  • Ctrl-V: 加上要輸入特殊字元, ex: Ctrl-V Ctrl-C 會出現 ^C 而不是中斷
  • Ctrl-V TAB: 輸入 TAB,而不是命令列擴展
  • C-xC-e 可以使用 vim 寫入 script 讓他一次執行
  • Alt-d: 刪除游標之後的一個單字
  • TAB: 擴展要輸入的檔案到命令列上
  • 上/下箭頭: 開始搜尋過去的命令
  • ESC-T: 最後 兩個 “單字" 互換位置
  • C-xC-e 可以使用 VIM 寫入 Script 讓他一次執行

Bash Shell 可以設多種 Mode, 可參考如下:

  • set -o # 可以列出所有 Mode
  • set -o vi # 可以用 vi 操作法來操作 Bash Shell(用此 Mode 上述的快速鍵即無作用)
  • set -o emacs # Bash 預設就是此 Mode.

文章來源: http://blog.longwin.com.tw/2006/09/bash_hot_key_2006/