变量的定义

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. 求出是水仙花数
    三位数,各位数字的立法之和等于该数
  2. 计算1到100的偶数之和

yum

#crontab

作者:严锋  创建时间:2023-09-14 16:33
最后编辑:严锋  更新时间:2025-05-09 15:48