脚本定制

. 或者 source:
读取文本文件并执行(在当前shell解释并执行) source ./ld
总用量 8
-rw-------. 1 root root 1223 10月 2 21:14 anaconda-ks.cfg
-rw-r--r-- 1 root root 18 10月 4 19:21 ld /bin/bash file
新建子shell并执行 1. #!/bin/bash
2. chmod +x file
3. ./file
新建子shell并直接执行

重定向

输出重定向

1:标准输出流:
ls -l 1>ld1:将输出写到ld文件中
ls -l 1>>ld1:将输出追加到ld文件中 2:错误输出流:
ls -l /god 2>ld2:没有god文件,将错误输出写到ld文件中 输出到同一文件中
ls -l 1>ld 2>&1
简写:ls -l >& ld ls -l &> ld 输入重定向 cat 0<file cat 0<<头部
>a
>b
>头部
遇到头部就结束 cat 0<<<字符串

exec命令

exec [命令 [参数 ...]] [重定向 ...]

exec与source的区别:
shell的内建命令exec并不启动新的shell,而是用要被执行的命令替换当前的shell进程,
并且将旧进程的环境清理掉,而且exec命令执行后,其它命令不再执行,自动退出shell。
为了避免这个影响我们的使用,一般将exec命令放到一个shell脚本里面,
当执行到exec后,该子脚本进程就被替换成了相应的exec的命令。 -exec 后面跟的是linux的 command 命令,exec命令以分号(;)结束,该分号前面要放反斜杠(\)转义 。
find / -name ld -exec cat {} \;
{} 花括号代表前面的命令执行的结果。 exec <file
将file中的内容作为exec的标准输入 exec >file
将file中的内容作为标准写出 exec 3<file
将file读入到fd3中 sort <&3
fd3中读入的内容被分类 exec 4>file
将写入fd4中的内容写入file中 ls >&4
ls将不会有显示,直接写入fd4中了,即上面的file中 exec 5<&4
创建fd4的拷贝fd5 exec 3<&-
关闭fd3

子进程

管道(|)会触发子进程。

fork()是linux的系统调用,用来创建子进程(child process):
子进程是父进程(parent process)的一个副本,从父进程那里获得一定的资源分配以及继承父进程的环境。 环境变量(传给子进程的变量,遗传性是本地变量和环境变量的根本区别)只能单向从父进程传给子进程:
不管子进程的环境变量如何变化,都不会影响父进程的环境变量。 写时复制:
父进程和子进程共享页面(无法修改)而不是复制页面。
父进程和子进程何时试图写一个共享的页面时,内核就把这个页复制到一个新的页面中并标记为可写。
原来的页面仍然是写保护的。
当其它进程试图写入时,内核检查写进程是否是这个页面的唯一属主。如果是,它把这个页面标记为对这个进程是可写的。 fork()函数用于创建子进程,调用完成以后父进程的虚拟存储空间被拷贝给了子进程的虚拟存储空间,因此也就实现了共享文件等操作:
虚拟的存储空间映射到物理存储空间的过程中采用了写时拷贝技术,
该技术主要是将多进程中同样的对象(数据)在物理存储其中只有一个物理存储空间,
而当其中的某一个进程试图对该区域进行写操作时,
内核就会在物理存储器中开辟一个新的物理页面,将需要写的区域内容复制到新的物理页面中,然后对新的物理页面进行写操作。
这时就是实现了对不同进程的操作而不会产生影响其他的进程,同时也节省了很多的物理存储器。

最新文章

  1. knockoutjs扩展与使用
  2. java学习笔记
  3. Winform开发框架中实现同时兼容多种数据库类型处理
  4. net对XML增删改查
  5. HTTP协议及其请求头分析
  6. Spring简介和基础
  7. 通过zabbix自带模板监控windowsPC机器
  8. 关于StrutsTypeConverter类型转换器
  9. docker学习笔记17:Dockerfile 指令 ONBUILD介绍
  10. iOS 自定义导航栏笔记
  11. Android 性能测试——Memory Monitor 工具
  12. Spring bean 生命周期验证
  13. break 与 continue
  14. Java第4次实验提纲(面向对象2-继承、多态、抽象类与接口与Swing)
  15. elementui左侧菜单栏刷新后还是原来的状态
  16. #8 Python网络编程(一)
  17. jquery chrome中取select 的值一就返回了
  18. js------数组随机排序和去重
  19. Leetcode 546. Remove Boxes
  20. linux rpm yum 安装 软件

热门文章

  1. 2019华工校赛 B - 修仙时在做什么?有没有空?可以来炼丹吗?
  2. Codeforces 1163E 高斯消元 + dfs
  3. 热修复框架Tinker的从0到集成之路(转)
  4. Go基础之基本数据类型
  5. 深入理解Magento – 第十章、十一章(英文原版地址,仅供参考)
  6. 【Redis】分布式锁RedLock
  7. Shiro学习(23)多项目集中权限管理
  8. NOIp2018集训test-10-23
  9. (转)openfire插件开发(二) 基于web的插件开发
  10. (转)Openfire 中SASL的认证方式之:PLAIN,DIGEST-MD5,anonymous