瞭解個東西叫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不用等待命令控制檯的返回,也就是讓其異步執行了。別搞混亂了,不同情況下它的作用是不同的。