SHELL学习(一)

特殊文件/dev/null(位桶bit bucket)
传送到此文件的数据都会被系统丢掉
也就是说,完成了写入操作,但是什么都没做
if grep pattern myfile > /dev/null
then
...
else
...
fi

/dev/ty, 当程序打开这个文件时,会自动重定向到一个终端
printf "Enter new password:"
stty -echo 关闭自动打印输入字符的功能
read pass < /dev/tty 读取密码
printf "Enter again:"
read pass2 < /dev/tty
stty echo 打开自动打印输入字符的功能


Shell会沿着查找路径$PATH来寻找命令
默认路径因系统而异,不过至少包含/bin和/usr/bin
自己创建的脚本最好使用bin目录来保存,并加入到$PATH中
mkdir bin
mv nusers bin
PATH=$PATH:$HOME/bin
nusers //执行
要让修改永久起效,把路径加到.profile中的$PATH中

位置参数,超过9时用{}
echo first arg is $1
echo first arg is ${10}

执行跟踪
通过-x, 或者在sh文件中 set -x(x) 打开/关闭 执行跟踪
$ cat > trace1.sh
#! /bin/sh
set -x //打开执行跟踪
echo 1st echo
set x //关闭
echo 2nd echo
^D

$ chmod +x trace1.sh
$ ./trace1.sh
+ echo 1st echo
1st echo
+ set x
2nd echo
在执行的命令前有+


查找文本,3个传统的程序
grep 使用 BRE
egrep 使用 ERE
fgrep 使用固定字符串
grep和egrep只能匹配单个的正则,而fgrep可以匹配多个字符串
之后,3个功能都被整合到了grep中,使用不同的选项可以控制
grep 默认的模式,是使用-F
grep -F 是以固定字符串查找

语法 grep [options ...] pattern-spec [files ...]
主要选项 -E, -F ,
-e pat-list
通常第一个非选项的参数会指定要匹配的模式,可以提供多个模式,放在引号里使用换行符来分隔。当模式以减号开头时,grep会混淆,这时候使用-e,可以指定其参数为模式
即使它以-开头
-f pat-file
从pat-file中读取模式
-i 模式匹配忽略大小写
-l 列出匹配模式的文件名称,而不是打印匹配的行
-q 静默的,如果匹配成功,grep成功离开,而不将匹配的行写入标准输出,否则不成功
-s 不显示错误信息,通常与-q同用
-v 显示不匹配模式的行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值