linux Shell指令碼學習匯集的問題

2021-07-27 05:03:52 字數 1643 閱讀 1829

linux指令碼

setenforce什麼意思

setenforce是linux的selinux防火牆配置命令 執行setenforce 0 表示關閉selinux防火牆。

setenforce命令是單詞set(設定)和enforce(執行)連寫,另乙個命令getenforce可檢視selinux的狀態。

shell程式設計中「esac」是什麼意思

shell 的風格,用倒序的字母單詞和 正序的單詞配對。

比如 if 語句, 結束時用 fi 來配對

esac是和case配對的,是多路分支的語句,類似於c中的 switch/case 語句,大致形式如

case $var in

***) 

執行動作

;;yyy)

執行動作

;;esac

linux中shell變數$#,$@,$0,$1,$2的含**釋: 

變數說明: 

$$ shell本身的pid(processid) 

$! shell最後執行的後台process的pid 

$? 最後執行的命令的結束**(返回值) 

$- 使用set命令設定的flag一覽 

$* 所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。 

$@ 所有引數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。 

$# 新增到shell的引數個數 

$0 shell本身的檔名 

$1~$n 

新增到shell的各引數值。$1是第1引數、$2是第2引數…。 

shell指令碼中》/dev/null的含義

service mysqld start > /dev/null

黑洞裝置,專門用來處理需要被丟棄的資訊。是處理不需要輸出資訊的一種常用手段,就不會輸出到你的日誌裡了.因為輸出到「空」裝置裡了.

在linux/unix中,一般在螢幕上面看到的資訊是從stdout (standard output) 或者 stderr (standard error output) 來的。許多人會問,output 就是 output,送到螢幕上不就得了,為什麼還要分成stdout 和 stderr 呢?那是因為通常在 server 的工作環境下,幾乎所有的程式都是 run 在 background 的,所以呢,為了方便 debug,一般在設計程式時,就把 stdout 送到/存到乙個檔案,把錯誤的資訊 stderr 存到不同的檔案。

哪些是正常的output呢,例如程式開始執行的時間,現在正在上線人數等等。

哪些是錯誤的output呢,例如無法找到使用者想要去的url,或者信用卡認證失敗等等。

有了上面這些認知後,回頭來講什麼是 > /dev/null

這是把 stdout 送到 /dev/null 裡面

那什麼是 /dev/null 呢,/dev/null 是 unix/linux 裡的【無底洞】

任何的 output 送去了【無底洞】就再也沒了。相信我,真的沒了!

那麼有人問,在什麼情況下要把 output 送去這無底洞呢?

這裡沒有標準答案,

不過一般呢,要是你不想看到 output 或者output 太多太大了,有可能把硬碟給擠爆了的時候,程式的設計就會考慮把 output 送到 /dev/null 了。

Linux Shell指令碼學習(一)

最近花了一周的時間快速的學習了一下shell指令碼,看的書是 linux shell指令碼程式設計 第三版 僅僅整理了一些筆記,不做技術交流也不算分享,只是作為自己的學習之路的記錄,務戀。shell one 開始學習linux shell指令碼,首日了解了linux命令列 linux shell終端...

linux shell指令碼學習筆記

if command then commands fiif後面的命令,執行後狀態碼返回0,則執行then部分的命令 執行pwd wang wang test pwd home wang test 檢視退出碼 wang wang test echo 0 執行pwda wang wang test pw...

Linux shell指令碼全面學習 一

1.linux 指令碼編寫基礎 1.1 語法基本介紹 1.1.1 開頭 程式必須以下面的行開始 必須方在檔案的第一行 bin sh 符號 用來告訴系統它後面的引數是用來執行該檔案的程式。在這個例子中我們使用 bin sh來執行程式。當編輯好指令碼時,如果要執行該指令碼,還必須使其可執行。要使指令碼可...