8-27 Study
1. 學習命令總結:(word寫的,格式可能上傳時出了點問題)
1.1cut:針對字符串切片操作 sort:排序操作 uniq:去重操作
cut命令:
格式:cutOPTION... [FILE]...
-b:只查找位
-c:只查找字節
-d:設定間隔符
-f:設定選擇顯示文件項
單文件#;
遊離多文件#,#
連續多文件#-#
-n: 不分割複合字符串
sort命令:
格式:sort[OPTION]... [FILE]...
-b:忽略空白行
-d:只排列字符串空白行
-f:忽略大小寫
-g:根據文件值來排序
-i:只排序字符串,不包括空白行
-n:根據字符串數值大小比較
-R:根據hash值排序
-r:逆序
uniq命令:
格式:uniq[OPTION]... [INPUT [OUTPUT]]
-c:統計行數
-d:只打印輸出重複行,每行只輸出一次
-D:
-i:忽略大小寫
-s:跳過多少字符進行比較
-u:只顯示出現一次的行
例子:
列出當前系統上所有已經登錄的用戶,多次出現的只顯示一次:
取出當前shell中被使用最多的shell,並顯示取用次數:
將/etc/passwd中第三個字符段中數值最大的後10個用戶信息全部改爲大寫後保存至/tmp/test/newpasswd中:
1.2alias命令別名:
由於易用性考慮命令執行最好默認帶上一些參數,alias可設置命令別名實現此功能,alias查看全部命令別名,unalias 取消命令別名:
截圖如下:
alias顯示全部命令別名:
alias設定命令別名:
取消命令別名:
1.3bash支持三種引用模式:
強引用:’’ 強引用中出現的字符只會原意出現
弱引用:”” “” 弱引用中出現變量名會引用其實際值
命令引用:`COMMAND` $(COMMAND) 調用命令產生結果
1.4:文件通配符:
?:表示任意一個字符
*:表示任意數量任意字符
[]表示範圍
[^]:表示範圍取反
[:upper:]全部大寫字符 [:lower:]全部小寫字符 [:digit:]全部數字字符
[:alpha:]全部字母字符 [:alnum:]數字字母字符 [:punct:]符號字符
[:space:]空白字符
查找目錄一定要加ls –d /tmp/x*
1.5 文件權限
文件權限主要分爲rwx三種,對文件和目錄而言三種權限作用不同
對文件而言:
r:讀取文件信息
w:更改文件內容
x:將文件提交內核執行權限
對目錄而言:
r:讀取目錄下的文件及子目錄信息,不可以使用ls -l
w:創建刪除此目錄中的文件信息
x:能否進入該目錄的權限及ls–l該目錄的權限
1.6:用戶權限,組權限及其他權限
useradd 用戶添加命令 groupadd 用戶添加命令 usermod用戶屬性修改命令
groupmod 組權限修改命令 userdel 用戶刪除命令 groupdel 組刪除命令
useradd 用戶添加命令:
格式: useradd [options] LOGIN
-u 指明uid
-g 指明gid 需事先存在
-G 修改附加組,-a –G爲追加附加組
-D 設定默認添加用戶設定
-m 強制創建家目錄
-M 強制不讓創建家目錄
-r 指明添加用戶爲系統用戶
groupadd組添加命令:
格式: groupadd [options] group
-g 指明gid
-h 顯示幫組
-p 設定組密碼
-r 創建系統組
usermod 用戶屬性修改命令:
格式: usermod [options] LOGIN
-a–G 追加附加組
-c 修改註釋信息
-s 修改用戶指定shell
-d 修改用戶指定家目錄
-g 修改用戶從屬組
-G 修改用戶附加組
-u 修改用戶UID
-L 鎖定用戶
-U 解鎖用戶
-l 修改登錄名
groupmod 用戶組信息修改命令:
格式: groupmod [options] GROUP
-g 修改GID
-h 顯示幫助
-p 設定組密碼
-n 修改組名字
userdel–r 刪除用戶時強制刪除其家目錄
groupdel 有用戶從屬於該組則不可以刪除
id可查看用戶信息
Id –u僅顯示UID
-g僅顯示GID
-G顯示groups
-n 顯示名字而非id
例子:創建用戶slackware,其id爲2002,基本組爲distro,附加組爲peguin
修改slackware默認shell爲/bin/tcsh
爲其新增附加組admins:
爲slackware添加密碼,密碼最短使用時間3天,最長180天,警告時間爲3天
使用非交互式命令添加用戶openstack並添加密碼
1.7:chown 修改用戶權限命令
chown主要用於修改文件rwx權限
格式: chown[OPTION]... [OWNER][:[GROUP]] FILE...
-R 迭代修改
--reference設定文件權限參考
chown [-R][--reference] [USER][:GROUP] FILE
更改[屬主]屬組
:GROUP只改屬組
用chown修改權限注意不要讓文件擁有x權限,這是一件爲危險的事
chmod--reference=/tmp/test/new /tmp/test/fstab
參考項 按參考項修改屬性
[root@localhost test]# chmod u=rwx,go=rw fstab
[root@localhost test]# ll -d fstab
-rwxrw-rw-. 1 root root 501 Aug 10 06:30 fstab
[root@localhost test]# chmod u-w,g-w,o-w fstab
[root@localhost test]# ll -d fstab
-r-xr--r--. 1 root root 501 Aug 10 06:30 fstab
[root@localhost test]# chmod a+w fstab
[root@localhost test]# ll -d fstab
-rwxrw-rw-. 1 root root 501 Aug 10 06:30 fstab
[root@localhost test]# chmod -x fstab
[root@localhost test]# ll -d fstab
-rw-rw-rw-. 1 root root 501 Aug 10 06:30 fstab
[root@localhost test]# ls -l
total 8
-rw-rw-rw-. 1 root root 501 Aug 10 06:30 fstab
-rw-r--r--. 1 root root 501 Aug 10 06:40 new ///顯示原文件屬性信息
[root@localhosttest]# chmod --reference=/tmp/test/new /tmp/test/fstab //按參考文件修改屬性
[root@localhost test]# ls -l
total 8
-rw-r--r--. 1 root root 501 Aug 10 06:30 fstab
-rw-r--r--. 1 root root 501 Aug 10 06:40 new
1.8:umask 遮罩碼
umask遮罩碼:
文件:666-umask
注意:如果減的結果存在執行權限(umask中存在x權限),則讓對應用戶權限+1
目錄:777-umask
umask NUMBER 設置遮罩碼 只對當前shell有效
1.9:正則表達式與擴展正則表達式:
正則表達式:
字數匹配:
.任意單個字符
[]匹配範圍內的任意一個字符
[^]匹配範圍外的任意一個字符
次數匹配:
*任意個*之前的字符
\{m,n\}:之前字符至少出現m次,至多出現n次
\?:出現0次或1次
\+:至少出現1次
位置錨定:
^行首錨定
$行尾錨定
\<單詞詞首錨定 \b也可以
\>單詞詞尾錨定 \b也可以
\(\)分組:
分組模式中匹配到的具體字符可以被grep記憶,(保存於內置變量中,可以被/1,/2,/3引用)
例: grep “\(a.b\).*\1”:可以查找amb helloamb 不能查找amb hello anb
擴展正則表達式:
擴張正則表達式與正則表達式不同點:
次數匹配:
?表0或1次
+表1或多次
{m}精確匹配m次 即擴張正則表達式不需要轉義了
分組()也不需要轉義
支持或者 a|b abc|Cba abc或者Cba
2.作業:
顯示/etc/passwd文件中以bash結尾的行
顯示/etc/passwd文件中的兩位數或三位數
顯示`netstat -tan`命令結果中以‘LISTEN’後跟0個、1個或者多個空白字符結尾的行
添加用戶bash、testbash、basher以及nologin用戶(nologin用戶的shell爲/sbin/nologin);而後找出/etc/passwd文件中用戶名與其shell名相同的行
顯示當前系統上root、centos或者user1用戶的默認shell和UID (請事先創建這些用戶,若不存在)
找出/etc/rc.d/init.d/functions文件中某單詞(單詞中間可以存在下劃線)後面跟着一組小括號的行
使用echo輸出一個路徑,而後egrep找出其路徑基名;進一步的使用egrep取出其目錄名
找出ifconfig命令執行結果中1-255之間的數字
問題:
找出ifconfig命令執行結果中1-255之間的數字,採取如下方式爲什麼取不出127.192等三位數
使用echo輸出一個路徑,取出其路徑名:未完成,還得理下思路