中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

用html制作網(wǎng)頁(yè)青島seo關(guān)鍵詞

用html制作網(wǎng)頁(yè),青島seo關(guān)鍵詞,企業(yè)網(wǎng)站建設(shè)服務(wù)熱線,上海智能網(wǎng)站建設(shè)設(shè)計(jì)目錄 ?My學(xué)習(xí)Linux命令小記錄(12)? 46.arp指令 47.tcpdump指令 48.chmod指令 49.chown指令 50.bash調(diào)用腳本指令 shell介紹 shell腳本的組成部分 腳本執(zhí)行方式 檢查腳本語(yǔ)法 bash之變量 變量的種類(lèi):根據(jù)生效的范圍不同來(lái)區(qū)分 …

目錄

?My學(xué)習(xí)Linux命令小記錄(12)?

46.arp指令

47.tcpdump指令

48.chmod指令

49.chown指令

50.bash調(diào)用腳本指令

shell介紹

shell腳本的組成部分

腳本執(zhí)行方式

檢查腳本語(yǔ)法

bash之變量

變量的種類(lèi):根據(jù)生效的范圍不同來(lái)區(qū)分

bash的配置文件

profile類(lèi):為交互式登錄的shell提供配置

bashrc類(lèi):為非交互式登錄的shell提供配置

bash的IO重定向

bash算數(shù)運(yùn)算:bash對(duì)數(shù)字進(jìn)行隱式的類(lèi)型轉(zhuǎn)換

bash條件測(cè)試

bash的測(cè)試類(lèi)型:

文件測(cè)試:測(cè)試文件存在與否,屬性信息等

bash的邏輯運(yùn)算:true(0)、false(1-255)

編寫(xiě)腳本backup.sh,可實(shí)現(xiàn)每日將/etc/目錄備份到 /root/etcYYYY-mm-dd中

編寫(xiě)腳本nologin.sh和login.sh,實(shí)現(xiàn)禁止和允許普通用戶登錄系統(tǒng)

編寫(xiě)腳本disk.sh,顯示當(dāng)前硬盤(pán)分區(qū)中空間利用率最大的值??????????????????????????????????????????????????????????????????


?My學(xué)習(xí)Linux命令小記錄(12)?

46.arp指令

功能說(shuō)明:arp 命令用于顯示和修改 IP 到 MAC 轉(zhuǎn)換表。

(ps.arp 命令是 Address Resolution Protocol,地址解析協(xié)議,是通過(guò)解析網(wǎng)絡(luò)層地址來(lái)找尋數(shù)據(jù)鏈路層地址的一個(gè)網(wǎng)絡(luò)協(xié)議包中極其重要的網(wǎng)絡(luò)傳輸協(xié)議。而該命令可以顯示和修改 arp 協(xié)議解析表中的緩沖數(shù)據(jù)。它將 IP 地址映射到物理 MAC 地址。) ??

基本語(yǔ)法:arp(選項(xiàng))(參數(shù))

選項(xiàng):

-a 主機(jī) :顯示 arp 緩沖區(qū)的所有條目

-H 地址類(lèi)型 :指定 arp 指令使用的地址類(lèi)型;

-d 主機(jī) :從 arp 緩沖區(qū)中刪除指定主機(jī)的 arp 條目

-D:使用指定接口的硬件地址;

-e:以 Linux 的顯示風(fēng)格顯示 arp 緩沖區(qū)中的條目;

-i 接口 :指定要操作 arp 緩沖區(qū)的網(wǎng)絡(luò)接口;

-s 主機(jī) MAC 地址 :設(shè)置指定的主機(jī)的 IP 地址與 MAC 地址的靜態(tài)映射

-n:以數(shù)字方式顯示 arp 緩沖區(qū)中的條目;

-v:顯示詳細(xì)的?arp 緩沖區(qū)條目,包括緩沖區(qū)條目的統(tǒng)計(jì)信息;

-f 文件 :設(shè)置主機(jī)的 IP 地址與 MAC 地址的靜態(tài)映射。

實(shí)例:

# arp -a??#顯示系統(tǒng)的 ARP 表

# arp -v??#顯示arp 緩沖區(qū)內(nèi)容

#添加靜態(tài) arp 映射

arp?-s?IP?MAC-ADDRESS

arp -s?192.168.1.1?00:b1:b2:b3:b4:b5??

#刪除?arp 緩存條目

arp -d?192.168.1.1

47.tcpdump指令

功能說(shuō)明:一款sniffer工具,是Linux上的抓包工具,嗅探器。

(ps.tcpdump命令是一款抓包,嗅探器工具,它可以打印所有經(jīng)過(guò)網(wǎng)絡(luò)接口的數(shù)據(jù)包的頭信息,也可以使用-w選項(xiàng)將數(shù)據(jù)包保存到文件中,方便以后分析。)

基本語(yǔ)法:tcpdump(選項(xiàng))

選項(xiàng):

-a:嘗試將網(wǎng)絡(luò)和廣播地址轉(zhuǎn)換成名稱;

-c<數(shù)據(jù)包數(shù)目>:收到指定的數(shù)據(jù)包數(shù)目后,就停止進(jìn)行傾倒操作;

-d:把編譯過(guò)的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出;

-dd:把編譯過(guò)的數(shù)據(jù)包編碼轉(zhuǎn)換成C語(yǔ)言的格式,并傾倒到標(biāo)準(zhǔn)輸出;

-ddd:把編譯過(guò)的數(shù)據(jù)包編碼轉(zhuǎn)換成十進(jìn)制數(shù)字的格式,并傾倒到標(biāo)準(zhǔn)輸出;

-e:在每列傾倒資料上顯示連接層級(jí)的文件頭;

-f:用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址;

-F<表達(dá)文件>:指定內(nèi)含表達(dá)方式的文件;

-i<網(wǎng)絡(luò)界面>:使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包;

-l:使用標(biāo)準(zhǔn)輸出列的緩沖區(qū);

-n不把主機(jī)的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字

-N:不列出域名;

-O:不將數(shù)據(jù)包編碼最佳化;

-p:不讓網(wǎng)絡(luò)界面進(jìn)入混雜模式;

-q :快速輸出,僅列出少數(shù)的傳輸協(xié)議信息;

-r<數(shù)據(jù)包文件>:從指定的文件讀取數(shù)據(jù)包數(shù)據(jù);

-s<數(shù)據(jù)包大小>:設(shè)置每個(gè)數(shù)據(jù)包的大小;

-S:用絕對(duì)而非相對(duì)數(shù)值列出TCP關(guān)聯(lián)數(shù);

-t:在每列傾倒資料上不顯示時(shí)間戳記;

-tt: 在每列傾倒資料上顯示未經(jīng)格式化的時(shí)間戳記;

-T<數(shù)據(jù)包類(lèi)型>:強(qiáng)制將表達(dá)方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類(lèi)型;

-v詳細(xì)顯示指令執(zhí)行過(guò)程

-vv更詳細(xì)顯示指令執(zhí)行過(guò)程;

-x:用十六進(jìn)制字碼列出數(shù)據(jù)包資料;

-w<數(shù)據(jù)包文件>:把數(shù)據(jù)包數(shù)據(jù)寫(xiě)入指定的文件。

實(shí)例:

# tcpdump ??#直接啟動(dòng)tcpdump將監(jiān)視第一個(gè)網(wǎng)絡(luò)接口上所有流過(guò)的數(shù)據(jù)包

#?tcpdump?-i eth0 ??#捕獲指定網(wǎng)絡(luò)接口的所有數(shù)據(jù)包

# tcpdump udp port?123???#對(duì)本機(jī)的udp 123 端口進(jìn)行監(jiān)視 123 為ntp的服務(wù)端口

# tcpdump -i any?port 80 -A???#抓取80端口的HTTP報(bào)文,以文本形式展示

#?tcpdump?ip?and not net localnet???#打印所有源地址或目標(biāo)地址本地主機(jī)的IP數(shù)據(jù)包(如果本地網(wǎng)絡(luò)通過(guò)網(wǎng)關(guān)連到了另一網(wǎng)絡(luò),則另一網(wǎng)絡(luò)并不能算作本地網(wǎng)絡(luò)。)

# tcpdump?host 192.168.1.1 ??#捕獲指定主機(jī)的數(shù)據(jù)包

# tcpdump?src port?80?or dst port?80 ??#捕獲源或目標(biāo)端口為80的數(shù)據(jù)包

# tcpdump -X ??#顯示數(shù)據(jù)包的內(nèi)容(以16進(jìn)制和ASCII形式)

# tcpdump -i eth0?-w?capture.pcap???#將捕獲的數(shù)據(jù)包保存到文件中

# tcpdump -r?capture.pcap???#從保存的文件中讀取數(shù)據(jù)包進(jìn)行分析

# tcpdump -v ??#顯示捕獲的數(shù)據(jù)包的包頭信息

# tcpdump -vv???#顯示更詳細(xì)的包頭信息

# tcpdump?-i eth0 -n?'tcp port 80'???#捕獲并顯示特定協(xié)議的數(shù)據(jù)包(例如,只顯示HTTP流量)

48.chmod指令

功能說(shuō)明:用來(lái)變更文件或目錄的權(quán)限

(ps.chmod命令 用來(lái)變更文件或目錄的權(quán)限。在UNIX系統(tǒng)家族里,文件或目錄權(quán)限的控制分別以讀取、寫(xiě)入、執(zhí)行3種一般權(quán)限來(lái)區(qū)分,另有3種特殊權(quán)限可供運(yùn)用。用戶可以使用chmod指令去變更文件與目錄的權(quán)限,設(shè)置方式采用文字或數(shù)字代號(hào)皆可。符號(hào)連接的權(quán)限無(wú)法變更,如果用戶對(duì)符號(hào)連接修改權(quán)限,其改變會(huì)作用在被連接的原始文件。)

權(quán)限范圍的表示法如下:

u?User,即文件或目錄的擁有者;

g?Group,即文件或目錄的所屬群組;

o?Other,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬于這個(gè)范圍;

a?All,即全部的用戶,包含擁有者,所屬群組以及其他用戶;

r?讀取權(quán)限,數(shù)字代號(hào)為“4”;

w?寫(xiě)入權(quán)限,數(shù)字代號(hào)為“2”;

x?執(zhí)行或切換權(quán)限,數(shù)字代號(hào)為“1”;

-?不具任何權(quán)限,數(shù)字代號(hào)為“0”;

s?特殊功能說(shuō)明:變更文件或目錄的權(quán)限。

基本語(yǔ)法:?chmod(選項(xiàng))(參數(shù))

選項(xiàng):

u ?# 操作對(duì)象簡(jiǎn)稱,用戶user,文件或目錄的所有者。

g ?# 操作對(duì)象簡(jiǎn)稱,同組用戶group,文件或目錄所屬群組

o ?# 操作對(duì)象簡(jiǎn)稱,其它用戶others

a ?# 操作對(duì)象簡(jiǎn)稱,所有用戶all,系統(tǒng)默認(rèn)使用此項(xiàng)

+ ?# 權(quán)限操作符,添加某些權(quán)限

- ?# 權(quán)限操作符,取消某些權(quán)限

= ?# 權(quán)限操作符,設(shè)置文件的權(quán)限為給定的權(quán)限

r ?# 權(quán)限設(shè)定(英文),表示可讀權(quán)限

w ?# 權(quán)限設(shè)定(英文),表示可寫(xiě)權(quán)限

x ?# 權(quán)限設(shè)定(英文),表示可執(zhí)行權(quán)限

- ?# 權(quán)限設(shè)定(英文字符),表示沒(méi)有權(quán)限

X ?# 權(quán)限設(shè)定,如果目標(biāo)文件是可執(zhí)行文件或目錄,可給其設(shè)置可執(zhí)行權(quán)限

s ?# 權(quán)限設(shè)定,設(shè)置權(quán)限suid和sgid,使用權(quán)限組合“u+s”設(shè)定文件的用戶的ID位,“g+s”設(shè)置組ID位

t ?# 權(quán)限設(shè)定,只有目錄或文件的所有者才可以刪除目錄下的文件

-c或——changes ???# 效果類(lèi)似“-v”參數(shù),但僅回報(bào)更改的部分,如果文件權(quán)限已經(jīng)改變,顯示其操作信息;

-f或--quiet或——silent # 操作過(guò)程中不顯示任何錯(cuò)誤信息;

-R或——recursive ?# 遞歸處理,將指令目錄下的所有文件及子目錄一并處理;

-v或——verbose ???# 顯示命令運(yùn)行時(shí)的詳細(xì)執(zhí)行過(guò)程

--reference=<參考文件或目錄> # 把指定文件或目錄的所屬群組全部設(shè)成和參考文件或目錄的所屬群組相同;

<權(quán)限范圍>+<權(quán)限設(shè)置> # 開(kāi)啟權(quán)限范圍的文件或目錄的該選項(xiàng)權(quán)限設(shè)置;

<權(quán)限范圍>-<權(quán)限設(shè)置> # 關(guān)閉權(quán)限范圍的文件或目錄的該選項(xiàng)權(quán)限設(shè)置;

<權(quán)限范圍>=<權(quán)限設(shè)置> # 指定權(quán)限范圍的文件或目錄的該選項(xiàng)權(quán)限設(shè)置;

--help ???# 顯示幫助信息

--version # 顯示版本信息

知識(shí)擴(kuò)展和實(shí)例:

Linux用戶分為:擁有者、組群(Group)、其他(other),Linux系統(tǒng)中,預(yù)設(shè)的情況下,系統(tǒng)中所有的帳號(hào)與一般身份使用者,以及root的相關(guān)信息, 都是記錄在/etc/passwd文件中。每個(gè)人的密碼則是記錄在/etc/shadow文件下。 此外,所有的組群名稱記錄在/etc/group內(nèi)!

linux文件的用戶權(quán)限的分析圖

??-rw-r--r-- ??1 user ?staff ??651 Oct 12 12:53 .gitmodules

# ↑╰┬╯╰┬╯╰┬╯

# ┆ ┆ ?┆ ?╰┈ 0 其他人

# ┆ ┆ ?╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ g 屬組

# ┆ ╰┈┈┈┈ u 屬組

# ╰┈┈ 第一個(gè)字母 `d`?代表目錄,`-` 代表普通文件

例:rwx rw- r--

r=讀取屬性  //值=4

w=寫(xiě)入屬性  //值=2

x=執(zhí)行屬性  //值=1

#?chmod u+x,g+w abc.txt # 為文件abc.txt設(shè)置自己可以執(zhí)行,組員可以寫(xiě)入的權(quán)限

# chmod u=rwx,g=rw,o=r?abc.txt??#給文件abc.txt設(shè)置權(quán)限,使用者權(quán)限為rwx即可讀可寫(xiě)可執(zhí)行,組員權(quán)限可讀可寫(xiě)不可執(zhí)行,其他人權(quán)限只可讀

#?chmod 764?abc.txt ?#為文件abc.txt增加權(quán)限764,使用者權(quán)限7(4+2+1)讀可寫(xiě)可執(zhí)行,組員權(quán)限6(4+2)可讀可寫(xiě)不可執(zhí)行,其他人權(quán)限4(4)只可讀

#?chmod a+x?abc.txt ???# 對(duì)文件abc.txt的u,g,o都設(shè)置可執(zhí)行屬性

將/home/wwwroot/里的所有文件和文件夾設(shè)置為755權(quán)限

①# chmod -R?755?/home/wwwroot/*

②# cd /home/wwwroot

# chmod?-Rv?755 * ????#注意:“*”表示通配符,指的是所有文件和文件

#?sudo chmod?o+rw /shared ?#設(shè)置文件夾權(quán)限以保證其余用戶可以訪問(wèn)它

49.chown指令

功能說(shuō)明:用來(lái)變更文件或目錄的擁有者或所屬群組。

(ps.chown命令 改變某個(gè)文件或目錄的所有者和所屬的組,該命令可以向某個(gè)用戶授權(quán),使該用戶變成指定文件的所有者或者改變文件所屬的組。用戶可以是用戶或者是用戶D,用戶組可以是組名或組id。文件名可以使由空格分開(kāi)的文件列表,在文件名中可以包含通配符

只有文件主和超級(jí)用戶才可以便用該命令。)

語(yǔ)法:chown(選項(xiàng))(參數(shù))

選項(xiàng):

-c或——changes:效果類(lèi)似“-v”參數(shù),但僅回報(bào)更改的部分;

-f或--quite或——silent:不顯示錯(cuò)誤信息;

-h或--no-dereference:只對(duì)符號(hào)連接的文件作修改,而不更改其他任何相關(guān)文件;

-R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;

-v或——version:顯示指令執(zhí)行過(guò)程;

--dereference:效果和“-h”參數(shù)相同;

--help:在線幫助;

--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬群組全部設(shè)成和參考文件或目錄的擁有者與所屬群組相同;

--version:顯示版本信息。

實(shí)例

# chown -R?rosy /usr/meng ?#將目錄/usr/meng及其下面的所有文件、子目錄的文件主改成 rosy

50.bash調(diào)用腳本指令

編程語(yǔ)言分為兩種

過(guò)程式:以指令為中心,數(shù)據(jù)服務(wù)于指令

對(duì)象式:以數(shù)據(jù)為中心,指令服務(wù)于數(shù)據(jù)

shell介紹

shell是一個(gè)用C語(yǔ)言編寫(xiě)的程序,它是用戶使用Linux系統(tǒng)的窗口,一個(gè)橋梁,起到人機(jī)交互的作用。

shell既是一種命令語(yǔ)言,又是一種簡(jiǎn)單的程序設(shè)計(jì)語(yǔ)言,為什么說(shuō)簡(jiǎn)單,因?yàn)橛泻芏鄰?fù)雜的工作不用Shell去做。

shell本身是一種應(yīng)用程序,運(yùn)行與內(nèi)核之上,這個(gè)應(yīng)用程序?yàn)樘峁┝艘粋€(gè)界面,用戶可通過(guò)這個(gè)界面訪問(wèn)操作系統(tǒng)內(nèi)核的服務(wù)。shell是Linux系統(tǒng)內(nèi)嵌的,安裝操作系統(tǒng)之后看到的界面就是一個(gè)shell程序提供的界面。

shell程序: 是一個(gè)過(guò)程式的解釋器,把源代碼翻譯成機(jī)器語(yǔ)言,然后執(zhí)行,對(duì)于過(guò)程式語(yǔ)言來(lái)講,是一行一行翻譯并執(zhí)行的;

shell腳本的組成部分

shell程序開(kāi)頭的環(huán)境指定:稱之為shebang,如下:

#!/bin/bash

#!/bin/python

#!/bin/perl

shebang是告訴操作系統(tǒng)內(nèi)核通過(guò)哪一個(gè)解釋器來(lái)執(zhí)行當(dāng)前腳本;

#:行首為#號(hào)則為注釋行,額外的解釋信息

第一個(gè)腳本

#!/bin/bash

echo "Hello World !!!"

腳本執(zhí)行方式

需給予腳本執(zhí)行權(quán)限

#?chmod +x hello.sh

通過(guò)腳本文件所在絕對(duì)路徑進(jìn)行執(zhí)行

# /root/hello.sh

直接運(yùn)行解釋器,將腳本作為解釋器的參數(shù)來(lái)執(zhí)行

#?sh?hello.sh

檢查腳本語(yǔ)法

bash -n?:測(cè)試語(yǔ)法是否正確

bahs -x?:查看腳本執(zhí)行過(guò)程

bash -xv?更詳細(xì)的查看腳本執(zhí)行過(guò)程

例:bash?-x hello.sh

bash之變量

變量=變量名+指向的內(nèi)存空間

將數(shù)據(jù)存放于內(nèi)存中,為了方便使用,為這段數(shù)據(jù)取了個(gè)名字,使用時(shí),直接調(diào)用變量名,系統(tǒng)會(huì)根據(jù)變量名指向的數(shù)據(jù)位置將數(shù)據(jù)提取,進(jìn)行使用。

變量賦值:就是將數(shù)據(jù)存儲(chǔ)于這個(gè)變量名指向的內(nèi)存空間的過(guò)程

變量的類(lèi)型:定義數(shù)據(jù)存儲(chǔ)的格式

①字符型

②數(shù)值型整數(shù)型、浮點(diǎn)型

對(duì)于編程語(yǔ)言來(lái)說(shuō)變量還分為:強(qiáng)類(lèi)型和弱類(lèi)型,bash為弱類(lèi)型變量語(yǔ)言,如果沒(méi)有明確表明,bash把所有變量統(tǒng)統(tǒng)視為字符型,而當(dāng)我們運(yùn)算時(shí),bash會(huì)自動(dòng)將變量值轉(zhuǎn)為數(shù)值型。bash不支持浮點(diǎn)型,除非借助外部工具。

bash中的變量無(wú)需事先聲明,隨用隨時(shí)到內(nèi)存空間中定義。

變量的種類(lèi):根據(jù)生效的范圍不同來(lái)區(qū)分

本地變量:范圍是當(dāng)前shell進(jìn)程

環(huán)境變量:范圍是當(dāng)前shell進(jìn)程和子shell進(jìn)程

局部變量:范圍是當(dāng)前shell進(jìn)程某個(gè)代碼塊(通常指函數(shù))

位置變量:用于放在腳本代碼塊中調(diào)用通過(guò)命令行傳遞給腳本的參數(shù)

特殊變量

$?命令執(zhí)行的狀態(tài)值,值的范圍0-255,其中0為真,表示命令執(zhí)行成功,1-255為假,表示命令執(zhí)行失敗。

$#傳遞給腳本的參數(shù)的個(gè)數(shù)。

$*:傳遞給腳本的所有參數(shù),全部參數(shù)合為一個(gè)字符串。

$@:傳遞給腳本的所有參數(shù),每個(gè)參數(shù)為獨(dú)立字符串。

$0:表示命令本身。

本地變量:

變量賦值name="value"

value的值也可以引用:

可以直接使用字符串:name="username"

可以使其他變量的值:name="$username"

可以直接引用命令的值:name=`hostname`或者name=#(hostname);

變量引用${var_name}可簡(jiǎn)寫(xiě)為$var_name

""引用,其中的變量引用會(huì)被替換成變量的值

例:[root@centos_7 ~]# NUM="$PATH";echo $NUM ????????????

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

''強(qiáng)引用,其中的變量引用不會(huì)被替換,而是保留引號(hào)內(nèi)原字符串

例:[root@centos_7 ~]# NUM='$PATH';echo $NUM ?

$PATH

``命令引用,如括號(hào)內(nèi)是命令會(huì)被識(shí)別,返回的是命令執(zhí)行完成的值

?? 例:[root@centos_7 ~]# NUM=`seq 1 10`;echo $NUM

1 2 3 4 5 6 7 8 9 10

查看變量:set

撤銷(xiāo)變量:unset name

輸出變量:echo $name

環(huán)境變量:

變量賦值:export name=value

???declare -x?name=value

查看變量:export、declare、env

撤銷(xiāo)變量:unset name

輸出變量:echo $name

bash有許多內(nèi)建的環(huán)境變量:

PATH,PWD,USER,HOSTNAME,SHELL,UID,HOME等等

只讀變量:只讀變量的證明周期為當(dāng)前shell進(jìn)程的生命周期,隨著shell進(jìn)程的終止而終止

變量賦值:declare -r name

??readonly name?

位置變量:$1,$2……$10,對(duì)應(yīng)第1,第2個(gè)參數(shù)

shift輪替,將第1個(gè)參數(shù)踢掉,第2個(gè)參數(shù)變?yōu)榈谝粋€(gè)參數(shù),可一次踢多個(gè),shift#;

set –?:清空所有位置變量

命令行中定義的變量會(huì)隨著當(dāng)前shell進(jìn)程的生命周期,Shell進(jìn)程結(jié)束,變量時(shí)效

變量名的命名規(guī)則:

只能用數(shù)字,字母,下劃線,且不能使數(shù)字開(kāi)頭。

變量名盡量做到見(jiàn)名知意

不能使用程序的保留字,如PATH、PWD、if、else之類(lèi)的 。

bash的配置文件

全局配置文件:對(duì)當(dāng)前主機(jī)所有用生效

/etc/profile

/etc/profile.d/*.sh

個(gè)人配置文件:只對(duì)當(dāng)前用戶生效

.bash_profile

.bashrc

按照功能分,分為兩類(lèi):

profile類(lèi):為交互式登錄的shell提供配置

交互式登錄:直接通過(guò)某終端輸入賬號(hào)和密碼后登錄打開(kāi)的shell進(jìn)程

使用su -命令登陸的方式:su - username

全局:/etc/profile,/etc/profile.d/*.sh

個(gè)人:.bash_profile

:用于定義環(huán)境變量

??運(yùn)行命令或腳本

交互式登錄方式文件的讀取順序:

/etc/profile --> /etc/profile.d/*.sh --> .bash_profile --> /etc/bashrc --> .bashrc

注意:僅管理員可修改全局配置文件

bashrc類(lèi):為非交互式登錄的shell提供配置

非交互式登錄:圖形界面下打開(kāi)的終端

??使用su username

??運(yùn)行腳本

全局:/etc/bashrc

個(gè)人:.bashrc

作用:定義本地變量

??定義命令別名

非交互式登錄文件的讀取順序:

.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

配置文件定義的特性,只對(duì)隨后的shell進(jìn)程生效

讓通過(guò)編輯配置穩(wěn)健的特性立即生效:

退出并重新登錄

通過(guò)命令行重復(fù)定義一次

讓shell進(jìn)程重讀配置文件

source FileName

. FileName

bash的IO重定向

輸出重定向:

> 覆蓋輸出

>>追加輸出,在原有文件的尾部添加內(nèi)容

set -C??:禁止覆蓋輸出重定向至已存在的文件

>| 強(qiáng)行覆蓋輸出

set +C 關(guān)閉上述特性

錯(cuò)誤輸出重定向:

2> 錯(cuò)誤覆蓋

2>> 錯(cuò)誤追加

合并正常輸出和錯(cuò)誤輸出:

&>覆蓋

&>>追加

/dev/null:相當(dāng)于一個(gè)垃圾箱,當(dāng)我們不需要將命令執(zhí)行結(jié)果輸出至屏幕時(shí),可使用&> /dev/null,把結(jié)果丟進(jìn)垃圾箱只判斷命令執(zhí)行狀態(tài)返回值

重定向?qū)懭胛募?/strong>:

cat << EOF

content

...

EOF

----

cat > /PATH/TO/FILE << EOF

content

……

EOF

bash算數(shù)運(yùn)算:bash對(duì)數(shù)字進(jìn)行隱式的類(lèi)型轉(zhuǎn)換

+,-,*,/,%(取模),**(乘方)

實(shí)現(xiàn)算數(shù)運(yùn)算:

let var=算數(shù)表達(dá)式,如:let var=1+2

??例:

[root@centos_7 ~]# let var=1+2

[root@centos_7 ~]# echo $var

3

var=$[算數(shù)表達(dá)式],如:var=$[1+2]

var=$((算數(shù)表達(dá)式)),如:var=$((1+2))

echo '算數(shù)表達(dá)式' | bc ,如echo ‘1+2’ | bc

expr 數(shù)值1 運(yùn)算符 數(shù)值2,如expr 1 + 2

增強(qiáng)型復(fù)制:

+=,-=,*=,/=,%=

使用方法:let 變量名運(yùn)算符算數(shù)表達(dá)式

例:let=i+=1即i=i+1

自增,自減

let i+=1?即let i++

let i-=1?即let i--

?例:

[root@centos_7 ~]# let i++;echo $i

1

[root@centos_7 ~]# let i++;echo $i

2

[root@centos_7 ~]# let i++;echo $i

3

bash條件測(cè)試

判斷某條件是否滿足,滿足則完成某項(xiàng)任務(wù),不滿足則退出

條件測(cè)試命令的表達(dá)式:

test 表達(dá)式

[ 表達(dá)式 ]

[[ 表達(dá)式 ]]

與[ ]不同,[[ ]]雙括號(hào)內(nèi)支持正則表達(dá)式,而[ ]單括號(hào)不支持

常用例:N=abc;[[ $N =~ ^[0-9]+$ ]] && echo true || echo false :解釋為,如果$N的值為整數(shù)型,則返回true,否則返回false。

注意:表達(dá)式兩邊必須要有空格

bash的測(cè)試類(lèi)型:

數(shù)值測(cè)試:

-eq:是否等于

-ne:是否不等

-gt:是否大于

-lt:是否小于

-ge:是否大于或等于

-le:是否小于或等于

字符測(cè)試:

==:是否等于

!=:是否不等

>:是否大于

<:是否小于

=~左側(cè)字符串是否能被右側(cè)模式所匹配

-z "string":測(cè)試字符串是否為空,空則為真,不空則為假

-n "string":測(cè)試字符串是否不空,不空為真,空則為假

文件測(cè)試:測(cè)試文件存在與否,屬性信息等
  1. 測(cè)試文件是否存在和文件類(lèi)別

-e?file:測(cè)試指定文件是否存在,存在為真,不存在則為假

-b?file:文件是否存在且為塊設(shè)備

-d?file:文件是否存在且為目錄

-c file:文件是否存在且為字符設(shè)備

-f?file:文件是否存在且為普通文件

-h?file:文件是否存在且為符號(hào)鏈接文件

-p?file:文件是否存在且為命名管道文件

-S?file:文件是否存在且為套接字文件

1)文件權(quán)限測(cè)試

-r?file:文件是否存在且當(dāng)前用戶是否可讀

-w?file:文件是否存在且當(dāng)前用戶是否可寫(xiě)

-x file:文件是否存在且當(dāng)前用戶是否有執(zhí)行權(quán)限

-u?file:文件是否存在且擁有suid權(quán)限

-g?file:文件是否存在且擁有sgid權(quán)限

-k?file:文件是否存在且擁有sticky權(quán)限

2)文件大小測(cè)試

-s?file:文件是否存在且非空

3)文件是否被打開(kāi)

-N?file:文件自從上一次被讀取之后是否被修改過(guò)

-O?file:當(dāng)前用戶是否為文件屬主

-G?file:當(dāng)前用戶是否為文件屬組

bash的邏輯運(yùn)算:true(0)、false(1-255)

運(yùn)算

真 && 真 = 真

真 && 假 = 假

假 && 真 = 假

假 && 假 = 假

只要有假便為假

運(yùn)算

真 || 真 = 真

真 || 假 = 真

假 || 真 = 真

假 || 假 = 假

只要有真便為真

運(yùn)算

! 真 = 假

! 假 = 真

ls / &> /dev/null?&&?echo 'hello' :當(dāng)&&左邊條件為真時(shí),&&右邊條件執(zhí)行,&&左邊條件為假時(shí),&&右邊條件不執(zhí)行

ls /// &> /dev/null || echo 'hello' :當(dāng)||左邊條件為假時(shí),||右邊條件執(zhí)行,||左邊條件為真時(shí),||右邊條件不執(zhí)行

第二種方式

-a與遠(yuǎn)算

-o或運(yùn)算

非運(yùn)算

例:主機(jī)名是否為localhost,如果是改為centos

[ `hostname` == localhsot ] && hostname centos || echo "current hostname is `hostname`"

例:測(cè)試文件是否存在

[ -e /etc/passwd ] && cat /etc/passwd || echo "file not exist.."

例:測(cè)試主機(jī)名是否為空或者為localhost,如果為空或者為localhost則將其改為centos

[ -z `hostname` -o hostname == `hostname` ] && hostname centos || echo "current hostname is `hostname`"

編寫(xiě)腳本backup.sh,可實(shí)現(xiàn)每日將/etc/目錄備份到 /root/etcYYYY-mm-dd中

#!/bin/bash#Filename:      backup.sh
#Description:   create script file
#Date:          2019-08-20 11:20:30
#*************************************************dir=etc`date +"%Y-%m-%d"`
DIR=/root/$dir
[ -d $DIR ] && echo "dir exist.." && exit 0
mkdir $DIR
cp -ar /etc/* $DIR  &&  echo -e  "\033[1;5;31mcopy finished...\033[0m"

編寫(xiě)腳本nologin.sh和login.sh,實(shí)現(xiàn)禁止和允許普通用戶登錄系統(tǒng)

[root@centos7 bin]#cat nologin.sh

#!/bin/bash##*************************************************
#Filename:      login.sh
#Description:   create script file
#Date:          2019-08-20 11:38:59
#*************************************************[ `id -u $1` -ge 1000 ]  || exit 1
[ $# -lt 1 ] && echo "please input a users .." && exit 0
read -p "your ensure ban user nologin ? input y/n:" NOLOGIN
[ $NOLOGIN == y ] && sed -i -r '/^'''$1'''/s#(.*:)([^:]+)$#\1/bin/nologin#' /etc/passwd && exit 0
[ $NOLOGIN == n ] && exit 0

[root@centos7 bin]#cat login.sh

#!/bin/bash##*************************************************
#Filename:      login.sh
#Description:   create script file
#Date:          2019-08-20 12:55:48
#*************************************************[ $# -lt 1 ] && echo "please input a user .." && exit 0
[ ` id -u $1 ` -ge 1000 ] && sed -i -r '/^'''$1'''/s#(.*:)([^:]+)$#\1/bin/bash#'  /etc/passwd
read -p "you need login system ? input y/n :" LOGIN
[ $LOGIN == y ] && su - $1
[ $LOGIN == n ] && exit 0

編寫(xiě)腳本disk.sh,顯示當(dāng)前硬盤(pán)分區(qū)中空間利用率最大的值??????????????????????????????????????????????????????????????????

[root@centos7 bin]#cat disk.sh

#!/bin/bash##*************************************************
#Filename:      disk.sh
#Description:   create script file
#Date:          2019-08-20 13:08:14
#*************************************************device=`df | grep "/dev/sd" |tr -s " " % | sort -t% -k5 -nr | cut -d% -f1 |head -1`
DISK=`df | grep "/dev/sd" | tr -s " " : | cut -d: -f5 | sort -nr|head -1`
echo "The most used is $device already use $DISK"

?My學(xué)習(xí)Linux命令小記錄(12)?over~

http://www.risenshineclean.com/news/23196.html

相關(guān)文章:

  • 簡(jiǎn)歷設(shè)計(jì)網(wǎng)官網(wǎng)手機(jī)seo百度點(diǎn)擊軟件
  • 廣州微網(wǎng)站建設(shè)效果長(zhǎng)尾關(guān)鍵詞挖掘工具
  • 精品在線開(kāi)發(fā)網(wǎng)站建設(shè)百度網(wǎng)盤(pán)官方網(wǎng)站
  • 服務(wù)一流的做網(wǎng)站短鏈接在線生成器
  • 深圳做網(wǎng)站(官網(wǎng))網(wǎng)頁(yè)設(shè)計(jì)制作網(wǎng)站教程
  • 網(wǎng)站制作com cn域名有什么區(qū)別百度認(rèn)證營(yíng)銷(xiāo)顧問(wèn)
  • 建站之星怎么免費(fèi)做網(wǎng)站網(wǎng)站百度收錄查詢
  • 企業(yè)公司做網(wǎng)站網(wǎng)絡(luò)推廣代理怎么做
  • 怎樣做克隆網(wǎng)站濟(jì)南網(wǎng)絡(luò)推廣公司
  • 沭陽(yáng)住房城鄉(xiāng)建設(shè)局網(wǎng)站杭州seo搜索引擎優(yōu)化
  • 深圳網(wǎng)站策劃核心關(guān)鍵詞和長(zhǎng)尾關(guān)鍵詞舉例
  • 從化市網(wǎng)站建設(shè)杭州網(wǎng)絡(luò)推廣有限公司
  • 國(guó)內(nèi)大型餐飲網(wǎng)站建設(shè)友情鏈接也稱為
  • 網(wǎng)站做跳轉(zhuǎn)南昌seo計(jì)費(fèi)管理
  • 網(wǎng)站建設(shè)做什么seo策略主要包括
  • 網(wǎng)站建設(shè)公司網(wǎng)站模版網(wǎng)頁(yè)代碼
  • 什么是網(wǎng)站銷(xiāo)售網(wǎng)站seo資訊
  • 網(wǎng)站制作怎么樣提供會(huì)員注冊(cè)網(wǎng)店推廣營(yíng)銷(xiāo)方案
  • 做網(wǎng)站怎么做小圖標(biāo)免費(fèi)做網(wǎng)站怎么做網(wǎng)站
  • 網(wǎng)站宣傳的好處chrome 谷歌瀏覽器
  • 萊陽(yáng)網(wǎng)站建設(shè)阿拉營(yíng)銷(xiāo)網(wǎng)站
  • 前端工程師是做網(wǎng)站嗎sem廣告
  • php中網(wǎng)站不同模板后臺(tái)邏輯代碼怎么管理免費(fèi)網(wǎng)站注冊(cè)com
  • 搞網(wǎng)站網(wǎng)站交換鏈接友情鏈接的作用
  • 百度推廣 網(wǎng)站吸引力正規(guī)seo多少錢(qián)
  • 怎樣做阿里巴巴網(wǎng)站kj6699的seo綜合查詢
  • pc網(wǎng)站制作是指什么意思網(wǎng)絡(luò)平臺(tái)建設(shè)及運(yùn)營(yíng)方案
  • 網(wǎng)站建設(shè)公司是什么泉州百度搜索推廣
  • 做網(wǎng)站設(shè)置時(shí)間熱門(mén)關(guān)鍵詞查詢
  • 中升乙源建設(shè)工程有限公司網(wǎng)站seo智能優(yōu)化軟件