蓝狐狸
生活并不会总被预料,有意外才是生活。生活并不会总被预料,有意外才是生活。
蓝狐狸 发布于 收录于 Linux 参考:Shell教程|菜鸟教程
shell 环境
#!/bin/bash:脚本第一行,告诉系统使用什么解释器来执行,即使用哪一个 shell
注释 单行注释用# 多行注释用 :<< 开头,! 包裹注释内容 1 2 3 4 5 6 # 这是一个单行注释 :<<! 这是多行注释 这是多行注释 这是多行注释 ! 变量 1 2 3 4 # 变量 = 号两侧不能有空格,大小写敏感 my_name="lanhuli" echo ${my_name} unset my_name # 删除变量 双引号和单引号的区别
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字符串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。 双引号里可以有变量 双引号里可以出现转义字符 只读变量
1 2 3 4 myUrl="https://www.google.com" readonly myUrl myUrl="https://www.runoob.com" # 执行报错,NAME: This variable is read only. 字符串变量
1 2 3 4 5 6 7 8 9 10 11 #!
蓝狐狸 发布于 收录于 华为交换机 简单命令 undo shutdown //激活接口
display current-configuration // 查看当前的配置(内存中)
display saved-configuration // 查看保存的配置(Flash 中)
端口信息查看
信息含义: https://support.huawei.com/enterprise/zh/doc/EDOC1100064380/e51dee46
光模块查看
参考: https://support.huawei.com/enterprise/zh/doc/EDOC1100127136/94ef2802
端口批量操作
端口批量修改为 access
参考: https://support.huawei.com/enterprise/zh/knowledge/EKB1000029447
1 2 3 4 5 6 7 8 9 10 11 12 13 14 **配置临时端口组** # 配置接口GE1/0/9至GE1/0/15加入到临时端口组(使用port-group group-member命令)。 <HUAWEI> system-view [HUAWEI] port-group group-member gigabitethernet 1/0/9 to gigabitethernet 1/0/15 [HUAWEI-port-group] **配置永久端口组** # 配置接口GE1/0/1至GE1/0/8加入到永久端口组portgroup1(使用port-group命令)。 <HUAWEI> system-view [HUAWEI] port-group portgroup1 [HUAWEI-port-group-portgroup1] group-member gigabitethernet 1/0/1 to gigabitethernet 1/0/8 1 2 3 4 5 在VLAN视图下批量将接口加入VLAN <HUAWEI> system-view [HUAWEI] vlan 10 [HUAWEI-vlan10] port gigabitethernet 0/0/1 to 0/0/5 mac 黑洞
蓝狐狸 发布于 收录于 Linux 环境变量相关的配置文件 /etc/profile:此文件为系统的每个用户设置环境信息。
/etc/bashrc或 /etc/bash.bashrc:为每一个运行 bash shell 的用户执行此文件.当 bash shell 被打开时,该文件被读取。
~/.bashrc:该文件包含专用于你的 bash shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该文件被读取。
~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人配置,需要修改自己的数据,就写入这些文件!(ps1:其实 bash 的 login shell 配置只会读取上面三个文件的其中一个,而读取的顺序则是依照上面的顺序。ps2:这三个文件一般没啥人修改的,因为它们最终都是去调用读取~/.bashrc 这个文件。ps3:这三个文件不一定存在,我的 debian11.9 系统中就没有看到这三个文件,只有~/.bashrc)
以上文件中,其实只有/etc/profile 和~/.bashrc 这两个是常用的、重要的。其他的几乎不用管,没有必要去深入了解。
如果你设置的变量只针对你或其他一个用户,那就修改~/.bashrc,如果是针对所有用户,就修改/etc/profile。
交互式 shell 和非交互式 shell 交互式 shell:顾名思义,这种 shell 中的命令时由用户从键盘交互式地输入的,运行的结果也能够输出到终端显示给用户看。例如我们平常在终端输入的 cd 命令、vi 命令、mv 等都属于交互式的。
非交互式 shell:这种 shell 可能由某些自动化过程启动,不能直接从请求用户的输入,也不能直接输出结果给终端用户看。通常我们写的 shell 脚本都是非交互式的,通过 sh 直接运行该脚本文件。
login shell 和 non-login shell login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。举例来说,我们登陆 tty1 ~ tty6 时,需要输入用户的账号与密码,此时取得的 bash 就称为 login shell
蓝狐狸 发布于 收录于 默认分类 方法 1:rc.local 文件位置在 /etc/rc.local。比较简单的方法,但是有些 linux 版本不支持,例如 debian 默认没有 rc.local 这个文件,但是有这个服务,并且这个服务是关闭的。
注意:/etc/rc.local 和/etc/rc.d/rc.local 区别在于,/etc/rc.local 是/etc/rc.d/rc.local 的软连接
1)使用方式 1 2 3 4 5 # 先赋予文件执行权限,有就不用了 chmod +x /etc/rc.d/rc.local # 查看是否有执行权限 ls -l /etc/rc.d/rc.local # 将想要执行的命令添加到 rc.local 文件末尾即可,也可以执行 .sh 文件 2)简单测试一下 先创建一个文件:touch /root/111.txt,在 rc.local 文件后面添加命令 /bin/echo "abc11" > /root/111.txt,重启验证,查看命令是否执行。
重启后
3)debian 系统没有 rc.local 怎么办 debian 虽然默认没有 rc.local 这个文件,但是有这个服务,并且这个服务是关闭的。
手动创建 /etc/rc.local 文件,写入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!
蓝狐狸 发布于 收录于 默认分类 老版本 linux 系统的安装源都不维护消失了,没有源安装一些常用软件比较麻烦,可以使用 iso 镜像文件搭建简易安装源,安装常用软件包
参考文章:yum源的三种搭建方式,CentOS 使用iso镜像安装本地 yum 源 ,使用iso镜像设置Ubuntu系统本地apt源,Debian如何配置局域网APT软件仓库
yum 源:网络搭建 这里以 Centos7 为例
1)服务器上需要安装有 apache 或 nginx 等服务器,并可以正常访问,这里使用 nginx 为例,服务器 ip 为 192.168.0.211 网站目录为 /var/www/html/
2)上传 CentOS-7-x86_64-DVD-2009.iso 镜像到服务器上,然后在网站目录下新建一个文件夹,文件夹名随意。
1 mkdir /var/www/html/repo 3)将 iso 镜像挂载到创建的目录下 /var/www/html/repo
1 mount CentOS-7-x86_64-DVD-2009.iso /var/www/html/repo 挂载完成后,repo 目录下会多出一些文件
4)启动一台 Centos7 服务器,来到 /etc/yum.repos.d 目录下,删除这个目录下的所有文件,创建一个文件 http.repo,写入以下内容。
1 2 3 4 5 6 7 8 9 10 #yum仓库名,可自定义 [http] #yum仓库的描述信息 name=repo_for_http #yum源的网络访问地址。url链接不要填错 baseurl=http://192.168.0.211/repo/ #启用仓库 enabled=1 # 不进行红帽标签检查 gpgcheck=0 至于删除的那些文件的作用和内容,有兴趣可以自行百度或查看上述参考文章。
蓝狐狸 发布于 收录于 默认分类 从hexo转到hugo
hugo的环境安装比hexo要简单,hugo下个二进制文件就行,hexo还要下载nodeJS和一堆npm包,而且下载的时候因为网络问题还慢,所以就换了hugo。
之前用hexo时用的主题是butterfly,配置起来挺简单,文档全,也挺好看的。换了hugo之后,找了不少主题,最终选择用了FixIt
FixIt主题很简洁,简单,够用,而且还有中文文档,上手挺快的。
靶场镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # dvwa docker run -d -p 43301:3306 -p 48881:80 --restart=always --name=dvwa sagikazarmark/dvwa # pikachu docker run -d -p 43302:3306 -p 48882:80 --restart=always --name=pikachu area39/pikachu # sqli-labs docker run -d -p 43303:3306 -p 48883:80 --restart=always --name=sqli-labs acgpiano/sqli-labs # xss-labs docker run -d -p 43304:3306 -p 48884:80 --restart=always --name=xss-labs vulfocus/xss-labs # ssrf-labs docker run -d -p 43305:3306 -p 48885:80 --restart=always --name=ssrf-labs anhkhoa14592/ssrf-labs # webgoat 安装 docker run -d -p 48887:8080 -p 49091:9090 -e TZ=Asia/Shanghai --restart=always --name=webgoat webgoat/webgoat # bluelotus_xss 安装 docker run -d -p 48888:80 --restart=always --name=bluelotus_xss tanyiqu/bluelotus_xss_receiver 对于某些课程,您需要在同一时区运行容器。为此,您可以设置 TZ 环境变量。 https://hub.
蓝狐狸 发布于 收录于 Linux linux编译安装指令
configure、make、make install 命令
configure:配置,是用来检测你的安装平台的目标特征的。比如它会检测你是不是有 CC 或 GCC,并不是需要 CC 或 GCC,它是个 shell 脚本。configure 脚本负责在使用的系统上准备好软件的构建环境。确保接下来的构建和安装过程所需要的依赖准备好,并且搞清楚使用这些依赖需要的东西。
make:构建,用来编译,它从 Makefile 中读取指令,然后编译。下载的源码包一般没有一个最终的 Makefile 文件,一般是一个模版文件,然后 configure 根据系统的参数生成一个定制化的 Makefile 文件。这个过程会执行在 Makefile 文件中定义的一系列任务将软件源代码编译成可执行文件。
make install:安装,它也从 Makefile 中读取指令,安装到指定的位置。make install 命令就是将可执行文件、第三方依赖包和文档复制到正确的路径。
清除 make 生成的文件:make clean
清除 make 和 configure 生成的文件,包括 Makefile:make distclean
apt 源安装 php 由于 debian 11 带的 php 版本是 7.4,有点老,所以我们可以使用 debian 开发者 Ondřej Surý 维护的 php 源 deb.sury.org 。
注意:以下方式还可以安装 php 5.6 版本
1 2 3 4 5 6 7 8 9 10 11 12 13 # 首先,使用下面的命令安装所须的软件包: apt install ca-certificates apt-transport-https software-properties-common -y # 安装所须软件包后,使用以下命令将 Sury 存储库添加到 APT: echo "deb [https://packages.
蓝狐狸 发布于 收录于 默认分类 项目地址: https://github.com/firesunCN/BlueLotus_XSSReceiver
自己做成了一个 docker 镜像,可以直接使用。
1 2 3 4 docker pull bluefoxqaq/bluelotus_xss_docker:2.0 # 这里映射宿主机的80端口,其它端口有问题,admin.php页面会不断刷新。80端口就没事 docker run -d -p 80:80 -it --name=bluelotus bluefoxqaq/bluelotus_xss_docker:2.0 # 访问ip:80即可 登录时需要完整的地址,例如:http://ip/login.php ,这个login.php不会自动添加。
镜像制作过程
下载所需要的文件,解压后是个名为 xcc 的文件夹,进入 xcc 文件夹,运行 docker build 命令
1 docker build -f ./Dockerfile -t bluelotus_docker:1.0 . # 注意后面的点号 所需文件下载地址:xcc.zip
其中 Dockerfile 文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 FROM debian:9.
Dockerfile常用指令 Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Dockerfile 的指令是从上到下依次执行。其实跟我们直接敲命令差不多。
1 2 3 4 5 6 7 # 一些常见指令 FROM:指定基础镜像,必须 WORKDIR :设置指令的工作目录 COPY :将文件或目录复制到镜像中,第一个参数是宿主机文件,第二个是容器 RUN :镜像创建阶段中执行的命令 CMD :容器创建阶段中执行的命令,可以被覆盖。例如在docker run 镜像id xxxx时 EXPOSE :声明端口号 RUN 和 CMD 的区别:RUN 是在创建镜像时执行的命令,一般是安装、下载、创建文件之类的。CMD 是在创建容器时才会执行的命令,一般是启动程序的命令。
CMD 两种写法
exec 模式:不会通过 shell 执行相关的命令,所以向 $HOME 这样的环境变量是获取不到的。
格式:CMD ["可执行文件","参数1","参数2"]
shell 模式:docker 以 /bin/sh -c command 的方式执行命令,也就是说容器的 1 号进程是 bash 进程。
格式:CMD command
例如:
CMD ["/bin/echo","hello"],会输出 hello。
CMD echo hello,也会输出 hello,但是他其实是这样的 CMD ["","-c","echo hello"]
CMD echo $HOME 实际执行是 CMD [ "sh", "-c", "echo $HOME" ]