隨著對Linux學習的深入,Linux命令也越來越多的。雖然我們可以通過man等幫助查詢我
忘記的命令,但寫腳本本質是由命令有序的堆砌而運行的。下面讓我來總結一番我們學習過的命令
1.查看當前的終端設備:#tty
2.顯示當前使用的shell
echo ${SHELL}
3. 顯示當前系統使用的所有shell
cat /etc/shells
4.示提示符格式
[root@localhost~]#echo $PS1
5.區別指定的命令是內部或外部命令
type COMMAND
6.hash常見用法
hash 顯示hash緩存
hash –l 顯示hash緩存,可作為輸入使用
hash –p path name 將命令全路徑path起別名為name
hash –t name 打印緩存中name的路徑
–d name 清name緩存
hash –r 清除緩存
7.顯示當前shell進程所有可用的命令別名
alias
定義別名NAME,其相當于執行命令VALUE
alias NAME=’VALUE’
在命令行中定義的別名,僅對當前shell進程有效
如果想永久有效,要定義在配置文件中
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
撤消別名:unalias
unalias[-a] name [name …]
-a 取消所有別名
8. 用戶登錄信息查看命令:
whoami: 顯示當前登錄有效用戶
who: 系統當前所有的登錄會話
w: 系統當前所有的登錄會話及所做的操作
9.命令:
創建新screen會話
screen –S [SESSION]
加入screen會話
screen –x [SESSION]
退出并關閉screen會話
exit
剝離當前screen會話
Ctrl+a,d
顯示所有已經打開的screen會話
screen -ls
恢復某screen會話
screen -r [SESSION]
10. echo命令:
功能:顯示字符
語法:echo [-neE][字符串]
選項
E (默認)不支持\解釋功能
-n 不自動換行
–e 啟用\字符的解釋功能
顯示變量
echo “$VAR_NAME“ 變量會替換,弱引用
echo ‘$VAR_NAME‘ 變量不會替換,強引用
啟用命令選項-e,若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出(有可能用到腳本中)
\a 發出警告聲 —>自動化腳本會用到
\b 退格鍵
\c 最后不加上換行符號
\n 換行且光標移至行首
\r 回車,即光標移至行首,但不換行
\t 插入tab
\\插入\字符
11.歷史history:
history [-c] [-d offset] [n]
history -anrw[filename]
history -psarg[arg…]
選項:
-c: 清空命令歷史
-d offset: 刪除歷史中指定的第offset個命令
n: 顯示最近的n條歷史
a: 追加本次會話新執行的命令歷史列表至歷史文件
-n: 讀歷史文件中未讀過的行到歷史列表
-r: 讀歷史文件附加到歷史列表
-w: 保存歷史列表到指定的歷史文件
-p: 展開歷史參數成多行,但不存在歷史列表中
-s: 展開歷史參數成一行,附加在歷史列表后
12.顯示日期和時間:date
SYNOPSIS
date [OPTION]…
[+FORMAT]
date [-u|–utc|–uni-
versal] [MMD-
Dhhmm[[CC]YY][.ss]]
Linux的兩種時鐘
系統時鐘:由Linux內核通過CPU的工作頻率進行的
硬件時鐘:主板
hwclock,clock: 顯示硬件時鐘
-s, –hctosys以硬件時鐘為準,校正系統時鐘
-w, –systohc以系統時鐘為準,校正硬件時鐘
[root@CentOS6 app]# date #系統格式
Sat Jul 29 21:18:45 CST 2017
[root@CentOS6 app]# date 082712342017.03 系統格式,月日小時分年。秒
Sun Aug 27 12:34:03 CST 2017
[root@CentOS6 app]# date “+%F %T” #自定義模式
2017-07-29 07-29-17
[root@CentOS6 app]# date -d -1 “+%F +%D” #錯誤自定義一天以前書寫格式
date: invalid date `-1′
[root@CentOS6 app]# date -d “-1 days” “+%F %T”#正確的一天以前要加單位要引起來
2017-07-28 07-28-17
13.時區:/etc/localtime
14. cal顯示日歷
cal-y
15.關機或重啟:
halt, poweroff
重啟:reboot
-f: 強制,不調用shutdown
-p: 切斷電源
關機或重啟:shutdown
shutdown [OPTION]… TIME [MESSAGE]
-r: reboot
-h: halt
-c:cancel
TIME:無指定,默認相當于+1
now: 立刻,相當于+0
+m: 相對時間表示法,幾分鐘之后;例如+3
hh:mm: 絕對時間表示,指明具體時間
顯示當前路徑pwd
-P 顯示真實物理路徑
-L 顯示鏈接路徑(默認)
16.基名:basename(一般用于腳本取文件名)
17.目錄名:dirname
18.當前目錄的內容或指定目錄
用法:ls [options] [files_or_dirs]
示例:
ls -a包含隱藏文件
ls -l顯示額外的信息
ls -R目錄遞歸通過
ls -ld目錄和符號鏈接信息
ls -1 文件分行顯示
ls –S 按從大到小排序
–t 按mtime排序
ls –U 按目錄存放順序顯示
ls –X 按文件后綴排序
19. stat
文件:metadata, data
三個時間戳:
access time:訪問時間,atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
20.touch命令:
touch [OPTION]… FILE…
-a僅改變atime和ctime
-m 僅改變mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的時間戳
-c如果文件不存在,則不予創建
21.mv
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]….SOURCE…
選項:
-i: 交互式
-f: 強制
22.rm[OPTION]… FILE…
常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸
–no-preserve-root
rm-r遞歸刪除目錄樹
rm命令:
把刪除目錄項
數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋。
注意:請慎用rm -rf,一般用把別名處理alias rm=”mv -t”
eg:
rm-tree 顯示目錄樹
-d: 只顯示目錄
-L level:指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑
23.mkdir
-p: 存在于不報錯,且可自動創建所需的各目錄
-v: 顯
-m MODE: 創建目錄時直接指定權限
24.rmdir
rmdir刪除空目錄
-p: 遞歸刪除父空目錄
-v: 顯示詳細信息
24.cp復制
cp[OPTION]… [-T] SOURCE DEST
cp[OPTION]… SOURCE… DIRECTORY
cp[OPTION]… -t DIRECTORY SOURCE…
25.ln鏈接
語法:
ln filename [linkname] 硬連接
ln -s filename [linkname] 軟連接
26.tr轉換和刪除字符
tr[OPTION]… SET1 [SET2]
選項:
-c–C –complement:取字符集的補集(除了)
-d–delete:刪除所有屬于第一字符集的字符
-s–squeeze-repeats:把連續重復的字符以單獨一個字符表示
-t–truncate-set1:將第一個字符集對應字符轉化為第二字符集對應的字符

27. less :一頁一頁地查看輸入(通常與管道一起用)
cat /etc/passwd |less
28.useradd
useradd[options] LOGIN
-u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
-o 配合-u 選項,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可為組名,也可以GID
-c “COMMENT”:用戶的注釋信息
-d HOME_DIR:以指定的路徑(不存在)為家目錄
-s SHELL: 指明用戶的默認shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:為用戶指明附加組,組須事先存在
-N 不創建私用組做主組,使用users組做主組
-r: 創建系統用戶CentOS 6: ID<500,CentOS 7: ID<1000
?默認值設定:/etc/default/useradd文件中
?顯示或更改默認設置:
useradd-D
useradd–D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP
29. newusers passwd格式文件批量創建用戶
30. chpasswd 批量修改用戶口令
31.usermod
usermod[OPTION] login
-u UID: 新UID
-g GID: 新主組
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項
-s SHELL:新的默認SHELL
-c ‘COMMENT’:新的注釋信息
-d HOME: 新家目錄不會自動創建;若要創建新家目錄并移動原家數據,同時使用-m選項
-l login_name: 新的名字;
-L: lock指定用戶,在/etc/shadow 密碼欄的增加!
-U: unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉
-e YYYY-MM-DD: 指明用戶賬號過期日期
-f INACTIVE: 設定非活動期限
32.userdel
userdel[OPTION]… login
-r: 刪除用戶家目錄
33.id
id [OPTION]… [USER]
-u: 顯示UID
-g: 顯示GID
-G: 顯示用戶所屬的組的ID
-n: 顯示名稱,需配合ugG使用
34.su[options…] [-] [user [args…]]
切換用戶的方式:
su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄
su – UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
root su至其他用戶無須密碼;非root用戶切換時需要密碼
換個身份執行命令:
su[-] UserName-c ‘COMMAND’
選項:-l –login
su-l UserName相當于su-UserName
34. passwd: 修改自己的密碼
常用選項:
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-iinactivedays:非活動期限
–stdin:從標準輸入接收用戶密碼
35.gpasswd[OPTION] GROUP
-a user: 將user添加至指定組中
-d user: 從指定組中移除用戶user
-A user1,user2,…: 設置有管理權限的用戶列表
newgrp命令:臨時切換主組
如果用戶本不屬于此組,則需要組密碼
groupmems[options] [action]
options:
-g, –group groupname更改為指定組(只有root)
Actions:
-a, –add username 指定用戶加入組
-d, –delete username 從組中刪除用戶
-p, –purge 從組中清除所有成員
-l, –list 顯示組成員列表
36.groups [OPTION].[USERNAME]… 查看用戶所屬組列表
-M –maxdaysMAX_DAYS
-W –warndaysWARN_DAYS
–l 顯示密碼策略
示例:
chage-d 0 tom 下一次登錄強制重設密碼
chage-m 0 –M 42 –W 14 –I 7 tom
chage-E 2016-09-10 tom
37.chfn指定個人信息
38.chsh指定shell
39.finger
40.groupadd[OPTION]… group_name
-g GID: 指明GID號;[GID_MIN, GID_MAX]
-r: 創建系統組
CentOS 6: ID<500
CentOS 7: ID<1000
41.組屬性修改:groupmod
groupmod[OPTION]… group
-n group_name: 新名字
-g GID: 新的GID
42.組刪除:groupdel
groupdelGROUP
43.修改文件的屬主:chown
chown[OPTION]… [OWNER][:[GROUP]] FILE…
用法:
OWNER
OWNER:GROUP
:GROUP
命令中的冒號可用.替換
-R: 遞歸
44.組密碼:gpasswd
gpasswd[OPTION] GROUP
-a user: 將user添加至指定組中
-d user: 從指定組中移除用戶user
-A user1,user2,…: 設置有管理權限的用戶列表
45.newgrp命令:臨時切換主組
如果用戶本不屬于此組,則需要組密碼
46. groupmems[options] [action]
options:
-g, –group groupname更改為指定組(只有root)
Actions:
-a, –add username 指定用戶加入組
-d, –delete username 從組中刪除用戶
-p, –purge 從組中清除所有成員
-l, –list 顯示組成員列表
47.groups [OPTION].[USERNAME]… 查看用戶所屬組列表
48.修改文件的所有者
chown[OPTION]… –reference=RFILE FILE…
49. 修改文件的屬組:chgrp
chgrp[OPTION]… GROUP FILE…
chgrp[OPTION]… –reference=RFILE FILE…
-R 遞歸
文件的權限主要針對三類對象進行定義:
owner: 屬主, u
group: 屬組, g
other: 其他, o
每個文件針對每類訪問者都定義了三種權限:
r: Readable
w: Writable
x: eXcutable
50. 文件權限操作命令
chmod
chmod[OPTION]… OCTAL-MODE FILE…
-R: 遞歸修改權限
chmod[OPTION]… MODE[,MODE]… FILE…
MODE:
修改一類用戶的所有權限:
u= g= o= ug= a= u=,g=
修改一類用戶某位或某些位權限
u+ u-g+ g-o+ o-a+ a-+ –
chmod[OPTION]… –reference=RFILE FILE…
參考RFILE文件的權限,將FILE的修改為同RFILE
建 文件和目錄的默認權限
51. umask值可以用來保留在創建文件權限
新建FILE權限: 666-umask
如果所得結果某位存在執行(奇數)權限,則將其權限+1
新建DIR權限: 777-umask
非特權用戶umask是002
root的umask是022
umask: 查看
umask#: 設定
umask002
umask–S 模式方式顯示
umask–p 輸出可被調用
51. chattr +i 不能刪除,改名,更改
chattr +a 只能追加內容
52. lsattr 顯示特定屬性
ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限),而非傳統的組權限
53. getfacl可看到特殊權限:flags
通過ACL賦予目錄默認x權限,目錄內文件也不會繼承x權限
base ACL 不能刪除
54.setfacl-k dir 刪除默認ACL權限
setfacl–b file1清除所有ACL權限
getfaclfile1 | setfacl–set-file=-file2 復制file1的acl權限給file2
全局設置:/etc/bashrc用戶設置:~/.bashrc
55.cat [OPTION]… [FILE]…
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
56. more: 分頁查看文件
more [OPTIONS…] FILE…
-d: 顯示翻頁及退出提示
57.less:一頁一頁地查看文件或STDIN輸出
查看時有用的命令包括:
/文本搜索文本
n/N跳到下一個或上一個匹配
less命令是man命令使用的分頁器
58. head
head [OPTION]… [FILE]…
-c #: 指定獲取前#字節
-n #: 指定獲取前#行
-#:指定行數
59.tail
tail [OPTION]… [FILE]…
-c #: 指定獲取后#字節
-n #: 指定獲取后#行
-#:
-f: 跟蹤顯示文件新追加的內容,常用日志監控
60 .cut [OPTION]… [FILE]…
-d DELIMITER: 指明分隔符,默認tab
-f FILEDS:
#: 第#個字段
#,#[,#]:離散的多個字段,例如1,3,6
#-#:連續的多個字段, 例如1-6
混合使用:1-3,7
-c按字符切割
–output-delimiter=STRING指定輸出分隔符
顯示文件或STDIN數據的指定列
cut-d:-f1/etc/passwd
cat /etc/passwd|cut-d:-f7
cut-c2-5/usr/share/dict/words
61.paste 合并兩個文件同行號的列到一行
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默認用TAB
-s : 所有行合成一行顯示
paste f1 f2
paste -s f1 f2
62.wc
計數單詞總數、行總數、字節總數和字符總數
可以對文件或STDIN中的數據運行
$wcstory.txt
392371901story.txt
行數字數字符數
使用-l來只計數行數
使用-w來只計數單詞總數
使用-c來只計數字節總數
使用-m來只計數字符總數
把整理過的文本顯示在STDOUT,不改變原始文件
63.$sort[options]file(s)
常用選項
-r執行反方向(由上至下)整理
-n執行按數字大小整理
-f選項忽略(fold)字符串中的字符大小寫
-u選項(獨特,unique)刪除輸出中的重復行
-t c選項使用c做為字段界定符
-k X選項按照使用c字符分隔的X列來整理能夠使用多次
64.uniq命令:從輸入中刪除前后相接的重復的行
uniq[OPTION]… [FILE]…
-c: 顯示每行重復出現的次數
-d: 僅顯示重復過的行
-u: 僅顯示不曾重復的行
連續且完全相同方為重復
常和sort 命令一起配合使用:
sort userlist.txt | uniq-c
65.比較兩個文件之間的區別
$difffoo.conf-brokenfoo.conf-works
5c5
<use_widgets=no
—
>use_widgets=yes
注明第5行有區別(改變)
diff命令的輸出被保存在一種叫做“補丁”的文件中
使用-u選項來輸出“統一的(unified)”diff格式文件,最適用于補丁文件。
patch復制在其它文件中進行的改變(要謹慎使用)
適用-b選項來自動備份改變了的文件
$diff-ufoo.conf-brokenfoo.conf-works>foo.patch
$patch-bfoo.conf-brokenfoo.patch
66.grep命令選項
–color=auto: 對匹配到的文本著色顯示
-v: 顯示不被pattern匹配到的行
-i: 忽略字符大小寫
-n:顯示匹配的行號
-c: 統計匹配的行數
-o: 僅顯示匹配到的字符串
-q: 靜默模式,不輸出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:實現多個選項間的邏輯or關系
grep –e ‘cat ’ -e ‘dog’ file
-w:匹配整個單詞
-E:使用ERE
-F:相當于fgrep,不支持正則表達式
字符匹配:
. 匹配任意單個字符
[] 匹配指定范圍內的任意單個字符
[^] 匹配指定范圍外的任意單個字符
[:alnum:] 字母和數字
[:alpha:] 代表任何英文大小寫字符,亦即A-Z, a-z
[:lower:] 小寫字母[:upper:] 大寫字母
[:blank:] 空白字符(空格和制表符)
[:punct:] 標點符號
匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數
* 匹配前面的字符任意次,包括0次
貪婪模式:盡可能長的匹配
.*任意長度的任意字符
\?匹配其前面的字符0或1次
\+匹配其前面的字符至少1次
\{n\}匹配前面的字符n次
\{m,n\}匹配前面的字符至少m次,至多n次
\{,n\}匹配前面的字符至多n次
\{n,\}匹配前面的字符至少n次
位置錨定:定位出現的位置
^ 行首錨定,用于模式的最左側
$ 行尾錨定,用于模式的最右側
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或\b詞首錨定,用于單詞模式的左側
\> 或\b詞尾錨定;用于單詞模式的右側
\<PATTERN\>匹配整個單詞
分組:\(\) 將一個或多個字符捆綁在一起,當作一個整體進行處理,如:\(root\)\+
分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為: \1, \2, \3, …
\1表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符
示例:\(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
后向引用:引用前面的分組括號中的模式所匹配字符,而非模式本身
或者:\|
示例:a\|b: a或b C\|cat: C或cat \(C\|c\)at:Cat或cat
67. egrep= grep -E
egrep[OPTIONS] PATTERN [FILE…]
擴展正則表達式的元字符:
字符匹配:
. 任意單個字符
[] 指定范圍的字符
[^] 不在指定范圍的字符
次數匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置錨定:
^ :行首
$ :行尾
\<, \b :語首
\>, \b :語尾
分組:
()
后向引用:\1, \2, …
或者:
a|b: a或b
C|cat: C或cat
(C|c)at:Cat或cat
原創文章,作者:m25Chronos,如若轉載,請注明出處:http://www.www58058.com/83219