發表文章

目前顯示的是 8月, 2012的文章

檔案比較與修正 diff and patch

檔案比較與修正 diff and patch diff 比較檔案的異同 [lcc09@localhost ~]$ diff --help 用法:diff [選項]... FILES 比較兩個檔案的每一行。 -i --ignore-case 不分辨檔案內容中的大小寫。 -E --ignore-tab-expansion 忽略因將 tab 轉換為空格而造成的差異。 -b --ignore-space-change 忽略因空白字元數目不同而造成的差異。 -w --ignore-all-space 忽略所有空白字元。 -B --ignore-blank-lines 忽略任何因空行而造成的差異。 -I RE --ignore-matching-lines=RE 忽略任何符合指定的<正規表示式>的地方。 --strip-trailing-cr 去除輸入資料每行末端的 carriage return 字元。 -a --text 所有檔案都以文字檔方式處理。 -c -C 行數 --context[=行數] 顯示指定<行數>(預設 3 行)copied 格式的上下文 -u -U 行數 --unified[=行數] 顯示指定<行數>(預設 3 行)unified 格式的上下文 -q --brief 只顯示檔案是否不同。 -e --ed 以 ed script 方式輸出。 --normal 以正常的 diff 方式輸出。 -n --rcs 以 RCS diff 格式輸出。 -y --side-by-side 以兩列並排的方式顯示。 -D NAME --ifdef=NAME 輸出的資料以‘#ifdef NAME’方式標明差異。 -l --paginate 將輸出送至‘pr’指令來分頁。 -t --expand-tabs 將輸出中的 tab 換成空格。 -T --initial-tab 每行先加上 tab 字元,使 tab 字元可以對齊。 -r ...

Linux iSCSI 的 target and initiator 的設定 (CentOS6)

iSCSI iSCSI 又稱為IP-SAN,是一種基於網際網路及SCSI-3協議下的存儲技術,由IETF提出,並於2003年2月11日成為正式的標準。與傳統的SCSI技術比較起來,iSCSI技術有以下三個革命性的變化: 把原來只用於本機的SCSI協同透過TCP/IP網路傳送,使連接距離可作無限的地域延伸; 連接的伺服器數量無限(原來的SCSI-3的上限是15); 由於是伺服器架構,因此也可以實現在線擴容以至動態部署。 iSCSI Qualified Name (IQN) Format: The iSCSI Qualified Name is documented in RFC 3720, with further examples of names in RFC 3721. Briefly, the fields are: From the RFC:                    Naming     String defined by       Type  Date    Auth      "example.com" naming authority      +--++-----+ +---------+ +-----------------------------+      |  ||     | |         | |              ...

Linux 的 umask 及 suid , sgid 及sticky bit

預設權限 umask 可以透過 umask 指令設定. 非受限的使用者 umask is 002 檔案權限為 664 目錄權限為 775 root 的 umask 是 022 修改預設的權限 決定預設的存取權限 umask 目錄為 777(rwxrwxrwx) XOR umask值 = 建立的目錄權限 檔案為 666(rw-rw-rw-) XOR umask值 = 建立的檔案權限 計算時要用二進位計算,檔案最後一碼為don't care(忽略),umask對於檔案的x權限無意義.目錄則無此問題. XOR 計算真值表 A B XOR 0 0 0 0 1 1 1 0 1 1 1 0 當 mask 為 022 時 目錄為 111 111 111 (777) 000 010 010 (022) ============================= 111 101 101 (rwxr-xr-x) --> Don't use number and - to calculate 檔案為 11- 11- 11- (666) 000 010 010 (022) ======================= 110 100 100 (rw-r--r--) --> Don't use number and - to calculate [root@server1 ~]# umask 022 [root@server1 ~]# mkdir a [root@server1 ~]# touch aa [root@server1 ~]# ls -l drwxr-xr-x 2 root root 4096 Aug 17 13:52 a -rw-r--r-- 1 root root 0 Aug 17 13:52 aa 當 mask 為 023 時 目錄為 111 111 111 (777) 000 010 011 (023) ========================= 111 101 100 (???) 檔案為 11- 11- 11- (644) 000 010 011 (023) =====...

Linux OpenSSH 及 Rsync

OpenSSH OpenSSH: Secure Remote Shell 具有加密功能,這是用來取代以前傳統明碼傳輸的遠端存取工具 允許認證、加密存取遠端系統 ssh [user@]hostname ssh [user@]hostname command 要達成SSH的連線需要一個sshd server及一個ssh client ssh client 在windows底下有這幾套軟體 putty 原始的putty中文可以顯示,但在輸入有點小問題。 pietty putty的中文修改版,友善多了。 winscp 支援ssh ftp的程式,可以結合putty的帳號密碼 以上是windows上的免費工具 在linux下可以直接使用ssh連線 [student@server1 ~]$ ssh --help # 他的簡單參數說明 usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D port] [-e escape_char] [-F configfile] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path] [user@]hostname [command] # 直接連線格式為:ssh 帳號@主機名稱 [student@server1 ~]$ ssh guest1@192.168.3.249 The authenticity of host '192.168.3.249 (192.168.3.249)' can't be established. RSA key fingerprint is 90:8c:cd:57:e3:c8:27:50:92:39:e9:05:c8:3c:ae:84. Are...

Linux -- find 指令用法

find Find [directory...] [criteria...] 不同於 locate,Find 會實際去找檔案位置,但速度較慢,若沒有指定目錄,預設為cwd 目前工作目錄 語法 [lcc09@localhost ~]$ find --help 用法:find [路徑...] [表達式] 預設路徑為目前的目錄,預設的表達式是 -print 表達式可以包括運算子、選項、測試和操作模式: .....(略) 基本上可以分成三個大項來看: [路徑...]搜尋路徑 [表達式]搜尋的檔案條件,支援"Globbing"的語法。 動作action 命令執行(exec),屬"附加"性質,讓我們可以直接對 find 找到的檔案,運作指定的外部指令。 列印顯示(print),支援固定顯示。也可將顯示的資訊藉由選項直接存檔。 選項說明 -daystart 起始時間以當日的 -amin, -atime, -cmin, -ctime, -mmin, 及 -mtime 為基準。 -depth 處理目錄內容之後,再處理目錄本身。 -follow 對符號連結的檔案或目錄不做檢查。隱含了 -noleaf 選項的作用。 -help, --help 顯示程式用法資訊。 -maxdepth levels 指定搜尋測試的最大目錄層數(levels)。對超過目錄層數的子目錄將不予以處理。 -mindepth levels 指定搜尋測試的最小目錄層數(levels)。對 levels 內的目錄層數將不予以處理。 -mount 只處理當前所在的檔案系統。不處理不同檔案系統(filesystems)的目錄。此選項在某些版本的 find 指令必須改用 -xdev 選項。 -noleaf 捨棄檢查目錄是否有兩個硬連結(hard link)的優化處理。(程式預設的優化處理,在不必要時,反而會減緩搜尋測試的速度。如果使用者能理解自己檔案系統的硬連結狀況,適當地關閉預設的優化處理,將有助於速度的提昇) -version, --version 顯示程式本身的版本資訊。 -xdev 只處理當前所在的檔案系統。對放置在不同檔案系統(filesystems)的目錄不做處理。 ex1 [lcc09@lo...

The Bash Shell (2)

The bash shell Bash 變數 Variables are named values 常使用在儲存資料和命令的輸出 設定變數的方式 VARIABLE=VALUE 參考這個變數值 $VARIABLE $ HI="Hello, and welcome to $(hostname)." $ echo $HI Hello, and welcome to stationX. ex: # 將 ls /etc 的值存入 files 變數 [mtchang@localhost ~]$ files=$(ls /etc/) # 將變數內容取出 [mtchang@localhost ~]$ echo $files a2ps.cfg a2ps-site.cfg acpi ...(skip)... Environment Variables Variables are local to a single shell by default Environment variables 無法傳遞到 child shells Set with export VARIABLE=VALUE Accessed by some programs for configuration ex: [mtchang@localhost ~]$ hi="hello, nice to meet you." [mtchang@localhost ~]$ echo $hi hello, nice to meet you. set, env and echo 這三個指令都是用來顯示變數內容的 [mtchang@localhost ~]$ set | less [mtchang@localhost ~]$ env | less [mtchang@localhost ~]$ echo $HOME 一些常用的變數 Configuration variables PS1: PS1的bash prompt提示符號變數:(man 1 bash是一本很棒的線上手冊) \h hostname \u user name \w 目前工作目錄 \! history目前指令數量 \$ 秀「$」這個文...