linux 基础教程 在线

2675关闭nginx记录css swf js等的访问日志

nginx默认记录图片 css swf js等的访问日志

不需要记录图片 以节省空间 在虚拟主机的配置文件server里面添加

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$     {

 expires      7d;

 access_log off;

}

location ~ .*\.(js|css)?$ {

 expires      1d;

 access_log off;

}

关闭了图片等访问日志

设置了缓存gif|jpg|jpeg|png|bmp|swf等后缀的文件

设置一个缓存时间过期时间

图片等设置了7天 js和css设置了1天

access_log off 关闭他们的日志记录

2630Linux 命令大全

#linux shell 删除指定目录下所有文件

#速度刚刚的快啊 几万个文件二秒完成

#不可思意 不过rm -rf 要万分小心 太危险了 我删除了整个WEB服务器内容哭

#delAllFileInArray.sh文件名

#内容

#!/bin/bash

array=("tcpip" "jquery" "punster" "w3cnote" "markdown" "thinkinphp" "html" "sql" "mysql" "linux" "operations" "csharp" "swift" "html-media" "java" "php" "js" "jsref" "css" "css3" "ado" "ajax" "joke" "git" "vue2" "android" "font-awesome" "cssref" "quality" "bootstrap" "memcached" "demos" "pictures" "svn" "webservices" "wsdl" "tags" "json" "bootstrap4" "rdf" "rss" "soap" "regexp" "foundation" "htmldom" "http" "react" "angularjs" "hosting" "angularjs2" "nodejs" "mongodb" "python3" "pythontutorial" "w3c" "python" "typescript" "googleapi" "highcharts" "svg" "poetry" "jqueryui" "jeasyui" "poet" "redis" "sqlite" "django" "docker" "ruby" "eclipse" "cprogramming" "cplusplus" "perl" "lua" "servlet" "dictionary" "jsp" "scala" "go" "design-pattern" "numpy" "appml" "maven" "kotlin" "ionic" "jquerymobile" "xml" "dtd" "dom" "xsl" "xpath" "xquery" "xlink" "schema" "xslfo" "web" "aspnet" "ancient" "famous_quotes" "flutter" "browsers" "charsets")

# 注意是用空格分开,不是逗号!!

# 不能执行时chmod +x delAllFileInArray.sh#给delAllFileInArray.sh可执行权限

function read_dir(){    

    for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令

    do

     if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错

     then

     read_dir $1"/"$file

     else

     ls -l $1"/"$file #在此处处理文件即可 rm -f

     fi

    done

    sleep 1s  #为了演示 不让运行太快

}

for i in ${array[@]};

do

  read_dir  $i

done

2318Linux tail 命令

tail -n 100 /etc/cron  #显示最后100行数据
tail -n -100 /etc/cron #除了前99行不显示外,显示第100行到末尾行

2317useradd

#添加一个不能登录的用户
useradd -d /usr/local/apache -g apache -s /bin/false apache

要拒绝系统用户登录,可以将其 shell 设置为 /usr/sbin/nologin 或者 /bin/false。

usermod -s | --shell /usr/sbin/nologin username

或者

usermod -s | -shell /bin/false username

说明及比较:

/bin/false

/bin/false 什么也不做只是返回一个错误状态,然后立即退出。将用户的 shell 设置为 /bin/false,用户会无法登录,并且不会有任何提示。

/usr/sbin/nologin

nologin 会礼貌的向用户显示一条信息,并拒绝用户登录:

This account is currently not available.

有一些软件,比如一些 ftp 服务器软件,对于本地非虚拟账户,只有用户有有效的 shell 才能使用 ftp 服务。这时候就可以使用 nologin 使用户即不能登录系统,还能使用一些系统服务,比如 ftp 服务。/bin/false 则不行,这是二者的重要区别之一。

/etc/nologin

如果存在 /etc/nologin 文件,则系统只允许 root 用户登录,其他用户全部被拒绝登录,并向他们显示 /etc/nologin 文件的内容。

2316awk

awk、sed、grep更适合的方向:

  • grep 更适合单纯的查找或匹配文本
  • sed 更适合编辑匹配到的文本
  • awk 更适合格式化文本,对文本进行较复杂格式处理

关于awk内建变量个人见解,简单易懂

解释一下变量:

变量:分为内置变量和自定义变量;输入分隔符FS和输出分隔符OFS都属于内置变量。

内置变量就是awk预定义好的、内置在awk内部的变量,而自定义变量就是用户定义的变量。

  • FS(Field Separator):输入字段分隔符, 默认为空白字符
  • OFS(Out of Field Separator):输出字段分隔符, 默认为空白字符
  • RS(Record Separator):输入记录分隔符(输入换行符), 指定输入时的换行符
  • ORS(Output Record Separate):输出记录分隔符(输出换行符),输出时用指定符号代替换行符
  • NF(Number for Field):当前行的字段的个数(即当前行被分割成了几列)
  • NR(Number of Record):行号,当前处理的文本行的行号。
  • FNR:各文件分别计数的行号
  • ARGC:命令行参数的个数
  • ARGV:数组,保存的是命令行所给定的各参数

自定义变量的方法

  • 方法一:-v varname=value ,变量名区分字符大小写。
  • 方法二:在program中直接定义。