day13-day17課堂筆記

day13

一、第二列結尾的. 是標識selinux的符號

1、selinux是什么?

安全規(guī)則,讓Linux系統(tǒng)更安全的一套規(guī)則。

這個規(guī)則太嚴格了,一般的情況下都會關閉selinux。

自己開啟防火墻啊,用其他手段來實現(xiàn)同樣的安全目的。

2、怎么關掉Selinux?

查看方法:

[root@oldboyedu ~]# getenforce

Enforcing

臨時關掉:

[root@oldboyedu ~]# setenforce

usage:? setenforce [ Enforcing | Permissive | 1 | 0 ]

[root@oldboyedu ~]# setenforce 0

[root@oldboyedu ~]# getenforce

Permissive

永久關閉:

vim /etc/selinux/config

[root@oldboyedu ~]# grep dis /etc/selinux/config

#? ? disabled - No SELinux policy is loaded.

SELINUX=disabled

二、Linux里防火墻C6 iptables? C7 firewalld

作用:防護計算機,防止被入侵。

1、臨時開啟和關閉

systemctl start firewalld.service

systemctl status firewalld.service

2、讓firewalld開機自啟動

systemctl enable firewalld.service

三、什么是硬鏈接?

具有相同inode節(jié)點號的文件互為硬鏈接。

一個文件的兩個入口。

創(chuàng)建硬鏈接:

ln 源文件 硬鏈接文件

作用:備份,防止誤刪。

目錄硬鏈接

不支持人工創(chuàng)建目錄硬鏈接。

四、軟鏈接:

本質是快捷方式,指向源文件實體,本身和源文件是不同的文件。

1、工作中為什么會使用軟鏈接。

第一個用途:

安裝軟件:/application/nginx-1.10

過半年:/application/nginx-1.20

導致一個問題,工作中,開發(fā)等引用/application/nginx-1.10路徑。

安裝軟件:/application/nginx-1.10===>/application/nginx(讓開發(fā)用)

過半年:? /application/nginx-1.20===>/application/nginx(讓開發(fā)用)

第二個用途:

/etc/對應的分區(qū)要滿了,沒法放很多文件,但是程序還想通過/etc/目錄訪問文件。

此時,我們可以把文件放入/opt/oldboy下,然后做一個到/etc/oldboy的軟鏈接。

四、Linux文件刪除原理:

1、靜態(tài)文件:沒有進程或程序正在訪問的文件。

所有的硬鏈接數(shù)為0(i_link),即所有硬鏈接都被干掉了,包括自身。

硬鏈接的數(shù)量的代表變量符號i_link

rm -f oldboy.txt oldboy_hard_link

執(zhí)行完 其實文件也沒刪,關機停止運行。

a.系統(tǒng)定時清理沒有文件名的inode。

b.磁盤檢查會清理。

c.增加新文件時優(yōu)先占用沒有文件名的inode。

恢復的工具:debugfs,ext3grep等等。

2、動態(tài)文件:有程序或進程訪問的文件

刪除原理:

a.所有硬鏈接刪除。i_link為0.

b..i_count是進程調用文件的數(shù)量(引用計數(shù))。所有進程調用都要停止取消。i_count為0

Web服務器磁盤滿故障深入解析,地址為

http://oldboy.blog.51cto.com/2561410/612351

五、通配符知識:

1、基本含義

通配符簡單說就是鍵盤上的一些特殊字符,可以實現(xiàn)某些特殊的功能,

例如,可以用*代表所有,來模糊搜索系統(tǒng)中的文件。

2、范圍:通配符試用范圍是命令行中【普通命令】或腳本編程中。

3、模糊匹配:*匹配所有

? ? ? ? ? ? ? ? ? ? ?匹配單個字符

? ? ? ? ? ? ? ? ? ? [abcd]匹配里面任意一個字符

? ? ? ? ? ? ? ? ? ? [a-d]匹配連續(xù)的任意單個字符

? ? ? ? ? ? ? ? ? ? [!a-d]或[^1-9]取反

? 路徑位置:-? 返回上一次所在目錄

? ? ? ? ? ? ? ? ? ? . 當前目錄

? ? ? ? ? ? ? ? ? .. 上一級目錄

? ? ? ? ? ? ? ? ? ? ~家目錄

? 引號相關:''單引號引用字符 所見即所得

? ? ? ? ? ? ? ? ? “”雙引號 引用字符串 解析變量、命令

? ? ? ? ? ? ? ? ? ``反引號引用命令? 解析命令等價$()

其他字符:;分號? 命令分隔符

? ? ? ? ? ? ? ? ? #管理員提示符? ? 注釋符

? ? ? ? ? ? ? ? ? $普通用戶提示符,也是調用變量使用

? ? ? ? ? ? ? ? ? \轉義字符? 讓字符還原本義

? ? ? ? ? ? ? ? ? {}生成序列,引用變量讓變量變成整體

? ? ? ? ? ? ? ? ? !取反? ? 在vim中表示強制,調用最近符合字符開頭的命令

? ? ? ? ? ? ? ? ? ? |? 管道? 前面的數(shù)據(jù)流交給后面處理

? ? ? ? ? ? ? ? ? ? &&并且? -and

? ? ? ? ? ? ? ? ? ||或者? or


day14

什么是正則表達式?

作用和特殊字符一樣。

正則表達式是為處理大量的字符串及文本而定義的一套規(guī)則和方法。

開發(fā)者

假設"@"代表“I am”,"!"代表“oldboy”,

則執(zhí)行echo "@!"的結果就是輸出“I am oldboy”。

1、基本正則(BRE)

? ^尖角號oldboy 以…開頭,^oldboy,以oldboy開頭

$美元符 以…結尾 oldboy¥ 以oldboy結尾

^$ 空格

. 匹配任意一個且只有一個字符,和通配符?一樣

\讓有意義的字符脫掉馬甲 還原本義

*匹配前面字符0次或者多次

.*表示所有內容

^.*組合符,以任意字符0個多個開頭的內容

。*$組合符,以任意字符0個多個結尾的內容

[abc] 匹配和集合內的任意一個字符a或b或c,[abc]也可寫成[a-c]

[^abc]不 匹配和集合內的任意一個字符a或b或c,[abc]也可寫成[a-c]

2、擴展正則(ERE)egrep

? ? +匹配前一個字符一次或多次以上

? ? [:/]+匹配括號內的:或/字符1次或者1次以上

? ? ?匹配前一個字符0次或1次

? ? | 或者同時過濾多個字符串

? ? ()分組過濾被括起來的表示一個整體

? ? \n引用前面()小括號里的內容

? ? a{n,m} 匹配前一個字符最少n次,最多m次

? ? a{n,} 匹配前一個字符最少n次

? ? a{n} 匹配前一個字符正好n次

? ? a{,m} 匹配前一個字符最多m次

3、特殊中括號

[:digit:]匹配任意一個數(shù)字字符,相當與[0-9]

[:lower:]匹配小寫字母,相當于[a-z]

[:upper:]匹配大寫字母,相當于[A-Z]

4、元字符

\b匹配單詞的邊界 過濾單詞類似grep -w

\d 匹配單個數(shù)字字符? 需用grep -P

5、sed 可以實現(xiàn)增刪改查

sed? 選項? sed內置命令字符? 文件

-n 取消命令的默認輸出

-i 直接修改文件內容 而不是輸出到終端

-e 量號 可以多次編輯

sed內置命令字符

s替換

g全局

p打印

d刪除


day15

一、cut 按列切割

cut? -d指定分隔符“ ”-f指定那一列? 文件

cut? -c按字符去內容? -c1-6 查找1到6列的內容

二、Linux三劍客

? awk? sed? grep

1、sed

Sed是操作、過濾和轉換文本內容的強大工具。

常用功能有對文件實現(xiàn)快速增刪改查(增加、刪除、修改、查詢),

其中查詢的功能中最常用的2大功能是過濾(過濾指定字符串)和取行(取出指定行)。

sed [選項]? [sed內置命令字符]? [文件]

選項:

-n 取消默認sed的輸出,常與sed內置命令的p連用※

-i 直接修改文件內容,而不是輸出到終端。

如果不使用-i選項sed只是修改在內存中的數(shù)據(jù),并不會影響磁盤上的文件※

sed的內置命令字符說明

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字符開頭


day16


Linux基礎權限是9個字符。

1、? ? -rw-r--r--? 1

? ? 分3組:

? ? 前三個字符是表示用戶(屬主)權限位? user(用戶) u

? ? 中三個字符是表示用戶組權限位 group(用戶組)? ? g

? ? 后三個字符是其它用戶權限位 others(其他用戶)? ? o

? ? 同一組的三個字符權限也是有位置的:

? ? r-- 第一個字符的位置讀的權限位

? ? 第二個字符的位置寫的權限位

? ? 第三個字符的位置是執(zhí)行的權限位。

? r代表4? ? w代表2? ? x代表1? ? -代表0

2、文件權限詳細說明

? 2.1? ? 可讀r :表示具有讀取、瀏覽文件內容

? ? ? ? ? ? 可寫w:表示具有新增、修改、刪除文件內容的權限

? ? ? ? ? ? 可執(zhí)行x:表示具有執(zhí)行文件的權限。

? 2.2 a、如果沒有可讀r配合,那么使用vi編輯文件時會提示無法編輯

? ? ? ? 可以使用echo等命令進行重定向

? ? ? ? 刪除文件或創(chuàng)建文件的授權是受父目錄(上一級目錄)的權限控制的(因為沒有存放inode),而是在上級目錄的block里存放著的,若修改上級目錄的block,當然會受上級目錄的inode的權限控制)和文件本身的權限無關,因此,文件本身的可寫w權限和文件是否能被刪除和改名無關。

? ? b、首先文件的本身要能夠執(zhí)行(命令或腳本)

? ? 如果是普通用戶,同時還需要具備可讀r的權限才能執(zhí)行文件

? ? ? 而root用戶只要有可執(zhí)行x的權限就能執(zhí)行文件

3、目錄權限詳細說明

? a、可讀r:表示具有瀏覽目錄下面的子目錄內容的權限

b、可寫w表示具有增加、刪除或修改目錄內文件的權限。但是,如果沒有可執(zhí)行x的配合,即使有w權限,也無法刪除或創(chuàng)建文件

c、可執(zhí)行x:表示具有進入如目錄的權限。例如,可以執(zhí)行cd dir 命令切換到目錄下,但是無法列出目錄下的文件及子目錄。

3、Linux權限有兩種表現(xiàn)形式:

1、數(shù)字表示法 稱為8進制權限

r 4

w 2

x 1

- 0

實際的權限表示就是將每3位相加即可。

rwxr-xr-x? 755

rwx 7

r-x 5

r-x 5

2、字符表示法

rw-rw-r-x? 代表的數(shù)字權限為665

--xr-x-wx? 代表的數(shù)字權限為153

-wx--x--x? 代表的數(shù)字權限為311

而以下數(shù)字權限表示的字符權限如下:

755? 代表的字符權限為rwxr-xr-x

644? 代表的字符權限為rw-r--r--

134? 代表的字符權限為--x-wxr--

修改文件屬性的用戶和組

chown 用戶.用戶組 文件? 這里的點可以用:替換。

chown 用戶 文件

chown .用戶組 文件? ====chgrp 用戶組 文件

4、安全權限臨界點:

文件不想被修改被執(zhí)行:644

目錄不想被修改(刪除移動創(chuàng)建)被執(zhí)行(進入):755

5、企業(yè)真實案例:網(wǎng)站文件被惡意修改了。。。。打開網(wǎng)站后有彈窗廣告(不是你網(wǎng)站的)

用戶打開網(wǎng)站,報警。

原因:權限設置不到位。chmod -R 777 目錄 開發(fā)人員習慣

解決方案:

1、備份

tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/

2、找到被修改的文件

[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'

3、批量刪除

[root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'

4、找到文件被篡改來源,并優(yōu)化調整。

5、寫總結 故障報告。

六、控制默認權限的東西? umask? 臨時修改

1、創(chuàng)建文件默認最大的權限為666 (-rw-rw-rw-),其默認創(chuàng)建的文件沒有可執(zhí)行權限x位。

666

022 -

2、基于文件:默認權限規(guī)則 了解

從666計算

umask都為偶數(shù) 默認權限用減法

umask有奇數(shù) 默認權限用減法 然后奇數(shù)位加1

基于目錄:默認權限規(guī)則

從777計算

默認權限用減法


day17

一、sgid的作用就是讓普通用戶可以在執(zhí)行某個設置了sgid位的命令時,

擁有和命令對應用戶組(一般為root用戶組)一樣的身份和權限(默認)。

? ? locate搜索內容,默認從updatedb對應的數(shù)據(jù)庫中查找

updatedb 更新locate查找內容對應的數(shù)據(jù)庫。

? sgid基于目錄的作用:

讓不同的人創(chuàng)建文件屬于相同的用戶組,從而可以互相共享文件的權限

二、Linux系統(tǒng)定時任務:

1、什么是定時任務?

周期性的執(zhí)行任務計劃的軟件,Linux定時任務的常用軟件crond。

2、使用定時任務軟件,可以每天,每小時按你需求重復的執(zhí)行一項工作。

例如:備份 都是0點以后,2點爬起來備份,4點以后睡覺。

需要寫一個程序實現(xiàn)自動備份,然后讓定時任務軟件幫你執(zhí)行。

鬧鐘。。。??梢宰放笥?。。。

3、怎么用

(1)系統(tǒng)定時任務計劃

1.不用管理員干預,系統(tǒng)自動執(zhí)行。

2.也可以利用系統(tǒng)任務為管理員服務。

(2)用戶定時任務計劃

在Linux系統(tǒng)中,

cron是定時任務的軟件名,

crond是服務進程名,真正實現(xiàn)定時任務服務。

crontab命令是用來設置定時任務規(guī)則的配置命令。

要想配置定時任務,首先啟動crond服務。

systemctl start crond.service

systemctl stop crond.service

systemctl status crond.service

開啟自啟動:

systemctl disable crond.service

systemctl enable crond.service

三、crontab命令是用來設置定時任務規(guī)則的配置命令。

內容存放哪里了。定時任務內容存放的位置/var/spool/cron/

以當前用戶名作為文件名

-l l列表 查看已經設置的定時任務*

-e edit 編輯定時任務*

-u user 查看特定用戶下定時任務

root:

crontab -l == cat /var/spool/cron/root

crontab -e == vim /var/spool/cron/root

編寫定時任務的語法:

# 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í)行的任務命令或程序

特殊符號:

* 表示的 每或每一 的意思

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í)行一次任務可以寫成

*/10 * * * * cmd

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • DAY13 df命令 默認查看block信息的 ls -lhi命令 文件第二列后面的 “.” 表示selinux是...
    chloepang閱讀 683評論 0 0
  • 第三列:硬鏈接數(shù)1、 什么是硬鏈接?具有相同inode節(jié)點號的文件互為硬鏈接。2、 硬鏈接的原理?3、 測試...
    慕男閱讀 845評論 0 0
  • 基礎命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,212評論 0 0
  • 說明:本篇文章來自老男孩,這里只做備份記錄 功能說明 Sed是Stream Editor(流編輯器)縮寫,是操作、...
    think_lonely閱讀 795評論 0 2
  • Linux基礎權限是9個字符。 [root@oldboyedu ~]# ls -lhi total 36K 336...
    尋找著光輝閱讀 302評論 0 0

友情鏈接更多精彩內容