Shell(一)基础知识

Shell基础知识

补充:

笔记中特殊符号: 1)' ':待填写的内容;2)。。。:任意数量和运算
Shell中的注释:以#开头

一、变量与运算符

1.变量

1)变量的声明与取值
#①赋值
'变量名' = '变量值。。。'
#②取变量的值
$'变量名'
2)变量的参数
$0	#脚本名称
$1	#运行脚本第一个参数 $2 $3 ...以此类推
${10}	#运行脚本第十个以上参数要用
$#	#参数的个数,常用于循环
$*	#所有参数,值得注意的是:加双引号的"$*"代表参数整体
$@	#所有参数
$?	#最后一次命令的返回状态:0:正确执行

2.运算符

#用于计算的变量通常使用运算符包裹
$(('运算式'))
$['运算式']

二、条件判断

1.判断格式

#1)基本语法
[ '判断条件' ] #注意判断条件与[]之间要有空格 返回true或false
[ -x ... ]
[ -a ... -b ]
#2)字符串比较
= 
-n #利用 -n 来判定字符串非空
#3)两个整数之间比较
-lt #小于(less than)
-le #小于等于(less equal)
-eq #等于(equal)				
-gt #大于(greater than)
-ge #大于等于(greater equal)	
-ne #不等于(Not equal)
#4)按照文件权限进行判断
-r #有读的权限(read)			
-w #有写的权限(write)
-x #有执行的权限(execute)
#5)按照文件类型进行判断
-f #文件存在并且是一个常规的文件(file)
-e #文件存在(existence)		
-d #文件存在并是一个目录(directory)

2.三元运算

[ '判断条件' ] $$  '判断为true执行此处' || '判断为false执行此处'
[ '判断条件' ] $$  "可以是[ '判断条件' ]" || '也可以是值'

三、流程控制

1.if

#if后要有空格,条件判断式与[]之间要有空格
if [ '条件判断' ] 
	then 
    '执行语句' 
elif [ '条件判断' ]
	then
		'执行语句'
else
		'执行语句'
fi

2.case

#1);;对应java case语句中的break
#2)*)对应java case语句中default
case $'变量名' in 
  "'值1'"'变量的值等于值1,执行此语句 '
    ;; 
  "'值2'"'变量的值等于值2,执行此语句 '
    ;; 
# 。。。
  *) 
    '变量的值都不是以上的值,执行此语句 '
    ;; 
esac

3.for

#语法格式1
for (( '初始值';'循环控制条件';'变量变化' )) 
  do 
   '执行语句'
  done
#语法格式2
for '变量' in '值1 值2 值3。。。 '
  do 
    '执行语句'
  done

4.while

while [ '条件判断' ] 
  do 
   '执行语句'
  done

四、输入与输出

1.输入

#-p:提示符,-t:等待时间
#读取输入的字符,给变量名赋值
read -t '输入等待时间' -p '提示内容' '变量名'

2.输出

echo '字符串'
echo $'变量名'

五、函数

5.1、系统函数

#1)获取文件名的字符串,可添加文件后缀,输出去掉后缀的文件名
basename '字符串/文件名' '要去掉的文件后缀'
#2)获取给定文件路径,去除最后一级的目录/文件名,的字符串
dirname '文件路径'

5.2、自定义函数

#定义函数
[ function ] funname[()]
{
	Action;
	[return int;]
}
#调用函数
funname

六、Shell工具

1.cut

#-d:指定切割字符,-f:指定要得到的列,不指定-d默认以Tab分割
cut -d '指定以什么字符进行切割' -f '提取切割的哪几列' '文件名'
#可搭配管道符|和grep行过滤,进行迭代切割
cut -d '字符'  -f '1,2。。。' '文件名' | grep '过滤字符' | cut -d '字符'  -f '1,2。。。' | 。。。

2.awk

#-F:指定分割符,-v:指定变量并赋值,{print '打印内容,可以计算和拼接字符串'。。。},/'正则表达式过滤'/
awk -v i=1 -F: '/^root/{print $3+i","}' '文件名' #以:分割以root开头,打印第3列与1的和末尾拼接','
#内置变量
FILENAME	#文件名
NR	#已读的记录数
NF	#浏览记录的域的个数(切割后,列的个数)

六、正则表达式

1.基本语法

'ls' | grep '正则表达式'

2.常用正则

^'字符A'  #以A起始
'字符B'$	#以B结尾
^$		 #空值
. 		#类似sql中的_
*		#类似sql中的%
### 回答1: b'shell脚本基础知识'是指对b'shell脚本'进行基础掌握的知识,包括b'shell脚本'的语法、变量、流程控制、函数等基础内容。了解b'shell脚本基础知识,可以帮助用户更好地编写和运行b'shell脚本',提高工作效率和准确性。 ### 回答2: Shell是一种可以执行Linux命令的脚本语言,是Linux系统中必不可少的一部分。Shell脚本是一种文本文件,其扩展名通常为.sh或.bash。Shell脚本可以编写一些自动化的任务,使得Linux操作更加方便和高效。 Shell脚本基础知识包括以下内容: 1. Shell脚本的创建和执行 Shell脚本可以使用vi或其他文本编辑器创建,创建完成后用chmod命令设置为可执行权限。执行脚本有两种方式:直接输入脚本名,或用bash命令执行脚本。例如,执行名为test.sh的脚本,可用以下两种方式: ./test.sh bash test.sh 2. Shebang行 Shell脚本的第一行需要写上Shebang行,指定解释器的路径。在Linux系统中,默认的解释器为/bin/bash。因此,Shebang行通常是: #!/bin/bash 3. 变量和环境变量 Shell脚本中使用的变量需要先定义,然后才能使用。定义变量的方式为: 变量名=变量值 变量名前面必须添加美元符号$,才能获取到变量的值。可以使用echo命令输出变量值,例如: name="tom" echo $name 环境变量是一种全局变量,可以在Shell脚本中使用。Linux系统中有很多预定义的环境变量,例如: $HOME:当前用户的家目录。 $PATH:程序搜索路径。 $USER:当前登录用户的用户名。 4. 控制流语句和函数 Shell脚本支持各种控制流语句,例如if、for、while等。函数的定义和使用也和其他编程语言类似,例如: function_name(){ commands } function_name 5. 输入和输出重定向 在Shell脚本中,可以使用重定向符号>和<来重定向输入和输出。例如,将输出重定向到文件中,可以使用: echo "hello" > output.txt 将输入重定向到文件中,可以使用: read input_var < input.txt Shell脚本基础知识是编写自动化任务的基础,了解和掌握这些知识可以使得Shell脚本更加高效和便捷。 ### 回答3: Shell脚本是一个用来编写命令行脚本的脚本语言。脚本语言和编译型语言不同,它的代码不需要被编译成可执行文件,而是直接解释执行。 Shell脚本的特点是读写文本文件,执行系统命令。在Unix/Linux操作系统中,Shell是最基本的界面,与其他操作系统类似,用户可以在Shell界面下输入各种命令来控制和操作计算机系统。 Shell脚本的基础知识包括: 1. Shell脚本的文件格式,一般以.sh作为文件扩展名,脚本的执行需要给定执行权限(chmod +x filename.sh)。 2. 开始行(Shebang):开头的两个字符#!(Shebang)指定执行本脚本文件所使用的Shell解释器。一般来说,使用Bash解释器,开始行应该这样写:#!/bin/bash 3. 变量:在Shell脚本中,用$符号表示,变量名和等号之间不能有空格。例如:var=123 4. 数组:在Shell脚本中,用小括号()表示,使用花括号{}和下标来引用数组中的元素。例如:arr=(1 2 3) echo ${arr[1]} 5. 流程控制语句:if、while、case、for等,用于实现分支和循环等控制流程。 6. 命令行参数:在执行脚本时从命令行传入,用$符号表示。例如:在命令行执行:./test.sh arg1 arg2,则脚本中可以用$1表示arg1,$2表示arg2。 7. 读取键盘输入:使用read命令,例如:read name,表示从键盘读取一行文本并存储到变量name中。 8. 函数:用于将一些重复的命令封装起来,实现代码复用。例如: function test(){ echo "hello world"}。 Shell脚本是Unix/Linux操作系统的基础,掌握Shell脚本的基础知识是很重要的。在实践中不断熟练掌握Shell脚本,可以提高个人的工作效率和工作质量。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值