Linux学习笔记(5)(标准输入输出)

指令:基本的计算机操作,例如:加法、减法等

程序:指令的集合,一般有执行属性。看作:菜谱

进程:是程序的实例,是程序执行的过程。看作:按照菜谱进行做菜的过程

查看进程:
ps -ef

cat的工作原理:接受输入,然后完整输出。输入什么内容,cat就会输出什么内容。

输入、输出:
程序的默认输入设备,叫标准输入。 stdin    键盘   0

程序的默认输出设备,叫标准输出。 stdout    监视器    1

程序的默认错误输出设备,叫标准错误输出。stderr    监视器  2
输出重定向 >、>>、>|:
把输入内容输出到其他地方。

>:COMMOND > FILE 覆盖重定向

    例如: ls /  > /tmp/ls.txt

    默认覆盖掉>指定文件的内容,

    可以使用 set -C 关闭覆盖功能。set +C打开覆盖功能。

>>:COMMOND >> FILE    追加重定向

>|:COMMOND >| FILE 强势覆盖重定向(忽略set -C设置)
输入重定向:
<:COMMOND < FILE

例如:tr ‘a-z’ ‘A-Z’ < /etc/passwd

<<:heredoc

<<EOF

AAAAAAAAA

CCCCCCC

EOF

错误输出重定向:

COMMOND 2> FILE

COMMOND 2>> FILE
正确/错误输出重定向:
COMMOND > FILE 2> FILE2 正确的信息输出到FILE中,错误的输出到FILE2中

    COMMOND > FILE 2> &1
    COMMOND &> FILE 
    COMMOND >& FILE 
管道:
把第一个命令的输出当做第二个命令的输入,管道值传递正确的信息。
连接左右两个命令,将左侧的命令的标准输出,作为右侧命令的标准输入

    COMMOND | COMMOND2 | COMMOND3



command >file: 标准输出重定向到一个文件,错误仍然输出屏幕 
command >>file: 标准输出重定向到一个文件(追加) 
command 1>file1: 标准输出重定向到一个文件 
command 2>>file2:标准错误重定向到一个文件(追加) 
command 1>file 2>&1:标准输出和标准错误一起重定向到一个文件 
command>>file 2>&1: 标准输出和标准错误一起重定向到一个文件(追加) 
echo命令介绍

功能说明:显示文字。

语   法:echo [-ne][字符串] / echo [–help][–version] 

补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:

-n 不要在最后自动换行 
-e 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: 
        \a 发出警告声; 
        \b 删除前一个字符; 
        \c 最后不加上换行符号; 
        \f 换行但光标仍旧停留在原来的位置; 
        \n 换行且光标移至行首; 
        \r 光标移至行首,但不换行; 
        \t 插入tab; 
        \v 与\f相同; 
        \ 插入\字符; 
        \nnn 插入nnn(八进制)所代表的ASCII字符; 
        -E 取消反斜杠ESC转义 (默认) 
        -help 显示帮助 
        -version 显示版本信息    
xargs命令介绍

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子。

  1. 当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题

    find ~ -name ‘*.log' -print0 | xargs -0 rm -f
    
  2. 获得/etc/ 下所有*.conf 结尾的文件列表,有几种不同的方法能得到相同的结果,下面的例子仅仅是示范怎么实用xargs ,在这个例子中实用 xargs将find 命令的输出传递给ls -l

    find /etc -name "*.conf" | xargs ls –l
    
  3. 假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs 下载所有链接

    cat url-list.txt | xargs wget –c

  4. 查找所有的jpg 文件,并且压缩它

    find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

  5. 拷贝所有的图片文件到一个外部的硬盘驱动

    ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

grep

数据提取程序
用途:在文件中查找并显示包含指定字符串的行

格式:grep  [选项]...  字符  目标文件
-i:查找时忽略大小写
-v:反转查找,输出与模式不相符的行 
-w:按整字查找
-n:显示符合模式要求的行号
-r:递归搜索所有文件
模式
^….:以什么开头
…..$:以什么结尾
# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin# cat /etc/passwd | grep root 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
wc(字数统计)命令

格式:wc [选项]… 目标文件…

-l:统计行数
-w:统计字数 (前后都是空白的一组字符)
-c:统计字符数(可见和不可见的字符)
seq
seq [选项]... 尾数 
seq [选项]... 首数 尾数
seq [选项]... 首数 增量 尾数

选项

-f, --format=格式 使用printf 样式的浮点格式 
-s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n) 
-w, --equal-width 在列前添加0 使得宽度相同
#seq -f"%3g" 9 11 
9 
10 
11

%后面指定数字的位数 默认是%g,%3g那么数字位数不足部分是空格。

seq -s"`echo -e "/t"`" 9 11
tr命令
tr(选项)(参数)

-c或——complerment:取代所有不属于第一字符集的字符; 
-d或——delete:删除所有属于第一字符集的字符; -
s或--squeeze-repeats:把连续重复的字符以单独一个字符表示; 
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

将输入字符由大写转换为小写:

echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world

使用tr删除字符:

echo "hello 123 world 456" | tr -d '0-9‘
hello world 

cat text | tr ‘\t’ ’ ‘

tr  SET1  SET2
用SET2中的字符替换掉SET1中同一位置的字符

使用tr删除字符

tr  -d SET
删除与SET相同的字符
echo 123456 | tr -d 345 
 tr -d '[0-9]’ < /etc/hosts
echo “Tom, I hear a pig!” | tr -d '[a-z]'

使用tr压缩字符

tr  -s SET
将连续相同的字符压缩成一个字符
echo 112233444555666 | tr -s 345


r  -s SET1 SET2
先替换为SET2再压缩
echo 112233444555666 | tr -s 345 abc
echo 112233444555666 | tr 345 abc | tr -s abc
sort命令

默认按每行的第一个字符排序

-n:按整数进行排序
-r:递减排序

指定排序键
指定按哪一列数据进行排序

-k:指定哪一列为排序键
cat tt | sort -n -k4 

指定字段分隔符

-t:指定字段分割符(默认是空格)
sort -t: -n -k3 /etc/passwd 
uniq命令

删除经过排序后的数据的重复记录

通常和sort连用

sort -n tt | uniq

数据的实例统计

-c:显示文件中每行连续出现的次数

cat tt | uniq -c

-u:只显示不重复的行

cat tt | uniq –u

-d:只显示重复的行

cat tt | uniq -d
cut命令

从文本文件或者文本流中提取文本列

cut -选项  提取范围   文本文件
-c:从指定提取范围中提取字符
-f:从指定提取范围中提取字段

提取范围

n:第n项
n-:第n项到行尾
-m:行首到第m项
n,m:第n项和第m项
n-m:第n项到第m项

cut -c命令

ls -l | cut -c 10
who | cut -c 20-40
cut -c -10 /etc/passwd

cut -f命令

-d:指定分隔符默认是Tab
cut -d “:” -f 1,7 /etc/passwd
who | cut  -d '  '  -f1,6
diff命令

比较两个文件之间的差异
输出结果为两个文件的不同之处

diff命令的输出格式
旧版本diff

-u:统一格式
-r: 递归比较目录下的所有文件

利用diff命令生成补丁

diff -u test1 test2 > test.patch

patch命令:

用途:用来打补丁修补文件

格式:patch  [选项]  原始文件 < 补丁文件
-pN: N表示忽略N层路径
-R:   还原到老版本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
共享本人近几年学习工作总结文档。 J2EE学习笔录 2 第一章:JAVA的输入输出流 2 1.1:概述: 2 1.2:主要输入输出类 3 1.3例程 建立聊天室: 5 第二章:JAVA设计模式 18 2.1:创建型设计模式 19 2.2:结构型设计模式 32 2.3:行为型设计模式 83 第三章:JAVA基本语法 118 3.1:语言基础知识 118 3.2:声明和访问控制 120 3.3:运算符和赋值 121 3.4:流程控制、异常处理和断言 121 3.5:面向对象、重载和重写、构造函数和返回类型 121 3.6:Java.lang-----Math类、字符串和封装类 121 3.7:对象和集合 121 3.8:内部类 125 3.9:线程 125 第四章:面向对象基本概念 155 4.1:统一建模语言UML 155 4.2:面向对象设计原则 165 第五章:软件系统架构设计 167 第六章:J2EE专题学习 167 6.1:EJB 167 6.2:JMS 172 6.3:Socket 182 6.4:WebService 189 6.5:集群分布式应用(以JBOSS为例) 190 6.6:JNLP原理及应用: 190 6.7:Log4原理及应用: 191 6.8:JFreeChat原理及应用: 191 6.9:几种常用协议 192 7.0:SOA原理 200 8:搜索引擎专题 205 9:CMS(内容发布管理系统)专题 206 10:OA引擎专题 207 11:AJAX专题 207 第七章:JSP和SERVLETS 207 7.1:Jsp 207 7.2:Servlet 212 第八章:J2EE开发框架 212 第九章:J2EE开发规范 218 9.1:编码规范 218 9.2:文档资料规范 218 第十章:系统安全篇: 218 10.1:java安全结构 218 10.2:通讯安全结构 222 第十一章:Hibernate、Spring简介 222 11.1:Hinernate原理概述 222 11.2:Spring原理 226 第十二章:数据库 230 12.1:数据库知识 230 12.2:数据仓库 230 第十三章:软件工程过程方法 231 13.1:软件工程概述 231 13.2:软件工程过程主要方法 232 第十四章:操作系统 247 14.1:LINUX操作系统 247
第1章 BashShell命令 6 1.1 Shell提示符 6 1.2 文件与目录Shell命令 7 1.2.1 更改目录命令(cd) 7 1.2.2 列表命令(ls) 7 1.2.3 操作文件命令 10 1.2.4 目录处理命令 14 1.2.5 查看文件内容命令 15 1.3 监控程序 20 1.3.1 进程查看 20 1.3.2 实时进程监控 22 1.3.3 停止进程 24 1.4 监控磁盘空间 25 1.4.1 挂载介质 25 1.4.2 使用df命令 26 1.4.3使用du命令 27 1.5 操作数据文件 28 1.5.1 数据排序(sort) 28 1.5.2 搜索数据 (grep) 30 1.5.3 压缩数据 30 1.5.4 归档数据(tar) 33 1.6 使用Linux环境变量 34 1.6.1 设置环境变量 34 1.6.2 默认的shell环境变量与path变量的设置 37 1.7 Linux文件权限 40 1.7.1 Linux安全性 40 1.7.2 使用Linux用户组 46 1.7.3 解码文件权限 47 1.7.4 修改安全设置 49 1.8 vim编辑器 52 第2章 基本脚本编译 54 2.1 创建脚本与使用变量 54 2.1.1 创建脚本 54 2.1.2 使用变量 55 2.2 重定向输入输出与数学计算 57 2.2.1 输出重定向 57 2.2.2 输入重定向 58 2.2.3 管道 58 2.2.4 数学计算 58 2.3 退出脚本 60 第3章 结构化命令 61 3.1 if语句 61 3.1.1 if-then语句 61 3.1.2 if-then-else语句 61 3.1.3 嵌套if语句 62 3.2 if条件语句 63 3.2.1 数值比较 63 3.2.2字符串比较 64 3.2.3 文件比较 65 3.2.4 复合条件检查 65 3.3 if-then的高级特征与case命令 66 3.3.1 使用双圆括号 66 3.3.2 使用双方括号 67 3.3.3 case命令 67 3.4 for命令 67 3.4.1 读取列表 68 3.4.2 读取变量与读取命令 69 3.4.3 改变字段分隔符与使用通配符读取目录 69 3.4.5 C式的for命令 70 3.5 while、until命令 71 3.5.1 使用多条测试命令 71 3.5.2 until命令与循环嵌套 72 3.6 文件数据的循环与控制循环 73 3.6.1 文件数据的循环 73 3.6.2 break命令 73 3.6.3 continue命令 75 第4章 处理用户输入与显示数据 76 4.1 命令行参数与特殊的参数变量 76 4.1.1 读取参数 76 4.1.2 读取程序名称 77 4.1.3 测试参数 77 4.1.4 参数计数 77 4.1.5 获取所有数据 78 4.2 移位与选项 79 4.2.1 移位 79 4.2.2 找出选项 79 4.2.3 使用getopt命令 81 4.2.4 更高级的getopts命令 83 4.2.4 标准化选项 84 4.3 获取用户输入 84 4.3.1 基本读取 84 4.3.2 计时 85 4.3.3 默读与文件读取 85 4.4 显示数据 86 4.4.1 标准文件描述符 86 4.4.2 重定向错误 87 4.4.3 临时重定向 88 4.4.4永久重定向 88 4.4.5 在脚本中重定向输入 89 4.5 创建自己的重定向 90 4.5.1 创建输出文件描述符 90 4.5.2 重定向文件描述符 90 4.5.3 创建输入文件描述符 91 4.5.4 创建读取/写入文件描述符 91 4.5.5 关闭文件描述符 92 4.5.6列出开发文件描述符 92 4.5.7禁止命令输出 94 4.6 使用临时文件 94 4.6.1 创建本地临时文件 94 4.6.2 在/temp中创建临时文件 95 4.6.3 创建临时目录 96 4.6.4 记录消息 96 第5章 脚本控制 97 5.1 处理信号 97 5.1.1 Linux信号回顾 97 5.1.2 生成信号 97 5.1.3捕获信号 99 5.1.4捕获脚本退出 99 5.1.4移除捕获 100 5.2 以后台模式运行脚本 100 5.3 作业控制 102 5.3.1查看作业 102 5.3.2重新启动停止的作业 103 5.4 nice与renice命令 104 5.4.1 nice命令 104 5.4.2 renice命令 104 5.5 定时运行脚本 105 5.5.1使用at命令调度作业 105 5.5.2使用batch命令调 107 5.5.3 调用定期脚本 107 5.6 从头开始 109 5.6.1在启动时启动脚本 109 5.6.2随新shell一起启动 109 第6章 创建函数 110 6.1 基本脚本函数 110 6.1.1 创建函数 110 6.1.2 使用函数 110 6.2 返回值 111 6.2.1 默认退出状态 111 6.2.2 使用return命令 111 6.2.3 使用函数输出 112 6.3 在函数中使用变量 112 6.3.1 向函数传递参数 112 6.3.2 在函数中处理变量 113 6.4 数组变量与函数 114 6.4.1 向函数传递数组 114 6.4.2从函数返回数组 115 6.5 函数递归与创建库 116 6.5.1函数递归 116 6.5.2 创建库 116 6.6 在命令行中使用函数 117 6.6.1在命令行创建函数 117 6.6.2在.bashrc文件中定义函数 117 6.7 select命令使用 119 第7章 sed、gawk介绍与正则表达式 120 7.1 sed编辑器 120 7.1.1 在命令行中定义编辑器命令 120 7.1.2 在命令行中使用多个编辑器命令 121 7.1.3 从文件读取编辑器命令 121 7.2 gawk程序 122 7.2.1 gawk命令格式 122 7.2.2 自命令行读取程序脚本 122 7.2.3 使用数据字段变量 123 7.2.4 在程序脚本中使用多个命令 124 7.2.5从文件读取程序 124 7.2.6 在处理数据之前运行脚本 125 7.2.7 在处理数据之后运行脚本 125 7.3 sed编辑器基础知识 126 7.3.1 更多替换选项 126 7.3.2 使用地址 127 7.3.3 删除行 128 7.3.4 插入和附加文本 129

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值