Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

Netkiller Linux Shell 手札

Mr. Neo Chan, 陳景峯(BG7NYT)


中國廣東省深圳市龍華新區民治街道溪山美地
518131
+86 13113668890


2009-11-15

版權聲明

轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。

文檔出處:
http://netkiller.github.io
http://netkiller.sourceforge.net

微信掃瞄二維碼進入 Netkiller 微信訂閲號

QQ群:128659835 請註明“讀者”

內容摘要

本文檔講述Linux系統涵蓋了系統管理與配置包括:

[注意]對初學Linux的愛好者忠告

玩Linux最忌reboot(重新啟動)這是windows玩家壞習慣

Linux只要接上電源你就不要再想用reboot,shutdown,halt,poweroff命令,Linux系統和應用軟件一般備有reload,reconfigure,restart/start/stop...不需要安裝軟件或配置伺服器後使用reboot重新引導計算機

在Linux系統裡SIGHUP信號被定義為刷新配置檔案,有些程序沒有提供reload參數,你可以給進程發送HUP信號,讓它刷新配置檔案,而不用restart.通過pkill,killall,kill 都可以發送HUP信號例如: pkill -HUP httpd

我的系列文檔:

操作系統

Netkiller Linux 手札 Netkiller FreeBSD 手札 Netkiller Shell 手札 Netkiller Security 手札 Netkiller Web 手札 Netkiller Monitoring 手札 Netkiller Storage 手札 Netkiller Mail 手札

以下文檔停止更新合併到 《Netkiller Linux 手札》

Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller Multimedia 手札    

目錄

1. 自述
1.1. 系列文檔
1.2. 作者簡介
1.3. 寫給讀者
1.4. 文檔下載
1.5. 打賞(Donations)
1.5.1. 微信(Wechat)
1.5.2. 支付寶(Alipay)
1.5.3. PayPal Donations
1.5.4. 銀行(Bank)
1. Bash Shell
1.1. bash - GNU Bourne-Again SHell
1.1.1. -n 檢查腳本是否有語法錯誤
1.1.2. -x 顯示詳細運行過程
1.2. Introduction
1.2.1. chsh - change login shell
1.2.2. 切換身份
1.2.3. test 命令
1.2.4. I/O 重定向
1.2.4.1. error 重定向
1.2.4.2. 使用塊記錄日誌
1.2.4.3. tee - read from standard input and write to standard output and files
1.2.4.4. 創建檔案
1.2.4.5. 快速清空一個檔案的內容
1.2.5. pipes (FIFOs)
1.2.6. mktemp - create a temporary file or directory 臨時目錄與檔案
1.2.7. History 命令歷史記錄
1.2.7.1. .bash_history
1.2.7.2. .mysql_history
1.2.8. hash - hash database access method
1.2.9. prompt
1.3. variable
1.3.1. 系統變數
1.3.1.1. 命令行參數傳遞
1.3.1.2. $n $# $0 $?
1.3.1.3. shift 移位
1.3.2. 表達式
1.3.3. Internal Environment Variables
1.3.4. set 設置變數
1.3.5. unset 變數銷毀
1.3.6. 設置變數預設值
1.3.7. export 設置全局變數
1.3.8. declare
1.3.9. Numerical 數值運算
1.3.10. Strings 字元串操作
1.3.10.1. ##/#
1.3.10.2. %%/%
1.3.10.3. :n1:n2
1.3.10.4. #
1.3.10.5. example
1.3.10.6. 計算字元串長度
1.3.10.7. 字元串查找替換
1.3.11. Array 數組
1.3.11.1. for 與 array
1.3.11.2. while 與 array
1.3.11.3. array 與 read
1.3.11.4. 拆分字元串並轉換為數組
1.3.11.5. 數組轉為字元串
1.3.12. read 賦值多個變數
1.3.13. eval
1.4. conditions if and case
1.4.1. if
1.4.2. case
1.5. Loops for, while and until
1.5.1. for
1.5.2. while
1.5.3. until
1.6. Functions
1.6.1. Local variables
1.7. User interfaces
1.7.1. input
1.8. subshell
1.9. Example
1.9.1. 有趣的Shell
1.9.2. backup
1.9.3. CPU 核心數
1.9.4. Password
1.9.5. processes
1.9.5.1. pid
1.9.5.2. kill
1.9.5.3. pgrep
1.9.6. Shell 技巧
1.9.6.1. 行轉列,再批評
1.9.6.2. for vs while
1.9.6.3. 遍歷字元串
1.9.7. to convert utf-8 from gb2312 code
1.9.8. 使用內存的百分比
1.9.9. 合併apache被cronlog分割的log檔案
2. Z Shell
2.1. installing Z shell
2.2. Starting file
2.2.1. ~/.zshrc
2.3. Prompting
2.4. Aliases
2.5. History
2.6. FAQ
2.6.1. Home/End key
3. Shell command
3.1. Help Commands
3.1.1. man - an interface to the on-line reference manuals
3.1.1.1. manpath.config
3.1.1.2. 查看man手冊位置
3.1.1.3. 指定手冊位置
3.2. getconf - Query system configuration variables
3.3. Directory and File System Related
3.3.1. dirname
3.3.2. filename
3.3.2.1. 排除副檔名
3.3.2.2. 取副檔名
3.3.3. test - check file types and compare values
3.3.4. stat
3.3.5. mkdir - make directories
3.3.6. rename
3.3.7. touch
3.3.8. ls - list directory contents
3.3.8.1. full-time / time-style 定義日期時間格式
3.3.9. cp - copy files and directories
3.3.9.1. copy directories recursively
3.3.9.2. overwrite an existing file
3.3.9.3. -a, --archive same as -dR --preserve=all
3.3.10. rm - remove files or directories
3.3.10.1. -bash: /bin/rm: Argument list too long
3.3.10.2. zsh: sure you want to delete all the files in /tmp [yn]?
3.3.11. df - report file system disk space usage
3.3.12. du - estimate file space usage
3.3.13. tac - concatenate and print files in reverse
3.3.14. split - split a file into pieces
3.3.14.1. 按行分割檔案
3.3.14.2. 按尺寸分割檔案
3.3.15. find - search for files in a directory hierarchy
3.3.15.1. name
3.3.15.2. regex
3.3.15.3. user
3.3.15.4. perm
3.3.15.5. type
3.3.15.6. -delete
3.3.15.7. exec
3.3.15.8. xargs
3.3.15.9. 排除目錄
3.3.15.10. -mmin n File's data was last modified n minutes ago.
3.3.15.11. -mtime / -mmin
3.3.15.12. --newer
3.3.15.13. -print / -printf
3.3.15.14. -size
3.4. package / compress and decompress
3.4.1. tar — The GNU version of the tar archiving utility
3.4.1.1. tar examples
3.4.1.2. gunzip
3.4.1.3. b2zip
3.4.1.4. compress
3.4.1.5. -t, --list
3.4.1.6. tar: Removing leading `/’ from member names
3.4.1.7. -C, --directory=DIR
3.4.1.8. -P, --absolute-names don't strip leading `/'s from file names
3.4.1.9. --exclude
3.4.1.10. -T
3.4.1.11. 日期過濾
3.4.1.12. 保留權限
3.4.1.13. -r, --append
3.4.1.14. 遠程傳輸
3.4.1.15. 分卷壓縮
3.4.2. cpio - copy files to and from archives
3.4.3. gzip
3.4.4. zip, zipcloak, zipnote, zipsplit - package and compress (archive) files
3.4.5. RAR
3.4.6. 7-Zip
3.4.6.1. 壓縮
3.4.6.2. 瀏覽壓縮包
3.4.6.3. 解壓
3.4.6.4. Creates self extracting archive.
3.5. date and time
3.5.1. 日期格式
3.5.2. -d --date=
3.5.2.1. 日期偏移量
3.5.2.2. 時間偏移
3.5.3. weekday name
3.5.4. UTC
3.6. Numeric
3.6.1. 數值運算
3.6.2. seq - print a sequence of numbers
3.6.3. bc - An arbitrary precision calculator language
3.7. Text Processing
3.7.1. iconv - Convert encoding of given files from one encoding to another
3.7.1.1. cconv - A iconv based simplified-traditional chinese conversion tool
3.7.1.2. uconv - convert data from one encoding to another
3.7.2. 字元串處理命令expr
3.7.3. cat - concatenate files and print on the standard output
3.7.3.1. -s, --squeeze-blank suppress repeated empty output lines
3.7.4. nl - number lines of files
3.7.5. od - dump files in octal and other formats
3.7.5.1. 16進制
3.7.6. tr - translate or delete characters
3.7.7. cut - remove sections from each line of files
3.7.8. printf - format and print data
3.7.9. Free `recode' converts files between various character sets and surfaces.
3.7.10. /dev/urandom 隨機字元串
3.7.11. col - filter reverse line feeds from input
3.7.12. apg - generates several random passwords
3.7.13. head/tail
3.7.14. 反轉字元串或檔案內容
3.8. grep, egrep, fgrep, rgrep - print lines matching a pattern
3.8.1. 刪除空行
3.8.2. -v, --invert-match
3.8.3. Output control
3.8.3.1. -o, --only-matching show only the part of a line matching PATTERN
3.8.3.2. 遞歸操作
3.8.3.3. -c, --count print only a count of matching lines per FILE
3.8.4. Context control
3.8.4.1. -A, --after-context=NUM print NUM lines of trailing context
3.8.4.2. -B, --before-context=NUM print NUM lines of leading context
3.8.4.3. -C, --context=NUM print NUM lines of output context
3.8.4.4. --color
3.8.5. Regexp selection and interpretation
3.8.5.1. .*
3.8.5.2. 2010:(13|14|15|16)
3.8.5.3. []與{}
3.8.5.4. -P, --perl-regexp Perl正則表達式
3.8.6. fgrep
3.8.7. egrep
3.9. sort - sort lines of text files
3.9.1. 對列排序
3.10. uniq
3.11. 表格操作/行列轉換
3.11.1. column - columnate lists
3.11.2. paste - merge lines of files
3.12. standard input/output
3.12.1. xargs - build and execute command lines from standard input
3.12.1.1. 格式化
3.12.1.2. standard input
3.12.1.3. -I 替換操作
3.13. Logging
3.13.1. logger - a shell command interface to the syslog(3) system log module
3.14. Password
3.14.1. Shadow password suite configuration.
3.14.2. newusers - update and create new users in batch
3.14.3. chpasswd - update passwords in batch mode
3.15. binutils
3.15.1. strings - print the strings of printable characters in files.
5. Utility Programs
5.1. ed, red - text editor
5.2. vim
5.2.1. 查找與替換
5.2.2. 插入檔案
5.2.3. 批處理
5.2.3.1. vi 批處理
5.2.4. line()
5.3. awk
5.3.1. 處理列
5.3.2. printf
5.3.3. Pattern(字元匹配)
5.3.3.1. Pattern, Pattern
5.3.4. Built-in Variables (NR/NF)
5.3.4.1. NR
5.3.4.2. NF
5.3.4.3. 練習
5.3.5. Built-in Functions
5.3.5.1. length
5.3.6. 過濾相同的行
5.4. sed
5.4.1. 查找與替換
5.4.1.1. 正則
5.4.1.2. delete
5.4.1.3. aaa="bbb" 提取bbb
5.4.1.4. 首字母大寫
5.4.2. 編輯檔案
5.4.3. 內容打印
5.4.4. 編輯操作
5.4.4.1. insert
5.4.5. 管道操作
5.5. CURL - transfer a URL
5.5.1. 基本用法
5.5.2. data
5.5.3. connect-timeout
5.5.4. max-time
5.5.5. compressed
5.5.6. vhosts
5.5.7. 輸出格式定義
5.5.8. -A/--user-agent <agent string>
5.5.9. referer
5.5.10. -v
5.5.11. -o, --output FILE Write output to <file> instead of stdout
5.5.12. -H/--header <line> Custom header to pass to server (H)
5.5.12.1. Last-Modified / If-Modified-Since
5.5.12.2. ETag / If-None-Match
5.5.12.3. Accept-Encoding:gzip,defalte
5.5.12.4. HOST
5.5.12.5. HTTP 認證
5.5.13. curl-config
5.5.14. FAQ
5.6. expect
5.6.1. 模擬登錄 telnet 獲取Cisco配置
5.6.2. 模擬登錄 ssh
5.6.3. SCP
5.7. expect-lite - quick and easy command line automation tool
5.8. sshpass - noninteractive ssh password provider
5.9. Klish - Kommand Line Interface Shell (the fork of clish project)
5.9.1. 安裝Klish
5.9.2. 為用戶指定clish作為預設Shell
5.9.3. FAQ
5.9.3.1. clish/shell/shell_expat.c:36:19: fatal error: expat.h: No such file or directory
5.10. Limited command Shell (lshell)
5.11. wget - retrieves files from the web
5.11.1. Logging and input file
5.11.1.1. -i, --input-file=FILE download URLs found in local or external FILE.
5.11.2. HTTP options
5.11.2.1. --post-data=STRING use the POST method; send STRING as the data.
5.11.3. Recursive download
5.11.3.1. -r, --recursive specify recursive download.
5.11.3.2. -m, --mirror shortcut for -N -r -l inf --no-remove-listing.
5.11.4. --no-passive-ftp disable the "passive" transfer mode.
5.12. TUI
5.12.1. screen - screen manager with VT100/ANSI terminal emulation
5.12.2. tmux — terminal multiplexer
5.12.3. byobu - wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)
5.12.4. htop - interactive process viewer
5.12.5. elinks
5.12.6. chat
5.13. parallel - build and execute shell command lines from standard input in parallel
6. Shell Terminal
6.1. terminal
6.1.1. resize - set TERMCAP and terminal settings to current xterm window size
6.1.2. tset, reset - terminal initialization
6.1.3. stty - change and print terminal line settings
6.2. tput
6.2.1. Change the prompt color using tput
6.3. dialog
6.3.1. --inputbox
6.4. whiptail - display dialog boxes from shell scripts
6.4.1. --msgbox
6.4.2. --infobox
6.4.3. --yesno
6.4.4. --inputbox
6.4.5. --passwordbox
6.4.6. --textbox
6.4.7. --checklist
6.4.8. --radiolist
6.4.9. --menu
6.4.10. --gauge
1. 附錄
1.1. 參考文獻

表格清單

1.1. 檔案目錄表達式
1.2. 字元串表達式
1.3. 組合表達式

範例清單

1.1. A "Power User" Prompt
1.2. A Prompt the Width of Your Term
1.3. The Elegant Useless Clock Prompt
1.4. Basic conditional example if .. then
1.5. Conditionals with variables
1.6. case
1.7. Functions with parameters sample
1.8. Using select to make simple menus
1.9. Using the command line
1.10. Reading user input with read
1.11. read
1.12. random password
3.1. backup(find + tar)
5.1. example for expect
5.2. example for expect
5.3. example 1
5.4. *.exp
5.5. parallel - build and execute shell command lines from standard input in parallel
6.1. whiptail - yesno
6.2. whiptail - inputbox
6.3. whiptail - passwordbox
6.4. whiptail - passwordbox
6.5. whiptail - example 1
6.6. whiptail - radiolist