Linux小技巧

2019-05-27

Linux
查看CPU信息

more /proc/cpuinfo                                       # 查看cpu信息
lscpu                                                    # 查看cpu信息
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c    # 查看cpu型号和逻辑核心数
getconf LONG_BIT                                         # cpu运行的位数
cat /proc/cpuinfo | grep 'physical id' |sort| uniq -c    # 物理cpu个数
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l     # 结果大于0支持64位
cat /proc/cpuinfo|grep flags                             # 查看cpu是否支持虚拟化   pae支持半虚拟化  IntelVT 支持全虚拟化

python:
快速统计可迭代对象元素个数排名

# collections.Counter lets you find the most common
# elements in an iterable:

>>> import collections
>>> c = collections.Counter('helloworld')

>>> c
Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})

>>> c.most_common(3)
[('l', 3), ('o', 2), ('e', 1)]

2019-05-28

Linux
查看系统硬件信息

more /proc/meminfo                                       # 查看内存信息
dmidecode                                                # 查看全面硬件信息
dmidecode | grep "Product Name"                          # 查看服务器型号
dmidecode | grep -P -A5 "Memory\s+Device" | grep Size | grep -v Range       # 查看内存插槽
cat /proc/mdstat                                         # 查看软raid信息
cat /proc/scsi/scsi                                      # 查看Dell硬raid信息(IBM、HP需要官方检测工具)
lspci                                                    # 查看硬件信息

python:
运用python切片技巧

# You can clear all elements from a list:
>>> lst = [1, 2, 3, 4, 5]
>>> del lst[:]
>>> lst
[]

# You can replace all elements of a list
# without creating a new list object:
>>> a = lst
>>> lst[:] = [7, 8, 9]
>>> lst
[7, 8, 9]
>>> a
[7, 8, 9]
>>> a is lst
True

# You can also create a (shallow) copy of a list:
>>> b = lst[:]
>>> b
[7, 8, 9]
>>> b is lst
False

2019-05-30

linux:

iptables实现端口映射

# 内网通过有外网IP的机器映射端口
# 内网主机添加路由
route add -net 10.10.20.0 netmask 255.255.255.0 gw 10.10.20.111     # 内网需要添加默认网关,并且网关开启转发
# 网关主机
echo 1 > /proc/sys/net/ipv4/ip_forward       # 在内核里打开ip转发功能
iptables -t nat -A PREROUTING -d 外网IP  -p tcp --dport 9999 -j DNAT --to 10.10.20.55:22    # 进入
iptables -t nat -A POSTROUTING -s 10.10.20.0/24 -j SNAT --to 外网IP                 # 转发回去
iptables -t nat -nL                # 查看转发

python:

python推导式运用

# Python's list comprehensions are awesome.

vals = [expression 
        for value in collection 
        if condition]

# This is equivalent to:

vals = []
for value in collection:
    if condition:
        vals.append(expression)

# Example:

>>> even_squares = [x * x for x in range(10) if not x % 2]
>>> even_squares
[0, 4, 16, 36, 64]

2019-05-31

linux:

网络相关基础命令

rz   # 通过ssh上传小文件
sz   # 通过ssh下载小文件
ifconfig eth0 down                  # 禁用网卡
ifconfig eth0 up                    # 启用网卡
ifup eth0:0                         # 启用网卡
mii-tool em1                        # 查看网线是否连接
traceroute www.baidu.com            # 测试跳数
vi /etc/resolv.conf                 # 设置DNS  nameserver IP 定义DNS服务器的IP地址
nslookup www.moon.com               # 解析域名IP
dig -x www.baidu.com                # 解析域名IP

python:

python内置httpserver,快速测试

# Python has a HTTP server built into the
# standard library. This is super handy for
# previewing websites.

# Python 3.x
$ python3 -m http.server

# Python 2.x
$ python -m SimpleHTTPServer 8000

# (This will serve the current directory at
#  http://localhost:8000)

2019-06-10

docker镜像制作小技巧
基础镜像使用alpine,如果镜像中要运行的是C程序的话就要自己安装glibc,如jdk也是C开发的,所以在安装jdk的时候就要先安装glibc
alpine:3.9-glibc 镜像的dockerfile如下

FROM alpine:3.9
MAINTAINER Andy_f
ENV LANG=C.UTF-8
RUN echo http://mirrors.ustc.edu.cn/alpine/v3.9/main > /etc/apk/repositories && \
    echo http://mirrors.ustc.edu.cn/alpine/v3.9/community >> /etc/apk/repositories &&\
    apk --no-cache add ca-certificates && \
    wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk && \
    apk add glibc-2.29-r0.apk && \
    rm -rf glibc-2.29-r0.apk && \
    apk add tzdata && \
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    apk del tzdata && \
    apk add curl
# end
# RUN 指令注解
# 增加中国科技大学的alpine镜像站点到docker镜像中
# 安装CA证书
# 下载alpine软件仓库的公钥文件
# 下载glibc2.29
# 安装glibc
# 删除glibc安装包
# 安装时区管理工具
# 设置时区为上海
# 删除时区文件包
# 安装curl
# 以上是安装glibc及设置时区和安装一些工具的指令,如果自己还需要安装其他的,直接在curl 后面添加步骤即可

更多历史小技巧,技术交流,岗位内推访问:马哥社区