一、作業(練習)內容:
1、總結文本編輯工具vim的使用方法;
Vim
(1).命令解釋:模式化的編輯器
(2). 有多種不同的模式:
編輯模式:命令模式
輸入模式:插入模式
末行模式:vim有許多內置命令,此模式作爲命令的接口
編輯模式=====輸入模式:
i:在當前光標所在處,轉換爲輸入模式
I:在當前光標行行首,轉換爲輸入模式
a:在當前光標所在處的後方,轉換爲輸入模式
A:在當前光標所在行的行尾轉換爲輸入模式
o:在當前光標所在行的下方新建一個空白行,並轉換爲輸入模式
O:在當前光標所在行的上方新建一個空白行,並轉換爲輸入模式
輸入模式=====>編輯模式:ESC
編輯模式====>末行模式:“:”
末行模式====>編輯模式:ESC
(3).退出vim
末行模式:
q! 強制退出,不保存編輯的內容退出
wq 保存退出
x 保存退出
xq! x! 強制保存退出
編輯模式:
ZZ 保存退出
(4).編輯命令
光標移動:
字符間移動:
h:光標向左移動
l:光標向右移動
k:光標向上移動
j:光標向下移動
單詞間移動:
w:移動到下一個單詞的詞首
e:移動到下一個單詞的詞尾
b:當前或者前一個單詞的詞首
#:一次跳n個單詞
行首行尾間跳轉:
0:跳轉至非tab字符上絕對行首
^: 跳轉至第一個非空白字符
$: 跳轉至絕對行尾
句子間跳轉:
):跳轉到下一個句子的句首
(:跳轉到前一個句子的句首
段落間移動:
}: 跳轉到下一個段落
{: 跳轉到上一個段落
行間快速移動:
#G #表示想要跳轉的行數
G:文章尾部
1G:文章首部
末行模式:n 跳轉至n行
編輯操作:
x:刪除光標所在處的字符
#x:刪除光標所在處以及向後的#個字符
r: 替換光標所在處的字符
d:刪除命令:
dd:刪除光標所在行 #dd:刪除光標所在行以及下行的共#行:
與跳轉命令一同使用
d$:刪除光標所在處至行尾的內容; D:相同
d^:刪除光標所在處至行行首的內容
dw,de,db:這3個命令支持前面使用#來指明涵蓋的單詞個數
p:粘貼:
行級別:
p:粘貼在光標所在行下方
P:粘貼在光標所在行上方
y:複製
yy:複製光標所在行 Y:複製一整行
#yy:複製光標所在行以及下行共#行
d$:複製光標所在處至行尾的內容
d^:複製光標所在處至行行首的內容
yw,ye,yb:這3個命令支持前面使用#來指明涵蓋的單詞個數
c:修改
cc:刪除光標所在行整行內容,並立即轉爲輸入模式
#cc:
c$,C,c^,c0,cw,cb,ce
撤銷操作:
u:撤銷
#u:撤銷#次操作
取消上一次操作:
Ctrl+r
重複前一次命令
(5).可視化模式:
v:選擇光標所在行光標左側的內容
V:選擇光標所在行向有右側的內容
(6).編輯模式下的翻屏命令
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
(7).文本查找
/PATTERN
?PATTERN
n:向文本尾部查找
N:向文本首部查找
(8).文本替換
末行模式:內置命令接口,有命令歷史記錄功能
有部分內置命令用於編輯操作,此時可使用地址定界法進行
地址定界
Startline[,endline]
#:第#行
.:當前行
$:最後一行
%:全文
相對定界:
+#:從指定位置向下#個行
-#:從指定位置向上#個行
文本替換命令:s
s/要查找的內容/替換爲的內容/修飾符
/:分隔符,用於分割“查找的內容”和“替換爲的內容”:此分隔符可使用 其他字符,如@,#等:
要查找的內容:可使用正則表達式:此部分可以後面“替換爲的內容”部分 中使用“&”全部引用:
替換爲的內容:不可使用正則表達式,一般爲正常文本,但可以使用正則表達 式中的的\1,\2,....保存的內容
修飾符:
i:查找時不區分字符大小寫
g:global,全局替換;
(9).多文件模式:
打開文件:
vim [OPTION]...[FILE]...
+#:快速定位至#行
+/PATTERN 快速定位至被模式第一次匹配至行
多文件:
vim FILE1 FILE2 FILE3...
末行模式:
:next 下一個
:prev 上一個
:last 最後一個
:first 第一個
退出所有文件:
wqall 保存所有並退出
wall 保存所有
qall 退出所有
多窗口:
-o 水平分割窗口 ctrl+s 水平分割文檔
-O 垂直分割窗口 ctrl+v 垂直分割文檔
(10).界面特性
開啓關閉行顯示:
Set nu
Set nonu
開啓語法高亮功能:
synatx (on|off)
開啓搜索高亮功能:
set hlsearch
Set nohlsearch
開啓自動縮進功能:
set autoindent:set ai
set noautoindent: set noai
字符大小寫是否區分功能:
set ignorecase: set ic
Set noignorecase: set noic
(11).配置文件
全局:/etc/vimrc
個人:~/.vimrc
2、總結文件查找命令find的使用方法;
find
(1).命令解釋:
通過遍歷指定的目標目錄,實施查找符合條件指定屬性的文件
(2).命令語法:
find[OPTIONS] [查找路徑][查找條件][處理動作]
查找路徑:默認爲當前路徑
查找條件:默認爲指定路徑下的所有文件
處理動作:默認爲打印至屏幕
查找條件:
-name: “文件名”:文件名支持使用globbing
-iname: “文件名”不區分大小寫
-user:根據屬主查找
-group:根據屬組查找
-uid:根據uid號來查找
-gid:根據gid號來查找
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
組合查找:
與 -a (找出/tmp目錄下屬主有寫權限,並且是root的文件:
或 -o (找出/tmp目錄下名字包含123的文件,或者uid是600的文件
非 -not (找出/tmp目錄下既不屬於root用戶,並且也不屬於hzm用戶的文件
3、總結bash環境變量的相關內容;
4、總結Linux文件系統上的特殊權限(SUID、SGID、Sticky)的知識點;
5、總結Linux磁盤管理、文件系統相關知識點及其相關命令的使用方法;
6、複製/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;
%s/^[[:space:]]\+//g
7、複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲/tmp/functions的每行開頭爲空白字符的行的行首加一個#; 原有空白字符保留;
%s/^[[:space:]]/#&/g
8、替換/tmp/functions文件中的/etc/sysconfig/init爲/var/log;
%s/\etc\sysconfig\init//var/log/g
9、刪除/tmp/functions文件中所以#開頭,且#後面至少跟了一個空白字符的行的行首#;
%s/^#[[:space:]]\+//g
10、查找/var目錄屬主爲root,且屬組爲mail的所有文件;
find /var -user root -a -group mail -ls
11、查找/usr目錄下不屬於root、bin或hadoop的所有文件;
find /usr -not -user root -o -user bin -o -user hadoop
12、查找/etc目錄下最近一週內其內容修改過,且屬主不爲root或hadoop的所有文件;
find /etc -not \( -user root -o -user hadoop \) -a -mtime -7
13、查找當前系統上沒有屬主或屬組,且最近一週內曾被訪問過的所有文件;
find / -not -nouser -o -nogroup -a -atime -7
14、查找/etc目錄下大於20k且類型爲普通誰的的所有文件;
find /etc -size +20k -a type -f
15、查找/etc目錄下所有用戶都沒有寫權限的文件;
find /etc -not -perm +222
16、查找/etc目錄下至少有一類用戶沒有執行權限的文件;
find /etc -not -perm -111
17、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶擁有寫權限的文件;
find /etc/init.d -perm -113
18、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;
19、創建目錄/test/data,讓某組內普通用戶對其有寫權限,且創建的所有文件的屬組爲目錄所屬的組;此外,每個用戶僅能刪除自己的文件;