第八章shell基础

8.1 shell介绍

8.2 命令历史

8.3 命令补全和别名

8.4 通配符

8.5 输入输出重定向

8.6 管道符和作业控制

8.7/8.8 shell变量

8.9 环境变量配置文件

8.10 shell特殊符号cut命令

8.11 sort_wc_uniq命令

8.12 tee_tr_split命令

8.13 shell特殊符号下

8.14扩展:bashrc和bash_profile的区别 

 

8.1 shell介绍

 

8.2 命令历史

命令存放路径:/用户家目录下/.bash_hsitory

#只有用户退出总终端的时候才会将命令缓存保存到文件里

#默认最大存储1000条命令

系统内置环境变量HISTSIZE

echo $HISTSIZE                       #查看HISTSIZE大小

[root@localhost ~]# echo $HISTSIZE

1000

 

修改HISTSIZE的配置文件:/etc/profile

#修改过后不会立刻生效,要重登终端或者source   /etc/profile

history                         #查看使用过的命令

 

histtory  -c             #清空使用过命令的缓存(删除不了.bash_hsitory内的命令

 

将查看命令历史设置使用时间

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"      

 #Y/m/d    年/月/日;   H:M:S   时:分:秒 (仅在当前终端生效

#要想永久在所以终端都生效,将该命令写进/etc/profile文件里面

 

#将命令历史永久保存,/用户家目录下/.bash_history添加a权限

chattr +a  /用户家目录下/.bash_history

 

注意:如果终端没有正常退出,重登的时候会发现历史命令保存的不全

 

!!              #执行上一条命令

[root@localhost ~]# ls

2.txt  3.txt  anaconda-ks.cfg  asda.txt

[root@localhost ~]# !!

ls

2.txt  3.txt  anaconda-ks.cfg  asda.txt

 

!n              #n是命令历史的排序号

1026  2018/08/12 19:37:25vim /etc/profile

1027  2018/08/12 19:38:43ls

1028  2018/08/12 19:39:26history

[root@localhost ~]# !1027

ls

2.txt  3.txt  anaconda-ks.cfg  asda.txt

 

!word     #或者最近使用一次命令的开头

 

 

8.3 命令补全和别名

#参数补全,需要安装bash-completion

Tab键按一次,补全命令和参数

Tab键按两次,显示支持补全的参数

 

 

配置别名的文件路径存放:/用户家目录下/.bashrc

其它自定义别名存放:/etc/profile.d 

 

 

8.4 通配符

"^"      # 以什么开头  例:   ^[a-z]  ,表示以小写字母a-z开头的

"#"      #  注释

"\"      #转义字符,将特殊字符或通配符还原成一般字符

";"       #命令衔接符,连续执行两条命令

"$"      # 取用变量符号

"&"    #工作控制,将指令变成后台运行工作

" '' "    #单引号,无法引用变量

" "" "   #双引号,可以引用变量

" `` "    #反引号,表示指令引用,功能同 $(command)

" * "    #表示通配所有字符

" ? "    #表示通配一个字符

" [ ] "   #可写数字,字母,范围;括号内字符都是或者的关系

" + "   #前面字符至少出现一次才会过滤出来,+是特殊字符

" { } "   #可写数字,字母;括号内字符都是或者的关系,但是中间需要用逗号“,”隔开

 

例 : echo=`pwd`

[root@xinlinux-02 ~]# echo `pwd`

/root

 

"2>&1"     #表示正确和错误的都输出

例:ls  1.txt 2.txt 2>&1 >>3.txt       #ls 1.txt 和2.txt,将正确和错误的信息都追加到3.txt

 

*                 #表示通配所有字符

?               #表示通配一个字符

[root@localhost ~]# ls *.txt

1.txt  2.txt  3.txt  aa.txt  asda.txt  a.txt  bbb.txt  b.txt  c.txt

[root@localhost ~]# ls ?.txt

1.txt  2.txt  3.txt  a.txt  b.txt  c.txt

 

#"+"号表示前面字符至少出现一次才会过滤出来,这里+是特殊字符,所以用到egrep

[root@localhost ~]# egrep "\[+" 1.txt

[1234]

[124

 

[ ]               #可写数字,字母,范围;括号内字符都是或者的关系

[root@localhost ~]# ls [123].txt

1.txt  2.txt  3.txt

[root@localhost ~]# ls [0-2].txt

1.txt  2.txt

[root@localhost ~]# ls [a-z].txt

a.txt  b.txt  c.txt

[root@localhost ~]# ls [1-3a-c].txt

1.txt  2.txt  3.txt  a.txt  b.txt  c.txt

[root@localhost ~]# ls [1-3a-cA-Z].txt

1.txt  2.txt  3.txt  a.txt  b.txt  c.txt

 

{ }               #可写数字,字母;括号内字符都是或者的关系,但是中间需要用逗号“,”隔开

[root@localhost ~]# ls {1,2}.txt

1.txt  2.txt

[root@localhost ~]# ls {1-2}.txt

ls: 无法访问{1-2}.txt: 没有那个文件或目录

[root@localhost ~]# ls {1,2,3,a,}.txt

1.txt  2.txt  3.txt  a.txt

 

"\" 表示脱义字符,将特殊字符的语意去掉

[root@localhost ~]# grep "[" 1.txt                #"["中括号为特殊字符,双引号识别不了,所以报错

grep: 无效的常规表达式

[root@localhost ~]# grep "\[" 1.txt              #用\号脱义,就可以成功

[1234]

[1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值