您好,登錄后才能下訂單哦!
作業(yè)(練習(xí))內(nèi)容:
1、總結(jié)文本編輯工具vim的使用方法;
Vim :全屏編輯器,模式化編輯器
Vim模式:
編輯模式(命令模式)
輸入模式
末行模式
模式轉(zhuǎn)換:
編輯--à輸入:
i:在當(dāng)前光標(biāo)所在字符的前面,轉(zhuǎn)為輸入模式;
a:在當(dāng)前光標(biāo)所在字符的后面,轉(zhuǎn)為輸入模式;
o:在當(dāng)前光標(biāo)所在的下方,新建一行,并轉(zhuǎn)為輸入模式;
I:在當(dāng)前光標(biāo)所在行的行首,轉(zhuǎn)換為輸入模式
A:在當(dāng)前光標(biāo)所在行的行尾,轉(zhuǎn)換為輸入模式
O:在當(dāng)前光標(biāo)所在行的上方,新建一行,并轉(zhuǎn)為輸入模式:
打開文件
#vi /tmp/grub2.cfg
Vi +#:打開文件,并定位于第#行
Vi + :打開文件,定位至最后一行
Vi +/PSTTERN: 打開文件,定位至第一次被PATTERN匹配到的行的行首
默認(rèn)處于編輯模式
關(guān)閉文件
末行模式關(guān)閉文件
:q 不保存退出
:wq 保存退出
:q! 強制不保存退出
:w 保存
:w! 強行保存
:wq --à:x
2編輯模式下退出
zz:保存并退出
vim的末行模式
(1) 地址,定界
:start_pos,end_pos
#:第#行;
#,#
#,+#
.:當(dāng)前行
$:最后一行
%: 全文,相當(dāng)于1,$
/pat1/:第一次被此模式所匹配到的行;
#,/pat1/
/pat1/,/pat2/
后可跟編輯命令:
d, y
w, r
(2) 查找
/PATTERN:向尾部進行
?PATTERN:向首部進行
n: 與命令同方向
N:與命令反方向
(3) 查找替換
s: 在末行模式下,在地址定界的范圍內(nèi)完成查找替換操作;
s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符
要查找的內(nèi)容:可使用模式
替換為的內(nèi)容:不能使用模式,但可以使用后向引用符號,以引用前面模式中的分組括號所匹配到的內(nèi)容;
\1,\2, ...
&:引用“要找的內(nèi)容”匹配到的整個內(nèi)容;
修飾符:
i:忽略大小寫
g:全局替換
/:用于分隔符,所以,要查找的內(nèi)容或替換為的內(nèi)容中出現(xiàn)此符號,要使用\對其轉(zhuǎn)義,使用格式:\/
分隔符可替換為其它字符:例如@,#等;
1、總結(jié)文件查找命令find的使用方法;
find命令:實時查找;查找速度略慢;精確查找;
find [OPTION]... [查找路徑] [查找條件] [處理動作]
查找路徑:默認(rèn)為當(dāng)前路徑;
查找條件:指定的查找標(biāo)準(zhǔn),可以根據(jù)文件名、大小、屬主屬組、類型等進行;默認(rèn)為找出指定路徑下的所有文件;
處理動作:對符合條件的文件做什么操作;默認(rèn)為輸出至屏幕;
查找條件:
根據(jù)文件名進行查找:
-name "文件名稱": 支持使用glob;
*, ?,[]
-iname "文件名稱":不區(qū)分字符大小寫,支持使用glob;
-regex "PATTERN":以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱;
根據(jù)屬主、屬組查找:
-user USERNAME: 查找屬主為指定用戶的文件;
-group GROUPNAME:
-uid UserID: 查找文件的屬主指定uid的文件;
-gid GroupID:
-nouser: 查找沒有屬主的文件;
-nogroup:查找沒有屬組的文件;
根據(jù)文件類型進行查找:
-typeTYPE
f:普通文件
d:目錄
l:符號鏈接
b:塊設(shè)備
c:字符設(shè)備
p:命名管道
s:套接字
組合查找條件:
與條件:-a
或條件:-o
非條件:-not, !
!A-o !B = !(A -a B)
!A-a !B = !(A -o B)
根據(jù)文件大小來查找:
-size[+|-]#UNIT
單位:k, M, G
#UNIT:(#-1,#]
+#UNIT:(#,+oo)
-#UNIT:[0,#-1]
根據(jù)時間戳:
以“天”為單位
-atime[+|-]#
#:[#,#+1)
+#:[#+1,oo]
-#:[0,#)
-mtime
-ctime
以“分鐘”為單位
-amin
-mmin
-cmin
根據(jù)權(quán)限:
-perm[/|-]MODE
MODE:精確權(quán)限匹配
/MODE:任何一類對象(u,g,o)的任何一位權(quán)限符合條件即可;隱含或條件;
/400
-MODE:為每一類對象指定的每一位權(quán)限都必須同時存在方為符合條件;隱含與條件;
處理動作:
-print: 默認(rèn)處理動作
-ls:類似于對查找到的每個文件做"ls -l"的操作;
-delete:刪除查找到的文件;
-fls/path/to/somefile:查找到的文件的詳細(xì)路徑信息保存至指定文件中;
-okCOMMAND {} \;
對每個文件執(zhí)行指定的命令之前需要用戶事先確認(rèn);
-execCOMMAND {} \;
無需用戶確認(rèn);
2、總結(jié)bash環(huán)境變量的相關(guān)內(nèi)容;
配置文件,生效范圍劃分,存在兩類:
全局配置:
/etc/profile,/etc/profile.d/*.sh
/etc/bashrc
個人配置:
~/.bash_profile
~/.bashrc
按功能劃分,存在兩類:
profile類:為交互式登錄的shell提供配置
/etc/profile,/etc/profile.d/*.sh
~/.bash_profile
功用:
(1) 定義環(huán)境變量,例如PATH、PS1
(2) 運行命令或腳本
bashrc類:為非交互式登錄shell提供配置
/etc/bashrc
~/.bashrc
功用:
(1) 定義命令別名;
(2) 定義本地變量;
變量:內(nèi)存空間,變量名
類型:
環(huán)境變量:作用范圍當(dāng)前shell進程及其子進程
本地變量:作用范圍當(dāng)前shell進程
局部變量:作用范圍僅為當(dāng)前shell進程中某代碼片斷(通常為函數(shù)上下文)
位置變量:$1, $2
特殊變量:$?
變量定義方式:
bash內(nèi)置變量:可直接調(diào)用,內(nèi)置了許多環(huán)境變量,例如PATH等
自定義變量:
變量賦值:變量名=值
bash弱類型:
變量存儲數(shù)據(jù)時,默認(rèn)均采用字符形式;任何變量可以不經(jīng)聲明,直接引用;
120:24bits
120:8bits
定義本地變量:
name=value
查看:set
定義環(huán)境變量:
exportname=value
declare -xname=value
查看:env, printenv, export
撤消變量:
unset name
引用變量:
${name},$name
bash中的引用符號:
'': 強引用,變量替換不會發(fā)生
"":弱引用
``: 命令引用
3、總結(jié)Linux文件系統(tǒng)上的特殊權(quán)限(SUID、SGID、Sticky)的知識點;
SUID:
(1) 任何一個可執(zhí)行程序文件能不能啟動為進程:取決于發(fā)起者對程序文件是否有執(zhí)行權(quán)限;
(2) 啟動為進程之后,其屬主不是發(fā)起者,而程序文件自己的屬主;這種機制即為SUID;
權(quán)限設(shè)定:
chmodu+s FILE...
chmodu-s FILE...
注意:
s: 屬主原本擁有x權(quán)限;
S: 屬主原本無x權(quán)限;
SGID:
默認(rèn)情況下,用戶創(chuàng)建文件時,其屬級為此用戶所屬的基本組;
一旦某目錄被設(shè)定了SGID權(quán)限,則對此目錄擁有寫權(quán)限的用戶在此目錄中創(chuàng)建的文件所屬的組為目錄的屬組,而非用戶的基本組;
權(quán)限設(shè)定:
chmodg+s FILE...
chmodg-s FILE...
Sticky:
對于一個多人可寫的目錄,此權(quán)限用于限制每個僅能刪除自己的文件;
權(quán)限設(shè)定
chmodo+t FILE...
chmodo-t FILE...
權(quán)限模型:
u, g, o
r, w, x
進程的安全上下文:
前提:進程有屬主(進程以哪個用戶的身份運行);文件有屬主和屬組;
(1) 用戶是否能夠把某個可執(zhí)行程序文件啟動為進程,取決于用戶對程序文件是否擁有執(zhí)行權(quán)限;
(2) 程序啟動為進程后,此進程的屬主為當(dāng)前用戶,也即進程的發(fā)起者;進程所屬的組,為發(fā)起者的基本組;
(3) 進程擁的訪問權(quán)限,取決其屬主的訪問權(quán)限:
(a) 進程的屬主,同文件屬主,則應(yīng)用文件屬主權(quán)限;
(b) 進程的屬主,屬于文件的屬組,則應(yīng)用文件屬組權(quán)限;
(c) 則應(yīng)用其它權(quán)限;
5、總結(jié)Linux磁盤管理、文件系統(tǒng)相關(guān)知識點及其相關(guān)命令的使用方法;
分區(qū):分隔存儲空間為多個小的空間,每個空間可獨立使用文件系統(tǒng);
分區(qū)工具:
fdisk,parted, sfdisk
fdisk工具的使用:
最多支持在一塊硬盤上的15個分區(qū);
分區(qū)管理子命令:
p: 顯示
n: 創(chuàng)建
d: 刪除
t: 修改分區(qū)ID
l: 列出所有支持ID類型
w: 保存退出
q: 放棄修改并退出
m: 獲取幫助
創(chuàng)建完成之后,查看內(nèi)核是否已經(jīng)識別新的分區(qū):
# cat/proc/partitions
有三個命令可以讓內(nèi)核重讀磁盤分區(qū)表:
CentOS5: partprobe [DEVICE]
CentOS6,7:
partx
kpartx
partx命令:
partxDEVICE
partx-a DEVICE
partx-a -n M:N DEVICE
M
M:
:N
kpartx命令:
kpartx-af DEVICE
Linux文件系統(tǒng)管理:
mkfs, mkfs -ttype = mkfs.type
ext:mke2fs
創(chuàng)建文件系統(tǒng):
mke2fs[OPTION]... DEVICE
-t {ext2|ext3|ext4}
-b{1024|2048|4096}
-L'LABEL'
-j:mke2fs -t ext3
-i #:
-N #:
-m #: 預(yù)留磁盤空間占據(jù)多大百分比的空間為后期管理使用;
-OFEATURE[,...]
-O^FEATURE:關(guān)閉此特性
has_journal
文件系統(tǒng)屬性查看及調(diào)整工具:
e2label
e2lableDEVICE [LABEL]
tune2fs
顯示ext系列文件系統(tǒng)的屬性,或調(diào)整其屬性;
-l:顯示超級塊中的信息;顯示整個文件的屬性及布局等相關(guān)信息;
-L'LABEL':修改卷標(biāo);
-m #: 調(diào)整預(yù)留給管理員的管理空間百分比;
-j: ext2--> ext3
-O:文件系統(tǒng)屬性的啟動或關(guān)閉
-o:文件系統(tǒng)默認(rèn)掛載選項的啟用或關(guān)閉
dumpe2fs:
-h: 僅顯示超級塊信息;
文件系統(tǒng)檢測:
fsck:Filesystem check
fsck -ttype
fsck.type
-a: 自動修復(fù)錯誤
-r: 交互式修復(fù)錯誤
-f: 強制檢測
e2fsck:ext系列文件系統(tǒng)專用的檢測修復(fù)工具;
-y: 自動回答為“yes”
-f:force
6、復(fù)制/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;
[root@localhost~]# cp -p /etc/grub2.cfg /tmp/ [root@localhost~]# ls /tmp/ grub2.cfg [root@localhost~]# vi /tmp/grub2.cfg :%s/^\s*//g或者:%s/^[[:space:]]//g 在左下角命令模式
7、復(fù)制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首加一個#; 原有空白字符保留;
[root@localhost~]# cp /etc/rc.d/init.d/functions /tmp/ [root@localhost~]# vi /tmp/functions
:%s/^\s/#&/g或者:%s/^[[:space:]]/#&/g 在左下角命令模式
8、替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;
[root@localhost~]# vi /tmp/functions :%s/\/etc\/sysconfig\/init/\var\/log/g
9、刪除/tmp/functions文件中所以#開頭,且#后面至少跟了一個空白字符的行的行首#;
[root@localhost~]# vi /tmp/functions :%s/^#\(\s\+\)/\1/g
10、查找/var目錄屬主為root,且屬組為mail的所有文件;
[root@localhost~]# find /var -user root -group mail -ls 134295027 0 drwxrwxr-x 2 root mail 6 Jun 10 2014 /var/spool/mail [root@localhost~]#
11、查找/usr目錄下不屬于root、bin或hadoop的所有文件;
[root@localhost~]# find /usr ! -user root ! -user bin ! -user hadoop -ls find: ‘hadoop’is not the name of a known user [root@localhost~]# useradd hadoop [root@localhost~]# find /usr ! -user root ! -user bin ! -user hadoop -ls --------------這里可能需要等待幾秒中,不要以為卡在這里--------- 200304 0 drwx------ 2 polkitd root 6 Jun 10 2014 /usr/share/polkit-1/rules.d
12、查找/etc目錄下最近一周內(nèi)其內(nèi)容修改過,且屬主不為root或hadoop的所有文件;
[root@localhost~]# find /etc -mtime -7 ! -user hadoop -ls 67108993 12 drwxr-xr-x 74 root root 8192 Sep 2 08:23 /etc 431625 4 -rw-r--r-- 1 root root 14 Sep 2 04:36 /etc/tuned/active_profile 67985872 4 -rw-r--r-- 1 root root 470 Sep 2 08:23 /etc/group 67985873 4 ---------- 1 root root 371 Sep 2 08:23 /etc/gshadow 67985868 4 -rw-r--r-- 1 root root 995 Sep 2 08:23 /etc/passwd 67985871 4 ---------- 1 root root 643 Sep 2 08:23 /etc/shadow 67109049 4 drwxr-xr-x 6 root root 4096 Sep 2 04:36 /etc/sysconfig 134732599 4 drwxr-xr-x 2 root root 4096 Sep 2 04:36 /etc/sysconfig/network-scripts 135058400 4 -rw-r--r-- 1 root root 352 Aug 28 05:38/etc/sysconfig/network-scripts/ifcfg-eno16777736 67427376 4 -rw-r--r-- 1 root root 952 Sep 2 08:18 /etc/passwd- 67109038 4 ---------- 1 root root 614 Sep 2 08:18 /etc/shadow- 67311285 4 -rw-r--r-- 1 root root 455 Sep 2 08:18 /etc/group- 67109030 4 ---------- 1 root root 360 Sep 2 08:18 /etc/gshadow- [root@localhost~]#
[root@localhost~]# find /etc -mtime -7 ! -user hadoop ! -user root -ls [root@localhost~]# ----這里如果把root也除外什么都沒有了,但是可以修改屬主吖 [root@localhost~]# cp -p /etc/group- /etc/group1 [root@localhost~]# find /etc -mtime -7 ! -user hadoop ! -user root -ls [root@localhost~]# chown bin: /etc/group1 [root@localhost~]# find /etc -mtime -7 ! -user hadoop ! -user root -ls 67985874 4 -rw-r--r-- 1 bin bin 455 Sep 2 08:18 /etc/group1 [root@localhost~]#
13、查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M,且最近一周內(nèi)曾被訪問過的所有文件;
[root@localhost ~]# find /-nouser -mtime -7
14、查找/etc目錄下大于20k且類型為普通誰的的所有文件;
[root@localhost ~]# find /etc -type f-size +20k -ls [root@localhost ~]# find /etc-size +20k -type f -ls
15、查找/etc目錄下所有用戶都沒有寫權(quán)限的文件;
[root@localhost ~]# find /etc ! =perm+222 -ls [root@localhost ~]# find /etc-not -perm +222
16、查找/etc目錄下至少有一類用戶沒有執(zhí)行權(quán)限的文件;
[root@localhost~]# find /etc ! -perm -111 -ls [root@localhost~]# find /etc -not -perm -222 -ls
17、查找/etc/init.d目錄下,所有用戶都有執(zhí)行權(quán)限,且其它用戶擁有寫權(quán)限的文件;
[root@localhost~]# find /etc/init.d -perm -113 -ls 67208865 0 lrwxrwxrwx 1 root root 11 Aug 21 04:01/etc/init.d -> rc.d/init.d
18、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;
[root@localhost~]# which cat /usr/bin/cat [root@localhost~]# cp /bin/cat /tmp [root@localhost~]# ls -l /tmp/ total 76 -rwxr-xr-x. 1root root 54048 Sep 2 09:01 cat -rw-r--r--. 1root root 13430 Sep 2 07:45 functions -rw-r--r--. 1root root 3976 Aug 21 04:12 grub2.cfg [root@localhost~]# chmod u+s /tmp/cat [root@localhost~]# ls -l /tmp/ total 76 -rwsr-xr-x. 1root root 54048 Sep 2 09:01 cat -rw-r--r--. 1root root 13430 Sep 2 07:45 functions -rw-r--r--. 1root root 3976 Aug 21 04:12 grub2.cfg [root@localhost~]# chmod u-s /tmp/cat [root@localhost~]# ls -l /tmp/ total 76 -rwxr-xr-x. 1root root 54048 Sep 2 09:01 cat -rw-r--r--. 1root root 13430 Sep 2 07:45 functions -rw-r--r--. 1root root 3976 Aug 21 04:12 grub2.cfg [root@localhost~]# chmod 4755 /tmp/cat [root@localhost~]# ls -l /tmp/ total 76 -rwsr-xr-x. 1root root 54048 Sep 2 09:01 cat -rw-r--r--. 1root root 13430 Sep 2 07:45 functions -rw-r--r--. 1root root 3976 Aug 21 04:12 grub2.cfg [root@localhost~]#
19、創(chuàng)建目錄/test/data,讓某組內(nèi)普通用戶對其有寫權(quán)限,且創(chuàng)建的所有文件的屬組為目錄所屬的組;此外,每個用戶僅能刪除自己的文件;
[root@localhost~]# mkdir -p /test/data [root@localhost~]# groupadd only [root@localhost~]# chown :only /test/data/ [root@localhost~]# ls -l /test/ total 0 drwxr-xr-x. 2root only 6 Sep 2 09:14 data [root@localhost~]# chmod o+t /test/data/ [root@localhost~]# ls -l /test/ total 0 drwxr-xr-t. 2root only 6 Sep 2 09:14 data [root@localhost~]# useradd -G only user1
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。