shell

标准输入的文件描述符为0
标准输出的文件描述符为1
标准错误描述符为error(2)

>  重定向符号

command > file 将命令重定向到文件里

shell是一个命令解释器,他向用户提供了一个向linux内核发送请求以便运行程序界面系统级程序
目前流行的几种shell:ash、bash(内核用,相当于linux一个较大的内核)、ksh、csh、zsh等
#echo KaTeX parse error: Expected 'EOF', got '&' at position 92: …的输入 command1 | &̲command2 [ | &c…
使用set命令可以查看所有的本地变量和环境变量·
本地变量,也称为用户自定义变量,是在当前shell环境,当前进程内有效的变量。当前进程内有效的变量。当用户注销,或者启用子shell、子进程时,该变量不起作用。

一、定义本地变量
1.在bash shell环境下,定义本地变量的设置格式如下:
变量名=变量值(若等号两边有空格,则必须使用引号括起来)
#s1=hello
#s1="hello world”
若有空格可以那个双引号将他们结合起来
2.变量设置的规定
2.1.变量名称只能是英文字母、下划线、数字,但是不能以数字为开头字符
2.2.若有空格,可以使用双引号或单引号将变量内容连接起来
2.3用户也可以在命令行上同时定义多个变量赋值,赋值语句之间要用空格分开
#x=4 y=5

1.readonly命令
有时需要在说明一个变量并对它设置一个特定值后就不需要它再改变时,可以用readonly保证一个变量的只读性
2.read
语法:read[-pt]
功能:读取来自键盘输入的变量
Read+变量名 然后键盘输入变量值,完成赋值
可选项
-p:后面可以接提示信息
-t:后面可以接等待的秒数。为了防止一直等待用户
Read -p “put in:”-t 30 named
eg:
让用户通过键盘输入内容,将该内容改成atest变量
提示用户30秒内输入自己的名字,将该输入字符串做成name变量

显示本地变量
Echo 变 量 名 或 e c h o 变量名 或echo echo{变量名}

x=4
echo x n d 上 述 操 作 给 x 赋 值 4 , 输 出 为 4 n d , 格 式 如 上 , {x}nd 上述操作给x赋值4,输出为4nd,格式如上, xndx44nd{}后缀

要将name的内容多出“yes”,两种方法
name= n a m e y e s n a m e = " {name}yes name=" nameyesname="name"yes

在子shell下变量范围
aa=11
bash
echo $aa 输出11
aa=22
echo $aa 输出22
Exit
Echo $aa 输出11
在子shell中运行aa
验证之下在bash中

unset 变量名 将变量所占空间释放掉
环境变量在shell脚本执行的时候就已经定义了
环境变量可以用于所有用户进程

PS1:主提示符,在特权用户下,默认的主提示符是#,在普通模式下,默认的主提示符是$
PS1变量的特殊符号
PS1=’[\u@\h\w]$’
\u:当前用户的账户名称
\h:仅取主机名
\w:工作目录名称,仅列出做后一个目录名
$:提示符,如果是root用户就是#否则就是$
#PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录
linux修改PATH变量
只想对本次登录有效的话
PATH=$PATH<路径1><路径2>…………
永久有效在bashrc里面加上上面这句话

6.export
用export可以把本地变量设置为环境变量
格式:export 变量名
也可以在给变量赋值的同时使用export命令
Export 变量名=变量值 若等号两边的内容有空格相连,则必须用引号连接起来

特殊变量
某些变量在开始执行脚本时就被设定且不再改变,他们就被称为特殊变量。
用户只能根据shell使用这些变量而不能重新定义它们,所有特殊变量都是由$和另一个符号组成
$# :存储shell程序中命令行参数的个数
$?:存储shell中上一个程序执行的返回值(0表示执行成功,非0表示错误)
$[1-n]:存储的[1-n]个命令行参数
$0:存储shell程序自己的名字
$*:存储shell脚本的所有参数(不包含$0)
$$:存储shell脚本的进程号(pid)

练习:
设计脚本***如下
当输入bash ./***2012 回车显示2012年头三个月的月历
参数传递:

shift命令
可以移动命令行参数。运行shift后,把每个参数向左移动一个位置,$2 $3 …………依次变为$1 $2………… 原先的$1丢掉

特殊符号
引用符号
在bash中,许多字符有特殊含义,如果希望忽略某些字符含义可以使用一种“引用”通知shell暂时忽略被引用字符的特殊含义,将其作为普通字符处理。

~:
`:
#:
$:
&:
*: 通配符,可以代表任何字符
(:
):
: 转义符
|: 管道
?: 代表单一字符
<: 输入重定向

: 输出重定向
':单引号,不具有变量置换的功能
":双引号 ,具有变量置换的功能

在shell中的三种引用符号
转义符:
单引号:’
双引号:"
转义符:
\放在shell特殊字符之前,则shell忽略该字符的特殊含义
用这种方式时,必须在每一个欲忽略其特殊含义的特殊字符前加\字符
单引号:’
将字符放在一对单引号之间,将单引号之间的所有字符当做普通字符处理
命令替换符:` 反引号
作用跟引用字符的作用相反
反引号括起来的字符被shell解释为命令行,在执行shell时,首先执行该命令行,并以它的标准输出取代反引号中的部分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小犟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值