linux系統文件描述符

瞭解個東西叫fd 文件描述符,也就是window系統下的hwnd句柄。
fd 是用一個數字表示的。

系統中維護了每個用戶,進程,系統級別的用戶文件描述符數量權限限制,即一個進程可以開啓多少個文件描述符,一個用戶可以可以開啓多少個文件描述符,一個進程可以開啓多少個文件描述符。
以下命令可以查看系統級別的文件描述符上限(你甚至可以理解爲系統可以打開多少io設備)

#命令1
sysctl -a | grep file-max
#命令2
cat /proc/sys/fs/file-max

修改

vim /etc/sysctl.conf
#修改或添加
fs.file-max=value
#然後使用sysctl -p重新讀取參數

以下命令可以查看用戶級別限制

cat /etc/security/limits.conf
ulimit -n

修改用戶級別限制

vim /etc/security/limits.conf

可以看到,*號代表用戶也可以填特定用戶,nofile表示用戶限制nproc表示進程限制

*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096

shell終端中描述符0-2是標準輸入輸出以及錯誤輸出

0 stdin 標準輸入
1 stdout標準輸出
2 stderr 錯誤輸出

我們可以經常看到2>&1這樣的shell表示什麼呢?
表示講錯誤重定向到標準輸出,那麼不加這個&有什麼差別呢?
差別就是不加& 會被寫入一個文件中1 中。

  • &符號作用也就呼之欲出了,就是指向的意思後面一定需要跟一個描述符
  • 當然在shell終端中運行命令最後加一個 & 表示異步的意思,即shell不用等待命令控制檯的返回,也就是讓其異步執行了。別搞混亂了,不同情況下它的作用是不同的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章