老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

linux中set命令的簡單介紹

Linux篇:從rm -rf 引發(fā)的腳本安全閑聊(set 命令)

上周剛經(jīng)歷了一個(gè)“刪庫跑路”的慘重事件,不知哪位無邪的童鞋把Confluence 的數(shù)據(jù)存儲(chǔ)目錄 /var 清空了,結(jié)果群眾的怒火燃燒上了天空

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括香坊網(wǎng)站建設(shè)、香坊網(wǎng)站制作、香坊網(wǎng)頁制作以及香坊網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,香坊網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到香坊省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

這次結(jié)合自己的一些思考來記錄一些有關(guān)腳本安全的點(diǎn)

先來看一個(gè)簡單的案例

在用戶主目錄下創(chuàng)建safe目錄及相關(guān)文件用于測(cè)試演示

假如寫一段腳本刪除safe目錄下所有文件:

這段是不是看起來沒有問題,但如果由于有些大心臟的同學(xué)粗心,寫成下面這樣

最終,腳本都變成了rm? ?-rf? ? *? ?,可怕至極

其實(shí)在shell腳本當(dāng)中,為了防止這種現(xiàn)象,我們可以借助set 命令來實(shí)現(xiàn)相關(guān)控制

關(guān)于set 命令有較多參數(shù),這里介紹最常用的幾個(gè)

我們以剛才圖4那段有問題的腳本說事

為保證不錯(cuò)刪東西 ,我們加一個(gè)set -u 選項(xiàng) ,判斷變量是否存在

我們執(zhí)行一下,看看效果

看,報(bào)錯(cuò)啦,dir這個(gè)變量沒有聲明,ls 查看一下文件,發(fā)現(xiàn)都還存在

set -e? 與set -u 通常搭配在一起使用

一個(gè)是遇到錯(cuò)誤退出,一個(gè)是發(fā)現(xiàn)空變量報(bào)錯(cuò)

這兩個(gè)搭配在一起放在腳本里可以防止一些變量為空導(dǎo)致文件全被清空的問題

拓展一下:

如果只想應(yīng)用在腳本的某一段中,那么

開始段落前加set -e 表示范圍開始

結(jié)束段落后加 set +e 表示范圍結(jié)束

set -x 與set + x同理。

1、刪文件其實(shí)不用rm -rf ,不是受迫性需要,不要使用rm -rf?

2、修改、刪除系統(tǒng)文件或其他重要的東西,先備份一份

3、非特殊需要,不建議在root下操作,普通用戶即可

4、腳本加上set -e 與set -u保證安全

linux的shell腳本中的set是什么意思?怎么理解

set命令作用主要是顯示系統(tǒng)中已經(jīng)存在的shell變量,以及設(shè)置shell變量的新變量值。使用set更改shell特性時(shí),符號(hào)"+"和"-"的作用分別是打開和關(guān)閉指定的模式。set命令不能夠定義新的shell變量。如果要定義新的變量,可以使用declare命令以變量名=值的格式進(jìn)行定義即可。使用:set(選項(xiàng))(參數(shù))

例如:

declare mylove='Visual C++' #定義新環(huán)境變量

再使用set命令將新定義的變量輸出為環(huán)境變量,輸入如下命令: set -a mylove

標(biāo)示已修改的變量,以供輸出至環(huán)境變量。

-b:使被中止的后臺(tái)程序立刻回報(bào)執(zhí)行狀態(tài)

-C:轉(zhuǎn)向所產(chǎn)生的文件無法覆蓋已存在的文件

-d:Shell預(yù)設(shè)會(huì)用雜湊表記憶使用過的指令,以加速指令的執(zhí)行。使用-d參數(shù)可取消。

-e:若指令傳回值不等于0,則立即退出shell。

-f:取消使用通配符。

-h:自動(dòng)記錄函數(shù)的所在位置。

-H Shell:可利用"!"加指令編號(hào)的方式來執(zhí)行history中記錄的指令。

-k:指令所給的參數(shù)都會(huì)被視為此指令的環(huán)境變量。

-l:記錄for循環(huán)的變量名稱。

-m:使用監(jiān)視模式。

-n:只讀取指令,而不實(shí)際執(zhí)行。

-p:啟動(dòng)優(yōu)先順序模式。

-P:啟動(dòng)-P參數(shù)后,執(zhí)行指令時(shí),會(huì)以實(shí)際的文件或目錄來取代符號(hào)連接。

-t:執(zhí)行完隨后的指令,即退出shell。

-u:當(dāng)執(zhí)行時(shí)使用到未定義過的變量,則顯示錯(cuò)誤信息。

-v:顯示shell所讀取的輸入值。

-x:執(zhí)行指令后,會(huì)先顯示該指令及所下的參數(shù)。

linux用set命令顯示當(dāng)前模式

Linux系統(tǒng)設(shè)置:set命令詳解

set命令作?主要是顯?系統(tǒng)中已經(jīng)存在的shell變量,以及設(shè)置shell變量的新變量值。使?set更改shell特性時(shí),符號(hào)"+"和"-"的作?分別是打開和關(guān)閉指定的模式。set命令不能夠定義新的shell變量。如果要定義新的變量,可以使?命令以變量名=值的格式進(jìn)?定義即可。

語法

set(選項(xiàng))(參數(shù))

選項(xiàng)

-a:標(biāo)?已修改的變量,以供輸出?環(huán)境變量。

-b:使被中?的后臺(tái)程序?刻回報(bào)執(zhí)?狀態(tài)。

-C:轉(zhuǎn)向所產(chǎn)?的?件?法覆蓋已存在的?件。

-d:Shell預(yù)設(shè)會(huì)?雜湊表記憶使?過的指令,以加速指令的執(zhí)?。使?-d參數(shù)可取消。

-e:若指令傳回值不等于0,則?即退出shell。

-f:取消使?通配符。

-h:?動(dòng)記錄函數(shù)的所在位置。

-H Shell:可利?"!"加指令編號(hào)的?式來執(zhí)?history中記錄的指令。

-k:指令所給的參數(shù)都會(huì)被視為此指令的環(huán)境變量。

-l:記錄for循環(huán)的變量名稱。

-m:使?監(jiān)視模式。

-n:只讀取指令,?不實(shí)際執(zhí)?。

-p:啟動(dòng)優(yōu)先順序模式。

-P:啟動(dòng)-P參數(shù)后,執(zhí)?指令時(shí),會(huì)以實(shí)際的?件或?錄來取代符號(hào)連接。

-t:執(zhí)?完隨后的指令,即退出shell。

-u:當(dāng)執(zhí)?時(shí)使?到未定義過的變量,則顯?錯(cuò)誤信息。

-v:顯?shell所讀取的輸?值。

-x:執(zhí)?指令后,會(huì)先顯?該指令及所下的參數(shù)。

參數(shù)

取消某個(gè)set曾啟動(dòng)的參數(shù)。

實(shí)例

使?declare命令定義?個(gè)新的環(huán)境變量"mylove",并且將其值設(shè)置為"Visual C++",輸?如下命令:

declare mylove='Visual C++' #定義新環(huán)境變量

再使?set命令將新定義的變量輸出為環(huán)境變量,輸?如下命令:

set -a mylove #設(shè)置為環(huán)境變量

執(zhí)?該命令后,將會(huì)新添加對(duì)應(yīng)的環(huán)境變量。?戶可以使?命令和命令分別顯?和搜索環(huán)境變量"mylove",輸?命令如下:

env | grep mylove #顯?環(huán)境變量值

此時(shí),該命令執(zhí)?后,將輸出查詢到的環(huán)境變量值。

5.9

百度文庫VIP限時(shí)優(yōu)惠現(xiàn)在開通,立享6億+VIP內(nèi)容

立即獲取

Linux系統(tǒng)設(shè)置:set命令詳解

Linux系統(tǒng)設(shè)置:set命令詳解

set命令作?主要是顯?系統(tǒng)中已經(jīng)存在的shell變量,以及設(shè)置shell變量的新變量值。使?set更改shell特性時(shí),符號(hào)"+"和"-"的作?分別是打開和關(guān)閉指定的模式。set命令不能夠定義新的shell變量。如果要定義新的變量,可以使?命令以變量名=值的格式進(jìn)?定義即可。

語法

set(選項(xiàng))(參數(shù))

選項(xiàng)

-a:標(biāo)?已修改的變量,以供輸出?環(huán)境變量。

第 1 頁

-b:使被中?的后臺(tái)程序?刻回報(bào)執(zhí)?狀態(tài)。

-C:轉(zhuǎn)向所產(chǎn)?的?件?法覆蓋已存在的?件。

-d:Shell預(yù)設(shè)會(huì)?雜湊表記憶使?過的指令,以加速指令的執(zhí)?。使?-d參數(shù)可取消。

-e:若指令傳回值不等于0,則?即退出shell。

-f:取消使?通配符。

-h:?動(dòng)記錄函數(shù)的所在位置。

-H Shell:可利?"!"加指令編號(hào)的?式來執(zhí)?history中記錄的指令。

第 2 頁

-k:指令所給的參數(shù)都會(huì)被視為此指令的環(huán)境變量。

-l:記錄for循環(huán)的變量名稱。

-m:使?監(jiān)視模式。

-n:只讀取指令,?不實(shí)際執(zhí)?。

-p:啟動(dòng)優(yōu)先順序模式。

-P:啟動(dòng)-P參數(shù)后,執(zhí)?指令時(shí),會(huì)以實(shí)際的?件或?錄來取代符號(hào)連接。

-t:執(zhí)?完隨后的指令,即退出shell。

-u:當(dāng)執(zhí)?時(shí)使?到未定義過的變量,則顯?錯(cuò)誤信息。

第 3 頁

-v:顯?shell所讀取的輸?值。

-x:執(zhí)?指令后,會(huì)先顯?該指令及所下的參數(shù)。

參數(shù)

取消某個(gè)set曾啟動(dòng)的參數(shù)。

實(shí)例

使?declare命令定義?個(gè)新的環(huán)境變量"mylove",并且將其值設(shè)置為"Visual C++",輸?如下命令:

declare mylove='Visual C++' #定義新環(huán)境變量

第 4 頁

再使?set命令將新定義的變量輸出為環(huán)境變量,輸?如下命令:

set -a mylove #設(shè)置為環(huán)境變量

執(zhí)?該命令后,將會(huì)新添加對(duì)應(yīng)的環(huán)境變量。?戶可以使?命令和命令分別顯?和搜索環(huán)境變量"mylove",輸?命令如下:

env | grep mylove #顯?環(huán)境變量值

此時(shí),該命令執(zhí)?后,將輸出查詢到的環(huán)境變量值。

Linux里面set -e命令作用是什么?

Linux里面set -e命令作用是,如果一個(gè)命令返回一個(gè)非0退出狀態(tài)值(失敗),就退出.

這個(gè)命令-e參數(shù)企業(yè)應(yīng)用極少

set的“+” ,"-" 分別用于關(guān)閉或者打開某些特性;具體的特性有很多,這里介紹 -e 特性:

set -e ; 表示后續(xù)所有的bash 命令的返回code 如果不是0,那么腳本立即退出,后續(xù)的腳本將不會(huì)得到執(zhí)行的機(jī)會(huì);

set +e ; 這個(gè)是默認(rèn)的狀態(tài),表示就算后續(xù)的命令如果返回值不是0,那么腳本依然向下執(zhí)行;

所以 set -e其實(shí)就是從設(shè)置的位置起,給腳本的每一條命令加上了同一個(gè)退出條件;而set +e 則是取消這種設(shè)置;

看下面的例子:

[root@oldboy ~]# cat test.sh

#!/bin/bash

function lookupstr(){

grep "sles" /etc/os-release /dev/null 21

if [ "$?" -ne 0 ];then

echo -e "Can not find the 'sles' string in file.\n"

fi

}

echo "Below results based on: set +e"

set +e

lookupstr

echo "Below results based on: set -e"

set -e

lookupstr

[root@oldboy ~]# ./test.sh

Below results based on: set +e

Can not find the 'sles' string in file.

Below results based on: set -e

[root@oldboy ~]#

set -e option 可以幫助優(yōu)化腳本


網(wǎng)頁名稱:linux中set命令的簡單介紹
轉(zhuǎn)載來于:http://www.xueling.net.cn/article/ddegepj.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 天堂成人影院 | 葵司一区二区 | 催眠教师~淫辱の教室 | 亚洲一区二区三区在线网站 | 日日日干干干 | 久久91精品国产91久久小草 | 两个男人吮她的花蒂和奶水视频 | 亚洲精品网站免费 | 中文字幕日韩一区二区三区 | 看曰本女人大战黑人视频 | 免费操片| YW尤物AV无码国产在线观看 | 精品无码一区在线观看 | 欧美日韩精品人妻狠狠躁免费视频 | 无码爆乳超乳中文字幕在线 | 中文字幕2018第一页 | 成人欧美一区二区三区黑人孕妇 | 天天躁日日躁狠狠躁av麻豆男男 | 草草影院2022成人免费视频 | 小荡货腿张开让我cao爽视频 | 亚洲精品成人网久久久久久 | 国产白嫩精品又爽又深呻吟 | 久热久热久热 | 人妻少妇伦在线无码 | 国产精品亚洲专区无码影院 | 999久久精品 | 国产自一区 | 国产精品――羞羞答答 | 影片-v66av | www.欧美日本韩国 | 日本色综合网 | 色视频网站在线 | 悠悠资源AV男人免费站 | 青青草手机在线观看 | 在线观看国产区 | 欧美丰腴丰满大屁股熟妇 | 少妇人妻14页_麻花色 | 娇妻与公h喂奶 | 日批视频在线免费看 | 91天天综合 | 欧美另类久久久精品 |