分类 - 系统与工具

2020-07-20 01:44:45    37    0    0

一. 系统安装

1.1 系统配置

  • 方法一:选择安装套件时选择Virtuallization Host,右边选择上常用的工具包即可。
  • 方法二:如果在装系统时没有选择Virtuallization Host,则按如下步骤安装:
  1. dnf module install virt
  2. dnf install virt-install virt-viewer
  3. # 环境检查是否满足要求
  4. virt-host-validate
  5. systemctl start libvirtd.service
  6. systemctl enable libvirtd.service
  7. systemctl status libvirtd.service
  • 安装完成后配置网卡的静态IP地址。
  1. vim /etc/sysconfig/network-scripts/ifcfg-eno4
  2. nmcli c reload
awk    2020-07-12 14:49:34    22    0    0

一. 简要概览

  • 问什么awk使用单引号
    (awk程序使用单引号包围)这个规定可以防止程序中的字符 (例如 $) 被 shell 解释, 也可以让程序的长度多于一行.

  • 程序格式
    动作的左花括号必须与它的模式在同一行; 而剩下的部分, 包括右花括号, 则可以出现在下
    面几行.
    空行会被忽略; 它们可以插入在语句之前或之后, 用于提高程序的可读性. 空格与制表符可
    以出现在运算符与操作数的周围, 同样也是为了提高可读性.

二. 模式匹配

2.1 模式汇总

  1. BEGIN{ statements}
    在输入被读取之前, statements 执行一次.

  2. END{ statements}
    当所有输入被读取完毕之后, statements 执行一次.

2020-07-07 00:04:32    22    0    0

字符串startswithendswith

  • Python
  1. # startswith
  2. if "BusFly".startswith("Bus"):
  3. print(True)
  4. # endswith
  5. if "BusFly".endswith("Fly"):
  6. print(True)
  • bash
  1. # startswith
  2. if [[ "BusFly" = Bus* ]];then
  3. echo true
  4. else
  5. echo false
  6. fi
  7. # endswith
  8. if [[ "BusFly" = *Fly ]];then
  9. echo true
  10. else
  11. echo false
  12. fi
KVM    2020-07-05 20:16:19    29    0    0

KVM

  • kvm(kernel-based virtual machine)是Linux的一个内核驱动模块,它只模拟CPU和内存。KVM模块的职责就是打开并初始化VMXVirtual Machine Extension)功能,提供相应的接口以支持虚拟机的运行。对于KVM来说,其匹配的用户空间工具并不仅仅只有QEMU,还有其他的,比如libvirt、virsh、virt-manager等,QEMU并不是KVM的唯一选择。

  • 在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)。

history    2020-07-05 19:36:20    30    0    0

在linux终端,有几个非常重要的环境变量:PS1,PS2,PS3,PS4,PROMPT_COMMAND,他们控制着我们的终端行为和显示,熟悉这些变量可以更好的了解shell。

一. 终端环境变量

PS1

PS1表示终端交互提示,比如[\u@\h \W]\$,它的显示结果为[work@backendweb ~]$,注意 PS1 最后有个空格, 可读性更加好一点,PS1里面可以放置任何想执行的命令。

  • 显示当前时间
  1. export PS1="[\u@\h \W <\$(date +%H:%M:%S)>]$ "


  • 显示任何可执行命令
  1. export PS1="[\u@\h \W <\$?>]$ "
EOF    2020-07-05 19:24:42    32    0    0

一. ()

用作数组,数组的元素如果有模糊的正则匹配,那么首先会看是否在指定路径能不能找到,如果找不到则原样输出。

  1. array=(/etc/mysql/conf.d/* "b b" c* d)
  2. for i in ${!array[@]};do
  3. echo ${array[i]}
  4. done
  5. # 结果
  6. /etc/mysql/conf.d/mysql.cnf
  7. /etc/mysql/conf.d/mysqldump.cnf
  8. b b
  9. c*
  10. d


二. $()

$()将多个命令组合在一起执行,相当于一个命令组,括号两边可以没有空格,括号内的命令输出以后整体是一个字符串。declare -p var可以看到变量的类型和值。$() 与` 都可以执行命令,$()`可以嵌套执行。

2020-07-03 23:34:05    28    0    0

/etc/sudoers文件里面可以配置某个普通用户其他用户的身份来执行某些命令(比如sudo commandsudo -u username command)。

一. 语法格式

通常我们编辑的是指定某些用户有执行某些命令的权限,比如

  1. # 表示root用户在所有主机上可以切换到任何用户执行所有命令
  2. root ALL=(ALL) ALL

通常语法格式为:who which_hosts=(runas) [NOPASSWD:] command

  • who
    表示什么用户(username)、用户组(%usergroup)可以执行。

Bash    2020-07-03 23:07:57    21    0    0

shell里面也有数组和所谓的字典,数组分为索引数组和关联数组(关联数组也就是在其他语言里面的字典,在数组和字典的操作方式基本一致)。

一. 数组

1.1 创建数组

  • 创建空数组
    names=()

  • 数组添加元素

  1. names=()
  2. declare -p names
  3. declare -a names=()
  4. names+="beijing"
  5. declare -p names
  6. declare -a names=([0]="beijing")
  7. names+=("beijing" "shanghai" "guangzhou")
  8. declare -p names
  9. declare -a names=([0]="beijing" [1]="beijing" [2]="shanghai" [3]="guangzhou")
2020-07-02 21:26:34    19    0    0

一. 基本权限

1.1 文件属性

下面是ls -l的示例,其中就包含了权限信息。

  1. lrwxrwxrwx. 1 root root 7 Dec 24 2019 bin -> usr/bin
  2. dr-xr-xr-x. 5 root root 4096 Feb 2 15:37 boot
  3. drwxr-xr-x. 3 root root 17 Dec 24 2019 cgroups_test
  4. drwxr-xr-x. 9 root root 97 Jun 8 11:11 data
  5. -rw-r--r-- 1 root root 647 Feb 18 18:16 derby.log
  6. drwxr-xr-x 20 root root 3840 May 29 14:49 dev
  7. drwxrwxrwt. 149 root root 12288 Jul 2 16:01 tmp

按照顺序从左到右依次表示:文件类型、所属者权限、所属组权限、其他用户权限、(对于普通文件表示链接数|对于目录表示第一级子目录数)、所属者、所属组、文件字节数、最后修改时间、文件名总共10项。

  • 文件类型
  1. - 代表文件
  2. b 代表块设备
  3. c 代表字符型设备
  4. d 代表目录
  5. l 代表链接
  6. n 代表网络设备
  7. p 管理文件
  8. s 套接字文件
2020-06-20 11:24:13    20    0    0

一. 混杂模式介绍

网卡正常情况下,即非混杂混杂模式下,只接收目的地址是本机的数据包。在以太网上,有大量的数据包,但真正发送给自己的非常少,所以非混杂模式下可以极大的减轻网卡的处理负担。混杂模式(Promiscuous Mode)则是相反,网卡能够接收所有经过它的数据流,而不论其目的地址是否是它他。

有时候为嗅探到网络上的数据,需要将网卡设置到混杂模式。进入该模式将网络上的数据一并抓获