/bin/bash -c 作用:让 bash 将一个字符串作为完整的命令来执行
cat:查看文件内容,创建文件,文件合并,追加文件内容等功能。
awk:是一种处理文本文件的语言,是一个强大的文本分析工具。截取字符。
# 行匹配语句 awk ” 只能用单引号
# 每行按空格或TAB分割(默认情况),输出文本中的1、4项
$ awk '{print $1,$4}' log.txt
# 使用“,”作为分割符,对文本进行分割
$ awk -F, '{print $1,$2}' log.txt
# 过滤第一列大于2并且第二列等于’Are’的行:
$ awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt
$( ):在bash中,$( )与` `(反引号)都是用来作命令替换的,执行括号或者反引号中的命令。
# $( )
shellName=$(cat ../Conf/kvmasConf.ini | awk '$2=="shellName" {print $3}')
grep -v:排除输出命令。
# 找出包含"TestUnit"的信息,且没"grep"这个字段的,并且计算找出的个数。
ps -ef | grep TestUnit | grep -v "grep" | wc -l
# 找出test.log中包含login信息的,且没有deviceType这个字段的
cat test.log | grep "login"|grep -v "deviceType"
$? :代表上一个命令执行后的退出状态
if [ $? -eq 0 ]; then
# echo "process id: $PID"
a=1
else
# echo "process $shellPath not exit"
echo "-1"
exit;
fi
kill命令:
# kill -Signal pid
# signal是发送给进程的信号; pid是进程号,可以用 ps 命令查出
PID=$(ps -ef | grep $shellName | grep -v 'grep' | awk '{printf $2}')
kill -9 $PID
expect:
expect是建立在 tcl 基础上的一个工具,它可以让一些需要交互的任务自动化地完成。相当于模拟了用户和命令行的交互操作。
expect -c "
spawn su -
expect \":\"
send \"nvidia\r\"
expect \"#\"
send \"date +'%Y-%m-%d %H:%M:%S'\r\"
expect \"#\"
send \"aws s3 sync $logDir $awsDir >> $awsUploadRecord\r\"
expect \"#\"
send \"sleep 1s\r\"
expect \"#\"
send \"python /home/nvidia/bin/kvmas/file_cleaner.py -d $logDir -f $awsUploadRecord\r\"
expect \"#\"
send \"exit\r\"
expect eof
"
crontab:在系统中定期的执行任务;
# 从左到右依次为:
# [分钟] [小时] [每月的某一天] [每年的某一月] [每周的某一天] [执行的命令]
# 每天 5:00和17:00执行任务
0 5,17 * * * /scripts/script.sh
# 每 10min 执行一次任务
*/10 * * * * /scripts/monitor.sh
# 添加或更新crontab中的命令
crontab -e
# 查看当前系统登录用户的Crontab命令集合
crontab -l
# 查看其他用户的Crontab命令集合
crontab -u username -l
netstat:控制台命令,是一个监控TCP/IP网络的非常有用的工具。一般用于检查本机各端口的网络连接情况。
# netstat命令详解
-a 显示本机所有连接和监听的端口
-n 不解析域名
-u 显示udp连接协议
-t 显示tcp连接协议
-p 显示连接对应的PID和程序名
-s 按各个协议进行统计
# 显示状态为TIME_WAIT连接状态的连接
netstat -antup | grep TIME_WAIT
# 找出程序运行的端口
netstat -anp | grep '80'
- 主目录:/root、/home/username
- 用户可执行文件:/bin、/usr/bin、/usr/local/bin
- 系统可执行文件:/sbin、/usr/sbin、/usr/local/sbin
- 其他挂载点:/media、/mnt
- 配置:/etc
- 临时文件:/tmp
- 内核和Bootloader:/boot
- 服务器数据:/var、/srv
- 系统信息:/proc、/sys
- 共享库:/lib、/usr/lib、/usr/local/lib
- 设备文件:/dev
sudo apt-get install下载好的软件放在哪个目录:
1)下载的软件的存放位置:/var/cache/apt/archives
2) 安装后软件的默认位置:/usr/share
3) 可执行文件位置:/usr/bin
4) 配置文件位置:/etc
5) lib文件位置:/usr/lib