操作系统基础符号介绍:
` . .. > >> < << ! \ ~ - ...`
1) 基础符号系列:
#:作用:
01. `注释说明
02. 命令提示符中, 表示用户身份-- root管理 `
$作用:
` 01. 调取变量
02. 命令提示符中, 表示用户身份-- 普通用户
03. 读取文件中指定列信息`
` |``: 管道符号
作用:
1. 将管道符号前面命令输出的结果交给管道后面的命令进行处理`
```bash
引号符号系别:
"" : 将指定信息进行输出显示 可以将特殊字符信息进行解析输出
echo "$PATH `which cat` oldboy67"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin /usr/bin/cat oldboy67
'' : 将指定信息进行输出显示 所见即所得
echo '$PATH `which cat` oldboy67'
$PATH `which cat` oldboy67
没有引号 : 和双引号功能是类似, 但是没有引号情况可以输出序列信息
echo {01..10} 数字序列
echo {a..z} 字母序列
echo {01..10..2} 奇数序列
mkdir oldboy{01..10}
seq -w 10 --- ? 如何生成奇数序列/生成偶数序列
`` : 将引号中命令信息先执行, 将执行后结果交给引号外面的命令进行处理
cp /etc/hosts /etc/hosts_`date +%F`
练习:
环境准备:
vim test.txt
oldboy $oldboy oldgirl
01. 利用sed如何将$oldboy信息修改替换为olddog
sed 's#$oldboy#olddog#g' 文件信息
路径符号系列:
~ : 当前系统用户家目录
. : 表示当前目录
表示隐藏文件 .oldboy.txt.swp
中断编辑 -- 恢复文件信息 --- 删除隐藏文件
同时编辑 -- 其他用户编辑完, 在进行编辑
.. : 表示上级目录
- : 上一次所在目录
4) 定向符号系列:
> : 标准输出重定向符号
>> : 标准输出追加重定向符号 定时任务
2> : 错误输出重定向符号
2>> : 错误输出追加重定向符号
< : 标准输入重定向符号
tr 'A-Z' 'a-z' < 文件信息
xargs -n1 < 文件信息
<< : 标准输入追加重定向符号
cat >> /oldboy.txt <<EOF
XXX
XXX
EOF
逻辑符号系列: `shell脚本`
第一件事: `创建目录 /oldboy `
第二件事:` 检查是否存在/oldboy`
第三件事: `在/oldboy目录中创建oldboy.txt `
&& : ` 前一个事情成功完成了, 再做下一件事情`
` mkdir /oldboy && touch /oldboy/oldboy.txt`
`[root@linux67 /]# mkdi /oldboy && touch./oldboy/oldboy.txt
-bash: mkdi: command not found
[root@linux67 /]# mkdi /oldboy ; touch /oldboy/oldboy.txt
-bash: mkdi: command not found
touch: cannot touch ‘/oldboy/oldboy.txt’: No such file or directory`
` || : 前一个事情出现失败了, 再做一件事情
[root@linux67 /]# mkdi /oldboy || mkdir /oldboy
-bash: mkdi: command not found
[root@linux67 /]# ll -d /oldboy
drwxr-xr-x 2 root root 6 Nov 1 18:44 /oldboy
[root@linux67 /]# mkdir /oldboy && touch /oldboy/oldboy.txt || mkdir /oldboy
[root@linux67 /]# ll -d /oldboy
drwxr-xr-x 2 root root 24 Nov 1 18:45 /oldboy
[root@linux67 /]# ll /oldboy
total 0
-rw-r--r-- 1 root root 0 Nov 1 18:45 oldboy.txt
[root@linux67 /]# rm /oldboy -rf
[root@linux67 /]# mkdi /oldboy && touch /oldboy/oldboy.txt || mkdir /oldboy
-bash: mkdi: command not found
[root@linux67 /]# ll -d /oldboy
drwxr-xr-x 2 root root 6 Nov 1 18:46 /oldboy
[root@linux67 /]# ll /oldboy
total 0`
操作系统通配符号介绍:
* 匹配任意字符信息
find /oldboy -name "old"/".txt"/"old.txt"
rm /oldboy/.txt /oldboy/oldboy*
rm -rf ./* --- 清空目录中文件数据(清空可见文件)
rm -rf ./.o* --- 删除以O打头的信息
rm -rf ./.* --- 删除根目录下面所有数据信息
{} 匹配序列信息
1) 生成数字或者字母序列信息
2) 生成组合序列信息
[root@linux67 oldboy]# echo A{1..3}
A1 A2 A3
[root@linux67 oldboy]# echo {1..3}B
1B 2B 3B
> echo A{,3}
A A3
echo /oldboy/oldboy.txt{,.bak}
快速备份:
cp /oldboy/oldboy.txt /oldboy/oldboy.txt.bak --简化-- cp /oldboy/oldboy.txt{,.bak}
快速恢复:
cp /oldboy/oldboy.txt.bak /oldboy/oldboy.txt --简化-- cp /oldboy/oldboy.txt{.bak,} cp /oldboy/oldboy.txt.bak /操作系统正则符号
准备操作环境:
cat >> test.txt <<EOF
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
EOF
基础正则符号: BRE basic regular expression
^ --- 匹配以什么开头信息 ^xxx
grep "^I" test.txt
练习: 找出文件中以大写字母I开头的信息
" test.txt
练习: 找出空行信息
grep "^$" 文件 oldboy/oldboy.txt
``^$ 表示空行信息
. 匹配任意一个且只有一个字符
grep sed awk 处理文件时, 会按照每一行进行处理文件
[root@linux67 oldboy]# grep "." test.txt -o
I
a
m
o
l
d
[root@linux67 oldboy]# grep ".$" test.txt
I am oldboy teacher!
I teach linux.
mm
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY
`
* 匹配星号前面一个字符连续出现0次或者多次情况`
`.* 匹配所有内容
[] 匹配多个字符信息
grep "[0-9]" test.txt
等价于:
grep "0" test.txt
grep "1"
[root@linux67 oldboy]# grep "[0-9a-zA-Z]" test.txt
I am oldboy teacher!
I teach linux.
mm
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!`
` [^xx] 将匹配多个字符进行取反
[root@linux67 oldboy]# grep "[^0-9a-zA-Z]" test.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!`
`\ 转义符号
1) 将有意义信息变得没有意义
[root@linux67 oldboy]# grep "\.$" test.txt
I teach linux.
my qq num is 49000448.
not 4900000448.
2) 将没有意义字符变得有意义
\n \r --- 换行符
\t
3) 让扩展正则可以变为基础正则???`
` PS:
1) 正则符号使用时, 可以结合使用
2) 正则符号做匹配时,有贪婪匹配特性
解决贪婪:
[root@linux67 oldboy]# grep "^I.*e ba" test.txt
I like badminton ball ,billiard ball and chinese chess!
扩展正则符号: ERE extended regular expression`
` 通配符号 和 正则符号 区别:
通配符号: 匹配文件名称信息 * 基础命令可以识别通配符号 find rm cp ll
正则符号: 匹配文件内容信息 高级命令可以识别正则符号 grep sed awk`
网友评论