分类 运维 下的文章

本学期我得有上《计算机安全管理》课程,其中在上到Hydra暴力破解时,为了方便学生练习,需要生成若干账号。其中账号和密码都要从指定的字典文件中生成,所以就有了从文本文件中随机读取一行的需求,于是我就写了这样一个脚本:

# 获取文件的行数
LINECOUNT=`wc -l rkolin.txt|awk '{printf $1}'` 
# 随机选第LINE行
LINE=$(( RANDOM % $LINECOUNT ))
# 输出前LINE行的最后一行
head -n $LINE rkolin.txt|tail -n 1 

这个脚本是能够完成任务的要求的,不过我想知道chatGPT怎么看,于是有了下面的对话:

Q:BASH: get a random line from a text file

A:You can use the shuf command in Bash to shuffle the lines of a text file and then use head to get the first line. Here's an example:

shuf -n 1 < filename.txt

This will shuffle the lines of filename.txt and then output the first line. The -n option specifies the number of lines to output, in this case just one.

简直就是最好的老师啊!如果这个东西普及了,对于我们的学习多么的方便!新时代真的要来了,现在担心的就是互联网上的语料用完之后能不能有创造性的答案出现,如果真的能,那就真的是一个新时代了。

FROM alpine:3.17
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache nodejs npm && \
npm install -g cnpm --registry=https://registry.npm.taobao.org && \
cnpm install -g reveal-md
EXPOSE 1948/tcp
CMD reveal-md /markdown-files
VOLUME /markdown-files
  1. 如果不是在国内,可以不修改apk源和npm源的位置。
  2. hexo等可以仿照这个文件生成

FROM hugsnow/alphine-php
RUN apk update && apk upgrade && apk add --no-cache  mysql  && \
mysql_install_db --user=mysql --datadir=/var/lib/mysql && \

EXPOSE 80/tcp
CMD php-fpm7 && mysqld_safe && lighttpd -D -f /etc/lighttpd/lighttpd.conf
VOLUME /var/www/localhost/htdocs /var/lib/mysql

这个镜像以本站的Lighttpd-PHP镜像为基础,如果使用基于Nginx,替换相应的命令即可。

FROM alpine:3.15.0
ADD default.conf /etc/nginx/http.d/
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache nginx php8-fpm php8-sqlite3 php8-pdo php8-pdo_sqlite php8-json \
php8-mysqli php8-pdo_mysql php8-mbstring php8-gd php8-curl php8-session && \
EXPOSE 80/tcp
CMD php-fpm8 && nginx && ash 
VOLUME /var/www/localhost/htdocs
  • 当版本更新时,修改Alpine和PHP的版本号即可
  • 如果不在国内,可以不用修改源,或者可以使用更快的源
  • 可根据需要自行增删PHP扩展

因为默认的nginx配置文件不能正常工作,需要一个能正常工作的配置文件,正是上文需要的default.conf

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/localhost/htdocs;
    index index.html index.htm index.php;
    server_name _;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        try_files $fastcgi_script_name =404;
        set $path_info $fastcgi_path_info;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_index index.php;
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
    }
}

FROM alpine:3.15.0
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache lighttpd php8-fpm php8-sqlite3 php8-pdo php8-pdo_sqlite php8-json \
php8-mysqli php8-pdo_mysql php8-dom php8-mbstring php8-gd php8-curl php8-session && \
echo 'include "mod_fastcgi_fpm.conf"' >> /etc/lighttpd/lighttpd.conf 
EXPOSE 80/tcp
CMD php-fpm8 && lighttpd -D -f /etc/lighttpd/lighttpd.conf
VOLUME /var/www/localhost/htdocs
  • 当版本更新时,修改Alpine和PHP的版本号即可
  • 如果不在国内,可以不用修改源,或者可以使用更快的源
  • 可根据需要自行增删PHP扩展