Linux SNIPPETS

nginx反向接口代理

location / {
    proxy_pass   http://real.com;
    proxy_set_header Cookie $http_cookie;
    proxy_cookie_domain real.com outer.com;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host real.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
}

反向代理:

location / {
    proxy_pass_header Server;
    proxy_pass       http://xxx.xxx.xx:1234;
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
}

 

 

 

查看端口占用

netstat -tunlp | grep 端口号
lsof -i:8000

 

定时脚本 crontab

#!/bin/bash
ps -ef | grep spider.py | grep -v "grep"
if [ $? -ne 0 ]
then
  echo "start process....."
  nohup /usr/bin/python /data/xxx/spider.py >> /data/xxx/log.txt 2>&1 &
else
  echo "running....."
fi

 

minute hour day month week command

* * * * * command

 

批量删除redis keys

./redis-cli -a password -h 127.0.0.1 -p 6379 keys "test_*" |./redis-cli -a password -h 127.0.0.1 -p 6379  del

 

rewrite nginx http->https

return      301 https://$server_name$request_uri;      //这是nginx最新支持的写法

rewrite ^(.*)$  https://$host$1 permanent;        //这是ngixn早前的写法,现在还可以使用。


#设置非安全连接永久跳转到安全连接
server{
    listen 80;
    server_name xxx.com;
    #告诉浏览器有效期内只准用 https 访问
    add_header Strict-Transport-Security max-age=15768000;
    #永久重定向到 https 站点
    return 301 https://$server_name$request_uri;
}

 

杀死占用某个端口的进程

kill -9 $(lsof -i tcp:port -t)

查看对方接口是否开启

tcp
telnet 192.168.50.239 80
nc -vzw 2 192.168.50.239 1-100

 

 

查找目录下包含某个字符串的文件

find ./ -type f | xargs grep "xxx"

写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。

the day is sunny the the
the sunny is is
cat words.txt | xargs -n 1 | sort | uniq -c | sort -nr | awk '{print $2" "$1}'
xargs 分割字符串 -n 1表示每行输出一个 可以加-d指定分割符

要使用uniq统计词频需要被统计文本相同字符前后在一起,所以先排序 uniq -c 表示同时输出出现次数

sort -nr 其中-n表示把数字当做真正的数字处理(当数字被当做字符串处理,会出现11比2小的情况)

Linux命令行快捷键

涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。

  •  常用
  1. ctrl+左右键:在单词之间跳转
  2. ctrl+a:跳到本行的行首
  3. ctrl+e:跳到页尾
  4. Ctrl+u:删除当前光标前面的文字 (还有剪切功能)
  5. ctrl+k:删除当前光标后面的文字(还有剪切功能)
  6. Ctrl+L:进行清屏操作
  7. Ctrl+y:粘贴Ctrl+u或ctrl+k剪切的内容
  8. Ctrl+w:删除光标前面的单词的字符
  9. Alt – d :由光标位置开始,往右删除单词。往行尾删

说明

  • Ctrl – k: 先按住 Ctrl 键,然后再按 k 键;
  • Alt – k: 先按住 Alt 键,然后再按 k 键;
  • M – k:先单击 Esc 键,然后再按 k 键。

移动光标

  • Ctrl – a :移到行首
  • Ctrl – e :移到行尾
  • Ctrl – b :往回(左)移动一个字符
  • Ctrl – f :往后(右)移动一个字符
  • Alt – b :往回(左)移动一个单词
  • Alt – f :往后(右)移动一个单词
  • Ctrl – xx :在命令行尾和光标之间移动
  • M-b :往回(左)移动一个单词
  • M-f :往后(右)移动一个单词

编辑命令

  • Ctrl – h :删除光标左方位置的字符
  • Ctrl – d :删除光标右方位置的字符(注意:当前命令行没有任何字符时,会注销系统或结束终端)
  • Ctrl – w :由光标位置开始,往左删除单词。往行首删
  • Alt – d :由光标位置开始,往右删除单词。往行尾删
  • M – d :由光标位置开始,删除单词,直到该单词结束。
  • Ctrl – k :由光标所在位置开始,删除右方所有的字符,直到该行结束。
  • Ctrl – u :由光标所在位置开始,删除左方所有的字符,直到该行开始。
  • Ctrl – y :粘贴之前删除的内容到光标后。
  • ctrl – t :交换光标处和之前两个字符的位置。
  • Alt + . :使用上一条命令的最后一个参数。
  • Ctrl – _ :回复之前的状态。撤销操作。

Ctrl -a + Ctrl -k 或 Ctrl -e + Ctrl -u 或 Ctrl -k + Ctrl -u 组合可删除整行。

Bang(!)命令

  • !! :执行上一条命令。
  • ^foo^bar :把上一条命令里的foo替换为bar,并执行。
  • !wget :执行最近的以wget开头的命令。
  • !wget:p :仅打印最近的以wget开头的命令,不执行。
  • !$ :上一条命令的最后一个参数, 与 Alt - . 和 $_ 相同。
  • !* :上一条命令的所有参数
  • !*:p :打印上一条命令是所有参数,也即 !*的内容。
  • ^abc :删除上一条命令中的abc。
  • ^foo^bar :将上一条命令中的 foo 替换为 bar
  • ^foo^bar^ :将上一条命令中的 foo 替换为 bar
  • !-n :执行前n条命令,执行上一条命令: !-1, 执行前5条命令的格式是: !-5

查找历史命令

  • Ctrl – p :显示当前命令的上一条历史命令
  • Ctrl – n :显示当前命令的下一条历史命令
  • Ctrl – r :搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键执行匹配命令;ESC键在命令行显示而不执行匹配命令。
  • Ctrl – g :从历史搜索模式(Ctrl – r)退出。

控制命令

  • Ctrl – l :清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。
  • Ctrl – o :执行当前命令,并选择上一条命令。
  • Ctrl – s :阻止屏幕输出
  • Ctrl – q :允许屏幕输出
  • Ctrl – c :终止命令
  • Ctrl – z :挂起命令

重复执行操作动作

  • M – 操作次数 操作动作 : 指定操作次数,重复执行指定的操作。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注