shell

shell

系统中每个用户都有一个默认shell(/etc/passwd指定)
shell命令分为外部命令,内部命令(用help查看)

echo

echo string
-n#禁止换行(不输出换行)
-e#解释反斜杠(\)引导的转义字符(如\n回车换行 \r回车不换行)
#引用字符集
\#后面的元字符按字符字面解释
“”#双引号中处$,',"外的字符按字面解释
‘’#单引号中处‘外的字符按字面解释

shell变量

set #查看当前使用的shell变量
unset var_name#删除不需要的变量
var_name=var#给变量赋值
echo $var_name#$var_name变量值,可用来做选项,参数等

环境变量

管理员定义,拥有系统所知的名字

局部变量

用户自己定义

shell变量

HOME#保存用户主目录
PATH#设置shell定位命令时所要查找的目录名
#修改PATH PATH=$PATH:dir(直接修改错误)
#标准变量
PS1#提示符字符串
PS2#多行输入一条命令时,设置第二行及以后行的提示符(默认一般>)
SHELL#设置登录shell的完整路径(如/bin/bash)
TERM#设置终端类型

其他元字符

`

`command` #先执行command,再将结果替换
echo `date`#显示 “2021年 06月 26日 星期六 20:29:42 CST"

;

 command1;command2;command3#依次执行3个command

()

(command1;command2;command3)#执行一组命令,结果可以重定向(不加括号指定重定向前一个)

&

command &#后台运行

| 将一个命令标准输出作为另一个命令输入

ls -c |wc -w

其他工具命令

sleep n#延时n秒

ps #查看进程详细信息
ps#不带选项,显示当前终端用户进程状态
-e#显示所有进程
-f#显示信息完整列表

kill #发信号给进程
kill -SIGKILL pid
kill -9 pid#强制终止进程

tee#分离输出
#tee命令和|一起实现多重输出
command|tee fiename#既输出到终端,也输出到filename
-a#追加
-i#忽略中断信号

grep#在一个或多个文件中查找满足特定格式的行
grep string filename
#输出:找满足条件的行在终端显示
#输入:无文件则标准输入
-c#只显示每个文件匹配的行数
-i#搜索时忽略大小写
-l#显示符合条件的文件名
-n#显示行号
-v#显示不匹配行

sort#对文件内容排序
sort filename
-b忽视千岛空格
-d按字典序排序,忽视符号
-f忽视大小写
-n数字以数值排序
-o将输出存储在指定文件中
-r倒序排序

shell编程

执行脚本

使用sh命令

启动一个新shell运行脚本程序
子shell

sh filename
ksh filename
bash filename

使脚本变成可执行文件

需要执行权限
子shell

chmod string filename#更改文件权限string=c/g/o/a + +/-/= + r/w/x/-
#u 用户/所有者 g组用户 o其他用户 a所有用户
./filename#执行脚本

.

当前shell

.filename

编写脚本

退出shell

exit
ctrl+d
`command`#将command命令输出作为另一个分命令参数
read A B C#从标准输入设备读入字符串存入变量,字符串树多于变量数,贼剩余字符存入最后一个变量

变量

变量全为字符,字符串中包含空格,必须用”“;

unset#清除变量(控制变量生存周期)

命令行参数

命令行参数多余9个,第9个之后被忽略,但可通过$*获得

myshell abc 123 b2b#按顺序分别被命名为$0,$1,$2....$9
$0#脚本文件名
$1-$9#命令行参数
$# 命令行参数个数
$@,$*#所有的命令行参数
$$#正在执行进程的ID
set#为命令行参数赋值,从$1开始

终止程序运行

exit n

条件

if [ condition ]#或者 if test condiion
then
	command
	...
else
	command
elif
	command
fi
test#test condition 与 [ condition ] 一样
test condition1 逻辑运算符 condition2
#逻辑运算符
-a#and
-o#or
!#非

数字

-eq#equal#左右加空格,下同
-ne#un equal
-gt# greater than
-ge# greater equal
-lt#less than
-le#less equal

字符串

=#判断是否相等#左右加空格,下同
!=#判断是否不等
-n#判断是否有字符,-n "string"必须加引号
-z#判断是否无字符,-z "string"同上

文件检测

-r#是否存在且刻可读
-w#是都存在且可写
-s#是否存在且长度非零
-f#是否存在且为普通文件
-d#是否存在且为目录

运算

不能直接运算,否则显示字符串

    • * / %
expr
expr 1 + 2#符号两旁空格
x=`expr $x + 1`#使用
#关系运算符
= != < <= > >=

let
let x=x+1#计算符号左右无空格

循环

#for-in-done
for variable
in list-of -value
do
	command
done

#while-do-done
while [ condition ]
do
	command
done

#until-do-done
until [ condition ]
do
	command
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值