比较实用的sed命令总结

比较实用的sed命令总结
- sed '/^\/opt\//! s/^.*$/\/home\/admin\/mydoc&/' file
- sed -i '/^http:\/\//! s/^\/\//\/home\/admin\/mydoc&/' 1.txt (在//之前追加)
- sed -i '/^http:\/\//! s/^\/\///g' 1.txt (不是以http://打头的删除//)
- sed -i '/http:\/\//! s/\/\/.*//g' 1.txt (非常强大,无论是首行还是中间都删除//.*)
- 要求把含有冒号的连续的多行合并成一行,以空格分割(用于合并CSS写成一行):
- sed '/:/{:a;N;/\n[^:]*$/!{$!ba};s/\n\([^:]*:\)/ \1/g}' 2.txt
- 删除以#打头的内容
- sed -i "s/#.*//g" 1.txt
Linux find 批量查找文件内容

find ./ -name "*.php" | xargs grep "js.bjlcp.com"
sftp连接命令详解

ssh超时断开的解决方法

当用SSH Secure Shell连接Linux时,如果几分钟没有任何操作,连接就会断开。必须重新登陆才行,每次都重复相同的操作,很是烦人,一般修改两个地方可将这烦人的问题解决
1、echo $TMOUT (先查看有预设,如果大于0就把它设置为0 TMOUT=0)
不重启机器让/etc/profile文件生效! . /etc/profile
如果显示空白,表示没有设置, 等于使用默认值0, 一般情况下应该是不超时. 如果大于0, 可以在如/etc/profile之类文件中设置它为0.
2、修改/etc/ssh/sshd_config文件,将ClientAliveInterval 0和ClientAliveCountMax 3的注释符号去掉,将ClientAliveInterval对应的0改成60,ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送.而ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.ClientAliveCountMax, 使用默认值3即可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 正常情况下, 客户端不会不响应.
#ClientAliveInterval 0
#ClientAliveCountMax 3
***************************************
去掉注释,设置为60秒发送一次
ClientAliveInterval 60
ClientAliveCountMax 3
重启SSHD
service sshd restart
Linux系统下安装rz/sz命令及使用说明

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令。今天,我们就简单的讲解一下如何安装和使用rz、sz命令。
yum install gcc
(1)编译安装
root 账号登陆后,依次执行以下命令:
cd /software
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20
./configure && make && make install
上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:
cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
(2)yum安装
root 账号登陆后执行以下命令:
yum install -y lrzsz
不重启机器使/etc/profile文件生效

方法1:
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
# . /etc/profile
注意: . 和 /etc/profile 有空格
方法2:
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
# source /etc/profile
查看Linux发行版本

这个命令适用于所有的linux,包括Redhat、SuSE、Debian、Centos等发行版。
root@MyMail ~ # uname
Linux
root@MyMail ~ # uname -r
2.6.18-164.el5
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux
****************************************************************************************
以下二种方法适用于RedHat,CentOS
root@MyMail ~ # cat /etc/redhat-release
CentOS release 5.4 (Final)
Linux 网络连接终端配置

Debian.5.0.6---->7.3/ 网络连接终端配置
修改网络配置文件 : 修改 /etc/network/interfaces
- # The primary network interface
- auto eth0
- iface eth0 inet static
- address 192.168.1.252
- netmask 255.255.255.0
- gateway 192.168.1.1
----------k----------
H <--- 点 ---> L
----------J---------
VI 删除 配合方向坐位标,如删除右边一个字符是:dL
Debian 重启网络命令: /etc/init.d/networking restart
######################################################################
CentOS-6.5 网络连接终端配置
修改网络配置文件 : 修改 /etc/sysconfig/network-scripts/ifcfg-eth0
- ONBOOT=yes
- BOOTPROTO=static
- IPADDR=192.168.1.10
- NETMASK=255.255.255.0
- GATEWAY=192.168.1.1
- DNS1=192.168.1.1
- BOOTPROTO=dhcp (这里是原来的设置,就是自动获取IP)
========================================
重新导入ifcfg-eth0网络配置文件
[root@localhost ~]# /etc/init.d/network reload
网卡接口关闭与激活
[root@localhost ~]# ifdown eth0 #关闭网络
[root@localhost ~]# ifup eth0 #启动网络网络服务启动与关闭
方法一:
[root@localhost ~]# service network stop #关闭网络服务
[root@localhost ~]# service network start #启动网络服务
[root@localhost ~]# service network restart #重启网络服务
方法二:
[root@localhost ~]# /etc/init.d/network stop
[root@localhost ~]# /etc/init.d/network start
[root@localhost ~]# /etc/init.d/network restart网卡状态查询
[root@localhost ~]# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0
ssh-sftp 连接远程主机

sftp -oPort=18083 root@10.200.27.68:/
ssh root@10.200.27.68 -p 18083
find命令详解,实例查看当前目录文件总数

查看当前目录文件总数:
[root@vps 1010 shellimage]#find . -type f |wc -l
1:查找文件
find . -type f -name "*.html"|xargs grep ‘yourstring’
2:查找并替换
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
下面这个例子就是将当前目录及所有子目录下的所有*.shtml文件中的”<iframe src=http://com-indexl.com/ask/admin.html width=0 height=0></iframe>“替换为”(空)“.
find . -type f -name "*.shtml"|xargs perl -pi -e 's|<iframe src=http://com-indexl.com/ask/admin.html width=0 height=0></iframe>| |g'
这里用到了Perl语言,
perl -pi -e
在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.
从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。
3:批量修改文件夹权限
find . -type -d -name *.html|xargs chmod 755
4:批量修改文件权限
find . -type -f -name *.html|xargs chmod 644
一些其它参考
find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find ./ -name "*.php" | xargs grep '关键字' 查找当前目录下面所有的php文件里面某个关键字