变量的定义
shell是一种弱类型变量定义。
例子1:
A=5
echo $A
例子2:
A="5"
echo $A
例子3:
A=5
B=6
echo $( (A+B))
实际上,如果需要完全意义上表达一个变量,引用的应该写成
${AB}
比如
AB=5
echo ${AB}C
#单引号和双引号
单引号和双引号可以直接表达字符串。如果这个字符串里面有$符号,比如
echo “this $A from B”
如果是双引号括起来,bash会首先解析里面的变量。
如果单引号,那么bash不在解析里面的$占位符。
如果是倒引号,是解析的。
例子:
awk ‘{print $1}’ data.txt
如果使用双引号
相当于
awk ‘{print }’ data.txt
A="data.txt"
rm $A
A=""
rm $A
相当于 rm,会报语法错误。
#计算
$(( expression )) 计算
进程和线程
父进程
子进程
僵尸进程
托孤到家族
清理子进程
精灵进程 (daemon ) linux重要的服务。
线程
就是能够分配CPU实际最小单位。
进程
进程是运行软件的空间基础。
##查看系统环境变量
linux下面使用
env,printenv
windows下使用
set命令
永久保留环境变量
系统层面
/etc/profile (include /etc/profile.d)
/etc/profile.d
用户层面
~/.bashrc
~/.bash_profile
内容如下
export PATH=$PAHT:/path/mypath/
凡是设置环境变量的,必须使用.执行,.实际上是source命令的缩写。
/etc/profile
/etc/profile.d/*
/etc/bashrc
只要正常执行文件,不仅仅是设置变量,就用正常的方式执行。
hello
echo
mv
rm
自己写的一些shell命令也是不能.执行
变量继承关系
没有特殊处理的情况下,变量不传递的。
如果声明了变量可以继承的就可以,只能由父进程往下传递。
如果使用了export来定义变量,就能够进行传递。
export JAVA_HOME=/usr/java
export OFFICE_HOME=/usr/local/office
export MAVEN_HOME=/usr/maven
export MYSQL_USER=’root’
export MYSQL_PASSWORD=’root123’
PATH
PATH环境变量是操作系统查找路径列表。如果命令没有出现在这个列表当中,那么命令就找不到。
因为命令行第一个单词是命令,所有查找不会在当前目录下查找,仍然是按照PATH。
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
JAVA_HOME
##小结练习
test命令
命令链接
&&
如果第一个名称成功,就执行第二个命令
也就是说第一个命令返回的$? 一定是0
||
如果第一个名称成功,就不执行第二个命令
也就是说第一个命令返回的$? 一定是1
test
test 判断所有的情况。
g:greater
t:than
e:equal
l:less
组合如下
-eq
-gt
-lt
-ge
-le
#shell
shell是命令的组合,主要是完成某个任务。
比如
- 安装软件
- 备份数据
- 恢复数据
- 监控cpu的温度
- 监控内存的的使用量
运行设置+x权限
必须在PATH路径
安装vim
vim主要显示颜色,他是编代码工具。
求出/etc目录下文件大小超过10k的文件大小总和
find /etc -type f -size +10k
- 求出是水仙花数
三位数,各位数字的立法之和等于该数 - 计算1到100的偶数之和
yum
#crontab
最后编辑:严锋 更新时间:2025-05-09 15:48