week4 vi 編譯器 bash指令碼 及所學命令
1.這周所學的一些命令的使用
1.1 usermod
(1) 修改使用者名稱:
usermod -l newuser olduser
注意只改變了使用者名稱,其家目錄不改變;
(2) 增加描述資訊:usermod -c "描述資訊" user
(3) 修改登入shell :usermod -s /sbin/nologin user
將使用者user修改成不可登陸
(4) 鎖定賬號:-L
禁止其登入系統
(5)解鎖賬號:-U
允許其登入系統
1.2 檔案查詢 which / whereis / find
which: 查詢可執行檔案的路徑
which [-a] command
whereis:查詢檔案或目錄名稱whereis file/directory
find:find 路徑 引數
三個檔案查詢其中find查詢較全面
引數 | 作用 |
---|---|
-name | 按照名字查詢 |
-perm | 安裝許可權查詢 |
-prune | 不再當前指定的目錄下查詢 |
-user | 檔案屬主來查詢 |
-nogroup | 檔案所屬組來查詢 |
-nouser | 查詢無有效所屬組的檔案 |
-type | 按照檔案型別查詢 |
1.3 userdel : 刪除使用者
引數 | 作用 |
---|---|
-f | 強制刪除使用者 |
-r | 同時刪除使用者及使用者家目錄 |
rm刪除使用者只是將其看為檔案刪除其還在/etc/passwd下
1.4 許可權
命令 | 作用 |
---|---|
chmod | 用於設定檔案或目錄的許可權 |
chown | 用於修改檔案屬性和許可權 |
chgrp | 用於修改檔案屬性和許可權 |
例題:
研發部開發人員David和Peter屬於組A,行政部人員Jack和Mike屬於組B;
1.建立目錄“/project_a”,該目錄裡面的檔案只能由研發部開發人員讀取、增加、刪除、修改以及執行,其他用
戶不能對該目錄進行任何的訪問操作;
2.建立目錄“/project_b”,該目錄裡面的檔案只能由行政部人員讀取、增加、刪除、修改以及執行,其他使用者不
能對該目錄進行任何的訪問操作;
3.建立目錄“/project”,該目錄裡面的檔案可由研發部、行政部人員讀取、增加、刪除、修改以及執行,其他部
門使用者只可以對該目錄進行只讀的訪問操作
#此題只給出兩個組,其實要想實現此功能需要3個組。研發部一個組,行政部一個組,包含研發部和行政部需要一
個組。此題目的在於熟悉組、使用者、許可權相關命令
groupadd a;groupadd b;groupadd ab
echo ‘1’ | passwd --stdin david #其它使用者省略
mkdir /project_a;mkdir /project_b;mkdir /project
chgrp ab /project;chgrp a /project_a;chgrp b /project_b
usermod -G a,ab david;usermod -G a,ab peter;usermod -G b,ab mike;usermod -G b,ab jack
chmod 774 /project; chmod 770 /project_a; chmod 770 /project_b
2.ACL
主要用在與提供傳統的UGO的讀寫執行許可權之外進行更細緻的許可權設定,可以針對單一檔案,單一使用者,單一目錄來進行許可權設定
2.1查詢ACL功能是否啟用(預設都啟用)cat /boot/config-3.10.0-693.el7.x86_64 | grep -i xfs #centos7.
2.2 設定ACL:setfacl
引數 | 描述 |
---|---|
-m | 設定後續acl引數,不可與-x合用 |
-x | 刪除後續acl引數,不可與-m合用 |
-b | 刪除全部的acl引數 |
-k | 刪除預設的acl引數 |
-R | 遞迴設定acl,包括子目錄 |
-d | 設定預設acl,只對目錄有效 |
2.2.1 用法:
setfacl -m u:alice:rx file ; ll file
設定使用者alice對檔案file具有可讀可執行許可權並檢視設定結果成功否(許可權後面顯示 +);
setfacl -x u:alice file
刪除使用者alice對檔案file特設許可權
setfacl -b file
刪除對檔案file設定的所有acl引數
echo $?
來檢視上句命令是否執行 結果0 執行了
3. vi 文字編譯器
3.1 Vi 的三種模式:
命令模式 控制游標移動,可對文字進行復制、貼上、刪除和查詢等
輸入模式 正常的文字錄入 ( i進行 )
末行模式 儲存或退出文件 (shift + : )
3.2 vi 輸入模式常用命令
命令 | 作用 |
---|---|
dd | 刪除(剪下)游標所在整行 |
10dd | 刪除(剪下)從游標處開始的10行 |
yy | 複製游標所在整行 |
10yy | 複製從游標處開始的10行 |
p | 刪除(dd)或複製(yy)過的資料貼上到游標後面 |
n | 顯示搜尋命令定位到的下一個字串 |
N | 顯示搜尋命令定位到的上一個字串 |
u | 撤銷上一步的操作 |
ctrl+f | 向檔案尾翻一屏 |
ctrl+b | 向檔案首翻一屏 |
a | 在當前字元後新增文字 |
i | 在當前字元前新增文字 |
o | 在當前後面插入一空行 |
h、j、k、l | 左、下、上、右 |
shirf + $ | 行尾 |
shift + ^ | 行首 |
shift + G | 尾部 |
gg | 首部 |
3.2 vi 末行模式常用命令
命令 | 作用 |
---|---|
:w | 儲存 |
:q | 退出 |
:q! | 強制退出 |
:wq! | 強制儲存退出 |
:set nu | 顯示行號 |
:set nu | 不顯示行號 |
: s/one/two | 當前游標所在行的第一個one替換成two |
: s/one/two/g | 當前游標所在行的所有one替換成two |
:%s/one/two/g | 將全文中的所有one替換成two |
?str | 在文字中從下至上搜索該字串 |
/str | 在文字中從上至下搜尋該字串 |
4. bash 指令碼編輯
4.1 指令碼書寫
vi test.sh (按i進行編輯)
#!/bin/bash
(頭內容解析器)
echo "hello_word"
(shift+x儲存退出)
chmod u+x test.sh
(給使用者賦執行許可權)
執行指令碼方法有三種
- 直接路徑
直接路徑 指令碼名
- 當前路徑
./ 指令碼名
- sh
sh 指令碼名