linux下的檔案描述符
輸入輸出標準說明
檢視乙個程序開啟了那些檔案;
語法:ll /proc/程序id/fd
測試:step1: 開啟終端,shift
+ctrl
+t
,開啟第二個終端
step2: 在終端1上,執行
step3: 切換到終端2上,執行
// 終端1
vim /etc/passwd
// 終端2
ps -axu | grep vim
ll /proc/3586/fd
結果如下:
**注:**這些0,1,2,4
就是檔案的描述符。乙個程序啟動時,都會開啟3
個檔案:標準輸入、標準輸出和標準出錯處理。這3 個檔案分別對應檔案描述符為0
、1
和2
也就是巨集替換stdin_fileno
、stdout_fileno
和stderr_fileno
。
檢視和臨時設定乙個程序最多可開啟幾個檔案,(即:乙個程序可以開啟的檔案描述符限制)
ulimit -n // 檢視可以有幾個
ulimit -n 512 // 臨時設定
重定向
輸出重定向
-1.1>
+檔名
: 表示將標準輸出的內容,寫到後面的檔案中,如果此檔名已經存在,將會覆蓋原檔案中的內容
-1.2>>
+檔名
: 表示將標準輸出的內容,追加到後面的檔案中。若重定向的輸出的檔案不存在,則會新建該檔案
eg:
// 將passwd檔案的內容 ,覆蓋到test.txt 檔案中
cat /etc/passwd > test.txt
// 將核心的版本資訊追加到test.txt
uname -a >> test.txt
輸入重定向
-2.1 將命令中接收輸入的途徑由預設的鍵盤改為其他檔案.而不是等待從鍵盤輸入
eg:
grep root < /etc/passwd // 過濾從/etc/passwd上獲得的檔案內容裡符合root的字串
-2.2 mysql中資料匯入
eg:
mysql -uroot -pxiaoye2020 < test.sql // 匯入資料庫
eof
注:eof
本意是end of file
,表明到了檔案末尾。eof
通常與<<
結合使用,錯誤重定向輸出
-4.12>
: 使用2>
操作符時,會像使用》 一樣覆蓋目標檔案的內容
-4.22>>
: 使用2>>
追加而不覆蓋檔案的內容即可使用2>> 操作符
dev/null
和/dev/zero
-5.1/dev/null
: 把/dev/null
看作黑洞,所有寫入它的內容都會永遠丟失. 而嘗試從它那兒讀取內容則什麼也讀不到. 然而/dev/null
對命令列和指令碼都非常的有用
eg:
echo aaa > "/dev/null" // 將aaa 寫入null檔案
cat /dev/null // 檢視檔案內容 => 看不到任何內容
-5.2/dev/zero
在類unix
作業系統中,/dev/zero
是乙個特殊的檔案,當你讀它的時候,它會提供無限的空字元(null, ascii nul, 0x00)。典型用法是用它來產生乙個特定大小的空白檔案
eg:
// if == input file ; 代表輸入檔案。如果不指定if,預設就會從stdin中讀取輸入
// of == out file ; 代表輸出檔案。如果不指定of,預設就會將stdout作為預設輸出
// bs == bit size ; 代表位元組為單位的塊大小
// count : 代表被複製的塊數
dd if=/dev/zero of=b.txt bs=1m count=50 // 使用dd命令產生乙個50m的檔案
&>
和>&
符號
1>&2
把標準輸出重定向到標準錯誤
2>&1
把標準錯誤重定向到標準輸出
工作中shell指令碼中的>/dev/null 2>&1
是什麼意思?
注:將標準輸出和錯誤輸出全部重定向到/dev/null
中,也就是將產生的所有資訊丟棄.
eg : 把正確和錯誤的訊息輸入到相同的位置
ls /tmp ***x >1.txt 2>&1
// or
ls /tmp***x 2>2.txt 1>&2
5 Linux時間程式設計
include time t time time t calptr 返回距計算機元年的秒數 define time t long include struct tm gmtime const time t calptr 獲取世界標準時間utc struct tm include struct tm ...
5 linux下檢視memcache是否正常
在xshell中輸入ps ef grep mem,顯示結果如下,說明memcache已經啟動。檢視apache 是否安裝成功 在瀏覽器中輸入伺服器的 ip位址 如出現如圖的所示的介面說明 apache 安裝成功。檢視memcache 是否執行正常 在瀏覽器的輸入位址 phpinfo.php 並查詢 ...
Linux學習筆記 5 Linux引導流程解析
linux引導流程 1 按下電源的第乙個啟動步驟 啟動韌體firmware post加電自檢 檢查硬體的載入情況,如,鍵盤,記憶體等。跟作業系統無關。因此,當你新新增了一塊硬碟,第一步就是應該首先進入到韌體模式,檢測韌體是否已經識別出這塊網絡卡!同步軟硬體時鐘 理論上這兩個時間應該是一致的 hwcl...