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不用等待命令控制台的返回,也就是让其异步执行了。别搞混乱了,不同情况下它的作用是不同的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章