一、so相关
1、查看所有的系统库文件
ldconfig -p
2、缺失.so文件时
使用apt-file
1)安装
apt-get update
apt-get install apt-file
apt-file update
2)寻找依赖库
apt-file search libSM.so.6
3)安装库
apt-get install libsm6
3、查看so架构
readelf -h xx.so
二、python相关
1、安装python模块
pip3 install paramiko==2.11.0
2、修改默认python路径
update-alternatives --install /usr/bin/python python /usr/bin/python2 100
3、将一台机器上的python环境复制到另一台机器
pip3 freeze > 1.txt
pip3 install -r 1.txt
三、磁盘相关
1、挂载
例:
mkfs -t ext4 /dev/vdb
mkdir /usr1
mount /dev/vdb /usr1/
echo "/dev/vdb /usr1 ext4 default 0 0" >> /etc/fstab
2、列出未挂载的磁盘
fdisk -l
四、git相关
git mm info 列出仓信息
git remote -v 远程仓路径
五、bash相关
1、将所有包含aa的文件中的aa替换成bb
sed -i ‘s/aa/bb/g’ `grep -rl "aa"`
2、将a.txt文件中包含aa的行中的aa替换成bb
grep "aa" -rl ./a.txt |xargs sed -i ‘s/aa/bb/g’
3、删除指定字符之间(包含abc dd的行到包含world的行,包括这两行)的内容
sed -i ''/abc dd/, /\/world/d' a.txt
(sed说明:-i 表示修改原文件。命令使用单引号。具体见linux菜鸟教程;另:blog.51cto.com/wujianwei/2417796)
3、交互式输入自动化(参考:cnblogs.com/bulh/articles/12779173.html)
1) 安装expect
apt-get install tcl tk expect
2)demo 1
#!/usr/bin/expect -d --> 指定解释器,-d可以列出参数等有用信息
spawn ssh gsh@10.151.151.251 --> 相当于新起一个进程
expect "gsh\@10.151.151.251\'s password:" --> 特殊字符转义
send "gshgsh\n"
#expect eof --> 退出新起的进程
interact --> 等待交互
3)demo2
#!/usr/bin/expect -d
spawn scp -r xxx root@xxx:/root/
expect "Are you sure you want to continue connecting (yes/no/\[fingerprint\])?"
send "yes\n"
expect off
4、bash脚本非阻塞式执行多个进程
1)demo
{ --> 使用{}括起来(独占一行),后面加&符,表示把命令放入后台执行
/root/xx.jar1
}&
/root/xx.jar2
wait --> 等待放入后台的任务执行完毕再往下执行
六、apt-get install相关
1、apt-get install 出现已经安装低版本等错误提示的时候?
可能是源不对,需要根据ubuntu的版本,cpu架构选择正确的源。 比如ubuntu20.04 arm64
七、ctrl+c的时候kill当前进程及其子进程
trap 'onCtrlC' INT
function onCtrlC () {
pidLine=`pstree -p $$`
echo "pstree: ${pidLine}"
#取括号中的内容
pidLine=`echo $pidLine | awk 'BEGIN{ FS="(" ; RS=")" } NF>1 { print $NF }' `
pidList=($pidLine)
{
local lastIndex=`expr ${#pidList[@]} - 1`
for (( i=0; i<=$lastIndex; i++ ))
do
pid=${pidList[i]}
echo "kill -9 ${pid}"
kill -9 ${pid}
done
} &
}
八、gcc相关
1、gcc升级高版本
apt-get update
apt install -y gcc-10 g++-10
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10