
文件:
r: 可使用文件查看類工具獲取其內(nèi)容
w: 可修改其內(nèi)容
x: 可以把此文件提請內(nèi)核啟動為一個進(jìn)程
目錄:
r: 可以使用ls查看此目錄中文件列表
w: 可在此目錄中創(chuàng)建文件,也可刪除此目錄中的文件
x: 可以使用ls -l查看此目錄中文件列表,可以cd進(jìn)入此
修改文件的屬主:chown
修改文件的屬組:chgrp
修改文件權(quán)限:chmod??
? 修改一類用戶的所有權(quán)限: u= g= o= ug= a= u=,g=
? 修改一類用戶某位或某些位權(quán)限:u+? u-? g+? g-? ?o+ o? -a+? a-? +? ?-
umask值可以用來保留在創(chuàng)建文件權(quán)限
新建FILE權(quán)限: 666-umask
如果所得結(jié)果某位存在執(zhí)行(奇數(shù))權(quán)限,則將其權(quán)限+1
新建DIR權(quán)限: 777-umask
全局設(shè)置:/etc/bashrc用戶設(shè)置:~/.bashrc
Linux文件系統(tǒng)上的特殊權(quán)限
權(quán)限設(shè)定?chmod? u+s? FILE...? ?chmod? u-s? ?FILE...
? ? ? ? ? ? ? ?chmod? g+s? DIR...? ??chmod? g-s? DIR...
? ? ? ? ? ? ? ? chmod? o+t? DIR...? ? ?chmod? ?o-t? DIR...
設(shè)定文件特定屬性
chattr +i 不能刪除,改名,更改
chattr +a 只能追加內(nèi)容
lsattr 顯示特定屬性
訪問控制列表
CentOS7之前版本,默認(rèn)手工創(chuàng)建的ext4文件系統(tǒng)無ACL功能,需手動增加
? tune2fs –o acl/dev/sdb1
? ?mount –o acl/dev/sdb1 /mnt/test
ACL生效順序:所有者,自定義用戶,自定義組,其他人
setfacl -m u:wang:rwx file 設(shè)置acl
setfacl? -k dir? 刪除默認(rèn)ACL權(quán)限
setfacl? –b file1 清除所有ACL權(quán)限
文本處理工具?
文件查看命令cat, tac,rev
cat??
-E: 顯示行結(jié)束符$
-n: 對顯示出的每一行進(jìn)行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續(xù)的空行成一行
head [OPTION]... [FILE]...
-c #: 指定獲取前#字節(jié)
-n #: 指定獲取前#行
-#: 指定行數(shù)
tail [OPTION]... [FILE]...
-c #: 指定獲取后#字節(jié)
-n #: 指定獲取后#行
-#:
-f: 跟蹤顯示文件fd新追加的內(nèi)容,常用日志監(jiān)控
相當(dāng)于--follow=descriptor
-F: 跟蹤文件名,相當(dāng)于—follow=name --retry
cut
-d DELIMITER: 指明分隔符,默認(rèn)tab
-f FILEDS:
#: 第#個字段
#,#[,#]:離散的多個字段,例如1,3,6
#-#:連續(xù)的多個字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING指定輸出分隔符
paste 合并兩個文件同行號的列到一行
paste [OPTION]... [FILE]...
-d 分隔符:指定分隔符,默認(rèn)用TAB
-s : 所有行合成一行顯示
paste f1 f2
paste -s f1 f2
wc??-l 只計數(shù)行數(shù)
-w 只計數(shù)單詞總數(shù)
-c 只計數(shù)字節(jié)總數(shù)
-m 只計數(shù)字符總數(shù)
-L 顯示文件中最長行的長度
sort
-r 執(zhí)行反方向(由上至下)整理
-n 執(zhí)行按數(shù)字大小整理
-f 選項忽略(fold)字符串中的字符大小寫
-u 選項(獨(dú)特,unique)刪除輸出中的重復(fù)行
?-t c 選項使用c做為字段界定符
?-k X 選項按照使用c字符分隔的X列來整理能夠使用多次
uniq命令:從輸入中刪除前后相接的重復(fù)的行
-c: 顯示每行重復(fù)出現(xiàn)的次數(shù)
-d: 僅顯示重復(fù)過的行
-u: 僅顯示不曾重復(fù)的行
連續(xù)且完全相同方為重復(fù)
Linux文本處理三劍客
?--color=auto: 對匹配到的文本著色顯示
-v: 顯示不被pattern匹配到的行
-i: 忽略字符大小寫
-n:顯示匹配的行號
-c: 統(tǒng)計匹配的行數(shù)
-o: 僅顯示匹配到的字符串
-q: 靜默模式,不輸出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:實(shí)現(xiàn)多個選項間的邏輯or關(guān)系
grep –e ‘cat ’ -e ‘dog’ file
-w:匹配整個單詞
?-E:使用ERE
-F:相當(dāng)于fgrep,不支持正則表達(dá)式
字符匹配:
. 匹配任意單個字符
[] 匹配指定范圍內(nèi)的任意單個字符
[^] 匹配指定范圍外的任意單個字符
[:alnum:] 字母和數(shù)字
[:alpha:] 代表任何英文大小寫字符,亦即A-Z, a-z
[:lower:] 小寫字母[:upper:] 大寫字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范圍廣)
[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴...)
[:digit:] 十進(jìn)制數(shù)字[:xdigit:]十六進(jìn)制數(shù)字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標(biāo)點(diǎn)符號
匹配次數(shù)
* 匹配前面的字符任意次,包括0次
? ? ? ? ?貪婪模式:盡可能長的匹配
.* 任意長度的任意字符
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
位置錨定
^ 行首錨定,用于模式的最左側(cè)
$ 行尾錨定,用于模式的最右側(cè)
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或\b 詞首錨定,用于單詞模式的左側(cè)
\> 或\b 詞尾錨定;用于單詞模式的右側(cè)
\<PATTERN\> 匹配整個單詞
分組:\(\) 將一個或多個字符捆綁在一起,當(dāng)作一個整體進(jìn)
行處理,如:\(root\)\+
\1 表示從左側(cè)起第一個左括號以及與之匹配右括號之間的
模式所匹配到的字符
?示例: \(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
或者:\|
示例:a\|b: a或b C\|cat: C或cat \(C\|c\)at:Cat或cat
擴(kuò)展正則表達(dá)式
egrep = grep -E
egrep [OPTIONS] PATTERN [FILE...]
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置錨定:
^ :行首
$ :行尾
\<, \b :語首
\>, \b :語尾
分組:
()
后向引用:\1, \2, ...
或者:
a|b: a或b
C|cat: C或cat
(C|c)at:Cat或cat
VIM文本編輯器
文本編輯種類:
行編輯器: sed
全屏編輯器:nano, vi
vim - Vi Improved
vim [OPTION]... FILE...
+#: 打開文件后,讓光標(biāo)處于第#行的行首,+默認(rèn)行尾
+/PATTERN:打開文件后,直接讓光標(biāo)處于第一個被PATTERN匹配到的行的行首
三種主要模式:
命令(Normal)模式:默認(rèn)模式,移動光標(biāo),剪切/粘貼文本
插入(Insert)或編輯模式: 修改文本
擴(kuò)展命令(extended command )模式: 保存,退出等
Esc鍵 退出當(dāng)前模式

命令模式 --> 插入模式
i: insert, 在光標(biāo)所在處輸入
I:在當(dāng)前光標(biāo)所在行的行首輸入
a: append, 在光標(biāo)所在處后面輸入
A:在當(dāng)前光標(biāo)所在行的行尾輸入
o: 在當(dāng)前光標(biāo)所在行的下方打開一個新行
O:在當(dāng)前光標(biāo)所在行的上方打開一個新行
擴(kuò)展模式:
:q 退出
:q! 強(qiáng)制退出,丟棄做出的修改
:wq 保存退出
:x 保存退出
按“:”進(jìn)入Ex模式
?創(chuàng)建一個命令提示符: 處于底部的屏幕左側(cè)
命令:
w 寫(存)磁盤文件
wq 寫入并退出
x 寫入并退出
q 退出
q! 不存盤退出,即使更改都將丟失
r filename 讀文件內(nèi)容到當(dāng)前文件中
w filename 將當(dāng)前文件內(nèi)容寫入另一個文件
!command 執(zhí)行命令
r!command 讀入命令的輸出
字符間跳轉(zhuǎn):
h: 左 l: 右 j: 下 k: 上
#COMMAND:跳轉(zhuǎn)由#指定的個數(shù)的字符
單詞間跳轉(zhuǎn):
w:下一個單詞的詞首
e:當(dāng)前或下一單詞的詞尾
b:當(dāng)前或前一個單詞的詞首
#COMMAND:由#指定一次跳轉(zhuǎn)的單詞數(shù)
字符編輯:
x: 刪除光標(biāo)處的字符
#x: 刪除光標(biāo)處起始的#個字符
xp: 交換光標(biāo)所在處的字符及其后面字符的位置
~:轉(zhuǎn)換大小寫
J:刪除當(dāng)前行后的換行符
替換命令(r, replace)
r: 替換光標(biāo)所在處的字符
R:切換成REPLACE模式
刪除命令:
d: 刪除命令,可結(jié)合光標(biāo)跳轉(zhuǎn)字符,實(shí)現(xiàn)范圍刪除
d$: 刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
dw:
de:
db:
#COMMAND
?dd: 刪除光標(biāo)所在的行
#dd:多行刪除
D:從當(dāng)前光標(biāo)位置一直刪除到行尾,留空行,等同于d$
復(fù)制命令(y, yank):
y: 復(fù)制,行為相似于d命令
y$
y0
y^
ye
yw
yb
#COMMAND
?yy:復(fù)制行
#yy: 復(fù)制多行
Y: 復(fù)制整行
粘貼命令(p, paste):
p:緩沖區(qū)存的如果為整行,則粘貼當(dāng)前光標(biāo)所在行的下
方;否則,則粘貼至當(dāng)前光標(biāo)所在處的后面
P:緩沖區(qū)存的如果為整行,則粘貼當(dāng)前光標(biāo)所在行的上
方;否則,則粘貼至當(dāng)前光標(biāo)所在處的前面
改變命令(c, change)
c: 修改后切換成插入模式
? 命令模式 --> 插入模式
c$
c^
c0
cb
ce
cw
#COMMAND
? cc:刪除當(dāng)前行并輸入新內(nèi)容,相當(dāng)于S
#cc:
? C:刪除當(dāng)前光標(biāo)到行尾,并切換成插入模式
查找并替換
s: 在擴(kuò)展模式下完成查找替換操作
格式:s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符
修飾符:
i: 忽略大小寫
g: 全局替換;默認(rèn)情況下,每一行只替換第一次出現(xiàn)
gc:全局替換,每次替換前詢問
查找替換中的分隔符/可替換為其它字符,例如
s@/etc@/var@g
s#/boot#/#i
撤消更改
u撤銷最近的更改
?#u撤銷之前多次更改
?U 撤消光標(biāo)落在這行后所有此行的更改
?按Ctrl - r重做最后的“撤消”更改
. 重復(fù)前一個操作
n.重復(fù)前一個操作n次
可視化模式
允許選擇的文本塊
v 面向字符
V 面向行
ctrl-v 面向塊
可視化鍵可用于與移動鍵結(jié)合使用:
w ) } 箭頭等
突出顯示的文字可被刪除,復(fù)制,變更,過濾,搜索,替換等
多文件模式
vim FILE1 FILE2 FILE3 ...
:next 下一個
:prev 前一個
:first 第一個
:last 最后一個
:wall 保存所有
:qall 退出所有
:wqall
使用多個“窗口”
多文件分割
vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
在窗口間切換:Ctrl+w, Arrow
單文件窗口分割:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相鄰窗口
ctrl+w,o:取消全部窗口
:wqall 退出
配置文件:永久有效
全局:/etc/vimrc
個人:~/.vimrc
第三周作業(yè)
1、編寫腳本/root/bin/backup.sh ,可實(shí)現(xiàn)每日將/etc/目錄備份到 /root/etcYYYY-mm-dd中
#!/bin/bash
cp -av /etc/ /data/etc`date +%F`
2、編寫腳本/root/bin/disk.sh,顯示當(dāng)前硬盤分區(qū)中空間利用率最大的值
#!/bin/bash
df |grep "/dev/sd"|egrep -o "\<[[:digit:]]+%"|tr -d %|sort -nr|head -n1
3、編寫腳本/root/bin/nologin.sh 和login.sh,實(shí)現(xiàn)禁止和充許普通用戶登錄系統(tǒng)
#!/bin/bash
read -p "請輸入禁止的用戶:" user
uid=$( id $user |tr " " @ |cut -d@ -f1 |grep -o "[0-9]\{3,\}" )
[ $uid -ge 500 ] && usermod -s /bin/nologin $user || echo '該用戶為系統(tǒng)用戶,無法禁止!'
echo '該用戶已禁止登陸'
#!/bin/bash
read -p "請輸入允許登錄的用戶:" user
uid=$( id $user |tr " " @ |cut -d@ -f1 |grep -o "[0-9]\{3,\}" )
[ $uid -ge 500 ] && usermod -s /bin/bash $user || echo '該用戶為系統(tǒng)用戶,無法禁止!'
echo '該用戶已允許登陸'
4、查找/var目錄下不屬于root、lp、gdm的所有文件
find /var -not \( -user root -o -user lp -o -user gdm \)
5、統(tǒng)計/etc/init.d/functions文件中每個單詞的出現(xiàn)次數(shù),并排序(用grep和 sed兩種方法分別實(shí)現(xiàn))
egrep -o "\<[[:alpha:]]+\>" /etc/init.d/functions|sort|uniq -c|sort -n
6、利用sed 取出ifconfig命令中本機(jī)的IPv4地址
ifconfig | sed -r -n '/inet /s/^[[:space:]]+inet (.*) net.*$/\1/p'|head -n1
7、總結(jié)yum的配置和使用,包括yum倉庫的創(chuàng)建
c/s結(jié)構(gòu)? http://? https://? ftp://? file://
配置文件后綴為repo? 存放路徑:/etc/yum.repos.d
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
倉庫建立:
[base]
basenameurl=http://? https://? ftp://? file://
gpgcheck=0
yum install 安裝
yum groupinstall 組安裝
yum remove 卸載
yum groupremove 組卸載
yum list 顯示所有包
yum clean all 清除緩存
yum故障:1、配置文件 2、清除緩存
8、編寫系統(tǒng)初始化腳本reset.sh ,包括別名,提示符顏色,yum倉庫配置文件, 安裝tree,ftp,lftp,telnet等包
echo "alias cdnet='cd /etc/sysconfig/network-scripts/'" >> /root/.bashrc
echo "PS1='\[\e[1;31;34m\][\u@\h \W]\\$\[\e[0m\]'" >>/etc/profile.d/env.sh
touch /etc/yum.repos.d/base.repo
echo "[base]">>/etc/yum.repos.d/base.repo
echo "name=base">>/etc/yum.repos.d/base.repo
echo "baseurl=https://mirrors.aliyun.com/centos/$releasever/os/x86_64/">>/etc/yum.repos.d/base.repo
echo "gpgcheck=0">>/etc/yum.repos.d/base.repo
yum install tree ftp lftp telnet -y
9、在CentOS7上編譯安裝apache2.4源碼包,并啟動此服務(wù)
關(guān)閉防火墻、關(guān)閉selinux
安裝依賴包:
(1)、安裝apr
tar -zxvf apr-1.4.5.tar.gz
cd apr-1.4.5
./configure --prefix=/usr/local/apr
make && make install
(2)、安裝apr-util
tar -zxvf apr-util-1.3.12.tar.gz
cd apr-util-1.3.12
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
(3)、安裝pcre
unzip pcre-8.10.zip
cd pcre-8.10/
./configure --prefix=/usr/local/pcre
make && make install
(4)、安裝Apache
tar -xvf httpd-2.4.38.tar.gz
cd httpd-2.4.38
./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --with-apr=/usr/local/apr --with-apr-
util=/usr/local/apr-util --with-pcre=/usr/local/pcre --with-included-apr
make && make install