shell基础概念
2019獨角獸企業重金招聘Python工程師標準>>>
1、文件
- ? ? 普通文件
d ????目錄
l???? 符號鏈接文件
b???? 磁盤設備文件
c ????字符設備文件
s ????套接字文件
p ????連接文件
file命令:file 文件路徑
[sjx@sjx test]$ file test.sh
test.sh: Bourne-Again shell script text executable
這標識test.sh是一個bash shell文本文件,具有可執行的特點
2、特殊文件權限
sst
set user id 4
set group id 2
sticky bit 1
(1)如果某一個文件在執行時,執行者可以擁有文件所有者的權限,則稱具有特殊權限set user id
假設原權限值為0755,則現在為4755(rwsr-xr-x)
(2)如果某一個文件在執行時,執行者可以暫時變成用戶組的身份,則具有特殊權限set group id
假設原權限值為0755,則現在為2755(rwxr-sr-x)
(3)如果某個目錄下的文件只有文件擁有者可以刪除,則具有特殊權限sticky bit
假設原權限值為0755,則現在為1755(rwxr-xr-t)
3、通配符
*:代表任意的字符串,可以是空字符串
?:代表一個字符,但不可以為空
eg:sj??x*.odt 表示前兩個字符為sj后邊是任意的兩個字符,然后跟一個x,再后是任意字符串或為空,后綴名為.odt的所有文件
4、轉義字符 \
以下符號均為bash的特殊字符,如要顯示這些字符需加上轉義字符\
‘ “ * ? \ ~ ` ! # $ & ( ) { } < > [ ] | ; /
此外,\也是續行符號。
5、字符集合
字符集合就是[]中所列的字符范圍中的某一個字符,其長度為1.
[xyz] :x或y或z
由于-字符代表字符集合的范圍,因此,如果要把-也納入集合的一份子,請把-放在集合的開頭或結尾,如:
[a-z_-]:代表英文小寫字母、下劃線、-字符
!表示非
[!0-9]:不是數字
若!不是放在集合的第一個位置,就是去了“非”的意義。
[0-9!]:代表數字或感嘆號
6、括號擴展
ls -la /usr/bin/{g,nc,s}ftp 便可以一次找出gftp,ncftp,sftp這三個文件。
echo s{a,b}jx 可以一下輸出sajx,sbjx兩個字符串
mkdir -p /mnt/{dir1,dir2,dir3}/{s,j,x} 在dir1,dir2,dir3目錄下,分別建立s、j、x 3個子目錄。
echo {1,2,3,4,5,6,7,8,9}\*{1,2,3,4,5,6,7,8,9} 輸出九九乘法表
7、每一個shell scripts執行時(稱為“進程”或“處理進程”),系統默認會開啟3個標準文件:標準輸入(stdin),標準輸出(stdout),標準錯誤(stderr)。文件代碼分別為0、1、2
轉載于:https://my.oschina.net/shangjx13/blog/57486
總結
- 上一篇: Delphi命名规范
- 下一篇: c++中的输入输出方法