切换gcc版本
当前系统安装了
gcc7,编译老旧的项目时候需要gcc5,则需要切换
cortex@ubuntu18:~/u-boot$ gcc -vUsing built-in specs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapperOFFLOAD_TARGET_NAMES=nvptx-noneOFFLOAD_TARGET_DEFAULT=1Target: x86_64-linux-gnuConfigured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnuThread model: posixgcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
安装
gcc5sudo apt install gcc-5 g++5
查看已安装的版本
cortex@ubuntu18:~/u-boot$ ls /usr/bin/gcc*/usr/bin/gcc /usr/bin/gcc-7 /usr/bin/gcc-ar-5 /usr/bin/gcc-nm /usr/bin/gcc-nm-7 /usr/bin/gcc-ranlib-5/usr/bin/gcc-5 /usr/bin/gcc-ar /usr/bin/gcc-ar-7 /usr/bin/gcc-nm-5 /usr/bin/gcc-ranlib /usr/bin/gcc-ranlib-7
gcc版本更换 ```shell cortex@ubuntu18:~/u-boot$ sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-5 20 —slave /usr/bin/g++ g++ /usr/bin/g++-5
cortex@ubuntu18:~/u-boot$ sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-7 10 —slave /usr/bin/g++ g++ /usr/bin/g++-7
10,20这些表示的是优先级,可根据需要选定,优先级高的即为默认的。
cortex@ubuntu18:~/u-boot$ sudo update-alternatives —config gcc There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
- 0 /usr/bin/gcc-5 20 auto mode 1 /usr/bin/gcc-5 20 manual mode 2 /usr/bin/gcc-7 10 manual mode
Press
- 验证版本```shellgcc -v
计算ip段
# 举例说明15.244.3.14/17# 拆分换算, 17 - 16 = 1, 所有只有1位不动,15.244.<0><0000011>.1415.244.0.1. 首个 15.244.<0><0000000>.1255.255.128.0 子网掩码. 15.244.<1><000000>.015.244.127.254 最后一个地址 15.244.<0><1111111>.25415.244.127.255 广播地址: 15.244.<0><1111111>.255<1111><1111> 255<1111><1110> 254<1111><1100> 252<1111><1000> 248<1111><0000> 240<1110><0000> 224<1100><0000> 192<1000><0000> 128<0000><0000> 0
分割字符
${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串
awk使用
- 显示某列之后的项 ```shell journalctl -u docker | awk -v n=7 ‘{if(NF>=n){for(i=n;i<NF;i++)printf $i;printf “\n”}}’
查看日志快速去重
journalctl -u docker | awk -v n=7 ‘{if(NF>=n){for(i=n;i<NF;i++)printf $i;printf “\n”}}’ | sort | uniq -c | sort -nr | head
- 检测端口是否开启,返回结果```bashbash -c 'exec 3<> /dev/tcp/'172.31.0.2'/'53';echo $?' 2> /dev/null端口开通返回 0,为开通则返回 1。
- awk 截取目标字段
```bash
获取 etcd 镜像仓库地址
kubectl -n kube-system exec -it $(kubectl get pod -n kube-system |grep etcd | grep Running | head -1 | awk ‘{print $1}’) — sh -c ‘ETCDCTL_API=2 etcdctl get /registry/v1/settings’| awk ‘BEGIN{FS=OFS=”,”}{for(i=1;i<=NF;i++){if($i~/“address”/)lines=lines”,”$i;}print lines;lines=””}’ | awk -F [,\”] ‘{print $5}’
获取镜像仓库存储地址
kubectl -n kube-system exec -it $(kubectl get pod -n kube-system |grep etcd | grep Running | head -1 | awk ‘{print $1}’) — sh -c ‘ETCDCTL_API=2 etcdctl get /DCE/v1/config/helm-config’ | awk ‘BEGIN{FS=OFS=”,”}{for(i=1;i<=NF;i++){if($i~/registry_nfs/)lines=lines”,”$i;}print lines;lines=””}’
- 统计当前目录下各有多少个文件```bashfind -type f | awk -F / -v OFS=/ '{$NF="";S[$0]++}END{for(i in S) print S[i]""i}' | sort -k1 -nr | head
解析image包中的镜像列表
cat manifest.json | python -c 'import sys,json;print("\n".join([i.get("RepoTags")[0] for i in json.load(sys.stdin)]))'
vim 中删除空行
:g/^\s*$/d
sed从第N行开始匹配关键字再删除 ```bash
cat file
[k8s_master] 10.10.10.11 10.10.10.12 [k8s_master] 10.10.10.13 10.10.10.14
cat file | sed ‘2,${/master/d}’
[k8s_master] 10.10.10.11 10.10.10.12 10.10.10.13 10.10.10.14
cat file | awk ‘NR==1 || !/master/‘
```
- nginx dockefile
yum history undo $(yum history list wget | grep install | awk ‘{print $1}’) -y
- iptables
https://www.cnblogs.com/paul8339/p/14688156.html

