- 博客(20)
- 收藏
- 关注
原创 (1) cat
总结在前面: cat 作为过滤器: 将从标准输入的数据 复制到 标准输出(It reads from standard input and writes to standard output without modifying the data) 。 但是,作为过滤器,只能从 ‘一个文件=也即是标准输入’中,获取数据, 然后输出到标准输出中。 而作为普通命令,却是可以读取多份’数据’,并将数据
2016-09-27 15:52:20
384
原创 shell filter的基本概念
过滤器(filter)概念: 当创建管道线的时候,必须使用”能够从标准输入读取文本(每次一行)数据,并同时间向标准输出写入文本(每次一行)数据的程序”。 这样的程序成为 “过滤器”,Unix上很多过滤器。 管道线上的 过滤器 可以任意多。目标: 形成通过组合过滤器成管道线来解决问题的能力 ! 过滤器的理解: 1):管道线上的所有命令不都是filter。 $ cat new old
2016-09-27 15:31:43
6403
原创 Shell处理命令的内部机制 和eval
看图说文! 命令行处理解释了Shell如何处理一个命令的内部机制: Shell从标准输入或脚本读取的每一行称为管道线(pipeline),每一行包含一个或多个命令,这些命令用管道符隔开,Shell对每一个读取的管道线都按照下面的步骤处理:1、将命令分割成令牌(token),令牌之间以元字符分隔。Shell的元字符集合是固定不变的,包括空格、Tab键、换行字符、分号(;)、小括号、输入重...
2016-09-20 19:22:26
1242
2
原创 (2)再说管道与shell脚本执行关系
实验1:变量$path的输出是空值。root@37C:~# pwd | read pathroot@37C:~# echo $pathroot@37C:~# 实验2:#代码:$ ls -l1 | while read linedo let count=$count+1echo "line-${count}: $line"done--有输出结果:line-1: 总用量 292line
2016-09-19 17:31:16
1157
原创 (1)Shell 脚本的执行进程
# 当前login-shell的进程PID.root@37C:~# echo $$3016# 测试脚本:root@37C:~# cat run.sh#!/bin/bash # 获取执行shell脚本的非交互shell的PID.echo $$######echo "test1:-------------------------"ps -ef | grep `echo $$`echo
2016-09-19 16:28:50
1225
转载 fork创建子进程利用pipe管道通信
转自:这里。每个进程各自有不同的用户地址空间,任 何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。 如下图所示: 管道 管道是一种最基本的IPC机制,由pipe函数创建:#
2016-09-19 14:00:57
13049
转载 Shell I/O重定向的原理解释
在Unix系统中,每个进程都有STDIN、STDOUT和STDERR这3种标准I/O,它们是程序最通用的输入输出方式。几乎所有语言都有相应的 标准I/O函数 ,比如,C语言可以通过scanf从终端输入字符,通过printf向终端输出字符。熟悉Shell的朋友都知道,我们可以方便地对 Shell命令进行I/O重定向,比如 $find -name "*.java" >testfile.txt 把当前目录
2016-09-18 14:09:55
2239
原创 Shell 条件执行元字符
&& || 元字符只有前面一条命令执行成功了,才执行后面一条,否则,后面命令不执行:$ command1 && command2$ grep a output >/dev/null && sort output只有前面一条命令执行不成功,才执行后面一条,否则,后面的命令不执行:$ command1 || command2$ update || echo ' The update pro
2016-09-18 12:52:07
436
原创 Shell 管道线 和 过滤器
1):基本概念 原始数据从一端进入,然后接着一个程序对数据进行处理,直到另一端,数据以结果形式出现。shell 允许创建一序列命令,命令(也可以是脚本)用’|’ 分隔开来,代表一个程序的标准输出(不包含有标准错误)可以 自动地发送给 下一个程序的标准输入。 阅读方式为: 从左到右的方式 读取。 两个程序之间的连接’|’ 就是 “管道” , “命令序列”称为 管道线。编写习惯: 当编写
2016-09-18 12:24:51
864
原创 Shell I/O重定向
① 默认情况下,在登陆时,shell自动将标准输入设置为 “键盘”,将标准输出和标准错误设置为 “屏幕”。②使用>和>>重定向的要点 对于Shell两大家族: (1)将命令的输出覆盖到文件中 command > filename 例如:ls > file1 命令执行效果: 如果不存在file1,则创建,并写入ls的输出内容; 如果已存在file1,
2016-09-18 11:52:38
358
原创 Shell 初始化文件和注销文件
① 初始化文件被执行的时机Which initialization files are executed and when? There are two general rules, with minor variations. 1.A login shell executes your login file and your environment file. 2.A non
2016-09-17 14:10:21
482
原创 Shell命令行编辑与自动补全
1.命令行编辑修改# 删除字符命令:^H | ^? | Backspace | delete^W :删除一个词。^U : 删除当前光标之前的所有字符。# 移动光标命令:^A : 移动到最开始的位置。^E :移动到最后面的位置。2.命令行的上下移动 bash,tcsh支持,但korn shell & C-shell不支持一下的键: left | right | up | down但是:
2016-09-16 16:15:12
3441
原创 识别内置外置命令以及$PATH认识
如何查看一个新的命令的使用:1.首先,确定该命令是否是内置还是外置。一般使用type命令做辨别。type: type [-afptP] name [name ...] For each NAME, indicate how it would be interpreted if used as a command name.例如:$ type -a timetime 是 shell 关键字ti
2016-09-16 14:34:19
366
原创 Shell登录提示符
Bash家族 & C-Shell家族常见的提示结束符:所有的shell都包含有两部分: 字符+一个空格(空格属于提示的一部分)"SHELL" "PROMPT-CHARACTER"Bash $Korn Shell $C-Shell %Tcsh % or >Super-user #如何修改登录提示符?所有的 B-SH
2016-09-16 13:58:30
1021
原创 linux 显示字符
linux中字符的类型: a.键入即可看到:字母数字字符。 b.非元字符: 非字母数字字符,但也不是元字符。 c. 元字符。元字符相关概念: 1.元字符:拥有特殊含义的字符,如 $ ; & 。2.引用元字符:在输入时,告诉shell,希望按字面含义解释字符,而不使用其特殊含义。引用元字符有三种种方式 : (1) 使用反斜线引用单个字符,反斜线引用最强。#当我们使用反斜线引用单个字符时,称
2016-09-15 01:53:50
913
原创 Shell 变量和选项
①:变量的概述!变量的概念介绍: 变量:一个用于存储数据的实体 ,由 变量名 和 值 两部分组成!变量名:用来引用变量的标识符 命名的规则:字母 A-z ,数字(不能为开头)0-9 ,下划线。变量值:存储在变量中的值。 值得类型:值只有一种数据类型: “字符” 。引用变量的值: $变量名 变量的默认值:创建一个新的变量,若是没有赋值,那么变量值被置为 ‘NULL’ 。操作变量: 变量有四种
2016-09-14 17:43:07
330
原创 Shell 家族-族谱
看图! shell 有 bourne shell和 c shell两大家族。1.先看bourne shell的历史:sh shell阶段: 标准化阶段,都向后兼容sh shell 2.再看看 c-shell 家族:3.各个Unix-like系统上shell程序的命名。On some Unix systems, the various shells are all installed under
2016-09-14 15:58:39
508
原创 Shell 命令的语法
如何学习一条Unix-like 命令:命令的结构组成:(1,命令本身 2,选项 3,参数 ) A good approach to learning a new command is to answer the following three questions: • What does the command do? • How do I use the options? • H
2016-09-14 12:58:54
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人