Linux第八天的学习记录

存疑概念:
。$符号用法
提醒:

重要知识点:
第十章 认识与学习BASH
10.4 Bash Shell的操作环境
10.4.5通配符与特殊符号
* 代表0到正无穷个任意字符
? 代表一定有一个任意字符
[] 代表一定有一个在括号内的字符
[-] 代表在编码顺序内所有字符,例子,[0-9]代表0到9内所有字符
[^] 代表反向选择,例如[^abc]代表,一定有一个字符,只要是非abc的其他字符就接受

10.5 数据流重导向
10.5.1什么是数据流重导向
。standard output与standard error output
标准输出:执行指令所回传的正确信息
标准错误输出:执行指令失败后,所回传的错误信息

数据重导向可以将标准输出和标准错误输出分别传送到其他文件或装置中去
1.标准输入 代码为0,使用<或<<
2.标准输出 代码为1,使用>或>>
3.标准错误输出 代码为2,使用2>或2>>

1> 以覆盖的方法将正确数据输出到指定文件或装置上
1>> 以累加的方法将正确数据输出到指定文件或装置上
2> 以覆盖的方法将错误数据输出到指定文件或装置上
2>> 以累加的方法将错误数据输出到指定文件或装置上
find /home -name .bashrc > list_right 2> list_error //写到两个文件
find /home -name .bashrc > list 2>&1 //写到同一文件
find /home -name .bashrc &> list //同上

。/dev/null垃圾桶黑洞装置与特殊写法
。standard input:<与<<
将原本由键盘输入的数据,改为由文件内容取代

cat > myfile //建立myfile,键盘键入内容
cat > myfile1 < myfile //建立myfile1,mifile键入内容
cat > myfile << "eof" //建立myfile,键盘键入内容,eof为文件尾
10.5.2命令执行的判断依据:;,&&,||
。cmd;cmd(不考虑指令相关性的连续下达指令)
。$?(指令回传值)与&&或||
若一个指令执行正确,在Linux底下会回传一个$?=0的值
。cmd1 && cmd2
1.若cmd1执行完毕,且正确执行,则执行cmd2
2.若cmd1执行错误,不执行cmd2
。cmd1 || cmd2
1.若cmd1只执行完毕且正确,不执行cmd2
2.若cmd执行,且错误,执行cmd2

10.6 管线命令
。管线命令仅能处理前面一个指令传来的正确信息
。管线命令必须能够接受来自前一个指令的数据成为standard input继续处理才行
10.6.1撷取命令:cut,grep
。cut
cut -d'分割字符' -f fields //用于有特定分割字符
cut -c 自符区间 //用于排列整齐的讯息

-d 后面接字符,与-f共用
-f 依据上分割字符,将一段讯息分割成为数段,-f读出第几段的意思
-c 以字符的单位取出固定字符区间

。grep
grep -acinv --color=auto '搜寻字符串' filename

-a 将binary文件以text文件的方式搜寻
-c 计算找到的'搜寻字符串'的次数
-i 忽略大小写的不同,所以大小写视为相同
-n 顺便输出行号
-v 反向选择,找出没有搜寻字符串的那一行
--color=auto 将找到的关键字部分加上颜色的显示
10.6.2排序命令:sort,wc,uniq
。sort
sort -fbMnrtuk file/stdin

-f 忽略大小写差异
-b 忽略最前面空格部分
-M 以月份的名字来排序
-n 使用纯数字进行排序
-r 反向排序
-u 相同数据只出现一行
-t 分隔符,预设为tab
-k 以那个(分隔符分割的字段)进行排序的意思

。uniq
uniq -ic

-i 忽略大小写的不同,所以大小写视为相同
-c 进行技术

。wc
wc -lwn

-l 仅列出行
-w 仅列出字
-m 多少字符

默认输出顺序行、字数、字符数
10.6.3双向重导向:tee
tee -a file

-a 以累加的方式,将数据加入file当中

使屏幕有讯息,同时将信息写入file

10.6.4字符转换命令:tr,col,paste,expand
。tr
tr -ds SET1 ...

-d 删除讯息当中的SET1这个字符串
-s 取代掉重复的字符

。col
col -xb

-x 将tab换成对等的空格

。join(两个文件中,有相同数据的哪一行,才将他加在一起)
join -ti12 file1 file2

-t join默认以空格分隔数据,并且对比第一个字符的数据,若两个文件相同,则将两笔数据连成一行
-i 忽略大小写
-1 代表第一个文件要用那个字段来分析
-2 代表第二个同上

。paste
paste -d file1 file2

-d 后面接分隔字符,预设为tab
- 如果file写成-,表示来自standard input资料的意思

。expand(将tab换成对等的空格)
-t 后面接数字。自定义tab代表几个空格
10.6.5分区命令:split
。split -bl file PREFIX
-b 后面可接欲分期成的文件大小,可加单位
-l 以行数来进行分区
PREFIX 代表前导符。可做分区的前导文字
10.6.6参数代换:xargs
产生某个指令的参数的意思
xargs -0epn command

-0 如果输入的stdin含有特殊字符,-0参数,可以将他还原成一般字符
-e EOF,后面接字符串,当xargs分析到此字符串,停止工作
-p 在执行每个指令的参数是,会询问使用者意思
-n 后面接次数,每次command执行指令是,要使用几个参数
例子:cut -d ':' -f 1 /etc/passwd | head -n 3 | xargs id
10.6.7关于减号
stdin/stdout 可用否-替代


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值