Linux笔记——输入输出重定向、描述符等
重定向输出和输入
输出:1> 1>> 等价于 > >> 输出重定向。相对于输入重定向来说,输出重定向更常用,输出重定向使用户能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上,这种功能使用于多种情况,例如,如果某个命令的输出很多,在屏幕上不能完全显示,即可把他重定向到一个文件中,稍后在用文本编辑器来打开这个文件为输入、输出和错误重定向,通常情况下重定向到一个文件。
正确输出
将正确输出打印到文件中,将错误输出打印到屏幕(错误输出相反)
追加
错误输出
输入: < 实现输入重定向
实例练习
#/dev/null------它是空设备,也称为位桶(bit bucket),外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
#/dev/zero,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的
要多的多。他可以用于向设备或文件写入字符串0。
什么是文件描文件描述符:
文件描述符是非负整数。内存
内核利用文件描述符来访问文件。
打开现存文件或新建文件时,内核会返回一个文件描述符。
读写文件也需要使用文件描述符来指定待读写的文件。
系统级别
[[email protected] ~]# cat /proc/sys/fs/file-max
95095
用户级别
[[email protected] ~]# ulimit -n
1024
[[email protected] ~]# vim /etc/security/limits.conf
#<domain> <type> <item> <value>
#
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
第一列表示用户和用户组(@开头用户组)
第二列表示软限制还是硬限制。
hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。
第三列表示限制的资源类型。
core是内核文件,nfile是文件描述符,nproc是进程,一般情况下只限制文件描述符数和进程数就够了
第四列表示限制的最大值。
查看系统当前打开的文件描述符数量
[[email protected] ~]# cat /proc/sys/fs/file-nr
1280 0 95095
第一个数表示当前系统分配后已使用的文件描述符数,
第二个数表示分配后未使用的(内核2.6版本中这个值总是为0,这并不是一个错误,它意味着已经分配的文件描述符总会被使用),
第三个数等于最大值file-max。
查看某个进程打开的文件描述符数量
yum install lsof -y #安装lsof
[[email protected] ~]# lsof -p 7919 |wc -l
命令拼接
; 不存逻辑判断,即使前一个命令执行失败,后面的命令依然执行
[[email protected] ~]# ls -T;echo "123"
&& 存在逻辑判断,前一个命令执行成功,后一个命令才会执行
|| 存在逻辑判断,前一个命令执行不成功,后一个命令也会执行
``: 解析shell命令
'': 强引用,所见即所得
"": 弱引用,会解析变量
{}:做扩展
* : 匹配任意长度的任意字符