Linux常用指令 5

文件名置换:

特殊字符:
* 匹配文件名中任何字符串,包括空字符串

$ls log*
$ls *.tmp

? 匹配文件名中任何单个字符

$ls ??.tmp  // 03.tmp

[…] 匹配[]中所包含的任何字符

$ls [ai]*   // 列出a或i开头的文件名
$ls log[0-9].txt // 列出log0.txt, log1.txt文件

[!…] 匹配[]中非感叹号!之后的字符

$ls log[!0-9].txt  // 列出loga.txt,logz.txt等非数字匹配的文件
$ls log?[!0-9]* // 列出log1adb,log1rany等文件
read

从键盘或文件中的某一行文本中读入信息,并将其赋给一个变量

$read varible1 varible2 ...

这里写图片描述

cat

显示文件内容

// cat [options] file1 ... file2 ...
$cat -v log.tmp  // -v会显示控制字符
$cat log1 log2 > log3
$cat > log4 // 等待输入并将结果重定向到log4中
tee

把输出的一个副本输送到标准输出,另一个拷贝到相应的文件中

tee -a files  // 将信息追加到files文件末尾

这里写图片描述

标准输入、输出和错误

系统中有12个文件描述符,其中0、1、2是标准输入、输出和错误,可以任意使用文件描述符3-9。

指令描述
cmd > file把标准输出重定向到一个新文件中
cmd >> file把标准输出重定向追加到一个文件中
cmd 1> file把标准输出重定向到一个文件中
cmd > file 2>&1把标准输出和标准错误一起重定向到一个文件中
cmd 2 > file把标准错误重定向到一个文件中
cmd 2 >>file把标准输出重定向追加到一个文件中
cmd >> file 2>&1把标准输出和标准错误一起重定向追加到一个文件中
cmd < file1 > file2cmd命令以file1文件作为标准输入,以file2文件作为标准输出
cmd < filecmd命令以file文件作为标准输入
cmd << delimiter从标准输入中读入,知道遇到delimiter分界符
cmd <& m把文件描述符m作为标准输入
cmd >& m把标准输出重定向到文件描述符m中
cmd <& -关闭标准输入
$grep "error" log 2>/dev/null // 将错误输出到/dev/null.不再显示在屏幕上
$grep "error" log 2>error.err // 将错误输出到error.err文件中
$cat account1.txt account2.txt 1>accout.info 2>accout.err // 将输出重定向到accout.info 文件中,将错误重定向到accout.err中
&&和||
command1 && command2 // command1执行成功才会执行command2
command1 || command2 // command1未执行成功才会执行command2
()和{}
():格式(cmd1;cmd2;...) // 在当前shell中执行一组命令
{}:格式{cmd1;cmd2;...} // 在子shell中命令被执行

$sort time.inf >time.sort &&( cp time.sort ./; lp time.sort)
正则表达式

^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟*,匹配0个或多个此单字符
[] 匹配[]内字符,可以是一个单字符,也可以是字符序列,可以使用-表示[]内字符序列范围
\ 用来屏蔽一个元字符的特殊函数
. 匹配任意单字符
pattern{n} 用来匹配其前面pattern出现次数,n为次数
pattern{n,} 含义同上,但次数最少为n
pattern{n,m} 含义同上,但pattern出现次数在n与m之间

grep
// grep [选项]基本正则表达式[文件]
$grep "error" *.log //在当前log后缀的文件中查找error字符串
$grep 'err[0-9]' 1.log // 在1.log文件中查找以err开始,数字结束的字符串
$grep '^[^warning]' 1.log // 在1.log文件中查找行首非warning的字符串
$grep '[Ee]rror' 2.err // 在2.err文件中查找Error和error的所有信息
$grep 'E....r' 2.err // 在2.err中查找以E开头中间4个字符以r结尾的所有字符串
$grep '[A-Z][A-z]..R' 2.err
$grep -E 'error|fail' log // -E 允许扩展,在log中查找匹配error或fail的数据
$ls -l | grep '^d' // 查询目录列表中的目录
$ls -l | grep '^[^d]' // 查询不包含目录的所有文件
$ls -l | grep '^d.....x..x' // 查询其他用户和其他用户组成员有可执行权限的目录集合
$grep -s "sky" /etc/password // -s可屏蔽出错信息
$ps ax|grep "cron" // 先查找所有进程,在此基础上列出cron进程信息
$STR="blue sky test"
$echo $STR|grep "sky" // 查找指定字符串

-c 只输出匹配行的计数
-i 不区分大小写
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在或无匹配文件的错误信息
-v 显示不包含匹配文本的所有行

类名及其等价的正则表达式

等价的正则表达式
[[:upper:]][A-Z]
[[:lower:]][a-z]
[[:digit:]][0-9]
[[:alnum:]][0-9a-zA-Z]
[[:space:]]空格或tab键
[[:alpha:]][a-zA-Z]

例:

$grep '5[[:upper:]][[:upper:]]' log // 查找log文件,匹配的字符串以5开头,后跟至少两个大写字母
$grep '[[:upper:]][[:upper:]][C,N]' log // 查找log文件,以C或N结尾的所有字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值