一、 總結學過的許可權,屬性及ACL相關命令及選項,示例。
檔案的許可權主要針對三類物件進行定義:
owner 屬主, u
group 屬組, g
other 其他, o
每個檔案針對每類訪問者都定義了三種許可權
r Readable 4
w Writable 2
x eXcutable 1
Linux檔案系統上的特殊許可權
SUID 作用於二進位制可執行檔案上,使用者將繼承此程式所有者的許可權
SGID 作用於二進位制可執行檔案上,使用者將繼承此程式所有組的許可權上,作于于目錄上, 此目錄中新建的檔案的所屬組將自動從此目錄繼承
STICKY 作用於目錄上,此目錄中的檔案只能由所有者自已來刪除
設定檔案特殊屬性
lsattr 顯示特定屬性
chattr +a file 只能追加內容,不能刪除,改名
chattr +i file 不能刪除,改名,更改
修改檔案許可權chmod
chmod [OPTION]... MODE[,MODE]... FILE...
ACL相關命令
setfacl 可設定ACL許可權
getfacl 可檢視設定的ACL許可權
二、 結合vim幾種模式,學會使用vim幾個常見操作。
1)如何開啟檔案。並在開啟檔案(命令模式)之後如何退出檔案。
2)開啟檔案(命令模式)之後,進入插入模式。並在插入模式中如何回到開啟檔案的狀態(命令模式),並在命令模式之後如何退出檔案。
3)開啟檔案(命令模式)之後,進入插入模式,編寫一段話,"馬哥出品,必屬精品", 之後從插入模式中如何回到開啟檔案的狀態(命令模式),並在命令模式之後如何退出檔案。
4)使用cat命令驗證檔案內容,是剛剛自己寫的內容。
5)命令模式下,游標在單詞,句子上進行前後,上下跳轉。行復制貼上。行刪除。
1)
2)按i進入插入模式,按ESC回到命令模式,按wq!儲存並退出檔案
3)
4)
5)游標移動:前後移動:按 h(左移),l(右移)
上下移動:按 j(下移),k(上移)
單詞跳轉:向前跳到下一個單詞:按w 向後跳到上一個單詞:按 b
行復制貼上:複製當前行:按 yy
貼上:按 p 將複製的行貼上到當前行的下方,或按 P 貼上到當前行的上方
刪除行:按 dd 刪除當前行
三、 總結學過的文字處理工具,檔案查詢工具的相關命令及選項,示例。
檢視文字檔案內容
1.cat 可以檢視文字內容
2.nl 顯示行號,相當於cat -b
3.tac 逆向顯示文字內容
4.rev 將同一行的內容逆向顯示
分頁檢視檔案內容
more 可以實現分頁檢視檔案,可以配合管道實現輸出資訊的分頁
less 可以實現分頁檢視檔案或STDIN輸出,less 命令是man命令使用的分頁器
顯示文字前面或後面的行內容
head 可以顯示檔案或標準輸入的前面行
tail 檢視檔案或標準輸入的倒數行
cut 命令可以提取文字檔案或STDIN資料的指定列
paste 合併多個檔案同行號的列到一行
分析文字的工具
wc 命令可用於統計檔案的行總數、單詞總數、位元組總數和字元總數
常用選項
-l 只計數行數
-w 只計數單詞總數
-c 只計數字節總數
-m 只計數字符總數
-L 顯示檔案中最長行的長度
文字排序 sort
常用選項
-r 執行反方向(由上至下)整理
-R 隨機排序
-n 執行按數字大小整理
-h 人類可讀排序,如: 2K 1G
-f 選項忽略(fold)字串中的字元大小寫
-u 選項(獨特,unique),合併重複項,即去重
-t c 選項使用c做為欄位界定符
-k # 選項按照使用c字元分隔的 # 列來整理能夠使用多
uniq命令 從輸入中刪除前後相接的重複的行
常用選項
-c: 顯示每行重複出現的次數
-d: 僅顯示重複過的行
-u: 僅顯示不曾重複的行
四、 總結文字處理的grep命令相關的基本正則和擴充套件正規表示式。
. 匹配任意單個字元(除了\n)
[] 匹配指定範圍內的任意單個字元
[^] 匹配指定範圍外的任意單個字元
[:alnum:] 字母和數字
[:alpha:] 代表任何英文大小寫字元
[:lower:] 小寫字母
[:upper:] 大寫字母
[:blank:] 空白字元
[:space:] 包括空格、製表符(水平和垂直)、換行符、回車符等各種型別的空白
-
#匹配前面的字元任意次,包括0次,貪婪模式:儘可能長的匹配
.* #任意長度的任意字元
? #匹配其前面的字元出現0次或1次,即:可有可無
+ #匹配其前面的字元出現最少1次,即:肯定有且 >=1 次
{n} #匹配前面的字元n次
{m,n} #匹配前面的字元至少m次,至多n次
{,n} #匹配前面的字元至多n次,<=n
{n,} #匹配前面的字元至少n次
^ #行首錨定, 用於模式的最左側
$ #行尾錨定,用於模式的最右側
^PATTERN$ #用於模式匹配整行
^$ #空行
[1]*$ #空白行
< 或 \b #詞首錨定,用於單詞模式的左側
> 或 \b #詞尾錨定,用於單詞模式的右側
<PATTERN> #匹配整個單詞
分組:() 將多個字元捆綁在一起,當作一個整體處理,如:(root)+
或者:|
五、 sed將檔案test中第50行中的helloworld改為nihao
七、在每一行後增加一空行 (測試檔案為cp /etc/passwd ~/,不要直接修改passwd檔案)
八、刪除檔案每行的第一個字元。
九、刪除檔案每行的第二個字元
十、刪除檔案每行的最後一個字元
十一、刪除檔案每行的倒數第二個字元
十二、 總結變數命名規則,不同型別變數(環境變數,位置變數,只讀變數,區域性變數,狀態變數)如何使用。
命名規則
1.命名要求
·區分大小寫
·不能使用程式中的保留字和內建變數;如:if for
·只能使用數字、字母及下劃線,且不能以數字開頭,注意不支援短橫線“-”,和主機名相反。
2.命名習慣
·見名知義,用英文單詞命名,並體現實際作用,不用簡寫,如:ATM
·變數名大寫
·區域性變數小寫
·函式名小寫
·大駝峰StudentFirstName,由多個單片語成,且每個單詞的首字母是大寫,其它小寫
·小駝峰studentFirstName ,由多個單片語成,第一個單詞的首字母小寫,後續每個單詞的首字母是大寫,其它小寫
·下劃線: student_name
環境變數
·可以使子程序(包括孫子程序)繼承父程序的變數,但是無法讓父程序使用子程序的變數
·一旦子程序修改從父程序繼承的變數,將會新的值傳遞給孫子程序
·一般只在系統配置檔案中使用,在指令碼中較少使用
輸入pstree -p顯示正在執行的程序樹 並顯示每個程序的ID
輸入cat /proc//environ 檢視此程序的環境變數
位置變數
在bash shell中內建的變數, 在指令碼程式碼中呼叫透過命令列傳遞給指令碼的引數
示例:
只讀變數
定義:只能宣告定義,但後續不能修改和刪除,即常量
十三、透過shell程式設計完成,30雞和兔的頭,80雞和兔的腳,分別有幾隻雞,幾隻兔?
vim rabbit_chook.sh
!bin/bash
HEAD=$1
FOOT=$2
RABBIT=$(((FOOT-HEAD-HEAD)/2))
CHOOK=$[HEAD-RABBIT]
echo RABBIT:$RABBIT
echo CHOOK:$CHOOK
bash rabbit_chook.sh 30 80
RABBIT:10
CHOOK:20
十四、結合程式設計的for迴圈,條件測試,條件組合,完成批次建立100個使用者,
1)for遍歷1..100
2)先id判斷是否存在
3)使用者存在則說明存在,使用者不存在則新增使用者並說明已新增。
[:space:] ↩︎