shell 学习之正则、别名以及管道重定向
一、linux的文件类型:
类型 标识符 颜色
档案file: - 白色
目录directory: d 蓝色
字符设备character: c 黄色
块设备block: b 黄色
管道 pipe: | 黄色
链接设备linek: ln 蓝--绿
socket: s
二、别名设置和取消
ualias 撤销别名使用
ualias cmdalias
命令别名和命令本身的时候 \cmd
1
2
3
4
5
|
#设置进入网络编辑目录的别名
[root@lovelace 51cto] # alias cdnet='cd /etc/sysconfig/network-scripts/'
#使用别名
[root@lovelace 51cto] # cdnet
[root@lovelace network-scripts] #
|
1
2
3
4
5
6
7
|
[root@lovelace 51cto] # alias cdnet='cd /etc/sysconfig/network-scripts/'
[root@lovelace 51cto] # cd cdnet
- bash : cd : cdnet: 没有那个文件或目录
[root@lovelace 51cto] # cd cdnet
- bash : cd : cdnet: 没有那个文件或目录
[root@lovelace 51cto] # cdnet
[root@lovelace network-scripts] #
|
取消别名设置
1
2
3
4
5
6
7
|
#取消别名设置
[root@lovelace network-scripts] # unalias cdnet
[root@lovelace network-scripts] # cd -
/home/scripts/51cto
#再次验证别名是否还存在
[root@lovelace 51cto] # cdnet
- bash : cdnet: command not found
|
三、管道、重定向
系统设定
默认输出设备 标准输出 stdout 1
显示器
默认输入设备 标准输入 stdin 0
键盘
标准错误输出 stderr 2
> 输出重定向 原有内容丢失 覆盖输出
< 输入重定向 原有内容丢失 覆盖输入
>> 追加输出 保留文件中原有内容
<< 此处生成文档
>| 强制 输出重定向
2> 重定向错误输出
&>:重定向标准输出或错误输出到同一个文件
1>&2 正确返回值传递给2输出通道 &2表示2输出通道
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.
1
2
3
4
5
|
#2>&1是网上使用最广泛的一个示例
[root@lovelace 51cto] # cenet > info.tt 2>&1
#查看info.tt文件内容
[root@lovelace 51cto] # cat info.tt
- bash : cenet: command not found
|
四、文件名通配
文件名通配 gloabbing
* 匹配任意长度的字符,可以是空字符串
? 匹配一个字符,但不可为空
\ 可以做转义使用,也可作为续行符号
[] 匹配一个序列中的任意一个
[0-9][a-z][a-zA-Z] 选择其中的任意一个
[^] 取反的意思
[^0-9] 除了0-9之外的任意单个字符
[[:space:]] 所有的空白字符
[[:punct:]] 标点符号
[[:lower:]] 小写字母 也可用 [a-z]表示
[[:upper:]] 大写字母 也可用[A-Z]表示
[[:alpha:]] 大小写字母 也可用[a-zA-Z]表示
[[:digit:]] 数字 也可用[0-9]表示
[[:alnum:]] 数字和大小写字母 也可用[0-9a-zA-Z]表示
五、正则表达式
基本正则表达式:
. 匹配任意单个字符
[^] 匹配指定范围外的任意单个字符 不需要转义
[] 匹配指定范围内的任意单个字符,不需要转义
^ 匹配行首
$ 匹配行尾
\? 匹配前面出现字符的0个或1个字符
* 匹配前面的字符任意次数
.* 匹配任意长度的任意字符
\{m,n\} 匹配其前面的字符至少m次,至多n次,需要转义
\(\) 后向引用
\< = \b 其后面的任意字符必须作为单词首部出现
\> = \b 其前面的任意字符必须作为单词的尾巴出现
^$空白行
扩展正则表达式:
字符匹配:
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符,不需要转义
[^] 匹配指定范围外的任意单个字符 不需要转义
次数匹配:
* 匹配前面的字符任意次数
? 匹配前面出现字符的0个或1个字符 不需要转义
+ 其前字符至少一次
{m,n} 匹配其前面的字符至少m次,至多n次 不需要使用\转义
位置牟定:
^ 匹配行首
$ 匹配行尾
^$空白行
\> 其前面的任意字符必须作为单词的尾巴出现
\< 其后面的任意字符必须作为单词首部出现
分组:
()不需要再进行转义
\1,\2,\3....
或者:
| or
a|b a或者b
示例脚本(暂时未列出...)
本文转自lovelace521 51CTO博客,原文链接:http://blog.51cto.com/lovelace/1211323,如需转载请自行联系原作者
shell 学习之正则、别名以及管道重定向相关推荐
- shell读取文件到变量、管道重定向、if和while嵌套使用、命令替换
文章目录 管道介绍 脚本:读取文件,在while中使用if判断 位置参数 命令替换 退出状态 测试条件 test测试数值: 测试字符串 管道介绍 管道是Linux编程中最常用的技术之一,管道符&quo ...
- Linux脚本保存管道中的变量,Linux下管道重定向使用以及Shell编程(操作系统)
实验名称:Linux的基本操作 实验目的: 1.了解管道和重定向 2.熟悉基本的Linux脚本的编写 实验环境:Ubuntu 12.4(32位,简体中文) 实验内容: 1.将当前用户目录下的文件清单输 ...
- Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)
1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...
- shell学习(17)- shell中21的解释及输入输出重定向
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...
- shell学习-基础篇
shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...
- [Bash Shell] Shell学习笔记
1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...
- Linux| |Shell学习
Shell学习 # 符号 1. 初识 1.1 Shell定位 Shell就是用C编写的程序,是用户是用Linux的桥梁.Shell就是Linux内核的一个外壳,调用内核的接口 1.2 Shell和Ba ...
- Linux shell 学习笔记(9)— 循环语句(for、while)以及更改字段分隔符
1. for 语句 bash shell 中 for 命令的基本格式如以下,$var 变量包含着这次迭代对应的当前列表项中的值. for var in list docommands done 也可以 ...
- (管道| / 重定向 / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
原文连接:http://www.cnblogs.com/alwayswyy/p/5191137.html 本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下 一. ...
最新文章
- MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)
- 常用七大经典排序算法总结(C语言描述)
- 游戏必备组件有哪些_面试必备:2019Vue经典面试题总结(含答案)
- 庆祝51CTO六周年:资源牛人有奖比拼,生日当天疯狂送豆!(已结束)
- POJ2182 HDU2711 Lost Cows【树状数组+线段树】
- 使用Spark core和SparkSQL的窗口函数分别实现分组取topN的操作
- linux清空日志文件内容 (转)
- python tkinter画动态时钟
- AI语音外呼机器人是如何帮助电销行业获客?
- linux+极点五笔输入法,CentOS系统安装极点五笔输入法
- StampedLock(印戳锁)详解
- erlang 解决socket 数据粘包问题
- 拳王公社:虚拟资源项目赚钱方法?前2种最常见,第3种鲜为人知
- AT89C51单片机共阳极数码管动态显示(汇编语言)
- 中国电信再发力:推出最新七大惠民惠企新举措
- JS控制在textarea中换行
- 【CTF】【渗透】【msf】三、绕过杀毒软件技巧
- 基于美团Leaf-Segment的双buffer方案实现序列号生成器
- Linux centos7 搭建k8s集群步骤详解
- 【JAVA】MyEclipse使用 - 相关技术和快捷键(转自:CSDN - lgx06)
热门文章
- 使用objdump objcopy查看与修改符号表
- Windows SQL Server 2008 群集(摘自网络)
- 正则表达式(javascript)
- 海思3531D上编译FFmpeg源码操作步骤
- python爬虫requests实战_Python_爬虫_requests小实战
- python quit函数作用_Python常用函数学习笔记
- python requests post请求_实例解析Python3 如何利用requests 库进行post携带账号密码请求数据...
- matlab中的timer模块,[转载]Matlab中Timer的使用
- 百度搜索结果 转换_百度搜索搜不到“百度拦截搜索结果”
- bootstrap table传回的数据后端怎么获取_Flasksqlalchemy让你的数据库和网页执手偕老吧...