当前位置 主页 > 服务器问题 > Linux/apache问题 >
在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:内网端口]