cmd:ls-al
1.普通文件(regular file) 第一个字符为[-]
纯文本档[ASCll]
二进制文件
[binary]
数据格式文件[data]
系统登入登出
last文件读取
2.目录文件
第一个手写字符为[d]
3.链接文件
第一个 属性为[l] 软链接,快捷方式
4.设备文件
第一个属性为[b] 块设备,硬盘或者软盘,随机的硬盘不同块读写,成组设备
第一个属性为[c] 串口或者设备文件,键盘,鼠标等
5.数据接口文件sockets 网络数据承接,第一个属性为[s] man socket
man fifo
6.数据传送文件 解决多个程序同时读取一个文件造成的错误,第一个字符为[p
7.linux黑洞设备 dev/null,什么信息输出给这个设备都会被吃掉
二,解除限制
其中ulimit -n用于限制进程能够打开的文件描述符的最大数目。因为任何设备在linux下都是文件,通信的接口也有专门的接口文件负责,所以linux下进程tcp链接的最大并发量也受限于该值。
其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目)。
这个值可用ulimit 命令来修改,但ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效.
![image.png](https://static.studygolang.com/181222/48fada8cdd69e8903d7577056a9fb2c6.png)
3种终端输出
shell是多线程的,里面是fork进程,参考unix高级环境编程
这些默认的输出,输入都是linux系统内定的,我们在使用过程中,有时候并不希望执行结果输出到屏幕。我想输出到文件或其它设备。这个时候我们就需要进行输出重定向了。
重定向多项规则:
1、shell遇到”>”操作符,会判断右边文件是否存在,如果存在就先删除,并且创建新文件。不存在直接创建。 无论左边命令执行是否成功。右边文件都会变为空。
2、“>>”操作符,判断右边文件,如果不存在,先创建。以添加方式打开文件,会分配一个文件描述符[不特别指定,默认为1,2]然后,与左边的标准输出(1)或错误输出(2) 绑定。
3、当命令:执行完,绑定文件的描述符也自动失效。0,1,2又会空闲。
4、一条命令启动,命令的输入,正确输出,错误输出,默认分别绑定0,1,2文件描述符。
5、一条命令在执行前,先会检查输出是否正确,如果输出设备错误,将不会进行命令执行
每条shell执行都会有返回值,0代表失败,1代表成功,echo ?#查询
有疑问加站长微信联系(非本文作者)