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)则是相反,网卡能够接收所有经过它的数据流,而不论其目的地址是否是它他。

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

2020-06-19 09:36:56    43    0    0

一. host模式

与宿主机共享网络,host模式时宿主机和容器共用同一个网络,所以如果在容器内和宿主机要启动监听端口时需要考虑端口冲突问题。

  1. $ docker run -it --rm --name alpine1 --network host alpine sh
  1. +-----------------------------------------------------------------------------+
  2. | HOST |
  3. | +--------------------------------+ +----------------------------------+ |
  4. | | container1 | | container2 | |
  5. | | 10.10.10.220/24 | | 10.10.10.220/24 | |
  6. | +--------------------------------+ +----------------------------------+ |
  7. | share the same network |
  8. | +-----------------------+ |
  9. | | 10.10.10.220/24 | |
  10. | | eth0 | |
  11. +-------------------------+-----------------------+---------------------------+
2020-06-14 20:45:37    24    0    0

Docker的数据持久化主要有两种方式:bind mountvolume,Docker的数据持久化要么存在于host的某个指定目录中(使用bind mount),要么使用docker自己管理的volume/var/lib/docker/volumes下)。

一. bind mount

下面是挂载示例

  1. docker run -itd -v $(pwd)/host-dava:/container-data centos:7.7.1908 /bin/bash

说明:

  • host机器的目录路径必须为绝对路径,不然docker会将其当做volume而不是bind mount处理.
  • 如果host机器上的目录不存在,docker会自动创建该目录.
  • 如果container中的目录不存在,docker会自动创建该目录.
  • 如果container中的目录已经有内容,那么docker会使用host上的目录将其覆盖掉.
2020-05-17 14:10:58    72    0    0
  •  XMeters

        在任务栏实时显示磁盘读写速率、内存占用量、网络上传下载速率、CPU负载的情况。类似于linux下i3status 、py3status的替代品。

        

 

  • Rainmeter

        在桌面实时显示系统状态,比如磁盘、网络、时间等。类似于linux下conky的替代品。

        

 

  • Al

2020-03-19 12:56:30    129    0    0

一. 工具准备

首先准备一个 ubuntu18.04.3 的server版操作系统,确保能正常上网,在该操作系统上进行制作离线包。apt-rdepends 命令能找出指定工具的所有依赖,包括依赖的依赖。

vim /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted univer