一 vim
vi visual interface 全屏文本編輯器
行文本編輯器sed
全屏:vi/vim nano
vim = vi improved
模式:
編輯模式,命令模式
輸入模式
末行模式
編輯模式--》輸入模式
i insert,原地插入
a append,之后插入
o 新起一行插入
I 行首插入
A 行尾插入
O 當(dāng)前行上方插入新行
輸入模式--》編輯模式
按ESC鍵
編輯模式--》末行模式
按 :wq 保存退出
末行模式--》編輯模式
按ESC鍵,連按兩次
vim 打開文件如果存在直接編輯,如果不存在會(huì)創(chuàng)建文件,路徑必須正常
vim +n file 打開文件并路到第n行
+/PATTERN
:q
:q!
:wq 強(qiáng)制性寫入文件并退出。即使文件沒有被修改也強(qiáng)制寫入,并更新文件的修改時(shí)間。
:x 寫入文件并退出。僅當(dāng)文件被修改時(shí)才寫入,并更新文件修改時(shí)間,否則不會(huì)更新文件修改時(shí)間。
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元海安做網(wǎng)站,已為上家服務(wù),為海安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
編輯模式下按ZZ會(huì)保存
光標(biāo)跳轉(zhuǎn)
字符間跳轉(zhuǎn)
h j k l
左 下 上 右
每個(gè)跳轉(zhuǎn)字符前面可以加數(shù)字,表示多個(gè)字符跳轉(zhuǎn)
3h 向左跳3個(gè)字符
單詞間跳轉(zhuǎn)
w 跳到后一個(gè)單詞的詞首 符號(hào)被當(dāng)作單獨(dú)單詞,_不當(dāng)作單獨(dú)單詞
e 當(dāng)前或后一單詞的詞尾
b 當(dāng)前或前一單詞的詞首
前面加數(shù)字 ,可以多詞跳轉(zhuǎn)
行內(nèi)跳轉(zhuǎn)
^ 跳轉(zhuǎn)至行首的第一個(gè)非空白字符
0 跳轉(zhuǎn)到行首
$ 跳轉(zhuǎn)到行毛
行間移動(dòng)
#G 跳轉(zhuǎn)到第#號(hào)
1G gg 跳轉(zhuǎn)到第一行
G 跳轉(zhuǎn)到最后一行
句間移動(dòng)
) 跳到下一句 以各種符號(hào)分隔
( 跳到上一句
段落間移動(dòng)
} 跳到下一段 以整行空白 分隔
{ 跳到上一段 以整行空白 分隔
編輯命令
字符編輯
x 刪除光標(biāo)所在處的字符
#x 刪除光標(biāo)所在處入之后的#個(gè)字符
xp 把光標(biāo)所在外的字符和后面的字符對(duì)掉
r 替換所在處的字符
#r
刪除命令
d 刪除,可以跟光標(biāo)跳轉(zhuǎn)一起使用
d$ 刪除光標(biāo)位置 到行尾的字符
d^ 刪除光標(biāo)位置 到行首的字符
d0 刪除光標(biāo)位置 到行首的字符
dw 刪除光標(biāo)到下一詞前的的全部字符(同時(shí)刪除下一詞前的符號(hào))
de 刪除光標(biāo)到詞尾的全部字符(不刪除下一詞前的符號(hào))
db 刪除光標(biāo)到詞首的全部字符,如果已經(jīng)在詞首,刪除光標(biāo)之前的整個(gè)詞
dd 刪除光標(biāo)所在一整行
#dd 刪除光標(biāo)所在行及后面的#行
所有刪除內(nèi)容被VIM編輯器保存至緩沖區(qū)
粘貼命令
如果此前復(fù)制或刪除內(nèi)容不是一個(gè)完整行
p 粘貼到光標(biāo)所在位置的后方
P 粘貼到光標(biāo)所在位置的前方
如果此前復(fù)制或刪除內(nèi)容是完整行或多行
p 粘貼到光標(biāo)所在行的下方
P 粘貼到光標(biāo)所在行的上方
復(fù)制命令
y 復(fù)幣
y$ 復(fù)制光標(biāo)位置 到行尾的字符
y^ 復(fù)制光標(biāo)位置 到行首的字符
y0 復(fù)制光標(biāo)位置 到行首的字符
‘=
yw 復(fù)制光標(biāo)到下一詞前的全部字符
ye 復(fù)制光標(biāo)到詞尾的全部字符
yb 復(fù)制光標(biāo)到詞首的全部字符,如果已經(jīng)在詞首,復(fù)制光標(biāo)之前的整個(gè)詞
yy 復(fù)制整行
#y 復(fù)制#行
改變命令
c 刪除--->剪切---->進(jìn)入插入模式
c$ c^ c0
ce cw cb
cc
#c
撤銷命令
u
#u
恢復(fù)撤消
ctrl+r
. 重復(fù)前一個(gè)操作命令
翻屏操作
ctrl+f 向后翻一屏
ctrl+b 向前翻一屏
ctrl+d 向后半屏
ctrl+u 向前半屏
vimtutor vim內(nèi)置教程
末行模式
地址,定界 后面都可以跟編輯命令 d y w r
:start,end
#第#行
:5 光標(biāo)跳到第5行
:100 光標(biāo)跳到第100行
:100d 刪除第100行
#,# 第#行到第#行
#,+#
:100,+3d 第100行后面的3行內(nèi)容刪除
. 當(dāng)前行
$ 最后一行
:.,$-1d
% 1,$ 全文
:/part1/ 第一次被此模式所匹配的行
:/umask/
:#,/umask/
:/part1/,/part2/
查找功能
/PATTERN 從光標(biāo)向尾部查找
?PATTERN 從光標(biāo)向頭部查找
n 與命令同方向查找下一個(gè)
N 與命令反方向查找下一個(gè)
查找替換
s 在末行模式下 在地址定界范圍內(nèi)完成查找替換操作
s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符
查找的內(nèi)容:可使用模式
替換的肉容:不能使用模式,可以使用后面引用符號(hào)
&引用要查找的內(nèi)容匹配到的整個(gè)內(nèi)容
修飾符
i 忽略大小寫
g 全局替換
/:用于分隔符,要使用\對(duì)符號(hào)進(jìn)行轉(zhuǎn)義
:3,100s/pid/processid/g
:%s@/etc/fstab@/tmp/fstab@/g
:.,+20s/^# //g
多文件模式
vim file1 file2
:next 切換到下一個(gè)文件
:first 切換到第一個(gè)文件
:last 切換到最后一個(gè)文件
:prev 切換到前一個(gè)文件
:wqall 保存全部文件
:q!all 不保存全部文件 并退出
多文件窗口分割
vim -o file1 file2 水平分割
-O 垂直分割
ctrl+w+箭頭
單文件窗口分割
ctrl+w+s 水平分割 按ctrl+w +方向切換窗口
ctrl+w+v 垂直分割 按ctrl+w +方向切換窗口
定制 vim
顯示行號(hào) :set nu
不顯示行號(hào) :set nonu
括號(hào)匹配 set sm
set no sm
自動(dòng)縮進(jìn) set ai
set noai
高亮搜索 set hlsearch
set nohlserch
語(yǔ)法著色 syntax on
syntax off
忽略字符大小寫 set ic
set noic
:help
vim 中文手冊(cè)
vim /etc/vimrc vim的全局配置文件
/~/.vimrc vim的個(gè)人配置文件
二 文件查找
locate 文件查找,根據(jù)索引查找,新文件可能找不到 ,查找速度快 ,模糊查找
索引的構(gòu)建是在系統(tǒng)空閑時(shí)自動(dòng)進(jìn)行(周期性任務(wù)) ,手動(dòng)更新數(shù)據(jù)庫(kù)(updatedb)
find 文件找查,實(shí)時(shí)查找,查找速度慢,精確查找
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find [OPTION]... [查找路徑] [查找條件] [處理動(dòng)作]
查找路徑 默認(rèn)為當(dāng)前路徑
查找條件 指定查找標(biāo)準(zhǔn),可以根據(jù)文件名,大小,屬主,類型等,默認(rèn)指出指定路徑下的所有文件
處理動(dòng)作 對(duì)符合條件的文件做什么操作,默認(rèn)輸出到屏幕
查找條件
根據(jù)文件名進(jìn)行查找
-name 文件名 支持使用glob
* ? []
-iname 文件名 不區(qū)分大小寫,支持使用glob
-regex "PATTERN" 以PATTERN匹配整個(gè)文件路徑字符串,不公公是文件名
find /tme -user centos find /tmp -user centos -ls find /tmp -group centos -ls
根據(jù)屬主,屬組查找
-user username
-group groupname
-uid useruid
-gid usergid
-nouser 沒有屬主的文件
-nogroup 沒有屬組的文件
根所文件類型查找
-type TYPE
f 普通文件
d 目錄文件
l 符號(hào)連接文件
b 塊設(shè)備
c 字符設(shè)備文件
p 命令管道
s 套接字文件
find /tmp -type s -ls
組合查找條件
非條件 -not,!
與條件 -a
或條件 -o
find -type f -a -nouser -ls find /tmp \( -nouser -o -user marion \) -ls find /etc ! -name "*.conf"
!A -o !B = !(A -a B)
!A -a !B = !(A -o B)
find /etc -not -name "a.conf" -a -not -type f -ls find /etc -not \( -name "a.conf" -o -not -type f ) -ls
根據(jù)文件大小查找
-size [+|-] #UNIT
單位 k M G
#UNIT (+-1,#]
+UNIT (#,+OO)
-UNIT [0,#-1]
find /etc -size -3k
以時(shí)間查找
以天為單位
-atime [+|-]n accessed n*24 hours ago
-mtime [+|-]n modified n*24 hours ago
-ctime [+|-]n changed n*24 hours ago
find /etc -mtime -3 -ls
以分鐘為單位
-amin [+|-]n accessed n minutes ago
-mmim [+|-]n modified n minutes ago
-cmin [+|-]n changed n minutes ago
根據(jù)權(quán)限
-perm [/|-] MODE
MODE 精確權(quán)限匹配
/MODE 任何一類對(duì)像(u,g,o) 的任何一位權(quán)限符合即可,隱含或條件,三類條件中的任一符合都可以
-MODE 每一類對(duì)像(u,g,o)指定的每一位權(quán)限必須同時(shí)存大方或符合條件,隱含與條件。
find ./ -perm /222 -ls find ./ -perm -222 -ls
處理動(dòng)作
-print :默認(rèn)顯示到屏幕
-ls
-delete
-fls /path/to/somefile
-ok COMMAND{} \; 對(duì)每個(gè)文件執(zhí)行前要用戶確認(rèn)
-exec COMANND{} \; 對(duì)文件的執(zhí)行無(wú)須用戶確認(rèn)
find ./ -perm -222 -exec ls -lh {} \; find ./ -perm -003 -exec chmod o-w {} \; find ./ -not -perm /111 -ls find ./ -not -perm /111 -exec mv {} {}.old \;
三 bash環(huán)境配置
man bash
配置文件
全局配置文件 /etc/profile /etc/profile.d/*.sh
/etc/bashrc
個(gè)人配置文件 ~/.bash_profile
~/.bashrc
Profile類
功用 定義環(huán)境變量
運(yùn)行的命令或者腳本
bashrc類
功用 自定義命令別名
定義本地變量
pstree set env printenv export
unset 變量名 取消變量
$變量名 引用變量
'' 強(qiáng)制用,變量替換不會(huì)發(fā)生
"" 弱引用
`` 命令引用
ls -l `which cat`
shell登錄類型
交互式登錄
通過終端進(jìn)行的登錄
通過su -l 命令實(shí)現(xiàn)的用戶切換
非交互式登錄
圖型界面下打開的命令行窗口
執(zhí)行腳本
配置文件的作用次序 后面的優(yōu)先級(jí)高于前面的優(yōu)先級(jí)
交互式登錄 :
/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非交互式登錄
~/.bashrc--> /etc/bashrc --> /etc/profile.d/*.sh
編輯的配置文件定義生效方法
重新登錄
讓當(dāng)前shell進(jìn)程去重新讀到指定的配置文件
source /path/to/somefile
./path/to/somefile
注意:副作用,每讀取一次會(huì)把配置的內(nèi)容附加到環(huán)境中,造成配置重復(fù)
四 Linux文件系統(tǒng)上的特殊權(quán)限
進(jìn)程的安全上下文
進(jìn)程有屬組(進(jìn)程以哪個(gè)用戶的身份運(yùn)行)
(1) 用戶是否把某個(gè)可執(zhí)行文件起動(dòng)為進(jìn)程,取決于用戶對(duì)程序文件是否擁有執(zhí)行權(quán)限
(2) 程序起動(dòng)為進(jìn)程后,此進(jìn)程的屬主為當(dāng)前用戶, 進(jìn)程所屬的組,為發(fā)起者的基本組
(3) 進(jìn)程擁有的訪問權(quán)限,取決其屬主的訪問權(quán)限
進(jìn)程的屬主同文件屬主,應(yīng)用文件屬主權(quán)限
進(jìn)程的屬主屬于文件的屬組,應(yīng)用文件屬組權(quán)限
其它情況,應(yīng)用其它權(quán)限
SUID 用戶是否把某個(gè)可執(zhí)行文件起動(dòng)為進(jìn)程,取決于用戶對(duì)程序文件是否擁有執(zhí)行權(quán)限
任何用戶來執(zhí)行該程序?yàn)檫M(jìn)程時(shí),該程序是程序的屬主發(fā)起程序
chmod u+s /tmp/cat
注意
S 屬主原來無(wú)x權(quán)限
s 屬主原來有x權(quán)限
SGID 默認(rèn)情況下,用戶創(chuàng)建文件其屬組為此用戶所屬的基本組
一旦某目錄設(shè)置了SGID權(quán)限,則些目錄擁有寫權(quán)限的用戶在此目錄中創(chuàng)建的文件的組為目錄的屬組,不是創(chuàng)建用戶的基本組。
chmod g+s /tmp/test/
注意
S 屬組原來無(wú)x權(quán)限
s 屬組原來有x權(quán)限
Sticky 對(duì)一個(gè)多個(gè)可寫的目錄,此權(quán)限用于限制每個(gè)用戶僅能刪除屬主為自已的權(quán)限
chmod o+t file chmod o+t /tmp/test
SUID SGID STICKY
0 0 0
chmod 4777 file
五 Linux磁盤管理 和文件系統(tǒng)
識(shí)別硬盤 /dev/sd#
標(biāo)記不同的硬盤設(shè)備 /dev/sd[a-]
標(biāo)記同一設(shè)備上的不同分區(qū) /dev/sd[a-z][1-]
1-4: 主或擴(kuò)展分區(qū)標(biāo)識(shí)
5+:邏輯分區(qū)標(biāo)識(shí)
設(shè)備文件 特殊文件
設(shè)備號(hào)
major,minor
major 設(shè)備類型
minor 同一類型下的不同設(shè)備
塊設(shè)備 標(biāo)識(shí)為b 隨機(jī)訪問設(shè)備
字符設(shè)備 標(biāo)記為c 線性設(shè)備
GPT
分區(qū),分隔存儲(chǔ)空間為多個(gè)小的空間,每個(gè)空間可獨(dú)立使用文件系統(tǒng)
分區(qū)工具
fdisk parted sfdisk
fdisk 最多支持在一塊硬盤上的15個(gè)分區(qū)
分區(qū)管理子命令
p: 顯示
n: 創(chuàng)建
d: 刪除
t: 修改分區(qū)ID
l: 列出所有支持ID類型
w: 保存退出
q: 放棄修改并退出
m: 獲取幫助
創(chuàng)建完成之后,查看內(nèi)核是否已經(jīng)識(shí)別新的分區(qū):
cat /proc/partitions
有三個(gè)命令可以讓內(nèi)核重讀磁盤分區(qū)表:
CentOS 5: partprobe [DEVICE]
CentOS 6,7: partx kpartx
partx命令:
partx DEVICE
partx -a DEVICE
partx -a -n M:N DEVICE
M
M:
:N
kpartx命令:
kpartx -af DEVICE
partx -a -n 4:5 /dev/sda kpartx -af /dev/sda
文件系統(tǒng)管理
文件系統(tǒng) VFS Virtual File System
Linux : ext2 ext3 ext4 btrfs swap
Unix : xfs ffs ufs jfs jfs2
光盤 : ISO9660
Win : fat32/vfat ntfs
網(wǎng)絡(luò)文件系統(tǒng) : net nfs cifs
集群文件系統(tǒng) : ocfs2 gfs2
分布式文件系統(tǒng): ceph moosefs mogilefs hdfs gfs glusterfs
日志型文件系統(tǒng) ext3
非日志型文件系統(tǒng) ext2
交換分區(qū)swap
創(chuàng)建文件系統(tǒng)
在分區(qū)上執(zhí)行格式化(高級(jí)格式化)
要使用某種文件系統(tǒng),滿足兩個(gè)條件:
內(nèi)核中 支持此文件系統(tǒng)
用戶空間 有文件系統(tǒng)管理工具
創(chuàng)建工具:mkfs (make filesystem) mkfs -t type DEVICE
mkfs.ext4
fsck
fsck.ext4
ext系列文件系統(tǒng)的專用管理工具:mke2fs -t ext2|ext3|ext4 DEVICE
blkid /dev/sda5 顯示文件系統(tǒng)的詳細(xì)信息
練習(xí)
6、復(fù)制/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;
cp /etc/grub2.cfg /tmp/ vim /tmp/grub2.cfg :%s@^[[:space:]]@@g :1,$s/^[[:space:]]//g :%s/^[[:space:]]
7、復(fù)制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首加一個(gè)#; 原有空白字符保留;
cp /etc/rc.d/init.d/functions /tmp/ vim /tmp/functions :%s@^[[:space:]]@#&@g
8、替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;
vim /tmp/functions :%s@/etc/sysconfig/init@/var/log@g
9、刪除/tmp/functions文件中所以#開頭,且#后面至少跟了一個(gè)空白字符的行的行首#;
vim /tmp/functions :%s@^#\([[:space:]]\+\)@\1@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 wang -o user hadoop \) -ls
12、查找/etc目錄下最近一周內(nèi)其內(nèi)容修改過,且屬主不為root或hadoop的所有文件;
find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls
13、查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M,且最近一周內(nèi)曾被訪問過的所有文件;
find /etc -atime -7 -a -not \( -nouser -o -nogroup \) -ls
14、查找/etc目錄下大于20k且類型為普通文件的所有文件;
find /etc -size +20k -a -type f -ls
15、查找/etc目錄下所有用戶都沒有寫權(quán)限的文件;
find /etc -not -perm /222 -ls
16、查找/etc目錄下至少有一類用戶沒有執(zhí)行權(quán)限的文件;
find /etc -not -perm -111 -ls
17、查找/etc/init.d目錄下,所有用戶都有執(zhí)行權(quán)限,且其它用戶擁有寫權(quán)限的文件;
find /etc/init.d -perm /111 -a -perm /002 -ls
18、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;
cp /bin/cat /tmp chmod u+s /tmp/cat su - hadoop /test/cat shadow
19、創(chuàng)建目錄/test/data,讓某組內(nèi)普通用戶對(duì)其有寫權(quán)限,且創(chuàng)建的所有文件的屬組為目錄所屬的組;此外,每個(gè)用戶僅能刪除自己的文件;
mkdir -p /test/data chmod g+wrxs,o+wrxt /test/data or chmod 3777 data
當(dāng)前標(biāo)題:vimfindbash文件系統(tǒng)
網(wǎng)頁(yè)鏈接:http://jinyejixie.com/article34/pshhpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、App開發(fā)、響應(yīng)式網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)