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: <none>
- 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<I/O模式> 设定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模式> 设定硬盘的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 <src-dir>/ <dst-dir>
- rsync -av --progress <src-dir> <dst-dir>/
- --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 [email protected]:/root/
- -P port Specifies the port to connect to on the remote host
- # ssh 默认端口为22,如果更改了使用-P参数即可,这里可以发现一个规律!
- command(命令名称) option(选项) argument(参数)
- scp -P 90 rsync_tmp [email protected]:/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 命令
-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 https://192.168.7.81:1443/converter/VMware-Converter-Client.exe
- --2011-10-13 11:37:24-- https://192.168.7.81:1443/converter/VMware-Converter-Client.exe
- 正在连接 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 https://192.168.57.81:1443/converter/VMware-Converter-Client.exe
- --2011-10-13 11:38:01-- https://192.168.7.81:1443/converter/VMware-Converter-Client.exe
- 正在连接 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” 博客,转载请与作者联系!