一.bash的快捷鍵:
Ctrl+a: 跳至指令行首
Ctrl+e: 跳至指令行尾
Ctrl+u: 删除指令行首至目前光标所在處的内容
Ctrl+k: 删除目前光标所有處至指令行尾的内容
Ctrl+l: 清屏,相當于clear指令
Ctrl+c: 取消或終止;
Ctrl+z: 将目前指令送至背景
Ctrl+Shift+t: 建立新的标簽頁
Ctrl+PageUp/PageDown: 切換标簽頁
Ctrl+Shift+c: 複制選中的内容
Ctrl+Shift+v: 粘貼
Shift+PageUp/PageDown: 上下翻動螢幕
空格鍵:向後翻一屏;
b: 向前翻一屏;
Enter鍵:向後翻一行;
k: 向前翻一行;
Ctrl+d: 向後翻半屏;
Ctrl+u: 向前翻半屏;
G: 跳轉至檔案尾;
1G: 跳轉至檔案首;
q: 退出;
bash的快捷鍵:
二.
Ifconfig 顯示登入位址,廣播位址等資訊
startx & 切換到圖形界面 startx -- :1 &
# basename PATH
例如#. basename /usr/share/doc顯示基名 doc
# dirname PATH
例如 dirname /usr/share/doc 顯示路徑 /usr/share
# logout: 登出
# passwd修改使用者密碼 /etc/passwd可以檢視所有使用者的屬性資訊
# which COMMAND
# type COMMAND 檢視指令類型是内建指令還是外部指令
# echo ${VAR_NAME}變量引用
# hash
# history 顯示此前的指令
!#: 執行曆史中的第#條;
!-#: 執行曆史中的倒數第#條;
!!: 指令曆史中的最後一條指令;
!string: 執行指令曆史中最近一條以“string”開頭的指令;
[]:可省略之内容
<>: 必須提供的内容
a|b: 二者選擇一個
...: 前面的内容可重複出現多次
三.如何擷取指令幫助:
内建指令:help COMMAND
外部指令:
1、manual: 使用手冊, man COMMAND
2、info: 資訊頁, info COMMAND
3、簡要使用幫助: COMMAND --help
4、官方文檔:google
5、額外的文檔:README、INSTALL、ChangeLog 、/usr/share/doc/ls-VERSION
6、發行版官方文檔,http://www.redhat.com/docs/
四.ls: 列出指定目錄下的檔案
-l:以長格式顯示檔案的詳細屬性 分别是(檔案類型/屬主、屬組及其它使用者的權限/檔案被硬連結的次數/屬主/屬組/檔案的大小/檔案最近一次被修改的時間/檔案名)
-a:顯示所有檔案,包括隐藏檔案
-A:跟-a功能相同,但不顯示.和..;
.: 目前目錄;
..: 上級目錄;
-n: 以使用者及組的id号排序;
-h: 檔案大小會自動進行機關換算;
-r:檔案名逆序顯示;
-R:遞歸顯示;
date: date +%s
顯示天 -d
顯示月 -m
顯示年 -Y
顯示小時 -H
顯示年-月-日 -F
顯示小時:分鐘:秒 -T
date mmddHHMM[CC[YY]][.SS]
hwclock
-w: 以系統時鐘為準,将硬體時鐘修改為系統時間
-s:以硬體時鐘為準,将系統時間修改為硬體時間
目錄相關指令:
cd /usr/share
回到家目錄:cd ~
cd
cd ~USERNAME: 切換至USERNAME的家目錄;
cd -: 在上個目錄和目前目錄之間切換;
pwd: 顯示目前目錄;
dirname:顯示指定路徑的目錄;
mkdir 建立新目錄
-p:沒有錯誤,如果現有的,根據需要父目錄
-v: 顯示建立過程
bash支援指令行展開:{}
例如a_b, a_dc_b, c_d
mkdir a_b a_d c_b c_d
mkdir {a,c}_{b,d}
五.文本檔案相關的指令:
檢視:
cat, tac
more: 向後翻,在翻至檔案尾部之前允許向前翻
less: 向前翻
head: 檔案的前n行;
tail: 檔案的後n行;-n # 或 -#
文本查找:查找單詞
/keyword: 從目前光标所在行開始,向檔案尾部查找;
?keyword: 從目前光标所在行開始,向檔案首部查找;
n: 跟目前查找指令相同方向的下一個比對;
N:跟目前查找指令相反方向的下一個比對;
tail -f: 檢視一個檔案尾部内容後,不退出,等待并顯示新增的行;退出使用Ctrl+C;
建立文本:
nano
touch: 修改檔案時間戳;
-a: 通路時間
-m: 修改時間
-t STAMP: 指定時間,格式[CC]YYMMDDhhmm.ss
複制:
cp 要複制的檔案路徑 ... 目标
-r: 遞歸複制
-a: 遞歸複制
-i: 互動式,覆寫前提醒确認
-v:解釋要做什麼
移動:
mv 要移動的檔案 ... 目标
-i: 覆寫前提醒确認;
删除:
rm
-i: 提醒
-f: 強行删除;
-r: 遞歸删除目錄及其内部的所有檔案;
-rf 删除目錄及其内部的所有檔案不會提醒确認
文本處理指令:
wc [options] FILE
-l: 隻顯示行數;
-w 隻顯示單詞數
-c 隻顯示字元數
tr: translate
tr [options] '原來的字元集合' '轉換為的字元集合'
-d '字元集合':把出現的檔案中的,屬于字元集合中的字元統統删除;
cut: 文本切割,
cut [options] FILE
-d: 預設分隔符為空白,-d:
-f 後面直接寫所要取得段數
join: 和cut相反。組合内容
通配符:
*:任意長度的任意字元;
?: 任意單個字元;
[]: 指定範圍内的任意單個字元;
[^]:脫字元,取反,指定範圍外的任意單個字元,
字元集合:
[:digit:] : 所有數字, 相當于0-9
[:lower:]:所有的小寫字母。相當于a-z
[:upper:]:所有的大寫字母。相當于A-Z
[:alpha:]: 所有的字母。相當于a-zA-Z
[:alnum:]:所有的字母和數字。 相當于[0-9a-zA-Z]
[:space:]: 空白字元
[:punct:]:所有标點符号
判斷普通檔案的内容的類型,使用file指令;
# file FILE
檔案相關:
touch:
access time: -a 最後一次的通路時間
modify time: -m 最後一次的修改時間
change time 最後一次的改變時間
stat FILE 檢視檔案的最近一次的通路時間,最近一次的修改時間,最近一次的改變時間等内容
-t [CC]YYMMDDhhmm.ss 修改為指定時間
六.添加使用者:
useradd, adduser
# useradd USERNAME
定制使用者屬性:
-u UID,
-g GID, 有效範圍已有的GID;
-G GID, 有效範圍為已有的GID;可以有多個,用逗号分隔;
-c COMMENT 注釋資訊
-d /path/to/somewhere 指定路徑
-s /path/to/shell_command
-r: 建立系統使用者, ID号範圍為1-499之間的使用者;系統使用者的家目錄不會被真正建立;
-M: 不為使用者建立家目錄;
-m: 必須為使用者建立家目錄;
轉換使用者:
su (switch user)
su USERNAME
su - USERNAME
管理者su到普通使用者,不需要密碼;反之,不可以;
建立組:groupadd
groupadd GRPNAME
/etc/group:
組名:密碼占位符:GID:以此組為額外組的使用者清單,使用者間用逗号分隔;
-g GID: 建立組的時候為其指定GID;
-r: 建立系統組;
修改使用者屬性:
usermod:
-u UID
-g GID
-a -G GID: -G修改額外組時會覆寫原有的額外組,同時使用則能保留原有的額外組;
-c COMMENT 注釋資訊
-s /PATH/TO/SHELL
-l NEW_NAME: 改使用者的登入名稱;
-m -d /path/to/somewhere:-d隻修改家目錄指向,同時使用-m選項則可實作将原來家目錄移動為新的家目錄;
密碼管理:
passwd: 修改自己的密碼;
passwd USERNAME: 修改指定使用者的密碼
-l: 鎖定使用者帳号
-u: 解鎖
groupmod: 修改組屬性
-n NEW_NAME
useradd密鑰屬性的修改:
passwd:
-e
-n: 密碼最短使用天數;
-x:最長使用天數;
-w: 警告天數;
-i: 非活動時長;
chage
-d: 修改密碼的最近一次修改時間
-m, --mindays MIN_DAYS:最短使用期限;
-M, --maxdays MAX_DAYS:最長使用期限;
-W, --warndays WARN_DAYS:警告天數;
-I, --inactive INACTIVE:非活動天數;
-E, --expiredate EXPIRE_DATE:過期時間;
usermod
-e YYYY-MM-DD: 指定帳号過期期限;
-i #: 非活動天數;
gpasswd: 為組設定密碼;
newgrp GROUP: 臨時設定指定的組為自己的基本組;
權限:
r: read, 檔案可讀
w: write, 檔案可寫
x: execute, 檔案可發起為程序,目錄表示可ls -l, cd
改變檔案權限:屬主 u 屬組 g 其它 o 所有的a
chmod: change mode
權限定義方式:
1、同時修改三類使用者的權限: 8進制數字方式
2、修改某一類或某些類使用者的權限:u=,g=
3、隻操作某類使用者的某位或某些位權限:u+x ,u-x
選項:
-R: 遞歸修改權限;
--refernce=/path/to/somefile FILE
修改檔案的屬主和屬組:
chown [選項] 使用者 檔案
chgrp [選項] 組 檔案
chown 使用者:組 檔案
chown 使用者.組 檔案
删除使用者:
userdel:
userdel [options] USERNAME
-r 不保留使用者的家目錄
删除組:
groupdel
groupdel GRPNAME
指令補齊:
Tab鍵會搜尋PATH環境變量所指定的路徑下的所有可執行檔案,如果“指令的部分字元”能惟一表示某指令,則直接補全為那個指令;
如果不能惟一表示,則再敲一次tab鍵,會顯示所有以“指令的部分字元”開頭的指令
七.基本正規表達式:
^:錨定行首的符合條件的内容,用法格式“^pattern”;
$: 錨定行尾的符合條件的内容,用法格式“pattern$”;
^pattern$:
^$: 空白行
.: 比對任意單個字元
*:比對緊挨在其前面的字元任意次;
.*: 比對任意長度的任意字元
[]:比對指定範圍内的任意單個字元
[^]:比對指定範圍外的任意單個字元
[:lower:]
[:upper:]
[:digit:]
[:alpha:]
[:alnum:]
[:space:]
[:punct:]
\?: 比對緊挨在其前面的字元0次或1次;
\{m,n\}: 比對其前面的字元至少m次,至多n次;
\{0,n\}: 至多n次;0-n次;
\{m,\}:至少m次
\{m\}: 精确比對m次;
\<: 錨定詞首,用法格式:\<pattern
\>: 錨定詞尾,用法格式:pattern\>
\<pattern\>:錨定單詞
\(\): 分組,用法格式: \(pattern\)
ab任意字元ab:ab.*ab
a.b任意字元a.b: \(a.b\).*\1
grep的選項:
--color=auto 有顔色顯示
-v: 反向選取,隻顯示不符合模式的行;
-o: 隻顯示被模式比對到的字串,而不是整個行;
-i: 不區分字元大小寫;
-A #:顯示比對到的行時,順帶顯示其後面的#個行;
-B #:前面的#行;
-C #:前後的#行;
-E: 使用擴充的正規表達式grep -E = egrep
擴充正規表達式: egrep
.: 任意單個字元
[]: 比對指定範圍内的任意單個字元
*
+: 比對其前面的字元至少1次;
?:
{m,n}: 至少m次,至多n次;
():分組,支援引用\1, \2;
a|b: 二選一;
\<:錨定詞首
\>:錨定詞尾
^ 錨定行首的符合條件的内容
$ 錨定行尾的符合條件的内容
| :表示或者的意思
sort: 排序
-f: 忽略字元大小寫;
-n: 以數值大小進行排序;
-r: 降序;
-u: 移除重複的行,具有相同内容的行隻保留一個;
-R: 随機排序;
uniq:
-c:統計每行重複的次數;
-u:隻顯示沒有重複的行
-d: 隻顯示重複過的行;
八.輸出重定向:
>:覆寫重定向;
set -C: 避免覆寫已經存在的檔案中的内容;
強制覆寫:>|
set +C: 關閉上述功能;
>>:追加重定向;
/dev/null: 資料黑洞,bit bucket
錯誤輸出重定向:
2>: 覆寫重定向;
2>>: 追加重定向;
同時重定标準輸出和錯誤輸出:
例如:COMMAND > /path/to/stdout 2> /path/to/error
标準輸出和錯誤輸出定向至一個檔案:
COMMAND &> /path/to/somewhere
COMMAND > /path/to/somewhere 2>&1
輸入重定向:
<:COMMAND < /from/somewhere
<<:Here Document,此處建立文檔
cat > /path/to/somefile << EOF
abc
hello
EOF
通常用于腳本中生成文檔
cat << EOF
通常用于腳本中向使用者輸出大段資訊;
管道:|
COMMAND1 | COMMAND2 | COMMAND3 | ...
本文轉自 宋鵬超 51CTO部落格,原文連結:http://blog.51cto.com/qidian510/1248779,如需轉載請自行聯系原作者