shell基础知识(进阶一)

目录

什么是shell

重定向符

管道符(任意门)|

通配符

转义符

环境变量


什么是shell

shell是系统和计算机硬件交互时使用的中间介质。

重定向符

  • 输入重定向 <

作用:用于把文件数据流输入给命令

使用格式:

wc -l < /etc/passwd   #把/etc/passwd文件的数据流导入给wc -l命令#
  • 输出重定向 >

作用:用于把命令的处理结果输出给后面的文件(会覆盖之前的内容)

使用格式:

ls -l /etc/passwd > test   #把ls -l /etc/passwd命令执行的结果输入到test文件中#
  • 追加重定向 >>

作用:用于把命令的处理结果输出给后面的文件(不会覆盖之前的内容)

使用格式:

ls -l /etc/passwd >> test   #把ls -l /etc/passwd命令执行的结果输入到test文件中#
  • 错误重定向 2>

作用:用于把命令的错误处理结果输出给后面的文件(会覆盖之前的内容)

使用格式:

sl /etc/passwd 2> test   #因为sl命令不存在,所以语句执行失败,会把错误返回输入到test文件中#
  • 错误追加重定向 2>>

作用:用于把命令的错误处理结果输出给后面的文件(不会覆盖之前的内容)

使用格式:

sl /etc/passwd 2>> test   #因为sl命令不存在,所以语句执行失败,会把错误返回输入到test文件中#
  • 统合输出重定向 &>

作用:用于把命令的执行结果(无论成功或错误)全部输入给后面的文件

使用格式:

bash test.sh > test1    #执行test.sh脚本,把执行结果输出到test1文件中#

管道符(任意门)|

作用:用于将管道符左侧的命令处理结果传给管道符右侧命令,从而进行二次处理。

使用格式:

grep /bin/bash /etc/passwd | wc -l   #输出系统中有多少个用户可以登陆终端#

通配符

  • 通配符 *

作用:用于匹配空值或无穷多信息

使用格式:

ls /dev/sdb*   #匹配/dev目录下所有文件名以sdb开头的文件#
  • 通配符 ?

作用:用于匹配单个字符(有且只有一个字符)

使用格式:

ls /dev/sdb???   #匹配/dev目录下文件名以sdb开头且后面有三个字符的文件#
  • 通配符 []

作用:用于匹配符号中一个范围内所有文件,或字符组合中所有文件

使用格式:

ls /dev/sdb[0-9]   #匹配/dev目录下文件名开头是sdb且后面数字是0-9的文件#
ls /dev/sdb[a-z][A-Z]   #匹配/dev目录下文件名开头是sdb且后面是英文字母的文件#
ls /dev/sdb[1,3,5]   #匹配/dev目录下文件名开头是sdb且后面数字是1,3,5的文件#
ls /dev/sdb[1,2,b]   #匹配/dev目录下文件名开头是sdb且后面是1,2,b的文件#
ls /dev/sdb[0-9][0-9]   #匹配/dev目录下文件名开头是sdb且后面数字是0-99的文件#

转义符

  • 转义符 \

作用:用于将有含义的符号转换成普通字符

使用格式:

price=5   #定义一个变量
echo Price \$$price   #输出 Price $5
  • 转义符 ""

作用:用于把含有空格的输出内容括成一个整体,使脚本更简洁明了

使用格式:

price=5   #定义一个变量
echo "Price \$$price"   #输出 Price $5
  • 转义符 ''

作用:用于全局转义

使用格式:

price=5   #定义一个变量
echo 'Price \$$price'   #输出 Price \$$price
  • 转义符 ``(等同于$())

作用:``中间的命令语句会先执行,之后把执行结果返回给变量

price=`expr $RANDOM%1000`   #定义价格变量为1000以内的数字

环境变量

执行一条命令有以下几种方式:

  • 输入命令完整路径(可以使用whereis命令查看命令完整路径)
  • 使用alias使过长命令简化

命令使用格式:

alias srn="systemctl restart network"   #把重启网卡的命令简化为srn#
snr   #重启网卡#

注:alias简化的命令只能再当前用户下使用。

  • 内部命令
  • 外部命令

几个环境变量

  • $PATH:用于告诉bash命令路径
  • $HOME:用于保存用户家目录的路径
  • $MAIL:用于存放邮件的路径
  • $HISTSIZE:用于确定历史命令保存条数
  • $LANG:用于确定当前服务器语言环境(当远程出现乱码时注意一下这个变量)
  • $RANDOM:用于随机生成一个数值

定义环境变量

work=/home/user   #定义环境变量#
cd $work   #进入/home/user目录下#

注:上例中work变量只能当前用户使用

定义全局变量(所有用户可用)

export work   #定义work为全局变量#

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值