老男孩Linux云計算58期-day13-
第二列結(jié)尾的. 是標(biāo)識selinux的符號
1、selinux是什么篮赢?
安全規(guī)則奏甫,讓Linux系統(tǒng)更安全的一套規(guī)則。
這個規(guī)則太嚴(yán)格了症副,一般的情況下都會關(guān)閉selinux店雅。
自己開啟防火墻啊,用其他手段來實現(xiàn)同樣的安全目的贞铣。
2闹啦、怎么關(guān)掉Selinux?
查看方法: getenforce
Enforcing
臨時關(guān)掉: setenforce
usage:? setenforce [ Enforcing | Permissive | 1 | 0 ]
setenforce 0
getenforce
Permissive
永久關(guān)閉:
vim /etc/selinux/config
?grep dis /etc/selinux/config
#? ? disabled - No SELinux policy is loaded.
SELINUX=disabled
Linux里防火墻C6 iptables? C7 firewalld
作用:防護(hù)計算機辕坝,防止被入侵窍奋。
systemctl status firewalld.service
開啟firewalld(C6 service iptables start 或者/etc/init.d/iptables start)
# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
? Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
? Active: active (running) since Sun 2020-10-04 20:48:49 CST; 1s ago
? ? Docs: man:firewalld(1)
Main PID: 7003 (firewalld)
? CGroup: /system.slice/firewalld.service
? ? ? ? ? └─7003 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Oct 04 20:48:48 oldboyedu systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 04 20:48:49 oldboyedu systemd[1]: Started firewalld - dynamic firewall daemon.
讓firewalld開機自啟動:systemctl enable firewalld.service
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
C6用法:chkconfig iptables off
C7就是一個命令systemctl
自學(xué)能力:總結(jié)兩個命令systemctl和chkconfig。
? ? ? ? ? ? ? ? ? 硬鏈接數(shù)
1酱畅、什么是硬鏈接琳袄?
具有相同inode節(jié)點號的文件互為硬鏈接。
一個文件的兩個入口纺酸。
2窖逗、硬鏈接原理。
3吁峻、測試
創(chuàng)建硬鏈接:
ln 源文件 硬鏈接文件
a.文件硬鏈接
軟鏈接:
本質(zhì)是快捷方式滑负,指向源文件實體,本身和源文件是不同的文件用含。
工作中為什么會使用軟鏈接矮慕。
第一個用途:
安裝軟件:/application/nginx-1.10
過半年:/application/nginx-1.20
導(dǎo)致一個問題,工作中啄骇,開發(fā)等引用/application/nginx-1.10路徑痴鳄。
安裝軟件:/application/nginx-1.10===>/application/nginx(讓開發(fā)用)
過半年:? /application/nginx-1.20===>/application/nginx(讓開發(fā)用)
第二個用途:
/etc/對應(yīng)的分區(qū)要滿了,沒法放很多文件缸夹,但是程序還想通過/etc/目錄訪問文件痪寻。
此時,我們可以把文件放入/opt/oldboy下虽惭,然后做一個到/etc/oldboy的軟鏈接橡类。
# mkdir /opt/oldboy
# touch /opt/oldboy/{1..3}.txt
# ln -s /opt/oldboy/ /etc/oldboy
# ls /etc/oldboy
1.txt? 2.txt? 3.txt
# ll /opt/oldboy
total 0
-rw-r--r--. 1 root root 0 Oct? 4 22:02 1.txt
-rw-r--r--. 1 root root 0 Oct? 4 22:02 2.txt
-rw-r--r--. 1 root root 0 Oct? 4 22:02 3.txt
必會面試題:軟鏈接和硬鏈接的區(qū)別?
Linux文件刪除原理:
1芽唇、靜態(tài)文件:沒有進(jìn)程或程序正在訪問的文件顾画。
所有的硬鏈接數(shù)為0(i_link)取劫,即所有硬鏈接都被干掉了,包括自身研侣。
硬鏈接的數(shù)量的代表變量符號i_link
rm -f oldboy.txt oldboy_hard_link
執(zhí)行完 其實文件也沒刪谱邪,關(guān)機停止運行。
a.系統(tǒng)定時清理沒有文件名的inode庶诡。
b.磁盤檢查會清理惦银。
c.增加新文件時優(yōu)先占用沒有文件名的inode。
恢復(fù)的工具:debugfs,ext3grep等等末誓。
亡羊補牢其實不可取的扯俱,違反運維的三大核心原則。
多備份基显,操作前備份蘸吓,異服務(wù)器和異地備份善炫。
流浪地球撩幽,人類備份。
光一秒30w公里
月地距離? ? 38萬公里
日地距離? ? 1.5億公里 8分鐘
太陽系大小?
第二近的恒星 4光年
地球 46億年了箩艺。42億前窜醉。
太陽處于中年 壽命70億年。大到太陽吞噬地球艺谆。
銀河系大小 10萬光年
宇宙大小? 可探測到的直徑1000億光年
2榨惰、動態(tài)文件:有程序或進(jìn)程訪問的文件
刪除原理:
a.所有硬鏈接刪除。i_link為0.
b..i_count是進(jìn)程調(diào)用文件的數(shù)量(引用計數(shù))静汤。所有進(jìn)程調(diào)用都要停止取消琅催。i_count為0
3、實踐文件刪除原理
環(huán)境準(zhǔn)備虫给,命令集合如下:
mkdir -p /app/logs? ? ? ? ? ? ? ? ? ? ? ? ? #<==創(chuàng)建用于掛載的目錄藤抡。
dd if=/dev/zero of=/dev/sdc bs=8K? count=10? #<==創(chuàng)建指定大小的文件。
mkfs.ext4 /dev/sdc? ? ? ? ? ? ? ? ? ? ? ? ? #<==格式化抹估。
mount -o loop /dev/sdc /app/logs? ? ? ? ? ? #<==掛載缠黍。
df -h? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #<==檢查掛載結(jié)果。
老男孩Linux云計算58期-day14-
3W1H:
1药蜻、什么是正則表達(dá)式瓷式?
作用和特殊字符一樣。
正則表達(dá)式是為處理大量的字符串及文本而定義的一套規(guī)則和方法语泽。
開發(fā)者
假設(shè)"@"代表“I am”贸典,"!"代表“oldboy”,
則執(zhí)行echo "@!"的結(jié)果就是輸出“I am oldboy”踱卵。
發(fā)明語言:
上了火星廊驼,發(fā)明火星語。
! 我喜歡你
@? 滾
2蔬充、提高效率蝶俱,快速獲取到想要的內(nèi)容。
3饥漫、適用于三劍客命令 grep(egrep),sed,awk
? 以行為單位處理榨呆。
4、實踐來講解
易混淆事項
1庸队、和通配符區(qū)別积蜻。
2、開發(fā)人員正則彻消,一般是Perl兼容正則表達(dá)式竿拆。
3、Linux系統(tǒng)三劍客正則表達(dá)式******宾尚。
Linux三劍客
awk? sed? grep
sed
Sed是操作丙笋、過濾和轉(zhuǎn)換文本內(nèi)容的強大工具。
常用功能有對文件實現(xiàn)快速增刪改查(增加煌贴、刪除御板、修改、查詢)牛郑,
其中查詢的功能中最常用的2大功能是過濾(過濾指定字符串)和取行(取出指定行)怠肋。
sed [選項]? [sed內(nèi)置命令字符]? [文件]
選項:
-n 取消默認(rèn)sed的輸出,常與sed內(nèi)置命令的p連用※
-i 直接修改文件內(nèi)容淹朋,而不是輸出到終端笙各。
如果不使用-i選項sed只是修改在內(nèi)存中的數(shù)據(jù),并不會影響磁盤上的文件※
sed的內(nèi)置命令字符說明
s 替換
g 全局global
p 打印print
d 刪除delete
老男孩Linux云計算58期-day15-
一础芍、cut 按列切割
cut? -d指定分隔符“ ”-f指定那一列? 文件
cut? -c按字符去內(nèi)容?? -c1-6 查找1到6列的內(nèi)容
二杈抢、Linux三劍客
?? awk? sed? grep
1、sed
Sed是操作者甲、過濾和轉(zhuǎn)換文本內(nèi)容的強大工具春感。
常用功能有對文件實現(xiàn)快速增刪改查(增加、刪除虏缸、修改鲫懒、查詢),
其中查詢的功能中最常用的2大功能是過濾(過濾指定字符串)和取行(取出指定行)刽辙。
sed [選項]? [sed內(nèi)置命令字符]? [文件]
選項:
-n 取消默認(rèn)sed的輸出窥岩,常與sed內(nèi)置命令的p連用※
-i 直接修改文件內(nèi)容,而不是輸出到終端宰缤。
如果不使用-i選項sed只是修改在內(nèi)存中的數(shù)據(jù)颂翼,并不會影響磁盤上的文件※
sed的內(nèi)置命令字符說明
s 替換
g 全局global
p 打印print
d 刪除delete
2晃洒、awk是一門命令行操作也可以作為編程語言,處理字符串
? ? 特長是取列
? ? 語法awk 參數(shù)? 條件? ? 文件
參數(shù):-F指定分隔符
? ? ? ?? $0整行 $1第1列? ? ?? $NF最后一列 $(NF-1)倒數(shù)第二列? NR行號
? ? ? ?? [^r]非r? ^[^r]以非r字符開頭
老男孩Linux云計算58期-day16-
Linux基礎(chǔ)權(quán)限是9個字符
分3組:
前三個字符是表示用戶(屬主)權(quán)限位? user(用戶) u
中三個字符是表示用戶組權(quán)限位 group(用戶組)? ? g
后三個字符是其它用戶權(quán)限位 others(其他用戶)? ? o
同一組的三個字符權(quán)限也是有位置的:
r-- 第一個字符的位置讀的權(quán)限位
? ? 第二個字符的位置寫的權(quán)限位
第三個字符的位置是執(zhí)行的權(quán)限位朦乏。
r? 4
w? 2
x? 1
-? 0
Linux權(quán)限有兩種表現(xiàn)形式:
1球及、數(shù)字表示法 稱為8進(jìn)制權(quán)限
r 4
w 2
x 1
- 0
實際的權(quán)限表示就是將每3位相加即可。
rwxr-xr-x? 755
rwx 7
r-x 5
r-x 5
2呻疹、字符表示法
rw-rw-r-x? 代表的數(shù)字權(quán)限為665
--xr-x-wx? 代表的數(shù)字權(quán)限為153
-wx--x--x? 代表的數(shù)字權(quán)限為311
而以下數(shù)字權(quán)限表示的字符權(quán)限如下:
755? 代表的字符權(quán)限為rwxr-xr-x
644? 代表的字符權(quán)限為rw-r--r--
134? 代表的字符權(quán)限為--x-wxr--
修改文件屬性的用戶和組
chown 用戶.用戶組 文件? 這里的點可以用:替換吃引。
chown 用戶 文件
chown .用戶組 文件? ====chgrp 用戶組 文件
老男孩Linux云計算58期-day17
一、sgid的作用就是讓普通用戶可以在執(zhí)行某個設(shè)置了sgid位的命令時刽锤,
擁有和命令對應(yīng)用戶組(一般為root用戶組)一樣的身份和權(quán)限(默認(rèn))镊尺。
? ? locate搜索內(nèi)容,默認(rèn)從updatedb對應(yīng)的數(shù)據(jù)庫中查找
updatedb 更新locate查找內(nèi)容對應(yīng)的數(shù)據(jù)庫并思。
?? sgid基于目錄的作用:
讓不同的人創(chuàng)建文件屬于相同的用戶組庐氮,從而可以互相共享文件的權(quán)限
二、Linux系統(tǒng)定時任務(wù):
1宋彼、什么是定時任務(wù)弄砍?
周期性的執(zhí)行任務(wù)計劃的軟件,Linux定時任務(wù)的常用軟件crond宙暇。
2输枯、使用定時任務(wù)軟件,可以每天占贫,每小時按你需求重復(fù)的執(zhí)行一項工作。
例如:備份 都是0點以后先口,2點爬起來備份型奥,4點以后睡覺。
需要寫一個程序?qū)崿F(xiàn)自動備份碉京,然后讓定時任務(wù)軟件幫你執(zhí)行厢汹。
鬧鐘。谐宙。烫葬。》豺撸可以追女朋友搭综。。划栓。
3兑巾、怎么用
(1)系統(tǒng)定時任務(wù)計劃
1.不用管理員干預(yù),系統(tǒng)自動執(zhí)行忠荞。
2.也可以利用系統(tǒng)任務(wù)為管理員服務(wù)蒋歌。
(2)用戶定時任務(wù)計劃
在Linux系統(tǒng)中帅掘,
cron是定時任務(wù)的軟件名,
crond是服務(wù)進(jìn)程名堂油,真正實現(xiàn)定時任務(wù)服務(wù)修档。
crontab命令是用來設(shè)置定時任務(wù)規(guī)則的配置命令。
要想配置定時任務(wù)府框,首先啟動crond服務(wù)萍悴。
systemctl start crond.service
systemctl stop crond.service
systemctl status crond.service
開啟自啟動:
systemctl disable crond.service
systemctl enable crond.service
三、crontab命令是用來設(shè)置定時任務(wù)規(guī)則的配置命令寓免。
內(nèi)容存放哪里了癣诱。定時任務(wù)內(nèi)容存放的位置/var/spool/cron/
以當(dāng)前用戶名作為文件名
-l l列表 查看已經(jīng)設(shè)置的定時任務(wù)*
-e edit 編輯定時任務(wù)*
-u user 查看特定用戶下定時任務(wù)
root:
crontab -l == cat /var/spool/cron/root
crontab -e == vim /var/spool/cron/root
編寫定時任務(wù)的語法:
# Example of job definition:
# .---------------- minute (0 - 59)
# |? .------------- hour (0 - 23)
# |? |? .---------- day of month (1 - 31)
# |? |? |? .------- month (1 - 12) OR jan,feb,mar,apr ...
# |? |? |? |? .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |? |? |? |? |
# *? *? *? *? *? (command to be executed)
共六列:
第一列:分 minute (0 - 59)
第二列:時 hour?? (0 - 23)
第三列:日 day of month (1 - 31)
第四列:月 month (1 - 12) OR jan,feb,mar,apr ...
第五列:周 day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
第六列:要執(zhí)行的任務(wù)命令或程序
特殊符號:
* 表示的 每或每一 的意思
00 23 * * * cmd
- 連續(xù)區(qū)間 1-10
00 8-23 * * * cmd
, 列舉 1,2,3,4,8
00 1,2,3,4,8 * * * cmd
/n n是數(shù)字。
n代表自然數(shù)字袜香,即“每隔n單位時間”撕予,例如:每10分鐘執(zhí)行一次任務(wù)可以寫成
*/10 * * * * cmd