20150830-Y1506401-19+benz2015+文本編輯工具vim的使用方法等

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:]]//


wKiom1XscsjCfda0AAHj2Qr3UJo015.jpg

7、複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲/tmp/functions的每行開頭爲空白字符的行的行首加一個#; 原有空白字符保留;

:%s@^\([[:space:]]\)@#\1@


wKiom1Xsc7-DyIe6AALTrPlcO6I732.jpg


8、替換/tmp/functions文件中的/etc/sysconfig/init爲/var/log;

 :%s@/etc/sysconfig/init@/var/log@g

wKioL1XsdqHQpwMDAAHeXgRlxcA237.jpg

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章