1. 程式人生 > >linux基礎第二周

linux基礎第二周

linux入門基礎理論

Linux基礎第二周

IO重定向及管道
標準輸出(stdout)

若文件不存在,則創建,並將正確的輸出填充,若文件已存在,則覆蓋原內容
> 若文件不存在,則創建,並將正確的輸出內容填充,若文件已存在,則追加內容
標準錯誤(stderr)
2> 若文件不存在,則創建,並將錯誤的輸出填充,若文件已存在,則覆蓋原內容
2>> 若文件不存在,則創建,並將錯誤的輸出內容填充,若文件已存在,則追加內容
標準輸入(stdin)
< 命令在執行時所要的輸入數據通過它來取得
&> 若文件不存在,則創建,並將所有的輸出填充,若文件已存在,則覆蓋原內容
&>> 若文件不存在,則創建,並將所有的輸出內容填充,若文件已存在,則追加內容

管道 |
| 只將正確結果傳遞給右邊的命令用
2>&1 將錯誤結果轉為正確結果
|& 將正確及錯誤都傳遞給右邊命令用
1>&2 將正確結果轉為錯誤結果

用戶、組、權限
文件權限:
r:可讀,可以使用類似cat等命令查看文件內容;
w:可寫,可以編輯或刪除此文件;
x: 可執行,eXacutable,可以命令提示符下當作命令提交給內核運行;
目錄權限:
r: 可以對此目錄執行ls以列出內部的所有文件;
w: 可以在此目錄創建文件;
x: 可以使用cd切換進此目錄,也可以使用ls -l查看內部文件的詳細信息;
0 000 ---:無權限
1 001 --x: 執行
2 010 -w-: 寫
3 011 -wx: 寫和執行

4 100 r--: 只讀
5 101 r-x: 讀和執行
6 110 rw-: 讀寫
7 111 rwx: 讀寫執行
用戶類別
管理員:0
普通用戶: 1-65535,系統用戶:1-499,一般用戶:500-60000
用戶組類別
管理員組
普通組:系統組,一般組
用戶組類別
私有組:創建用戶時,如果沒有為其指定所屬的組,系統會自動為其創建一個與用戶名同名的組
基本組:用戶的默認組
附加組,額外組:默認組以外的其它組
三類用戶:
u: 屬主
g: 屬組
o: 其它用戶

grep: 根據模式搜索文本,並將符合模式的文本行顯示出來。

正則表達式
文件名通配符當中 * 表示 0或多個任意字符 ? 表示任何一個單一字符
. 表示任何字符
[] 匹配指定範圍內的任意單個字符

[^] 匹配指定範圍外的任意單個字符
[:alnum:] 字母和數字
[:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z
[:lower:] 小寫字母 [a-z]
[:upper:] 大寫字母 [A-Z]
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的範圍廣)
[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴...)
[:digit:] 十進制數字 [0-9]
[:xdigit:]十六進制數字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標點符號
[A-Z0-9] 表示大寫字符或數字

次數匹配:用在要指定次數的字符後面,用於指定前面的字符要出現的次數

  • 匹配前面的字符任意次,包括0次
    貪婪模式:盡可能長的匹配
    .* 任意長度的任意字符
    \? 匹配其前面的字符0或1次
    + 匹配其前面的字符至少1次
    {n} 匹配前面的字符n次
    {m,n} 匹配前面的字符至少m次,至多n次
    {,n} 匹配前面的字符至多n次
    {n,} 匹配前面的字符至少n次

位置錨定:定位出現的位置
^ 行首錨定,用於模式的最左側
$ 行尾錨定,用於模式的最右側
^PATTERN$ 用於模式匹配整行
^$ 空行
^[[:space:]]$ 空白行
grep -v "^[[:space:]]
$" passwd 去除文件中的空白行
\< 或 \b 詞首錨定,用於單詞模式的左側
\> 或 \b 詞尾錨定;用於單詞模式的右側
\<PATTERN\> 匹配整個單詞

linux基礎第二周