切换gcc版本

当前系统安装了 gcc7 ,编译老旧的项目时候需要 gcc5 ,则需要切换

  1. cortex@ubuntu18:~/u-boot$ gcc -v
  2. Using built-in specs.
  3. COLLECT_GCC=gcc
  4. COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
  5. OFFLOAD_TARGET_NAMES=nvptx-none
  6. OFFLOAD_TARGET_DEFAULT=1
  7. Target: x86_64-linux-gnu
  8. Configured 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-gnu
  9. Thread model: posix
  10. gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
  • 安装 gcc5

    1. sudo apt install gcc-5 g++5
  • 查看已安装的版本

    1. cortex@ubuntu18:~/u-boot$ ls /usr/bin/gcc*
    2. /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
    3. /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 to keep the current choice[*], or type selection number:

  1. - 验证版本
  2. ```shell
  3. gcc -v

计算ip段

  1. # 举例说明
  2. 15.244.3.14/17
  3. # 拆分换算, 17 - 16 = 1, 所有只有1位不动,
  4. 15.244.<0><0000011>.14
  5. 15.244.0.1. 首个 15.244.<0><0000000>.1
  6. 255.255.128.0 子网掩码. 15.244.<1><000000>.0
  7. 15.244.127.254 最后一个地址 15.244.<0><1111111>.254
  8. 15.244.127.255 广播地址: 15.244.<0><1111111>.255
  9. <1111><1111> 255
  10. <1111><1110> 254
  11. <1111><1100> 252
  12. <1111><1000> 248
  13. <1111><0000> 240
  14. <1110><0000> 224
  15. <1100><0000> 192
  16. <1000><0000> 128
  17. <0000><0000> 0

分割字符

  1. ${varible##*string} 从左向右截取最后一个string后的字符串
  2. ${varible#*string}从左向右截取第一个string后的字符串
  3. ${varible%%string*}从右向左截取最后一个string后的字符串
  4. ${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

  1. - 检测端口是否开启,返回结果
  2. ```bash
  3. bash -c 'exec 3<> /dev/tcp/'172.31.0.2'/'53';echo $?' 2> /dev/null
  4. 端口开通返回 0,
  5. 为开通则返回 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=””}’

  1. - 统计当前目录下各有多少个文件
  2. ```bash
  3. find -type f | awk -F / -v OFS=/ '{$NF="";S[$0]++}END{for(i in S) print S[i]""i}' | sort -k1 -nr | head
  • 解析image包中的镜像列表

    1. cat manifest.json | python -c 'import sys,json;print("\n".join([i.get("RepoTags")[0] for i in json.load(sys.stdin)]))'
  • vim 中删除空行

    1. :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

image.pngyum history undo $(yum history list wget | grep install | awk ‘{print $1}’) -y

  • iptables

https://www.cnblogs.com/paul8339/p/14688156.html

image.png