Linux 常用命令

find

1
2
3
4
5
6
7
8
find . -size +100M -exec du -sh {} \; #查找当前目录下大于100M的文件
find  . -maxdepth  2  -name 201507*   -exec  rm -rf {} \; #清理备份命令
find / -type f -name "test.txt" | xargs rm -f  #查找并删除
find / -type f -name "test.txt" -exec rm -rf {} \; #查找并删除
find / -type f -name "*.log" -mtime +5|xargs rm -f  #删除五天前的log文件  -type d 查找文件夹 -type f 查找文件
find / -type f -name 'test.txt' | xargs sed -i s#test#newtest#g    查找内容并替换
find / -type f -name '*.txt' | xargs cat  批量查看
find /mds -xdev -printf '%h\n' |sort|uniq -c|sort -k 1 -n # 查看Linux目录的inode数量

ls

1
ls -l --time-style=long-iso # 显示成年月日格式 

cut

1
2
3
4
5
6
7
-d :后面跟分隔字符,分隔字符要用单引号括起来
-c :后面接的是第几个字符
-f :后面接的是第几个区块
cut -d ':' -f 2 /etc/passwd
cut -d ':' -f 1-3 /etc/passwd
cut -d ':' -f 1,3 /etc/passwd
cut -c 2-5 /etc/passwd

sort

1
2
3
4
5
6
7
8
9
-t 分隔符 :作用跟cut的-d一个意思
-n :使用纯数字排序
-r :反向排序
-u :去重复
-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
sort -t ':' -k3 /etc/passwd
sort -t ':' -k3 -n /etc/passwd |cut -d ':' -f 3
cut -d ':' -f 3 /etc/passwd  | sort -n  常用
cut -d ':' -f 3 1.txt | sort -nr|uniq -c

awk

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
以冒号为分隔符取出IP
ifconfig eth0 | awk -F: '/inet addr/ {print $2}'| awk '{print $1}'

以一个或者多个空格和单个冒号作为分隔符取出ip
ifconfig eth0 | grep 'inet addr'|awk -F ' +|:' '{print $4}'

以一个或者多个空格和一个或者多个空格冒号作为分隔符取出ip
ifconfig eth0 | grep 'inet addr'|awk -F '[ :]+' '{print $4}'

过滤出404URL
cat access.log  |awk '$9~/404/' 

过滤出IP和url
grep -Ev  '(HTTP|GET)' access.log|awk '{print $1,$7}' access.log|sort | uniq -c |sort -n -k 1 -r

压缩解压

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
tar打包当前目录到tarname.tar
tar cvf tarname.tar ./*.* #tar zcvf tarname.tar.gz ./*.*

tar解压到当前目录
tar xvf tarname.tar #tar zxvf tarname.tar

zip压缩
zip -r data.zip data

zip解压
unzip data.zip -d databak

rar解压
rar -x data.rar

nslookup

1
2
3
4
cmd-->nslookup -qt=mx mulinux.com #查看域名mx记录
cmd-->nslookup-->set q=mx-->mulinux.com #查看域名的mx记录
cmd-->nslookup-->set q=any-->mulinux.com #查看mulinux.com的解析服务情况
nslookup -qa=ptr  (ip) #检测反向解析

tracert

1
2
windows:tracert -d mulinux.com    
linux:traceroute -d www.baidu.com

DD

整盘数据备份与恢复

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
备份:
dd if=/dev/hdx of=/dev/hdy
将本地的/dev/hdx整盘备份到/dev/hdy

dd if=/dev/hdx of=/path/to/image
将/dev/hdx全盘数据备份到指定路径的image文件

dd if=/dev/hdx | gzip >/path/to/image.gz
备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径

恢复:
dd if=/path/to/image of=/dev/hdx
将备份文件恢复到指定盘

gzip -dc /path/to/image.gz | dd of=/dev/hdx
将压缩的备份文件恢复到指定盘

利用netcat远程备份

1
2
3
4
5
6
7
8
9
dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234
在源主机上执行此命令备份/dev/hda

netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
在目的主机上执行此命令来接收数据并写入/dev/hdc

netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img
以上两条指令是目的主机指令的变化分别采用bzip2 gzip对数据进行压缩,并将备份文件保存在当前目录。

备份MBR

1
2
3
4
5
6
7
备份:
dd if=/dev/hdx of=/path/to/image count=1 bs=512
备份磁盘开始的512Byte大小的MBR信息到指定文件

恢复:
dd if=/path/to/image of=/dev/hdx
将备份的MBR信息写到磁盘开始部分

备份软盘

1
2
dd if=/dev/fd0 of=disk.img count=1 bs=1440k
将软驱数据备份到当前目录的disk.img文件

拷贝内存资料到硬盘

1
2
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件

从光盘拷贝iso镜像

1
2
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件     

增加Swap分区文件大小

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
dd if=/dev/zero of=/swapfile bs=1024 count=262144
创建一个足够大的文件(此处为256M)

mkswap /swapfile
把这个文件变成swap文件

swapon /swapfile
启用这个swap文件

/swapfile swap swap defaults 0 0
在每次开机的时候自动加载swap文件,需要在 /etc/fstab文件中增加一行

销毁磁盘数据

1
2
dd if=/dev/urandom of=/dev/hda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作无法执行。

得到最恰当的block size

1
2
3
4
5
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file     
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小

测试硬盘读写速度

1
2
3
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度     

修复硬盘

1
2
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

测试硬盘读写

1
2
3
4
5
6
7
dd if=/dev/zero of=test.dbf bs=8k count=200000 conv=fdatasync

参考文档:http://elf8848.iteye.com/blog/2089055

测试方式:使用dd指令,对磁盘进行连续写入,不使用内存缓冲区,每次写入8k的数据,总共写入20万次,产生1.6G大小的文件。

测试指令:dd if=/dev/zero of=/data01/test.dbf bs=8k count=200000 conv=fdatasync

正确的使用dd进行磁盘读写速度测试

dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,所以可以用来测试硬盘的顺序读写能力。可以写文件,可以写裸设备。

5k路由器刷华硕n14u

设备:5k路由器(MT7620A、16M+64M)

登录原厂固件里WEB 192.168.5.1

  • 刷高科固件 Q306升级包v2.20 20140722 .bin
  • 5K路由器wifi密码是5Kwifi,注意K是大写的
  • 刷高科固件,管理帐号密码:admin gaoke

登陆WEB 192.168.8.1

  • 刷SDK固件 firmware sdk.bin
  • 刷完后路由IP变为 192.168.8.1
  • 帐号密码:admin gaoke

刷不死 Breed

  • 在 SDK 管理WEB, administration–upload firmware–update bootloader
  • 192.168.8.1,选择不死Breed breed-mt7620-reset12.bin
  • 注:reset键重启不放拔电源后再接上电源,路由器信号灯连闪四次算成功

进入breed的web界面

  • 更新固件RT-N14U-GPIO-12-5K-64M_3.4.3.9-099.trx,等待路由器自动重启后即可。

默认账号密码admin

LANMP一键安装脚本

Centos6 ,不区分32位,64位, 要求机器可以上外网。 支持lamp 和 lnmp, mysql支持5.1和5.6两个版本,php支持5.3和5.6两个版本,apache2.2,nginx1.8

Pureftp部署和优化

安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
cd /usr/local/src/
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
tar jxf pure-ftpd-1.0.42.tar.bz2
cd pure-ftpd-1.0.42
./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits  \
--with-tls
make && make install

配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
cd configuration-file
mkdir -p /usr/local/pureftpd/etc/
cp pure-ftpd.conf    /usr/local/pureftpd/etc/pure-ftpd.conf
cp pure-config.pl    /usr/local/pureftpd/sbin/pure-config.pl
chmod 755    /usr/local/pureftpd/sbin/pure-config.pl
vi /usr/local/pureftpd/etc/pure-ftpd.conf
ChrootEveryone              yes
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             8
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 no
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 15
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion              3136 8
AnonymousCanCreateDirs      no
MaxLoad                     4
AntiWarez                   yes
Umask                       133:022
MinUID                      100
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
PIDFile                     /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage               99
CustomerProof              yes

建立用户

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
mkdir /data/www/
useradd www
chown -R www:www /data/www/
/usr/local/pureftpd/bin/pure-pw useradd ftp_user1  -uwww -d /data/www/
/usr/local/pureftpd/bin/pure-pw mkdb  创建用户信息数据库文件
/usr/local/pureftpd/bin/pure-pw list
/usr/local/pureftpd/bin/pure-pw  userdel ftp_user2 删除账号
/usr/local/pureftpd/bin/pure-pw  useradd ftp_user2 -uwww -d /tmp  删除账号, 再创建一个账号
/usr/local/pureftpd/bin/pure-pw mkdb 创建后要执行一下

ps aux | grep pureftp

安装lftp测试ftp情况

1
2
3
4
5
6
7
yum install -y lftp
lftp ftp_user1@127.0.0.1
touch /data/www/123.txt
tail /var/log/messages 查看ftp账号是否正常登录并创建文件

get 1.txt  下载文件   在用户目录下
put 1.txt  上传文件    get

直接用FTP命令来测试