Linux入门与进阶(八)


1、shell简介:

shell:命令解释器;支持编程(变量、分支、循环…) ;编程语言
shell脚本语言:减轻一些工作量
高级编程语言:Java语言;
在这里插入图片描述

2、shell变量

变量名 = 变量值
#取消变量
unset 变量名

3、单引号和双引号的区别?

字符串可以使用单引号或者双引号,双引号中的表达式会解析,单引号中的表达式不会解析,只会原样显示。

[root@os100 /]# a1='张三'
[root@os100 /]# echo a1
a1
[root@os100 /]# echo $a1
张三
[root@os100 /]# i1=100
[root@os100 /]# i2=200
[root@os100 /]# echo $i1
100
[root@os100 /]# echo ${i1}
100
[root@os100 /]# echo $(( i1 + i2 ))
300
[root@os100 /]# echo $(( i1+i2 ))
300
[root@os100 /]# echo $((i1+i2))
300
[root@os100 /]# echo $((i1*i2))
20000
[root@os100 /]# echo $((i1/i2))
0
[root@os100 /]# echo $i1+$i2
100+200
[root@os100 /]# echo $(i1+i2)
bash: i1+i2: command not found...
[root@os100 /]# echo $((i1 + i2))
300
[root@os100 /]# s1="小明"
[root@os100 /]# s2='小强\t小红'
[root@os100 /]# echo $s1
小明
[root@os100 /]# echo $s2
小强\t小红
[root@os100 /]# s3="小红\t 小王"
[root@os100 /]# echo $s3
小红\t 小王
[root@os100 /]# s3="小红${s1}"
[root@os100 /]# echo $s3
小红小明
[root@os100 /]# s4='小刘${s1}'
[root@os100 /]# echo $s4
小刘${s1}
[root@os100 /]# unset s4
[root@os100 /]# echo $s4

4、数据流重导向

4.1、数据的输出

输出:将原本在终端上显示的数据,导入到指定的文件中;

1> ,> :将正确数据信息 覆盖到指定的文件中
1>>, >> : 将正确数据信息 追加到指定的文件中
2> :将错误的数据信息 覆盖到指定的文件中
2>> :将错误的数据信息 追加到指定的文件中

以普通身份进行登录执行查找命令查找特定的文件 示例:

 find /home -name .bashrc

切换身份成lang用户,默认情况下,该账号只能在对应的用户主目录下找
到内容,其它目录没有权限:
输出错误信息:

[lang@os100 home]$ find /home -name .bashrc 2>
/home/lang/test.log
/home/lang/.bashrc
/home/user1/.bashrc

同时将正确和错误信息输出到指定的文件中

[lang@os100 home]$ find /home -name .bashrc >
/home/lang/test.log 2>&1
[lang@os100 home]$ cat /home/lang/test.log
/home/lang/.bashrc
find:/home/erlang’: Permission denied
find:/home/shuihu’: Permission denied
find:/home/dalang’: Permission denied
find:/home/zhaoyun’: Permission denied
find:/home/xiahoudun’: Permission denied
find:/home/xiaoqiao’: Permission denied
/home/user1/.bashrc
find:/home/user2’: Permission denied

输出数据到垃圾桶

2>/dev/null #用来控制错误的输出
命令 &>/dev/null

4.2、数据的输入

将原本由键盘输入的内容换成,改由文件内容来代替

<
<<

示例1:
[lang@os100 ~]$ cat >> txt1 <<END

hello world 大家好 天气不错 END [lang@os100 ~]$ cat txt1 hello
world 大家好 天气不错

示例2:增加域名映射
在这里插入图片描述

[root@os100 lang]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
127.0.0.1 os100
[root@os100 lang]# cat >> /etc/hosts <<END
> 192.168.40.110 redis001
> 192.168.40.112 redis002
> END
[root@os100 lang]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
127.0.0.1 os100
192.168.40.110 redis001
192.168.40.112 redis002

5、命令执行的判断依据

; 命令之间无任何关联。
&& 必须前面的命令正确执行,后面的命令才会执行
|| 前面的命令错误,后面的命令执行;前面的命令正确,后面的命令不执
行。

不考虑指令相关性的连续指令下达

 cmd; cmd;
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值