1、總結文本編輯工具vim的使用方法;
vim是 一款文本編輯器,有編輯模式(命令模式)、輸入模式和末行模式,三種模式之間可轉換
模式轉換
1、編輯模式轉化到輸入模式:
i 在光標所在處插入
a 在光標所在處的後一位進入插入
I 在光標所在行的行首進入插入模式
A 在光標所在行的行尾進入插入模式
o 在光標所在行的下方,另起一新行並進入插入模式
O 在光標所在行的上方,另起一新行並進入插入模式
2、輸入模式轉編輯模式
按 esc
3、編輯模式轉末行模式
輸入 :
4、末行模式轉編輯模式
按esc(一次、二次)
vim保存退出操作
:q 無修改時直接退出
:q! 強制退出
:wq 保存修改內容退出
退出時,有時會提示“read only”,要對文件權限做相關修改處理之後保存退出
文件操作
光標移動
在編輯模式下hjkl或方向鍵對應相應光標移動
常用方法:5h就是向左移動5個字符,類似的還有10l 5j等
單詞之間的移動
編輯模式下
w:下一個單詞詞首
e:當前單詞或後一個單詞的詞尾
b:當前單詞或前一個單詞的刺手
常用方法
3w:當前單詞後三個單詞的詞首
類似還有3e 5b等
行內跳轉
編輯模式下
^:跳轉至行首的第一個非空字符
o:跳轉至行首(無視非空)
$:跳轉至行尾
行間跳轉
編輯模式下
#G:跳轉到某,如8G,就是跳轉至第八行的行首
G:跳轉至最後一行
1G/gg:跳轉至行首
句間跳轉、段落間跳轉略
編輯命令
x:刪除光標所在的字符
#x: 一次刪除#個字符(向右)
dd:刪除整行
#dd :刪除連同本行以及向下一共#行,如3dd
p:粘貼(put ,paste)可以粘貼最後一次刪除的內容
小寫p:粘貼至當前光標所在處後面
大寫P:粘貼至當前光標所在處前面
如果複製、刪除的內容是完整行(一行或多行)
小寫p:粘貼至當前光標所在行下方
大寫P:粘貼至當前光標所在行上方
y:複製命令
yy:複製行
#yy:複製多行,如3yy
u:撤銷操作
u:撤銷修改
#u:撤銷#次修改,如3u
特別用法:Ctrl+r 撤銷撤銷的內容
.:重複上一次動作
翻屏操作
Ctrl+f:向後一屏
Ctrl+b:向前一屏
Ctrl+d:向後半屏
Ctrl+u:向前半屏
文本查找
/PATTERN:向下搜索(往尾部)
?PATTERN:向上搜索(往首部)
n 下一個
N 上一個
多文件模式
打開文件
vim file1 file2 ……
:next 下一個文件
:prev 上一個文件
:first 第一個文件
:last 最後一個文件
:wall 全部保存
:qall 全部退出
:wqall 全部保存退出
多窗口模式
水平多窗口打開文件:vim -o file1 fiel2 ……
垂直多窗口打開文件:vim -O file1 fiel2 ……
單個文件也可以進行窗口分割
Ctrl+w,s 水平分割
Ctrl+w,v 垂直分割
顯示屬性定義(末行模式)
顯示/不顯示行號:set nu / setnonu (參考行數)
括號匹配/不匹配::set sm / set nosm
2、總結文件查找命令find的使用方法;
使用方式:
find(選項)(參數)
根據文件類型進行查找:
-type TYPE
f: 普通文件
d: 目錄
l: 符號鏈接
b: 塊設備
c: 字符設備
p: 命名管道
s: 套接字
組合查找條件:
與條件:-a
或條件:-o
非條件:-not, !
!A -o !B = !(A -a B)
!A -a !B = !(A -o B)
根據文件大小來查找:
-size [+|-]#UNIT
單位:k, M, G
#UNIT: (#-1,#]
+#UNIT: (#,+oo)
-#UNIT:[0,#-1]
根據時間戳:
以"天"爲單位
-atime [+|-]#
#:[#,#+1)
+#: [#+1,oo]
-#: [0,#)
-mtime
-ctime
以"分鐘"爲單位
-amin
-mmin
-cmin
根據權限:
-perm [/|-]MODE
MODE: 精確權限匹配
/MODE:任何一類對象(u,g,o)的任何一位權限符合條件即可;隱含或條件;
/400
-MODE:爲每一類對象指定的每一位權限都必須同時存在方爲符合條件;隱含與條件;
處理動作:
-print: 默認處理動作
-ls:類似於對查找到的每個文件做"ls -l"的操作;
-delete: 刪除查找到的文件;
-fls /path/to/somefile:查找到的文件的詳細路徑信息保存至指定文件中;
-ok COMMAND {} \;
對每個文件執行指定的命令之前需要用戶事先確認;
-exec COMMAND {} \;
無需用戶確認;
使用實例:
在/etc/目錄下查找以.conf結尾的文件
find /etc -name *.conf
搜索/etc目錄下最近7天訪問的文件
find /etc . -type f -atime -7
在/etc/目錄下大於5K的文件
find /etc/ . -type f -size +5k
3、總結bash環境變量的相關內容;
按有效範圍
全局配置(環境變量):/etc/profile,/etc/profile.d/*.sh
etc/bashrc
個人配置(局部變量):~/.bash_profile
~/.bashrc
按功能劃分,存在兩類:
profile類:爲交互式登錄的shell提供配置
/etc/profile, /etc/profile.d/*.sh
~/.bash_profile
變量類型:
環境變量:作用於當前shell進程及子進程
本地變量:作用於當前shell進程,子進程不生效
局部變量:作用與僅當前shell進程中某代碼片段
位置變量:$0 $1 $2 ……
特殊變量:$?
定義環境變量:
export name=value
declare -xname=value
查看:
env, printenv, export
撤消變量:
unset name
引用變量:
${name}, $name
4、總結Linux文件系統上的特殊權限(SUID、SGID、Sticky)的知識點;
權限模型:
u,g,o
w,r,x
進程的安全上下文
前提是進程有屬主,文件有屬主和屬組
1、用戶能否將某個可執行文件啓動爲進程,取決於用戶對文件有沒有執行權限
2、程序啓動後,程序的屬組就是用戶,即程序的發起者,進程的屬組是發起者的基本組
3、進程擁有的訪問權限,取決於其屬組的訪問權限
進程的屬主同文件的屬主,則應用屬主權限
進程的屬主同文件的屬組,則應用屬主權限
否則應用文件的其他權限
特殊權限
SUID
如果屬主有執行權限,顯示爲s ,否則顯示爲S
功用:對於一個可執行的文件來敬,任何用戶運行此程序爲進程時,進程的屬主不在是發起者本人,而是可執行程序文件自己的屬組
chmod u+s 添加UID權限
SGID
功用:當目錄的屬組有寫權限,且擁有SGID權限時,那麼所有屬於此目錄的屬組,且以屬組身份在此目錄新建文件或目錄是,新文件或目錄的屬組不是創建者所屬的基本組,而是目錄的屬組
chmod g+s DIRECTORY
特殊權限位sticky
chmod o+t
除了root和文件的屬主用戶有刪除文件,其他人都不可以刪除
5、總結Linux磁盤管理、文件系統相關知識點及其相關命令的使用方法;
接口類型
IDE (ATA):133MB/s,/dev/hd
SCSI: 640MB/s
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
分區工具:fdisk, parted, sfdisk
管理子命令:
p:顯示
n:創建
d:刪除
t:修改分區ID
l:列出所有支持的分區類型ID
w:保存並退出
q:放棄保存並退出
m:獲得幫助
Linux 文件系統管理
Linux 文件系統:ext2 ext3 ext4 xfs btrfs swap
光盤文件系統:iso9660
windows:fat32 ntfs
網絡文件系統:nfs cifs
集羣文件系統:ocfs2 gfs2
分佈式文件系統:ceph
6、複製/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;
:%s/^[[:space:]]//
7、複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲/tmp/functions的每行開頭爲空白字符的行的行首加一個#; 原有空白字符保留;
:%s@^\([[:space:]]\)@#\1@
8、替換/tmp/functions文件中的/etc/sysconfig/init爲/var/log;
:%s@/etc/sysconfig/init@/var/log@g
9、刪除/tmp/functions文件中所以#開頭,且#後面至少跟了一個空白字符的行的行首#;
10、查找/var目錄屬主爲root,且屬組爲mail的所有文件;
find /var -user root -group mail -ls
11、查找/usr目錄下不屬於root、bin或hadoop的所有文件;
find /usr -not -user root -a -not -user bin -a -not -user hadoop -ls
12、查找/etc目錄下最近一週內其內容修改過,且屬主不爲root或hadoop的所有文件;
find /etc -atime -7 -not -user root -a -not -user hadoop -ls
13、查找當前系統上沒有屬主或屬組,且最近一週內曾被訪問過的所有文件;
find / -nouser -o -nogroup -a -atime -7 -ls
14、查找/etc目錄下大於20k且類型爲普通文件的所有文件;
find /etc/ . -type f -size +20k
15、查找/etc目錄下所有用戶都沒有寫權限的文件;
find /etc -not -perm +222
16、查找/etc目錄下至少有一類用戶沒有執行權限的文件;
find /etc/ -not -perm -111 -ls
17、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶擁有寫權限的文件;
find /etc/init.d/ -perm -113 -ls
18、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;
chmod u+s /tmp/cat
19、創建目錄/test/data,讓某組內普通用戶對其有寫權限,且創建的所有文件的屬組爲目錄所屬的組;此外,每個用戶僅能刪除自己的文件;
mkdir -p /test/data
chmod 3775 /test/data