一、總結文本編輯工具vim的使用方法;shell
vim是 一款文本編輯器,有編輯模式(命令模式)、輸入模式和末行模式,三種模式之間可轉換vim
模式轉換windows
一、編輯模式轉化到輸入模式:安全
i 在光標所在處插入bash
a 在光標所在處的後一位進入插入網絡
I 在光標所在行的行首進入插入模式編輯器
A 在光標所在行的行尾進入插入模式分佈式
o 在光標所在行的下方,另起一新行並進入插入模式ide
O 在光標所在行的上方,另起一新行並進入插入模式工具
二、輸入模式轉編輯模式
按 esc
三、編輯模式轉末行模式
輸入 :
四、末行模式轉編輯模式
按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
二、總結文件查找命令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
三、總結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
四、總結Linux文件系統上的特殊權限(SUID、SGID、Sticky)的知識點;
權限模型:
u,g,o
w,r,x
進程的安全上下文
前提是進程有屬主,文件有屬主和屬組
一、用戶可否將某個可執行文件啓動爲進程,取決於用戶對文件有沒有執行權限
二、程序啓動後,程序的屬組就是用戶,即程序的發起者,進程的屬組是發起者的基本組
三、進程擁有的訪問權限,取決於其屬組的訪問權限
進程的屬主同文件的屬主,則應用屬主權限
進程的屬主同文件的屬組,則應用屬主權限
不然應用文件的其餘權限
特殊權限
SUID
若是屬主有執行權限,顯示爲s ,不然顯示爲S
功用:對於一個可執行的文件來敬,任何用戶運行此程序爲進程時,進程的屬主不在是發起者本人,而是可執行程序文件本身的屬組
chmod u+s 添加UID權限
SGID
功用:當目錄的屬組有寫權限,且擁有SGID權限時,那麼全部屬於此目錄的屬組,且以屬組身份在此目錄新建文件或目錄是,新文件或目錄的屬組不是建立者所屬的基本組,而是目錄的屬組
chmod g+s DIRECTORY
特殊權限位sticky
chmod o+t
除了root和文件的屬主用戶有刪除文件,其餘人都不能夠刪除
五、總結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
六、複製/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;
:%s/^[[:space:]]//
七、複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲/tmp/functions的每行開頭爲空白字符的行的行首加一個#; 原有空白字符保留;
:%s@^\([[:space:]]\)@#\1@
八、替換/tmp/functions文件中的/etc/sysconfig/init爲/var/log;
:%s@/etc/sysconfig/init@/var/log@g
九、刪除/tmp/functions文件中因此#開頭,且#後面至少跟了一個空白字符的行的行首#;
十、查找/var目錄屬主爲root,且屬組爲mail的全部文件;
find /var -user root -group mail -ls
十一、查找/usr目錄下不屬於root、bin或hadoop的全部文件;
find /usr -not -user root -a -not -user bin -a -not -user hadoop -ls
十二、查找/etc目錄下最近一週內其內容修改過,且屬主不爲root或hadoop的全部文件;
find /etc -atime -7 -not -user root -a -not -user hadoop -ls
1三、查找當前系統上沒有屬主或屬組,且最近一週內曾被訪問過的全部文件;
find / -nouser -o -nogroup -a -atime -7 -ls
1四、查找/etc目錄下大於20k且類型爲普通文件的全部文件;
find /etc/ . -type f -size +20k
1五、查找/etc目錄下全部用戶都沒有寫權限的文件;
find /etc -not -perm +222
1六、查找/etc目錄下至少有一類用戶沒有執行權限的文件;
find /etc/ -not -perm -111 -ls
1七、查找/etc/init.d目錄下,全部用戶都有執行權限,且其它用戶擁有寫權限的文件;
find /etc/init.d/ -perm -113 -ls
1八、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;
chmod u+s /tmp/cat
1九、建立目錄/test/data,讓某組內普通用戶對其有寫權限,且建立的全部文件的屬組爲目錄所屬的組;此外,每一個用戶僅能刪除本身的文件;
mkdir -p /test/data
chmod 3775 /test/data