国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

面向系統管理員的Bash指南

系統 Linux
每個行業都有一個該行業的大師們最常使用的工具。 對于許多系統管理員來說,這個工具就是他們的 shell。 在大多數 Linux 和其他類 Unix 系統上,默認的 shell 是 Bash。

[[240192]]

使 Bash 工作的更好的技巧。

每個行業都有一個該行業的大師們最常使用的工具。 對于許多系統管理員來說,這個工具就是他們的 shell。 在大多數 Linux 和其他類 Unix 系統上,默認的 shell 是 Bash。

Bash 是一個相當古老的程序——它起源于 20 世紀 80 年代后期——但它建立在更多更老的 shell 上,比如 C shell(csh),csh 至少是它 10 年前的前輩了。 因為 shell 的概念是那么古老,所以有大量的神秘知識等待著系統管理員去吸收領悟,使其生活更輕松。

我們來看看一些基礎知識。

在某些時候,誰曾經無意中以 root 身份運行命令并導致某種問題? 舉手

我很確定我們很多人一度都是那個人。 這很痛苦。 這里有一些非常簡單的技巧可以防止你再次碰上這類問題。

 

使用別名

首先,為 mvrm 等命令設置別名,指向 mv -irm -i。 這將確保在運行 rm -f /boot 時至少需要你確認。 在 Red Hat 企業版 Linux 中,如果你使用 root 帳戶,則默認設置這些別名。

如果你還要為普通用戶帳戶設置這些別名,只需將這兩行放入家目錄下名為 .bashrc 的文件中(這些也適用于 sudo ):

  1. alias mv='mv -i'
  2. alias rm='rm -i'

 

讓你的 root 提示符脫穎而出

你可以采取的防止意外發生的另一項措施是確保你很清楚在使用 root 帳戶。 在日常工作中,我通常會讓 root 提示符從日常使用的提示符中脫穎而出。

如果將以下內容放入 root 的家目錄中的 .bashrc 文件中,你將看到一個黑色背景上的紅色的 root 提示符,清楚地表明你(或其他任何人)應該謹慎行事。

  1. export PS1="\[$(tput bold)$(tput setab 0)$(tput setaf 1)\]\u@\h:\w # \[$(tput sgr0)\]"

實際上,你應該盡可能避免以 root 用戶身份登錄,而是通過 sudo 運行大多數系統管理命令,但這是另一回事。

使用了一些小技巧用于防止使用 root 帳戶時的“不小心的副作用”之后,讓我們看看 Bash 可以幫助你在日常工作中做的一些好事。

 

控制你的歷史

你可能知道在 Bash 中你按向上的箭頭時能看見和重新使用你之前所有(好吧,大多數)的命令。這是因為這些命令已經保存到了你家目錄下的名為 .bash_history 的文件中。這個歷史文件附帶了一組有用的設置和命令。

首先,你可以通過鍵入 history 來查看整個最近的命令歷史記錄,或者你可以通過鍵入 history 30 將其限制為最近 30 個命令。不過這技巧太平淡無奇了(LCTT 譯注: vanilla 原為香草,后引申沒拓展的、標準、普通的,比如 vanilla C++ compiler 意為標準 C++ 編譯器)。 你可以更好地控制 Bash 保存的內容以及保存方式。

例如,如果將以下內容添加到 .bashrc,那么任何以空格開頭的命令都不會保存到歷史記錄列表中:

  1. HISTCONTROL=ignorespace

如果你需要以明文形式將密碼傳遞給一個命令,這就非常有用。 (是的,這太可怕了,但它仍然會發生。)

如果你不希望經常執行的命令充斥在歷史記錄中,請使用:

  1. HISTCONTROL=ignorespace:erasedups

這樣,每次使用一個命令時,都會從歷史記錄文件中刪除之前出現的所有相同命令,并且只將最后一次調用保存到歷史記錄列表中。

我特別喜歡的歷史記錄設置是 HISTTIMEFORMAT 設置。 這將在歷史記錄文件中在所有的條目前面添加上時間戳。 例如,我使用:

  1. HISTTIMEFORMAT="%F %T  "

當我輸入 history 5 時,我得到了很好的完整信息,如下所示:

  1. 1009  2018-06-11 22:34:38  cat /etc/hosts
  2. 1010  2018-06-11 22:34:40  echo $foo
  3. 1011  2018-06-11 22:34:42  echo $bar
  4. 1012  2018-06-11 22:34:44  ssh myhost
  5. 1013  2018-06-11 22:34:55  vim .bashrc

這使我更容易瀏覽我的命令歷史記錄并找到我兩天前用來建立到我家實驗室的 SSH 連接(我一次又一次地忘記......)。

 

Bash 最佳實踐

我將在編寫 Bash 腳本時最好的(或者至少是好的,我不要求無所不知)11 項實踐列出來。

11、 Bash 腳本可能變得復雜,不過注釋也很方便。 如果你在考慮是否要添加注釋,那就添加一個注釋。 如果你在周末之后回來并且不得不花時間搞清楚你上周五想要做什么,那你是忘了添加注釋。

10、 用花括號括起所有變量名,比如 ${myvariable}。 養成這個習慣可以使用 ${variable}_suffix 這種用法了,還能提高整個腳本的一致性。

9、 計算表達式時不要使用反引號;請改用 $() 語法。 所以使用:

  1. for  file in $(ls); do

而不使用:

  1. for  file in `ls`; do

前一個方式是可嵌套的,更易于閱讀的,還能讓一般的系統管理員群體感到滿意。 不要使用反引號。

8、 一致性是好的。 選擇一種風格并在整個腳本中堅持下去。 顯然,我喜歡人們選擇 $() 語法而不是反引號,并將其變量包在花括號中。 我更喜歡人們使用兩個或四個空格而不是制表符來縮進,但即使你選擇了錯誤的方式,也要一貫地錯下去。

7、 為 Bash 腳本使用適當的釋伴shebang(LCTT 譯注:Shebang,也稱為 Hashbang ,是一個由井號和嘆號構成的字符序列 #! ,其出現在文本文件的第一行的前兩個字符。 在文件中存在釋伴的情況下,類 Unix 操作系統的程序載入器會分析釋伴后的內容,將這些內容作為解釋器指令,并調用該指令,并將載有釋伴的文件路徑作為該解釋器的參數)。 因為我正在編寫Bash腳本,只打算用 Bash 執行它們,所以我經常使用 #!/usr/bin/bash 作為我的釋伴。 不要使用 #!/bin/sh#!/usr/bin/sh。 你的腳本會被執行,但它會以兼容模式運行——可能會產生許多意外的副作用。 (當然,除非你想要兼容模式。)

6、 比較字符串時,在 if 語句中給變量加上引號是個好主意,因為如果你的變量是空的,Bash 會為這樣的行拋出一個錯誤:

  1. if [ ${myvar} == "foo" ]; then
  2. echo "bar"
  3. fi

對于這樣的行,將判定為 false

  1. if [ "${myvar}" == "foo" ]; then
  2. echo "bar"
  3. fi

此外,如果你不確定變量的內容(例如,在解析用戶輸入時),請給變量加引號以防止解釋某些特殊字符,并確保該變量被視為單個單詞,即使它包含空格。

5、 我想這是一個品味問題,但我更喜歡使用雙等號( == ),即使是比較 Bash 中的字符串。 這是一致性的問題,盡管對于字符串比較,只有一個等號會起作用,我的思維立即變為“單個 = 是一個賦值運算符!”

4、 使用適當的退出代碼。 確保如果你的腳本無法執行某些操作,則會向用戶顯示已寫好的失敗消息(最好提供解決問題的方法)并發送非零退出代碼:

  1. # we have failed
  2. echo "Process has failed to complete, you need to manually restart the whatchamacallit"
  3. exit 1

這樣可以更容易地以編程方式從另一個腳本調用你的腳本并驗證其成功完成。

3、 使用 Bash 的內置機制為變量提供合理的默認值,或者如果未定義你希望定義的變量,則拋出錯誤:

  1. # this sets the value of $myvar to redhat, and prints 'redhat'
  2. echo ${myvar:=redhat}
  1. # this throws an error reading 'The variable myvar is undefined, dear reader' if $myvar is undefined
  2. ${myvar:?The variable myvar is undefined, dear reader}

2、 特別是如果你正在編寫大型腳本,或者是如果你與其他人一起開發該大型腳本,請考慮在函數內部定義變量時使用 local 關鍵字。 local 關鍵字將創建一個局部變量,該變量只在該函數中可見。 這限制了變量沖突的可能性。

1、 每個系統管理員有時必須這樣做:在控制臺上調試一些東西,可能是數據中心的真實服務器,也可能是虛擬化平臺的虛擬服務器。 如果你必須以這種方式調試腳本,你會感謝你自己記住了這個:不要讓你的腳本中的行太長!

在許多系統上,控制臺的默認寬度仍為 80 個字符。 如果你需要在控制臺上調試腳本并且該腳本有很長的行,那么你將成為一個悲傷的熊貓。 此外,具有較短行的腳本—— 默認值仍為 80 個字符——在普通編輯器中也更容易閱讀和理解! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2018-08-01 08:12:34

Linux管理員網絡管理

2011-06-16 09:35:28

系統管理員iPad應用

2018-08-03 09:40:46

Linux系統管理員經驗

2012-11-01 11:33:11

IBMdw

2019-08-13 19:34:45

容器鏡像DockerLinux

2018-12-25 11:39:04

系統管理員持續集成持續交付

2015-10-28 09:07:34

GUI工具Linux

2013-03-30 21:59:13

系統管理員必備工具iftop

2010-12-27 17:40:31

2013-03-22 10:07:38

2012-08-01 10:33:35

2013-06-26 09:29:30

系統管理員

2013-09-29 09:50:21

系統管理員Ubuntu JujuJuju

2010-04-12 09:33:58

系統管理員

2010-08-11 17:11:15

2019-09-09 14:45:29

系統管理員SRE

2010-08-10 09:13:52

Unix系統管理員Ubuntu

2010-05-06 18:07:33

Unix命令

2010-05-07 16:35:44

2013-08-20 10:11:20

Go系統管理員
點贊
收藏

51CTO技術棧公眾號

亚洲色图欧洲色图婷婷| 日韩精品视频免费专区在线播放| 国产精品一区二区三区免费| 日韩av午夜在线观看| 精品一区二区成人免费视频| 国产日韩视频一区二区三区| 男男做性免费视频网| 国产精品一区av| 一本久道久久久| 尤物国产在线观看| 在线播放国产一区二区三区| 一区在线视频| 调教视频在线观看| 国内免费精品永久在线视频| 国内精品久久久久影院色| 亚洲精品视频99| 日韩av免费看网站| 中文字幕va一区二区三区| 欧洲在线视频| 一区二区美女| 国产精品免费看久久久无码| 欧美怡红院视频| 色婷婷亚洲mv天堂mv在影片| 亚洲片国产一区一级在线观看| 欧美日韩精品| 天堂а√在线8种子蜜桃视频| 最新91在线视频| av色综合久久天堂av综合| av2020不卡| 亚洲毛片在线看| 午夜电影亚洲| 青草网在线观看| 日欧美一区二区| 亚洲五码在线观看视频| 成人影院天天5g天天爽无毒影院| 国产欧美日韩中文字幕| 亚洲国产老妈| 佐佐木明希av| 国产亚洲精品美女久久久久久久久久| 日韩免费视频一区| 日韩国产大片| 成人免费观看cn| 欧美另类在线观看| 中文字幕在线观看不卡| 欧美亚洲高清| 免费在线观看黄色网| 波多野结衣亚洲一二三| 精品国产综合区久久久久久| 国产在线久久久| 69影院欧美专区视频| 亚洲一二三在线| 亚洲成年网站在线观看| 欧美美女一区二区三区| 国产精品丝袜一区| 91丨九色丨国产丨porny| 国产一区二区电影| 美女性感视频久久| 麻豆精品国产传媒mv男同| 黄色成人在线看| 国产精品jvid在线观看蜜臀| 欧美日韩成人黄色| 精品一区二区三区在线播放| 猛男gaygay欧美视频| av软件在线观看| 116极品美女视频在线观看| 欧美精品尤物在线| 欧美激情精品久久久久久变态| 午夜伦欧美伦电影理论片| 亚洲国产免费看| 黄色美女久久久| 粉嫩粉嫩芽的虎白女18在线视频| 97人摸人人澡人人人超一碰| 欧美一a一片一级一片| 亚洲视频久久| 午夜视频一区| 国产精品一区在线观看乱码| 成人免费av网站| 欧洲黄色一区| 免费黄网站欧美| 男女视频在线观看| 天堂8在线天堂资源bt| 亚洲自拍欧美另类| 日韩亚洲精品电影| 日韩一区二区三区免费看| 久久久久久夜精品精品免费| 亚洲精品麻豆| 亚洲宅男一区| 欧美日韩五码| 国产精品—色呦呦| 手机福利小视频在线播放| 拔插拔插海外华人免费| 欧美日韩国产综合视频在线| 欧美亚洲国产视频| 久久久女人电视剧免费播放下载 | 最好看的2019年中文视频| 无码av免费一区二区三区试看 | 精品一区二区三区免费毛片| 成年人精品视频| 日韩精品中文字幕有码专区| 欧美视频在线免费| 国产人成亚洲第一网站在线播放| 亚洲国产精品第一区二区| 人人狠狠综合久久亚洲婷| 牛牛影视久久网| 成人av影音| 私拍精品福利视频在线一区| 都市激情综合| a毛片不卡免费看片| porn视频在线观看| 十九岁完整版在线观看好看云免费| 日韩亚洲欧美视频| 久久综合久久网| 国产欧美日韩网站| 欧美黄色一级片视频| 在线视频xx| 人成在线视频| jizzjizz在线观看| 精灵使的剑舞无删减版在线观看| 麻豆av在线导航| 亚洲十八**毛片| 日本中文字幕中出在线| 热久久精品国产| 高清欧美一区二区三区| 狠狠躁夜夜躁人人爽超碰91| 中文字幕亚洲一区二区va在线| 精品高清一区二区三区| 色综合天天综合网天天狠天天| 精品成人av一区| 欧美老肥妇做.爰bbww| 欧美成人性福生活免费看| 在线观看国产一区二区| 日韩精品在线视频观看| 麻豆成人在线看| 国产精品一区二区女厕厕| 亚洲一区二区三区毛片| 激情视频一区二区| 欧美极品欧美精品欧美| 九色免费视频| 97人人爽人人澡人人精品| 国产成人夜色高潮福利影视| 亚洲乱码视频| 久久亚洲精品小早川怜子| 亚洲一区二区三区影院| 欧美一区二区三区免费视频| 精品国产自在精品国产浪潮 | 日韩在线成人| 综合天天久久| 99国产精品国产精品久久| 亚洲va国产va欧美va观看| 亚洲二区中文字幕| 国产成人精彩在线视频九色| 免费观看中文字幕| 鲁一鲁一鲁一鲁一澡| 国产av天堂无码一区二区三区| 日本在线观看不卡| 久久久一二三四| 欧美日韩在线播放一区二区| 91精品国产自产在线| 久久久久久亚洲精品中文字幕 | 亚洲免费观看高清完整版在线观看 | 午夜伦理在线视频| 日本精品在线观看| 黑人一区二区三区四区五区| 2023国产精品视频| 亚洲精品国产精品久久清纯直播| 国产精品户外野外| 国产精品无码专区av在线播放| 国产h片在线观看| 日韩极品在线观看| 亚洲乱码国产乱码精品精的特点 | 一区二区三区成人精品| 久久精品色综合| 91精品久久久久久综合五月天| 噜噜噜天天躁狠狠躁夜夜精品 | 欧美激情黄色片| 欧美大片在线观看| 在线播放国产一区二区三区| 日韩免费av在线| 狠狠干视频网站| 爱福利在线视频| 动漫视频在线一区| 蜜桃av噜噜一区二区三区小说| 一本到不卡精品视频在线观看 | 日韩中文一区二区| 精品日产免费二区日产免费二区| 国内毛片久久| 亚洲成人一区| 日本高清不卡aⅴ免费网站| 欧美亚州一区二区三区| 日本精品www| 91麻豆精品激情在线观看最新 | 日韩av第一页| 蜜桃视频在线观看视频| 香蕉久久国产| 自拍偷拍亚洲一区| 一二三中文字幕在线| 六月丁香婷婷久久| 日韩av色在线| 亚洲欧美一区二区三区| 亚洲精品中文在线观看|