一、IO重定向

1、数据输入:键盘---标准输入,但并不是唯一输入方式

echo “” | passwd –stdin username   #同时添加用户和密码

while line;do
  循环体...$line
done < /etc/passwd

2、数据输出:显示器---标准输出,但并不是唯一输出方式

 ls /etc/ > a.txt

3、fd文件标识符:0-9,被定义的文件标识符有0,1,2   作用相当于给文件分类

0 代表标准输出

1 代表标准输入

2 代表标准错误输出(标准错误)

4、常见重定向符号:

a) 标准输出:

> : 覆盖重定向(非常危险)

  关闭覆盖重定向  set -C 这个命令使不能覆盖  set +C启用

>| :强制重定向

>> :追加重定向

b) 标准输入:

<  输入

<<  将多行数据同时输入

cat >> a.txt <<EOF

tr : 替换文件内容

#把passwd文件里的abc都替换为ABC,输出到passwd.bak中,abc是单个字符逐一匹配替换的
tr abc ABC < /etc/passwd  > /etc/passwd.bak

c) 错误输出:

2>   :不需要输出内容,只输出状态,把输出内容重定向到/dev/null

2>>  : ls 12345 2>> a.txt

d) 混合输出,无论正确错误都输出重定向

&>

&>>

ls /etc/  &>  /dev/null

二、管道符

将前一个命令的执行结果交给后一个命令执行

【Linux思想:结合小功能实现大功能】

free -m | grep “^Men” | cut -d” “ -f19
free -m | grep "^Mem" | awk '{print $3}'

命令:tee   一路输入,两路输出 (屏幕打印一次,保存文件一次)

如果没有文件,会创建,默认如果文件存在内容,会覆盖

练习:

将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中;

head - /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out

将登录至当前系统上用户信息汇总的后3位信息转换为大写后保存至/tmp/who.out文件中;

who | tail - | cut -d' ' -f1 | tr [[:lower:]] [[:upper:]] | tee /tmp/who.out

三、文本处理工具

1、wc(word count)文本统计

用法:wc textfile 查看行数、字符个数、文件大小、文件名

参数:

  -l:行数

  -w:字符数

  -c:文件大小

2、cut  文件分割

  -d 指定分隔符

  -f  指定提取哪一列

- -output-delimiter=’xxx’ 将输出的分隔符,替换为自己想用的分隔符

cut的局限性

不能同时指定多个分隔符

不能做高级的格式化输出

3、sort 排序,按照ASCII排序

参数:

  -r 逆序

  -n 以数值大小排序

  -f 忽略字符大小写

  -t 指定分隔符

  -k 指定第几段进行排序

  -u 排序去重复

4、uniq 去重

连续且相同的才视为重复

建议先排序,后去重

参数:

  -c 统计某些字符出现的次数

  -d 只显示重复的行

Linux--shell重定向与文件处理命令--02的更多相关文章

  1. Linux输入输出重定向和文件查找值grep命令

    Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...

  2. 18 shell 重定向以及文件描述符

    1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...

  3. Linux下几种文件传输命令

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  4. shell 重定向以及文件描述符

    1.对重定向的理解 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 输入方向就是数据从哪里流向程序.标准输入 ...

  5. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  6. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

  7. 【Linux学习】Linux文件系统5—查看文件内容命令

    Linux文件系统5-查看文件内容命令 cat: 由第一行开始显示文件内容 more: 一页一页地显示文件内容,空格键可以继续翻页显示下一页内容 less:与more类似,但是可以往前翻页 head: ...

  8. [转帖]Linux下主机间文件传输命令

    Linux下主机间文件传输命令 https://yq.aliyun.com/articles/53631?spm=a2c4e.11155435.0.0.580ce8ef4Q9uzs   SCP命令: ...

  9. [转帖]linux下的find文件查找命令与grep文件内容查找命令

    linux下的find文件查找命令与grep文件内容查找命令 https://www.cnblogs.com/shileima/p/8431393.html 在使用linux时,经常需要进行文件查找. ...

随机推荐

  1. 站在巨人的肩膀上看Servlet——原来如此(更适合初学者认识Servlet)

    前言: 有段时间没更新博客了,这段时间因为要准备考试,考完试后又忙了一阵别的事,一直没能静下心来写博客.大学考试真是越来越恶心了,各种心酸,那酸爽,够味.不过还好,马上就要大三了,听大三学长学姐说大三 ...

  2. 常见Code Review过程中发现的问题-续

    上一篇列举了一些比较常见的Code Review问题列表,文末有链接,可追溯查看.本篇为上篇的姊妹篇,继续列举一些上篇遗漏的或不易发现的问题清单,希望能整体性把一些常见的问题表述出来. 测试数据不具有 ...

  3. MS SQL SERVER数据导入MySQL

    1.sql server导出到xls,再导入到mysql中.亲测,单表数据量到百万以后,导出异常,可能由其它原因导致,没细纠.此种方式需要来回倒腾数据,稍繁琐. 2.采用kettle第三方的ETL工具 ...

  4. Bzoj 3874: [Ahoi2014&Jsoi2014]宅男计划 三分+贪心

    3874: [Ahoi2014&Jsoi2014]宅男计划 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 861  Solved: 336[Su ...

  5. [原创]Flask+uwsgi+virtualenv+nginx部署配置

    1.创建工程python2.7版本虚目录: #virtualenv -p /usr/bin/python2.7 CDN_resource #cd CDN_resource #source ./bin/ ...

  6. 写给后端同学的vue

    安装环境 安装vue-cli 脚手架 1. 安装nodejs环境 下载地址: (nodejs)[https://nodejs.org/zh-cn/download/] 安装(略) 2. 安装vue-c ...

  7. dijkstra算法学习笔记

    dijkstra是一种单源最短路径算法,即求一个点到其他点的最短路.不能处理负边权. 最近某种广为人知的算法频繁被卡,让dijkstra逐渐成为了主流,甚至在初赛中鞭尸了SPFA(? dijkstra ...

  8. 洛谷 P1635 跳跃

    题目: 题目背景 NOIP即将迎来周年华诞.在这一个春秋的历程里,NOIP领导全国oier,建设高效.稳定.快捷.开放的社会主义现代化OI.在新的一年里,YZOJ将再接再厉,积极探寻成长之路,更好地为 ...

  9. 小白学python之整型,布尔值,十进制二进制转换和字符串详解for循环!

    整型与字符串转化 十进制转二进制. python2,存在int 整型和long(长整型),在python3里就是int/获取的是浮点数 小数 print(bin(15)) 这样可以通过代码来计算十进制 ...

  10. python 2.7 - 3.5 升级之路 (一) : 准备阶段开发环境 -- pip3, vitualEnv, pycharm

    背景 由于之前项目采用的版本是Python2.7, 考虑到Python 2.7 到明年(2020年后将会停止更新),以及为了更好的适应中文和拥抱新的特性.我们决定将其从python 2 升级到最新的 ...