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:   还原到老版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值