Shell的基本常用命令

关于shell的基本常用操作如下:


请说出脚本的常用执行方式:
①使用bash 或者是 sh +脚本的相对路径或者是绝对路径,本质是使用bash解释器来执行脚本,因此脚本不需要具备执行权限

②采用输入脚本的绝对路径或者是相对路径执行脚本,该脚本必须具备可执行的权限;这种执行方式的本质是脚本自己执行,因此该脚本必须具备执行权限。

关键字export的作用:



[isea@hadoop109 ~]$ C=isea_you
[isea@hadoop109 ~]$ echo $C
isea_you
[isea@hadoop109 ~]$ cat hello.sh 
#!/bin/bash
echo "hello world"
echo $C
[isea@hadoop109 ~]$ ./hello.sh 
hello world
这里并没有输出变量的值,是因为在执行 ./ 的时候,开启了一个shell来执行,在新启动的shell中没有该变量,所以没有输出变量B的值
[isea@hadoop109 ~]$ export C
[isea@hadoop109 ~]$ ./hello.sh 
hello world
isea_you
[isea@hadoop109 ~]$ 



由上面测试,export可以把变量提升为全局变量,可供其他shell环境变量使用,



bash中变量的默认类型是什么,能够进行数值计算:



[isea@hadoop108 ~]$ C=1+2
[isea@hadoop108 ~]$ echo $C
1+2




解释一下su - 切换用户和 su 切换用户的区别:
su 是不改变当前变量
su - 是改变为切换到用户的变量 
也就是说,su - 是切换到root并获得root的环境变量及其执行权限

说说你用到的几个特殊变量
①:$n 表示的是获取第n个参数;
②:$# 表示的是,获取所有输入参数的个数 ,常用语循环



[isea@hadoop109 ~]$ cat hello.sh 
#!/bin/bash
echo "$1 $2 $3 $4"
echo $#
[isea@hadoop109 ~]$ ./hello.sh a b c d e
a b c d
5



③:$* 表示命令行中所有的参数,$* 将所有的参数看做是一个整体
④:$@ 表示命令行中的所有参数,不过$@把每个参数区分对待



[isea@hadoop109 ~]$ cat hello.sh 
#!/bin/bash
echo "$1--$2--$3--$4"
echo $#
echo $*
echo $@

[isea@hadoop109 ~]$ ./hello.sh a b c d
a--b--c--d
4
a b c d
a b c d



⑤:$? 返回最后一次执行命令的返回状态,变量为0表示执行成功,非0表示执行失败

请利用shell计算 1+3的结果:
[isea@hadoop109 ~]$ echo $[1+2]
3
[isea@hadoop109 ~]$ echo $((1+2))
3
计算(2+2)*4的结果
[isea@hadoop109 ~]$ echo $[(2+2)*4]
16
[isea@hadoop109 ~]$ A=$[(2+2)*4]
[isea@hadoop109 ~]$ echo $A
16
这里需要指出的是,对于计算结果的值,我们也是需要使用$去取的

请用 if else 完成 100 ,x ,的大小比较逻辑:
[isea@hadoop109 ~]$ cat hello.sh 
#!/bin/bash
if [ $1 -eq 100 ]
then 
  echo $1 equals 100
elif [ $1 -gt 100 ]
then 
  echo $1 bigger than 100
else
  echo $1 smaller than 100
fi
[isea@hadoop109 ~]$ ./hello.sh 33
33 smaller than 100
[isea@hadoop109 ~]$ ./hello.sh 100
100 equals 100
[isea@hadoop109 ~]$ ./hello.sh 101
101 bigger than 100

使用for完成 1 到100 的累加:
[isea@hadoop109 ~]$ cat hello.sh 
#!/bin/bash
s=0
for((i=0;i<=100;i++))
do
  s=$[$s+$i]
done
echo $s
[isea@hadoop109 ~]$ ./hello.sh 
5050
说一下,dirname和basename的用法
basename会截取出文件名
dirname会取文件的到路径,
[isea@hadoop109 ~]$ basename /home/isea/iseayou.txt
iseayou.txt
[isea@hadoop109 ~]$ dirname /home/isea/iseayou.txt
/home/isea

说一下你常用的shell工具:下面是关于shell工具的链接详情:

下面是shell工具的详情介绍: 

https://blog.csdn.net/qq_31807385/article/details/83374194

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值