bash的基礎特性:
globbing:檔名通配(整體檔名匹配,而非部分)
匹配模式:元字元
*:匹配任意長度的任意字元
例:pa* 以pa開頭的都符合
*pa* 包含pa的都符合
*pa 以pa結尾的都符合
*p*a* 裡邊有p,有a不在一起的都符合
?:匹配任意單個字元
pa?pa 不符合
paa 符合
passwd 不符合
??pa
p?ap?a?
:匹配指定範圍內的任意單個字元
有幾種特殊格式:
[a-z],[a-z] 注意:在這兒不區分大小寫的
[0-9] 表示任意單個數字
[a-z0-9] 表示數字,或英文本母都可以
[abcxyz] 在前邊字母中任意乙個字母
[[:upper:]] 表示所有大寫字母
[[:lower:]] 表示所有小寫字母
[[:alpha:]] 表示所有字母
[[:digit:]] 表示所有數字
[[:alnum:]] 表示所有的字母和數字
[[:space:]] 表示所有空白字元
[[:punct:]] 表示所有標點符號
例:表示pa後邊有兩位數字 pa[0-9][0-9]
表示200-299 2[0-9][0-9]
[^]:匹配指定範圍外的任意單個字元
[^[:upper:]] 非大寫字元之外的單個字元
[^0-9] 非數字之外的單個字元
[^[:alnum:]] 非所有字母和數字外的單個字元
io重定向及管道
程式:指令+資料
程式:必須要有io,每個程式必定有輸入輸出的地方
可用於輸入的裝置:檔案
例如:鍵盤裝置、檔案系統上的常規檔案、網絡卡等
可用於輸出的裝置:檔案
顯示器、檔案系統上的常規檔案、網絡卡等
程式的資料流有三種:
輸入的資料流:<--標準輸入(stdin),鍵盤
輸出的資料流:-->標準輸出(stdout),顯示器
錯誤輸出流: -->錯誤輸出(stderr),顯示器
生成的檔案有與之對應的fd:file descriptor,檔案描述符
標準輸入:0
標準輸出:1
錯誤輸出:2
io重定向:
輸出重寫向:>
特性:覆蓋輸出
輸出重定向:>>
特性:追加輸出
# set -c
禁止覆蓋輸出重寫向已存在的檔案
此時可使用強制覆蓋輸出:>|
# set +c
關閉"set -c"的功能
# cat /etc/issue > /tmp/issue.out
可以看到上邊不讓覆蓋已存在的檔案
# cat /etc/issue >| /tmp/issue.out
如果想要強行覆蓋已存在的檔案,可以用「>|」
錯誤輸出流重定向:2>,2>>
合併正常輸出流和錯誤輸出流:
第一種:&>
&>>
第二種:command > /path/to/somefile 2>&1
command >> /path/to/somefile 2>&1
特殊裝置: /dev/null
放到這個檔案裡邊的資料都會被丟棄,如果我們不需要資料流的時候可以放到這個裡邊
比如有時候我們只需要命令的狀態結果,而非資料時就可以用到這個特殊裝置
輸入重定向:<
tr命令:
tr 命令用於轉換或刪除檔案中的字元。
tr 指令從標準輸入裝置讀取資料,經過字串轉譯後,將結果輸出到標準輸出裝置。
tr [option]... set1 [set2]
把輸入的資料當中的字元,凡是在set1定義範圍內出現的,通通對位轉換為set2出現的字元
引數說明:
-c, --complement:反選設定字元。也就是符合 set1 的部份不做處理,不符合的剩餘部份才進行轉換
-d, --delete:刪除指令字元
-s, --squeeze-repeats:縮減連續重複的字元成指定的單個字元
-t, --truncate-set1:削減 set1 指定範圍,使之與 set2 設定長度相等
用法1:
tr set1 set2 < /path/form/somefile
用法2:
tr -d set1 < /path/form/somefile
注意:不修改原檔案
here document:<<
cat << eof
cat > /path/to/somefile << eof
管道:|
連線程式,實現將前乙個命令的輸出直接定向後乙個程式當作輸入
command1 | command2 | command3 ……
tee命令:
把前乙個命令的結果既儲存乙份到檔案中,又把結果輸出到顯示器中
command | tee /path/to/somefile
練習1:把/etc/passwd檔案的前6行的小寫輸出為大寫
# head -6 /etc/passwd | tr 'a-z' 'a-z'
Linux 管理使用者 使用者組及許可權
管理使用者 新增使用者 root localhost useradd myuser root localhost useradd m myuser d 目錄 指定使用者主目錄,如果此目錄不存在,則同時使用 m選項,可以建立主目錄。root localhost useradd d opt mysuer...
Linux之使用者 使用者組及許可權管理
首先,需要了解一些有關使用者資訊的系統配置檔案 etc passwd 此檔案存放的是使用者資訊 各部分指代內容 使用者 密碼 uid gid 說明 家目錄 使用者使用的shell etc shadow etc group 此檔案存放的是組資訊 各部分指代內容 組名稱 組密碼 組id 附加組成員 et...
Linux管理使用者 組許可權
也可直接修改配置檔案 etc passwd useradd groupadd 從group1中新增 移除user1 gpasswd a user1 group1 gpasswd d user1 group1 sudo usermod ag docker user 生效修改 newgrp docker...