# 在线安装
zypper install sqlite3-devel
# 查询
zypper packages | grep -iE "tk-devel"
# 下载rpm
zypper download tk-devel=1.13
# 查询已安装
rpm -qa | grep -iE "libxcb-devel"
# 安装
rpm -ivh xxxx.rpm
# 升级安装
rpm -Uvh xxxx.rpm
# 卸载
rpm -ev xxx.rpm
路径切换管理
查看文件差异 diff;
查看信息
信号
, kill
向进程传递信号
#!/bin/bash
#handle function
handler(){
echo "ctrl + c pressed."
}
#associate
trap "handler" SIGINT
while true;do
echo running... > log.txt
done
wc 统计
tree 目录树
# 匹配文件内容
grep -iE -l "^while" *.sh
test.sh
# 标准输入 中的匹配
echo laufing | grep -i -e 'au' -e ng
laufing
# 递归搜素指定的文件
grep -rn --include='*.sh' --include='*.txt' -e 'while' . # 指定目录
./test.sh:10:while true
# --exclude=*.sh 排除指定文件
# --exclude-from
# 递归匹配
grep -Rn 'xxx' .
# netstat -tnp
lsof -i:8010 | cut -f 2 -d " " | xargs kill -9
# 总结
du -sh /home/laufing/* | sort -nrk 1 | head
#!/bin/bash
# 开启调试
set -x
# 数值比较 测试
if [ $UID -eq 0 ]; then
echo "you are root."
else
echo "you are common user."
fi
添加可执行权限:chmod u+x lauf.sh
#!/bin/bash
# 变量直接赋值,一切值均为字符串
m=$1
n=$2
echo $m $n
echo -e "calc result:\n" # -e 有转义字符
echo "${m}^${n}" | bc
#!/bin/bash
#!/bin/bash
arr=('tom' 'jack' 'lucy')
for((i=0; i < ${#arr[*]}; i++)){ # 数组长度
echo ${arr[i]} # 普通数组,索引访问 arr[@] / arr[*] 获取所有的元素
echo ${#arr[i]} # 每个元素的长度
}
#!/bin/bash
# 声明关联数组,支持字符串索引,相当于python字典
declare -A price
price['apple']=3.4
price['pear']=2.3
price['banana']=2.8
echo "${price[$1]}"
# 命令行执行
$ ./lauf.sh apple
5. 编写shell脚本,查看当前目录下占用磁盘空间最大的5个文件,并自定义一个命令,名为lauf,命令行下执行lauf命令即可执行脚本。
#!/bin/bash
du -ah | sort -nrk 1 | head -n 5
# sort
# -n 数值排序
# -k 指定列
# -r 逆序排序
6. 编写shell脚本,要求用户输入用户名、密码,其中输入密码时不允许显示,最后打印用户名及密码,并统计程序执行的时间。
#!/bin/bash
# 计算开始时间
start=$(date +%s) # (xxx) 子shell , 即子进程; $() 相当于``
# 输入用户名
read -p "input your name:" username
# 不显示
stty -echo
read -p "input your password:" password
# 显示
stty echo
# 输出
echo "your name: $username"
echo "your password: $password"
# 计算结束时间
end=$(date +%s)
# 计算差值
let delta=end-start
echo "total time: $delta s."
7. 编写shell,循环10次,每次延迟5s,计算程序执行总时间。
#!/bin/bash
start=$(date +%s)
for i in {1..10}; do
sleep 5 # 休眠 命令行参数传入时间
echo $i
done
end=$(date +%s)
delta=$[end-start]
echo "total time: $delta s."
上一篇: linux shell操作- 01 基础必备
下一篇:linux shell操作- 03 用户切换及shell案例