linux 命令集合1
2012-01-10 09:53:19
标签:shell linux
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
linux 命令集合1
#请使用 Ctrl + F 键查找
#A
#B
#C
chmod + t
Set uid, gid,sticky bit的三个权限的详细说明
如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户
的密码.
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有
和该目录所属的组相同的组.sticky bit: 该位可以理解为防删除位. 一个文件是否可以被>某用户删除, 主要取决于
该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不
能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则
可以对文件使用sticky bit位. 设置该位后, 就算用户对目录
chmod u+s temp — 为temp文件加上setuid标志. (setuid 只对文件有效)
chmod g+s tempdir — 为tempdir目录加上setgid标志 (setgid 只对目录有效)
chmod o+t temp — 为temp文件加上sticky标志 (sticky只对文件有效)
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如
rwsrw-r– 表示有setuid标志
rwxrwsrw- 表示有setgid标志
rwxrw-rwt 表示有sticky标志
chmod 4777 //是设sid
chmod 2777 //是设置gid
chmod 1777 //是设sticky
0: 不设置特殊权限
1: 只设置sticky
2 : 只设置SGID
3: 只设置SGID和sticky
4 : 只设置SUID
5 : 只设置SUID和sticky
6 : 只设置SUID和SGID
7 : 设置3种权限
#D
date 命令
$ date -d '6 days ago' +'%F %T'
2011-12-25 12:59:35
$ date +'%F %T'
2011-12-31 12:59:41
-d, --date=STRING
display time described by STRING, not ‘now’
dd
用dd把iso镜像写到U盘
dd if=xx.iso of=/dev/sdb
注意:sdb文件和分区会清空,请先备份文件。
df "inode 与 block"
root@dn-laptop:~# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda10 14513072 8232492 5543352 60% /
none 1987620 344 1987276 1% /dev
none 1992152 5252 1986900 1% /dev/shm
none 1992152 120 1992032 1% /var/run
none 1992152 0 1992152 0% /var/lock
none 1992152 0 1992152 0% /lib/init/rw
/dev/sda1 52436128 7817028 44619100 15% /mnt/sys
/dev/sda5 101410280 80687628 20722652 80% /mnt/zm
/dev/sda6 101378148 15257952 86120196 16% /mnt/cy
/dev/sda7 20472816 10377856 10094960 51% /mnt/isolinux
/dev/sda11 19704500 8949012 9754528 48% /data
/dev/sda8 94195 21950 67381 25% /boot
/dev/sdb1 7804068 2806716 4997352 36% /media/live
root@dn-laptop:~# df -ih
文件系统 Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda10 901K 156K 745K 18% /
none 486K 925 485K 1% /dev
none 487K 7 487K 1% /dev/shm
none 487K 61 487K 1% /var/run
none 487K 1 487K 1% /var/lock
none 487K 3 487K 1% /lib/init/rw
/dev/sda1 43M 33K 43M 1% /mnt/sys
/dev/sda5 20M 670 20M 1% /mnt/zm
/dev/sda6 83M 25K 83M 1% /mnt/cy
/dev/sda7 0 0 0 - /mnt/isolinux
/dev/sda11 1.2M 23 1.2M 1% /data
/dev/sda8 24K 206 24K 1% /boot
/dev/sdb1 0 0 0 - /media/live
root@dn-laptop:~# dumpe2fs -h /dev/sda11
dumpe2fs 1.41.11 (14-Mar-2010)
Filesystem volume name:
Last mounted on: /data
Filesystem UUID: 661be7c6-c98f-49c7-b319-6a089c8c0ef3
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1253376
Block count: 5004800
Reserved block count: 250240
Free blocks: 2688872
Free inodes: 1253353
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Wed Nov 9 02:42:52 2011
Last mount time: Sun Feb 5 12:09:29 2012
Last write time: Sun Feb 5 12:09:29 2012
Mount count: 4
Maximum mount count: 25
Last checked: Sun Jan 15 08:46:34 2012
Check interval: 15552000 (6 months)
Next check after: Fri Jul 13 08:46:34 2012
Lifetime writes: 13 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 0f11af5d-2a04-4715-a393-9aa09db6f743
Journal backup: inode blocks
Journal features: journal_incompat_revoke
日志大小: 128M
Journal length: 32768
Journal sequence: 0x00000f42
Journal start: 0
root@dn-laptop:~# ls -i tmp
275362 1key_install_haproxy+keepalived.tgz
278238 cluster
275363 cluster_25.tar.gz
275424 convert
272480 convert_old
15501 Discuz_X1.5.1_SC_UTF8.zip
418768 hadoop
278250 libevent-2.0.16-stable.tar.gz
278235 mem
278251 memcache-2.2.6.tgz
278249 memcached-1.4.10.tar.gz
278295 memcached.tar.gz
278415 webbench-1.5.tar.gz
278448 yh
root@dn-laptop:~# stat tmp
File: "tmp"
Size: 4096 Blocks: 8 IO Block: 4096 目录
Device: 80ah/2058d Inode: 272479 Links: 7
Access: (0755/drwxr-xr-x) Uid: ( 1000/ dn) Gid: ( 1000/ dn)
Access: 2012-02-05 14:24:31.595409520 +0800
Modify: 2012-02-05 14:24:30.924790284 +0800
Change: 2012-02-05 14:24:30.924790284 +0800
#E
#F
find 命令
40分钟内更改过的文件
find -mmin -40 | grep php | xargs ls -l
-rw-r--r-- 1 www www 106336 Nov 24 15:29 ./forumdisplay.php
time 相关参数
?mtime n ?-n +n
用减号(-n)?来限定更改时间在距今n日以内的文件,而用加号(+n)来限定更改时间在距今n日以前的文件.
注意:用加号+来限定更改时间在距今 (n+1) 日以前的文件.
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24小时被改变文件状态的文件
-mmin n
查找系统中最后N分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24小时被改变文件数据的文件
找到并且打包!
find . -name '*expect*' | xargs tar czvf /root/expect.tar.gz
./Server/expect-5.43.0-5.1.i386.rpm
./Server/expect-5.43.0-5.1.x86_64.rpm
./Server/expect-devel-5.43.0-5.1.i386.rpm
./Server/expect-devel-5.43.0-5.1.x86_64.rpm
./Server/expectk-5.43.0-5.1.x86_64.rpm
./Server/pexpect-2.3-1.el5.noarch.rpm
#找到5天以前的文件
date +'%F %T'
2013-01-11 10:59:28
find /test/DB/serverx/var/ -name 'mysql-bin*0*' -ctime +5
/test/DB/serverx/var/mysql-bin.000063
ll /test/DB/serverx/var/mysql-bin.000063
-rw-rw----. 1 mysql mysql 1073742035 Dec 25 10:04 /test/DB/serverx/var/mysql-bin.000063
#找到5天以内的文件
find /test/DB/serverx/var/ -name 'mysql-bin*0*' -ctime -5
# fsck
功能说明:检查文件系统并尝试修复错误。
语 法:fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...]
补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。
参 数:
-a 自动修复文件系统,不询问任何问题。
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
-N 不执行指令,仅列出实际执行会进行的动作。
-P 当搭配"-A"参数使用时,则会同时检查所有的文件系统。
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
-R 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查。
-s 依序执行检查作业,而非同时执行。
-t<文件系统类型> 指定要检查的文件系统类型。
-T 执行fsck指令时,不显示标题信息。
-V 显示指令执行过程。
#G
#H
hdparm
功能:显示与设定硬盘的参数,hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清除缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 评估硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。
history 命令中显示时间戳
export HISTTIMEFORMAT="%F %T "
history
1008 2011-11-03 16:58:03 date
1009 2011-11-03 16:58:07 date -s '20111104 16:58:01'
1010 2011-11-04 16:58:03 history
添加 export HISTTIMEFORMAT="%F %T " 到
/etc/profile 中即可自动开启 history 时间戳了
#I
iostat 察看磁盘io
$ iostat -d -k -x 2
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 01/09/2012 _x86_64_ (48 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 17.77 0.01 21.33 0.20 156.29 14.67 0.04 1.65 0.08 0.16
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 59.00 0.00 107.50 0.00 666.00 12.39 0.02 0.17 0.02 0.25
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 5.50 0.00 35.50 0.00 164.00 9.24 0.00 0.01 0.01 0.05
^C
$ iostat -d -k 2
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 01/09/2012 _x86_64_ (48 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 21.34 0.20 156.29 445596 349320689
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 16.50 0.00 70.00 0 140
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 81.50 0.00 392.00 0 784
-k 参数
某些使用block为单位的列强制使用Kilobytes为单位
-d 参数
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(driveexpressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;以上这些单位都为Kilobytes 。
-x 参数
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
#J
#K
#L
#M
minicom
1.minicom 的执行
第一次 启动时:
即输入 minicom提示 错误。则 需: minicom -s
启动
出现配置菜单:选serial port setup
进入串口配置
输入A配置串口驱动为/dev/ttyS0
输入E配置速率为115200 8N1
输入F将 Hardware Flow Control 设 为 NO
回车 退出
由于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, 所以需要修改Modem and dialing, 将Init string, Reset string, Hang-up string设置为空. 设置完成后选择Save setup as dfl将当前设置保存为默认设置.
在配置菜单 选Save setup as df1保存(一定要记得这一步)
选Exit退出
下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyS0 对应为串口0 为你连接开发板的端口。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
#N
nc 命令
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式
-v 详细输出——用两个
-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时,其中端口号可以指定一个或者用lo-hi式的指定范围。
//监控端口
nc -nz 192.168.57.91 443 && echo $?
0
nc - arbitrary TCP and UDP connections and listens
-n 这个参数只能识别IP地址,如果是域名则不给解析
-z 这个参数only scan
//扫描端口
$ nc -w 2 10.0.100.70 -z 22-999
Connection to 10.0.100.70 22 port [tcp/ssh] succeeded!
Connection to 10.0.100.70 80 port [tcp/http] succeeded!
Connection to 10.0.100.70 111 port [tcp/sunrpc] succeeded!
Connection to 10.0.100.70 822 port [tcp/*] succeeded!
Connection to 10.0.100.70 910 port [tcp/*] succeeded!
Connection to 10.0.100.70 941 port [tcp/*] succeeded!
//主机之间拷贝文件
主机A监听端口
主机监听 1234端口,重定向数据到 rem.tar.gz
dn@dn-Vostro-230:~$ nc -l 1234 > rem.tar.gz
dn@dn-Vostro-230:~$ file rem.tar.gz
rem.tar.gz: gzip compressed data, from Unix, last modified: Fri May 18 11:26:45 2012
主机B传送文件
root@dn-ThinkPad-E420:~# nc 192.168.4.164 1234 < remmina.tar.gz
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 17
ESTABLISHED 3254
LAST_ACK 236
FIN_WAIT_1 648
FIN_WAIT_2 581
CLOSING 7
CLOSE_WAIT 4916
解析:
CLOSED //无连接是活动的或正在进行
LISTEN //服务器在等待进入呼叫
SYN_RECV //一个连接请求已经到达,等待确认
SYN_SENT //应用已经开始,打开一个连接
ESTABLISHED //正常数据传输状态/当前并发连接数
FIN_WAIT1 //应用说它已经完成
FIN_WAIT2 //另一边已同意释放
ITMED_WAIT //等待所有分组死掉
CLOSING //两边同时尝试关闭
TIME_WAIT //另一边已初始化一个释放
LAST_ACK //等待所有分组死掉
netstat -s | grep timestamp
... packets rejects in established connections because of timestamp
//netstat 其他参数
-e 显示以太网统计信息。此选项可以与 -s选项组合使用。
-s 显示按协议统计信息。默认地,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
//Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
执行netstat后,其输出结果为
.....
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
#O
#P
parted 命令详细说明
check NUMBER 检查文件系统
cp [FROM-DEVICE]FROM-NUMBER TO-NUMBER 复制文件系统到另外一个分区
help[COMMAND] 显示全部帮助信息或者指定命令的帮助信息
mklabel,mktable LABEL-TYPE 在分区表中创建一个新的磁盘标签
mkfs NUMBER FS-TYPE 在分区上创建一个指定类型的文件系统
mkpart PART-TYPE[FS-TYPE]START END 创建一个分区
mkparts PART-TYPE[FS-TYPE]START END 创建一个分区,并在分区上创建指定的文件系统
move NUMBER START END 移动分区
name NUMBER NAME 以指定的名字命名分区号
print [free|NUMBER|all] 显示分区表、指定的分区或者所有设备
quit 退出parted程序
rescue START END 修复丢失的分区
resize NUMBER START END 更改分区的大小
rm NUMBER 删除分区
select DEVICE 选择需要更改的设备
set NUMBER FLAG STATE 更改分区的标记
toggle [NUMBER[FLAG]] 设置或取消分区的标记
unit UNIT 设置默认单位
version 显示parted的版本信息
//resize 更改分区大小
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 32.3kB 107MB 107MB 主分区 ext3 启动
2 107MB 4401MB 4294MB 主分区 linux-swap
3 4401MB 21.5GB 17.1GB 主分区 ext3
4 21.5GB 107GB 85.9GB 扩展分区 lba
(parted) rm
分区编号? 4
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 32.3kB 107MB 107MB 主分区 ext3 启动
2 107MB 4401MB 4294MB 主分区 linux-swap
3 4401MB 21.5GB 17.1GB 主分区 ext3
(parted) mkpart
分区类型? primary/主分区/extended/扩展分区? extended
起始点? 21.5GB
结束点? 100GB
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 32.3kB 107MB 107MB 主分区 ext3 启动
2 107MB 4401MB 4294MB 主分区 linux-swap
3 4401MB 21.5GB 17.1GB 主分区 ext3
4 21.5GB 100GB 78.5GB 扩展分区 lba
(parted) resize 4 21.5GB 107GB
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 32.3kB 107MB 107MB 主分区 ext3 启动
2 107MB 4401MB 4294MB 主分区 linux-swap
3 4401MB 21.5GB 17.1GB 主分区 ext3
4 21.5GB 107GB 85.9GB 扩展分区 lba
(parted) p
....
5 21.5GB 483GB 462GB logical
(parted) toggle 5 lvm
(parted) p
....
5 21.5GB 483GB 462GB logical lvm
pidof
pidof -- find the process ID of a running program.
pidof sshd
1051
#Q
#R
resize2fs
NAME
resize2fs - ext2/ext3/ext4 file system resizer
SYNOPSIS
resize2fs [ -fFpPM ] [ -d debug-flags ] [ -S RAID-stride ] device [
size ]
resize2fs计划将调整的ext2,ext3或ext4文件系统。
它可用于放大或缩小位于挂载的文件系统设备。
如果文件系统被安装,它可以用来扩大挂载文件系统的大小,假设内核支持上线调整。
(Linux 2.6内核的支持上线调整为文件系统的安装使用ext3和ext4)。
rsync 命令
rsync -av /root /tmp/ #同步整个源目录(包括子目录,隐藏文件) 到 目的目录
rsync -av /root/ /tmp/ #同步源目录下的所有文件(不包扩源目录本身) 到 目的目录
rsync -av /root/* /tmp/ #同步源目录下的所有文件(不包括源目录本身,隐藏文件) 到 目的目录
#rsync服务器 本地
rsync -avz --progress test@xen::test/ /uu/test1/
#本地 rsync服务器
rsync -avz --progress /data/yia_upload test@xen::test/
#本地 本地
rsync -av --progress /
rsync -av --progress /
--delete 参数删除多文件,注意 root 是系统账户,test 则是rsync配置的虚拟账户
rsync -avz --progress --delete root@xen:/data/test/ /mnt/isolinux/test/
--bwlimit 参数限制网络带宽 limit I/O bandwidth; KBytes per second
rsync -avzP rsync://192.168.57.71/iso/
rsync://
Rsync的命令格式可以为以下六种:
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
--exclude=PATTERN exclude files matching PATTERN
--exclude=PATTERN
This option is a simplified form of the --filter option that
defaults to an exclude rule and does not allow the full rule-
parsing syntax of normal filter rules.
See the FILTER RULES section for detailed information on this
option.
-f, --filter=RULE add a file-filtering RULE
-f, --filter=RULE
This option allows you to add rules to selectively exclude cer-
tain files from the list of files to be transferred. This is
most useful in combination with a recursive transfer.
You may use as many --filter options on the command line as you
like to build up the list of files to exclude.
See the FILTER RULES section for detailed information on this
option.
#S
sar 察看网卡流量
$ sar -V
sysstat version 7.0.2
$ sar -n DEV 2 0
Linux 2.6.18-164.el5 (haproxy_space.yoka.com) 01/09/2012
11:15:00 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
11:15:02 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:15:02 AM eth0 2414.72 2253.30 474214.72 1541307.11 0.00 0.00 0.00
11:15:02 AM eth1 2789.85 2902.54 1576987.82 535732.49 0.00 0.00 0.00
11:15:02 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:15:02 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
11:15:04 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:15:04 AM eth0 1967.50 1746.50 407060.50 1156965.00 0.00 0.00 0.00
11:15:04 AM eth1 2343.50 2363.50 1226763.00 458485.50 0.00 0.00 0.00
11:15:04 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
$ sar -V
sysstat version 9.0.4
$ sar -n DEV 2 | grep -E 'IFACE|eth1'
10:43:00 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:43:02 AM eth1 140.50 133.00 25.70 64.43 0.00 0.00 0.00
10:43:02 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:43:04 AM eth1 145.26 139.47 27.48 65.21 0.00 0.00 0.00
10:43:04 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:43:06 AM eth1 59.81 44.50 7.08 27.71 0.00 0.00 0.00
10:43:06 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:43:08 AM eth1 101.96 89.71 21.05 31.50 0.00 0.00 0.00
10:43:08 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:43:10 AM eth1 138.31 134.33 25.19 57.16 0.00 0.00 0.00
10:43:10 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:43:12 AM eth1 132.49 134.01 24.64 74.04 0.00 0.00 0.00
-n DEV | EDEV | SOCK | FULL
DEV参数:
Network devices 的统计信息被报告
IFACE:设备名字
rxpck/s:每秒收到的包(package)
txpck/s:每秒传输的包
rxbyt/s:每秒收到的字节
txbyt/s:每秒传输的字节
rxcmp/s:每秒收到的压缩包(如cslip..)
txcmp/s:
rxmcst/s: 每秒收到的广播包
scp -P 参数
scp -P 90 rsync_tmp root@1.1.1.2:/root/
-P port Specifies the port to connect to on the remote host
# ssh 默认端口为22,如果更改了使用-P参数即可,这里可以发现一个规律!
command(命令名称) option(选项) argument(参数)
scp -P 90 rsync_tmp root@1.1.1.2:/root/
sleep && usleep
usleep - 睡眠若干微秒
总览 (SYNOPSIS)
usleep [number]
描述 (DESCRIPTION)
usleep 睡眠 指定数目 的 微秒数. 缺省值 是 1.
时间的单位换算
1秒=1000毫秒(ms)
1毫秒=1/1,000秒(s)
1秒=1,000,000 微秒(μs)
1微秒=1/1,000,000秒(s)
1秒=1,000,000,000 纳秒(ns)
1纳秒=1/1,000,000,000秒(s)
1秒=1,000,000,000,000 皮秒(ps)
1皮秒=1/1,000,000,000,000秒(s)
ssh
选项
-C (compression) 启用压缩功能。(在ssh的商业版本中,"-C"关闭压缩功能,而"+C"则开启压缩功能。)
-f (not foreground) 在询问口令之后且在执行command之前,将ssh送到后台运行。如果希望在后台执行command但是又必须输入口令的话,这个选项就特别有用。该选项还暗含着-n选项。
-L 将本地系统中的某个端口转发到远程系统。更多信息请参见8.6节。
-l user (login)试图以user用户身份进行登录。
-n (null)将ssh的标准输入重定向,从/dev/null获取输入。如果在后台运行ssh的话(-f选项),就需要这个选项。
-o option (option)按照配置文件所用的格式来指定option(参见8.3.7节)。
-p (port)指定要连接到的远程主机的端口。通过使用配置文件中的host声明(参见8.3.7节),可以为你所连接到的每个系统指定不同的端口。
-R 将远程系统上的某个端口转发到本地客户端。更多信息请参见8.6节。
-t (tty)为远程系统上的ssh进程分配一个伪tty(终端)。如果没有使用这个选项,当你在远程系统上运行某条命令的时候,ssh不会为该进程分配tty(终端)。相反,ssh将会把远端进程的标准输入和标准输出附加到ssh会话上去,这通常就是你所希望的(但并非总是如此)。这个选项将强制ssh在远端系统上分配tty,这样那些需要tty的程序就能够正常运行。
-v (verbose)显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非常有用。
-X (X11)开启不可信X11转发。如果在配置文件中开启X11不可信转发的话,这个选项就没有必要。更多信息请参见8.6节的"X11转发"部分。
-x (X11)关闭X11转发。
-Y (X11trusted)开启可信X11转发。如果在配置文件中开启X11可信转发的话,这个选项就没有必要。更多信息请参见8.6节的"X11转发"部分。
ssh 执行远程命令
执行远程命令 如果包含了command参数,ssh就会登录到host,执行command,关闭与host的连接,
然后将控制返回到本地系统。远程系统不曾显示提示符。
$ ssh bbs2 'cat /etc/hosts' | diff - /etc/hosts
在运行ssh时,这条命令(在远程系统上运行)的标准输出将会传送到本地shell,就像是这条命令在本地系统中运行一样。
跟所有shell命令一样,如果不希望本地系统解释某些特殊字符,就必须将这些特殊字符用引号引起来。在上一个示例中,
bbs2上cat命令的输出通过上的一个管道发送到diff,diff拿本地文件/etc/hosts与
标准输入(-)进行比较。下面的命令行具有同样的效果,但是会让diff在远程系统上执行:
$ cat /etc/hosts | ssh bbs2 'diff - /etc/hosts'
远程系统上diff的标准输出被发送到本地shell,然后显示在屏幕上(因为没有进行重定向)。
strace 命令
strace使用参数
-p 跟踪指定的进程
-f 跟踪由fork子进程系统调用
-F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪
-o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中
-ff 常与-o选项一起使用,不同进程(子进程)产生的系统调用输出到filename.PID文件
-r 打印每一个系统调用的相对时间
-t 在输出中的每一行前加上时间信息。 -tt 时间确定到微秒级。还可以使用-ttt打印相对时间
-v 输出所有系统调用。默认情况下,一些频繁调用的系统调用不会输出
-s 指定每一行输出字符串的长度,默认是32。文件名一直全部输出
-c 统计每种系统调用所执行的时间,调用次数,出错次数。
-e expr 输出过滤器,通过表达式,可以过滤出掉你不想要输出
$ strace -c -p 30809
Process 30809 attached - interrupt to quit
Process 30809 detached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
28.27 0.019333 1 25372 close
9.57 0.006546 1 12686 writev
9.21 0.006297 0 12686 accept
8.70 0.005951 0 12686 write
7.12 0.004868 0 12686 open
6.96 0.004756 0 12825 epoll_wait
6.19 0.004231 0 12635 stat
4.97 0.003398 0 12686 recvfrom
4.52 0.003092 0 12686 fstat
4.03 0.002755 0 12605 setsockopt
4.01 0.002741 0 12704 epoll_ctl
3.28 0.002241 0 12605 sendfile
3.17 0.002171 0 12686 ioctl
------ ----------- ----------- --------- --------- ----------------
100.00 0.068380 177548 total
#T
tar
Removing leading '/' from members names
tar
-P, --absolute-names
don’t strip leading ‘/’s from file names
-C, --directory=DIR
change to directory DIR
例如:tar包压缩时相对路径问题
tar czfP mysql.tar.gz -C /usr/local/mysql/var/ mysql
tar czfP /data/20130216/2013-02-16-wd.tar.gz -C /var/www/html/ wd
#注意中间的空格 -C是临时切换工作目录,-P是绝对路径.
tr 命令从标准输入删除或替换字符,并将结果写入标准输出。根据由 String1 和 String2 变量指定的字符串以及指定的标志,tr 命令可执行三种操作。
$ cat tt
a
b
c
$ cat tt | tr '\n' ' '
a b c [~]$
echo 'FLUSH TABLES WITH READ LOCK' | tr '[A-Z]' '[a-z]'
flush tables with read lock
#U
unzip
功能说明:解压缩zip文件
语 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
补充说明:unzip为.zip压缩文件的解压缩程序。
参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令
#V
#W
#wget 命令
//-S | --server-response
//Print the headers sent by HTTP servers and responses sent by FTP servers.
wget -S http://blog.test.com/wp-content/uploads/2012/07/u12-1.png
--2012-07-23 13:48:30-- http://blog.test.com/wp-content/uploads/2012/07/u12-1.png
Resolving blog.test.com (blog.test.com)... 192.168.57.82
Connecting to blog.test.com (blog.test.com)|192.168.57.82|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.0 200 OK
Server: nginx
Date: Mon, 23 Jul 2012 02:50:52 GMT
Content-Type: image/png
Content-Length: 26191
Last-Modified: Mon, 23 Jul 2012 02:49:44 GMT
Expires: Sun, 19 May 2013 02:50:52 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
Age: 10644
X-Cache: HIT from cache02.test.com
X-Cache: MISS from cache01.test.com
Via: 1.1 cache02.test.com:80 (squid/2.7.STABLE9), 1.0 cache01.test.com:80 (squid/2.7.STABLE9)
Length: 26191 (26K) [image/png]
Saving to: `u12-1.png.1'
--no-check-certificate 以不安全的方式连接
wget
--2011-10-13 11:37:24--
正在连接 192.168.7.81:1443... 已连接。
错误: 无法验证 192.168.7.81 的由 “/O=VMware Installer” 颁发的证书:
无法本地校验颁发者的权限。
错误: 证书通用名 “VMware default certificate” 与所要求的主机名 “192.168.7.81” 不符。
要以不安全的方式连接至 192.168.7.81,使用‘--no-check-certificate’。
wget --no-check-certificate
--2011-10-13 11:38:01--
正在连接 192.168.57.81:1443... 已连接。
警告: 无法验证 192.168.57.81 的由 “/O=VMware Installer” 颁发的证书:
无法本地校验颁发者的权限。
警告: 证书通用名 “VMware default certificate” 与所要求的主机名 “192.168.7.81” 不符。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 26534072 (25M) [application/octet-stream]
正在保存至: “VMware-Converter-Client.exe”
100%[======================================>] 26,534,072 11.0M/s in 2.3s
2011-10-13 11:38:03 (11.0 MB/s) - 已保存 “VMware-Converter-Client.exe” [26534072/26534072])
#X
#Y
#Z
本文出自 “dongnan” 博客,转载请与作者联系!
阅读(1385) | 评论(0) | 转发(0) |