当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux命令技巧之30个必会的命令技巧

    栏目:Linux/apache问题 时间:2019-11-27 22:28

    在Unix/Linux下,高效工作方式不是操作图形页面,而是命令行操作,命令行意味着更容易自动化。使用过Linux系统的朋友应该都知道它的命令行强大之处。本文讲述了Linux下的查找,删除,打包,解压,查询及VIM等30个常用命令技巧

    1、Vim自动添加注释及智能换行

    # vi ~/.vimrc 
    set autoindent
    set tabstop=4
    set shiftwidth=4
    function AddTitle()
    call setline(1,"#!/bin/bash")
    call append(1,"#====================================================")
    call append(2,"# Author: lizhenliang")
    call append(3,"# Create Date: " . strftime("%Y-%m-%d"))
    call append(4,"# Description: ")
    call append(5,"#====================================================")
    endf
    map <F4> :call AddTitle()<cr>

    打开文件后,按F4就会自动添加注释,省了不少时间!

    2、查找并删除/data这个目录7天前创建的文件

    # find /data -ctime +7 -exec rm -rf {} \;
    # find /data -ctime +7 | xargs rm -rf

    3、tar命令压缩排除某个目录

    # tar zcvf data.tar.gz /data --exclude=tmp  #--exclude参数为不包含某个目录或文件,后面也可以跟多个

    4、查看tar包存档文件,不解压

    # tar tf data.tar.gz #t是列出存档文件目录,f是指定存档文件

    5、使用stat命令查看一个文件的属性

    访问时间(Access)、修改时间(modify)、状态改变时间(Change)

    stat index.php
    Access: 2018-05-10 02:37:44.169014602 -0500
    Modify: 2018-05-09 10:53:14.395999032 -0400
    Change: 2018-05-09 10:53:38.855999002 -0400

    6、批量解压tar.gz

    方法1:

    # find . -name "*.tar.gz" -exec tar zxf {} \;

    方法2:

    # for tar in *.tar.gz; do tar zxvf $tar; done

    方法3:

    # ls *.tar.gz | xargs -i tar zxvf {} 

    7、筛除出文件中的注释和空格

    方法1:

    # grep -v "^#" httpd.conf |grep -v "^$"

    方法2:

    # sed -e ‘/^$/d' -e ‘/^#/d' httpd.conf > http.conf

    或者

    # sed -e '/^#/d;/^$/d'   #-e 执行多条sed命令

    方法3:

    # awk '/^[^#]/|/"^$"' httpd.conf 

    或者

    # awk '!/^#|^$/' httpd.conf

    8、筛选/etc/passwd文件中所有的用户

    方法1:

    # cat /etc/passwd |cut -d: -f1

    方法2:

    # awk -F ":" '{print $1}' /etc/passwd

    9、iptables网站跳转

    先开启路由转发:

    echo "1" > /proc/sys/net/ipv4/ip_forward #临时生效

    内网访问外网(SNAT):

    iptables –t nat -A POSTROUTING -s [内网IP或网段] -j SNAT --to [公网IP]

    #内网服务器要指向防火墙内网IP为网关

    公网访问内网(DNAT)(公网端口映射内网端口):

    iptables –t nat -A PREROUTING -d [对外IP] -p tcp --dport [对外端口] -j DNAT --to [内网IP:内网端口]