awk基本使用

快捷键 awk 是 linux 上用于文本处理的脚本语言,你可以实现: 定义变量 使用字符串和算术运算符 使用控制流程和循环 生成格式化的输出 用法:awk [POSIX 或 GNU 风格选项] [--] '程序' 文件 ... POSIX 选项: GNU 长选项:(标准) -f 脚本文件 --file=脚本文件 -F fs --field-separator=fs -v var=val --assign=var=val 使用变量 $0 整行 $1 第一列字段 $2 第二列字...

2020-12-05 · 1 min · 479 字 · Niuhe

linux 101 Hackers 笔记

# 创建目录并进入 function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; } 查找文件 # 找到大于100M的文件 find / -type f -size +100M # 找到文件名中含有mail的文件/文件夹 find /etc -name "*mail*" # 找到修改时间在60天之前的文件 find . -mtime +60 # 找到修改时间在2天内的文件 find . -mtime -2 # 批量显示TS后缀且大于100M文件的详情 find . -type f -name '*.TS' -size +100M -exec ls -l {} \; # 批...

2020-12-05 · 3 min · 1346 字 · Niuhe

vscode 快捷键和插件记录

快捷键 CTRL+B 打开/收起侧边栏目 CTRL+` 打开内置终端 CTRL+, 打开设置 CTRL+p 快速搜索并打开文件 CTRL+TAB 在已经打开的标签页中跳转 CTRL+\ 将标签页移动到右侧分割栏 CTRL+w 关闭标签页 CTRL+f 查找内容 CTRL+h 查找并替换 CTRL+SHIFT+f 全局搜索 CTRL+SHIFT+p 命令面板 CTRL+/ 注释/解除注释 CTRL+HOME/END 跳转到文件首/尾 CTRL+c/v 复制或剪切当前光标行/在当前光标行或下一行粘贴 CTRL+SHIFT+...

2020-12-05 · 2 min · 924 字 · Niuhe

openstack创建虚拟机

创建虚拟机 1、界面或命令行通过RESTful API向keystone获取认证信息。 2、keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。 3、界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带aut...

2020-10-31 · 15 min · 7418 字 · Niuhe

Openstack命令行基础

不同命令的功能有重复和交集 Openstack篇 Openstack每个组件都有其命令,openstack社区为了方便使用,将所有组件的命令进行了统一,以openstack开头 # 查看所有openstack服务 openstack service list # 查看openstack服务状态 openstack-service status # 重启本节点所有openstack...

2020-10-23 · 5 min · 2299 字 · Niuhe

Virsh命令和虚拟机

环境搭建和准备 # 查看cpu是否支持硬件虚拟化 grep -E -c "vmx|svm" /proc/cpuinfo sudo apt install -y qemu qemu-kvm libvirt-daemon bridge-utils virt-manager virtinst # if centos # yum install -y kvm virt-manager libvirt libvirt-python python-virtinst virt-install qemu-kvm lsmod | grep -i kvm sudo systemctl status libvirtd.service # 如果服务未启动 sudo systemctl enable libvirtd --now # 配置网桥使得libvirt可以从外部访问 cat /etc/netplan/00-installer-config.yaml # 可选,GUI管理工具 sudo apt-get install virt-manager python-spice-client-gtk 下载调试镜像: 从官方地址下载cirros镜像,用来调试虚...

2020-10-22 · 9 min · 4338 字 · Niuhe

tcpdump的基本使用【译】

Tcpdump是一个linux命令行的抓包工具,可以抓取TCP/IP和其他数据包,如UDP,ARP,ICMP,可以使用过滤器过滤出想要的包。 抓取特定接口上的包 当使用tcpdump不加任何参数,将分析所有接口上的数据包。 sudo tcpdump 可以使用-i选项指定特定接口 可以使用-c选项限制数据包的个...

2020-10-19 · 3 min · 1360 字 · Niuhe

Linux性能测试

简介 Linux上对系统进行性能检测的工具非常多,本文介绍一些常用工具的使用 性能观测工具 ▪ 首先学习的Basic Tool有如下: uptime、top(htop)、mpstat、isstat、vmstat、free、ping、nicstat、dstat。 ▪ 高级的命令如下: sar、net...

2020-10-17 · 13 min · 6027 字 · Niuhe

GDB调试Python代码

Core Dump文件 凡事皆有两面性,OS在出Core的同时,虽然会终止掉当前进程,但是也会保留下第一手的现场数据,OS仿佛是一架被按下快门的相机,而照片就是产出的Core文件。里面含有当进程被终止时内存、CPU寄存器等信息,可以供后续开发人员进行调试。 Gdb可以附着在特定进程上调试,但...

2020-10-16 · 2 min · 946 字 · Niuhe

Python进阶下

有两种常用的方法可以使得代码并行执行,多线程和多进程 。因为Cython解释器的实现不是线程安全的,具有GIL锁,同一时刻,只有一个线程可以获得解释器的锁。因此,Python利用多核心的CPU只能通过多进程,而多线程只适用于IO密集型的程序。 多进程基础 创建并开启进程 可以使用mult...

2020-10-13 · 5 min · 2417 字 · Niuhe

Python进阶中

生成器Generator def countdown(num): print('Starting') while num > 0: yield num num -= 1 # this will not print 'Starting' cd = countdown(3) # this will print 'Starting' and the first value print(next(cd)) # will print the next values print(next(cd)) print(next(cd)) # this will raise a StopIteration print(next(cd)) 迭代器使用方式 # you can iterate over a generator object with a for in loop cd = countdown(3) for x in cd: print(x) # you can use it for functions that take iterables as input cd = countdown(3) sum_cd = sum(cd) print(sum_cd) cd = countdown(3) sorted_cd = sorted(cd) print(sorted_cd) 生成器表达式 # generator expression mygenerator = (i for i in range(1000) if i % 2 == 0) print(sys.getsizeof(mygenerator), "bytes") # list comprehension mylist...

2020-10-12 · 8 min · 3535 字 · Niuhe

Ubuntu20_04上使用ibus中文输入法

Ubuntn 上一直以来对中文输入法的支持都不是很完善,在升级到 20.04 版本之后,系统默认自带的是 ibus 输入法,刚刚上手使用之后不是很好用。在尝试安装 fcitx 和搜狗输入法之后,因为搜狗输入法和 Pycharm 等 IDE 冲突,会导致软件卡死,而且资源占用较高。还是切换回了 ibus 输入法。 在简单调教之后,发现 ibus 还是很好用的。 打开 Ibus 首选项...

2020-10-11 · 1 min · 277 字 · Niuhe

正则表达式基本使用

基础 1.1 字符匹配 字符 说明 \ 转义符 \d [0-9]。表示是一位数字。 \D [^0-9]。表示除数字外的任意字符。 \w [0-9a-zA-Z_]。表示数字、大小写字母和下划线。 \W [^0-9a-za-z_]。非单词字符。 \s [\t\v\n\r\f]。表示空白符,包括空格、水平制表符、 垂直制表符、换行符...

2020-10-11 · 11 min · 5265 字 · Niuhe

PlantUML画时序图

本文主要介绍PlantUML绘图环境的搭建以及时序图的绘制,主要以Linux平台为例。 ...

2020-09-28 · 2 min · 618 字 · Niuhe

编程工具之Git

Git版本控制 尽管 Git 的接口有些丑陋,但是它的底层设计和思想却是非常优雅的。丑陋的接口只能靠死记硬背,而优雅的底层设计则非常容易被人理解。因此,我们将通过一种自底向上的方式像您介绍 Git。我们会从数据模型开始,最后再学习它的接口。一旦您搞懂了 Git 的数据模型,再学习其接口并理解这些接口...

2020-09-27 · 8 min · 3786 字 · Niuhe