~: 展開爲用戶的主目錄shell
~USERNAME:展開爲指定用戶的主目錄bash
{}:可承載一個以逗號分隔的列表,並將其展開爲多個路徑ide
1 練習: 2 (1) 如何建立/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b 3 mkdir /tmp/x/{y1,y2}/{a,b} 4 5 (2) 如何建立x_m, y_m, x_n, y_n 6 mkdir {x,y}_{m,n} 7 8 (3) 如何建立/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin 9 mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
經過alias命令實現:工具
(1) aliasspa
顯示當前shell進程全部可用的命令別名;命令行
(2) alias NAME='VALUE'code
定義別名NAME,其至關於執行命令VALUE;blog
注意:在命令行中定義的別名,僅對當前shell進程有效;若是想永久有效,要定義在配置文件中;排序
小Tips:進程
編輯配置給出的新配置不會當即生效,須要讓bash進程從新讀取配置文件:source /path/to/config_file 或 . /path/to/config_file
撤消別名:unalias
unalias [-a] name [name ...]
Note: 若是別名同原命令的名稱,則若是要執行原命令,可以使用"\COMMAND";
Ctrl+a:跳轉至命令開始處;
Ctrl+e:跳轉至命令結尾處;
Ctrl+c:取消命令的執行;
Ctrl+u: 刪除命令行首至光村所在處的全部內容;
Ctrl+k: 刪除光標所在處至命令行尾部的全部內容;
程序:指令+數據
讀入數據:Input
輸出數據:Output
打開的文件都有一個fd: file descriptor (文件描述符)
標準輸入:keyborad(鍵盤), 0
標準輸出:monitor(顯示器), 1
標準錯誤輸出:monitor, 2
I/O重定向:改變標準位置
1)輸出重定向
COMMAND > NEW_POS, COMMAND >> NEW_POS
>:覆蓋重定向,目標文件中的原有內容會被清除;
>>: 追加劇定向,新內容會追加至目標文件尾部;
# set -C: 禁止將內容覆蓋輸出至已有文件中;
# set +C:取消進制
2>: 覆蓋重定向錯誤輸出數據流;
2>>: 追加劇定向錯誤輸出數據流;
標準輸出和錯誤輸出各自定向至不一樣位置:
COMMAND > /path/to/file.out 2> /path/to/error.out
合併標準輸出和錯誤輸出爲同一個數據流進行重定向:
&>:覆蓋重定向
&>>:追加劇定向
COMMAND > /path/to/file.out 2> &1
COMMAND >> /path/to/file.out 2>> &1
2)輸入重定向:<
tr命令:轉換或刪除字符
命令格式:tr [OPTION]... SET1 [SET2]
HERE Documentation:<<
# cat << EOF
# cat > /path/to/somefile << EOF
管道:一個命令的輸出能夠經過管道作爲另外一個命令的輸入。
管道咱們能夠理解現實生活中的管子,管子的一頭塞東西進去,另外一頭取出來,這裏「 | 」的左右分爲兩端,左端塞東西(寫),右端取東西(讀)。
例:ls -alh | more # 將當前路徑下的文件的詳細信息按照分頁的方式打印在屏幕上
1 練習: 2 一、將/etc/passwd文件中的前5行內容轉換爲大寫後保存至/tmp/passwd.out文件中; 3 # head -n 5 /etc/passwd | tr "a-z" "A-Z" > passwd.out 4 二、將登陸至將前系統上用戶信息中的後3行的信息轉換爲大寫後保存至/tmp/who.out文件中; 5 # who | tail -n 3 | tr 'a-z' 'A-Z' > /tmp/who.out
wc命令:
命令格式:wc [OPTION]... [FILE]...
cut命令:
命令格式:cut [OPTION]... [FILE]...
sort命令:
命令格式:sort [OPTION]... [FILE]...
uniq命令:
命令格式:uniq [OPTION]... [FILE]...