71、passwd:修改用户密码
语法

passwd [参数]username

选项

-k  --keep-tokens :保留即将过期的用户在期满后仍能使用

-l  --lock :锁定用户无权更改其密码,只能root才能操作

-u --unlock :解除锁定

-S --status :查看用户状态

-d --delete :删除用户密码,只能root才能操作

-f --force :强制操作,只能root才能操作

-n mindays :修改密码的最小天数,也就是mindays天内不能再次修改密码

-i inactivedays : 密码有效期

-w warndays :密码过期前warndays天警告时间

-x maximum :两次密码修改之间的天数,也就是maximum天内必须修改密码,只能root才能操作

--stdin :从stdin读入密码,不会有提示

实例

echo "123456" | passed --stdin test01 

passwd test01

72、chage:修改密码有效期
语法

chage [参数选项]username

选项

-d :指定密码最后修改日期

-E :密码到期的日期,过了这天,此账号将不可用。0表示马上过期,-1表示永不过期。

-h :显示帮助信息并退出

-I :密码过期后,锁定账号的天数

-l :列出用户以及密码的有效期

-m :密码可以更改的最小天数。为零代表任何时候都可以更改密码。

-M :密码保持有效的最大天数。

-W :密码过期前,提前收到警告信息的天数

实例

chage -E "2018/02/03" test

chage -l test

73、groupdel:删除用户组
语法

groupdel groupname

实例

groupdel test01

74、usermod:修改用户信息命令
语法

usermod (选项)username

选项

-d :指定密码最后修改日期

-c<备注> :修改用户帐号的备注文字

-d<登入目录> :修改用户登入时的目录

-e<有效期限> :修改帐号的有效期限

-f<缓冲天数> :修改在密码过期后多少天即关闭该帐号

-g<群组> :修改用户所属的群组

-G<群组> :修改用户所属的附加群组

-l<帐号名称> :修改用户帐号名称

-L :锁定用户密码,使密码无效

-s :修改用户登入后所使用的shell

-u :修改用户ID

-U :解除密码锁定

实例

usermod -s /bin/bash test

usermod -c "abcd" test

75、groups:查看当前或指定用户所在组的组成员
语法

groups [username]

实例

groups :查看当前用户所在的组

groups test:查看test用户所在的组

76、visudo:编辑sudo配置文件/etc/sudoers,有语法检查
77、finger:查看用户信息
语法

finger [username]

实例

finger test

78、route:路由配置
语法

route (选项)(参数)

选项

-A:设置地址类型

-C:打印将Linux核心的路由缓存

-v:详细信息模式

-n:不执行DNS反向查找,直接显示数字形式的IP地址

-e:netstat格式显示路由表

-net:到一个网络的路由表

-host:到一个主机的路由表。

参数

Add:增加指定的路由记录

Del:删除指定的路由记录

Target:目的网络或目的主机

gw:设置默认网关

mss:设置TCP的最大区块长度(MSS),单位MB

window:指定通过路由表的TCP连接的TCP窗口大小

dev:路由记录所表示的网络接口。

实例
查看网关

route 

route –n

Kernel IP routing table

Destination     Gateway      Genmask         Flags Metric  Ref  Use  Iface

112.124.12.0    0.0.0.0         255.255.252.0   U       0  0   0  eth1

10.160.0.0      0.0.0.0        255.255.240.0    U       0   0   0   eth0

0.0.0.0         12.14.15.27    0.0.0.0        UG      0   0   0   eth1

其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:

U Up表示此路由当前为启动状态。

H Host,表示此网关为一主机。

G Gateway,表示此网关为一路由器。

R Reinstate Route,使用动态路由重新初始化的路由。

D Dynamically,此路由是动态性地写入。

M Modified,此路由是由路由守护程序或导向器动态修改。

! 表示此路由当前为关闭状态。

增加一条到达244.0.0.0的路由。

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。

route add -net 224.0.0.0 netmask 240.0.0.0 reject

删除路由记录:

route del -net 224.0.0.0 netmask 240.0.0.0

route del -net 224.0.0.0 netmask 240.0.0.0 reject

删除默认网关

route del default gw 192.168.1.1

添加默认网关

route add default gw 192.168.1.1

 

79、ping:测试主机之间网络的连通性
语法

ping(选项) 目标主机

选项

-d:使用Socket的SO_DEBUG功能

-c<完成次数>:设置完成要求回应的次数

-f:极限检测

-i<间隔秒数>:指定收发信息的间隔时间

-I<网络界面>:使用指定的网络界面送出数据包

-l<前置载入>:设置在送出要求信息之前,先行发出的数据包

-n:只输出数值

-p<范本样式>:设置填满数据包的范本样式

-q:不显示指令执行过程,开头和结尾的相关信息除外

-r:忽略普通的RoutingTable,直接将数据包送到远端主机上

-R:记录路由过程

-s<数据包大小>:设置数据包的大小

-t<存活数值>:设置存活数值TTL的大小

-v:详细显示指令的执行过程。 参数 目的主机:指定发送ICMP报文的目的主机。

实例

ping 10.11.12.13

ping www.baidu.com

ping –c10 –s648 –i3 www.baidu.com

 

80、dig:域名查询工具,可以用来测试域名系统工作是否正常
语法

dig(选项)(参数)

选项

@<服务器地址>:指定进行域名解析的域名服务器

-b:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求

-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息

-P:指定域名服务器所使用端口号

-t<类型>:指定要查询的DNS数据类型

-x:执行逆向域名查询

-4:使用IPv4

-6:使用IPv6

-h:显示指令帮助信息。

参数

主机:指定要查询域名主机

查询类型:指定DNS查询的类型

查询类:指定查询DNS的class

查询选项:指定查询选项。

实例

dig www.linuxde.net

;<<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.1<<>> www.linuxde.net

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2115

;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0

 

;; QUESTION SECTION:

;www.linuxde.net. IN A

 

;; ANSWER SECTION:

www.linuxde.net.       0 IN    CNAME       host.1.linuxde.net.

host.1.linuxde.net. 0 IN   A           100.42.212.8

;; AUTHORITY SECTION:

linuxde.net.   8   IN NS f1g1ns2.dnspod.net.

linuxde.net.   8   IN NS f1g1ns1.dnspod.net.

 

;; Query time: 0 msec

;; SERVER: 202.96.104.15#53(202.96.104.15)

;; WHEN: Thu Dec 26 11:14:37 2013

;; MSG SIZE rcvd: 121

 

81、nslookup:域名查询工具
语法

nslookup(选项) 域名

选项

-sil:不显示任何警告信息。

实例

nslookup www.linuxde.net

Server: 202.96.104.15

Address: 202.96.104.15#53

Non-authoritative answer: www.linuxde.net canonical name =host.1.linuxde.net.

Name: host.1.linuxde.net

Address: 100.42.212.8

 

82、traceroute:路由追踪(windows下是tracert),默认发送的数据包大小是40字节
语法

traceroute (选项) 目的主机IP地址或主机名

选项

-d:使用Socket层级的排错功能

-f<存活数值>:设置第一个检测数据包的存活数值TTL的大小

-F:设置勿离断位

-g<网关>:设置来源路由网关,最多可设置8个

-i<网络界面>:使用指定的网络界面送出数据包

-I:使用ICMP回应取代UDP资料信息

-m<存活数值>:设置检测数据包的最大存活数值TTL的大小

-n:直接使用IP地址而非主机名称

-p<通信端口>:设置UDP传输协议的通信端口

-r:忽略普通的RoutingTable,直接将数据包送到远端主机上。

-s<来源地址>:设置本地主机送出数据包的IP地址

-t<服务类型>:设置检测数据包的TOS数值

-v:详细显示指令的执行过程

-w<超时秒数>:设置等待远端主机回报的时间

-x:开启或关闭数据包的正确性检验。

实例

traceroute www.58.com

traceroute to www.58.com (211.151.111.30), 30 hops max, 40 bytepackets

1 unknown (192.168.2.1) 3.453 ms 3.801 ms 3.937 ms

2 221.6.45.33 (221.6.45.33) 7.768 ms 7.816 ms 7.840 ms

3 221.6.0.233 (221.6.0.233) 13.784 ms 13.827 ms 221.6.9.81(221.6.9.81) 9.758 ms

...

11 211.151.104.6 (211.151.104.6) 39.585 ms 39.502 ms 39.598 ms

12 211.151.111.30 (211.151.111.30) 35.161 ms 35.938 ms 36.005 ms

83、telnet:登录远程主机
说明

telnet命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。

语法

telnet (选项) 远程主机 端口

选项

-8:允许使用8位字符资料,包括输入与输出

-a:尝试自动登入远端系统

-b<主机别名>:使用别名指定远端主机名称

-c:不读取用户专属目录里的.telnetrc文件

-d:启动排错模式

-e<脱离字符>:设置脱离字符

-E:滤除脱离字符

-f:此参数的效果和指定"-F"参数相同

-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机

-k<域名>:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名

-K:不自动登入远端主机

-l<用户名称>:指定要登入远端主机的用户名称

-L:允许输出8位字符资料

-n<记录文件>:指定文件记录相关信息

-r:使用类似rlogin指令的用户界面

-S<服务类型>:设置telnet连线所需的ip TOS信息

-x:假设主机有支持数据加密的功能,就使用它

-X<认证形态>:关闭指定的认证形态。

实例

telnet 192.168.2.10

Trying 192.168.2.10...

Connected to 192.168.2.10 (192.168.2.10).

Escape character is '^]'.

   localhost (Linux release2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012)

login: root

Password:

Login incorrect

84、nmap:网络探测和安全审核工具
说明

nmap命令是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。

语法

nmap (选项)  IP

选项

-O:激活操作探测

-P0:值进行扫描,不ping主机

-PT:是同TCP的ping

-sV:探测服务版本信息

-sP:ping扫描,仅发现目标主机是否存活

-ps:发送同步(SYN)报文

-PU:发送udp ping

-PE:强制执行直接的ICMPping

-PB:默认模式,可以使用ICMPping和TCPping

-6:使用IPv6地址

-v:得到更多选项信息

-d:增加调试信息地输出

-oN:以人们可阅读的格式输出

-oX:以xml格式向指定文件输出信息

-oM:以机器可阅读的格式输出

-A:使用所有高级扫描选项

--resume:继续上次执行完的扫描

-P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围

-e:在多网络接口Linux系统中,指定扫描使用的网络接口

-g:将指定的端口作为源端口进行扫描

--ttl:指定发送的扫描报文的生存期

--packet-trace:显示扫描过程中收发报文统计

--scanflags:设置在扫描报文中的TCP标志。

实例

nmap www.linuxde.net

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-12-2800:06 CST

Interesting ports on 100-42-212-8.static.webnx.com (100.42.212.8):

Not shown: 1678 filtered ports

PORT STATE service

22/tcp open ssh

80/tcp open http

 

Nmap finished: 1 IP address (1 host up) scanned in 45.870 seconds

85、tcpdump:抓包命令
说明

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0。

如果本地网络通过网关连到了另一网络,则另一网络并不能算作本地网络。

语法

tcpdump (选项)

选项

-a:尝试将网络和广播地址转换成名称

-c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作

-d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出

-dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出

-ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出

-e:在每列倾倒资料上显示连接层级的文件头

-f:用数字显示网际网络地址

-F<表达文件>:指定内含表达方式的文件

-i<网络界面>:使用指定的网络截面送出数据包

-l:使用标准输出列的缓冲区

-n:不把主机的网络地址转换成名字

-N:不列出域名

-O:不将数据包编码最佳化

-p:不让网络界面进入混杂模式

-q :快速输出,仅列出少数的传输协议信息

-r<数据包文件>:从指定的文件读取数据包数据

-s<数据包大小>:设置每个数据包的大小

-S:用绝对而非相对数值列出TCP关联数

-t:在每列倾倒资料上不显示时间戳记

-tt: 在每列倾倒资料上显示未经格式化的时间戳记

-T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型

-v:详细显示指令执行过程

-vv:更详细显示指令执行过程

-x:用十六进制字码列出数据包资料

-w<数据包文件>:把数据包数据写入指定的文件。

实例
直接启动tcpdump将监视第一个网络接口上所有流过的数据包

tcpdump

监视指定网络接口的数据包

tcpdump -i eth1

打印所有进入或离开sundown的数据包。

tcpdump host sundown

也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包

tcpdump host 210.27.48.1

打印helios 与 hot 或者与 ace 之间通信的数据包

tcpdump host helios and hotorace

截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信

tcpdump host 210.27.48.1 and \\ (210.27.48.2 or 210.27.48.3 \\)

打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包.

tcpdump ip host ace and not helios

如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

截获主机hostname发送的所有数据

tcpdump -i eth0 src host hostname

监视所有送到主机hostname的数据包

tcpdump -i eth0 dst host hostname

如果想要获取主机210.27.48.1接收或发出的telnet包

tcpdump tcp port 23 host 210.27.48.1

监听本机eth0网卡接收或发出的ping包

tcpdump –n icmp –i eth0

对本机的udp 123 端口进行监视 123 为ntp的服务端口

tcpdump udp port 123

打印本地主机与Berkeley网络上的主机之间的所有通信数据包

tcpdump net ucb-ether

注意:ucb-ether此处可理解为&ldquo;Berkeley网络&rdquo;的网络地址,此表达式最原始的含义可表达为:打印网络地址为ucb-ether的所有数据包

打印所有通过网关snup的ftp数据包

tcpdump 'gateway snup and (port ftp or ftp-data)'

注意:表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析

打印所有源地址或目标地址是本地主机的IP数据包

tcpdump ip and not net localnet

86、free:显示当前系统未使用的和已使用的内存数
说明

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

语法

free(选项)

选项

-b:以Byte为单位显示内存使用情况

-k:以KB为单位显示内存使用情况

-m:以MB为单位显示内存使用情况

-g:以GB为单位显示内存使用情况

-o:不显示缓冲区调节列

-s<间隔秒数>:持续观察内存使用状况

-t:显示内存总和列

-V:显示版本信息。

实例

free -m

                         total used free shared buffers cached

Mem:                     2016   1973 42  0      163        1497

-/+ buffers/cache:               312 1703

Swap:                    4094    0       4094

 

第一部分Mem行解释:

total:内存总数

used:已经使用的内存数

free:空闲的内存数

shared:当前已经废弃不用

buffers Buffer:缓存内存数

cached Page:缓存内存数。

关系:total = used + free

第二部分(-/+buffers/cache)解释:

(-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached

(+buffers/cache) free内存数:第一部分Mem行中的 free + buffers + cached

根据Linux的机制,系统会将没有使的内存的当缓存用,可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数,也就是实际剩余的内存。

buffers和cache的区别:

buffers是写入缓冲区,系统会先写buffers,再由sync将buffers缓冲区数据写入磁盘。

cache是读出缓存,Linux将磁盘数据读出后放到cache。

两者都在内在里

第三部分是指交换分区。

 

87、dd:复制文件并对原文件的内容进行转换和格式化处理
说明

dd命令用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。

建议在有需要的时候使用dd 对物理磁盘操作,如果是文件系统的话还是使用tar backup cpio等其他命令更加方便。另外,使用dd对磁盘操作时,最好使用块设备文件。

语法

dd  (选项)

选项

bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数

cbs=<字节数>:转换时,每次只转换指定的字节数

conv=<关键字>:指定文件转换的方式

count=<区块数>:仅读取指定的区块数

ibs=<字节数>:每次读取的字节数

obs=<字节数>:每次输出的字节数

if=<文件>: 代表输入文件

of=<文件>:输出到文件

seek=<区块数>:一开始输出时,跳过指定的区块数

skip=<区块数>:一开始读取时,跳过指定的区块数

--help:帮助

--version:显示版本信息。

实例
a、创建了一个1M大小的文件sun.txt

dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

(可以看出dd命令来测试内存操作速度:172 MB/s)

du -sh sun.txt

 1.1M sun.txt

b、参数解释:

if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。

of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。

bs 代表字节为单位的块大小。

count 代表被复制的块数。

/dev/zero 是一个字符设备,会不断返回0值字节(\\0)。

c、块大小可以使用的计量单位表

单元大小

代码

字节(1B)

字节(2B)

w

 块(512B)

b

千字节(1024B)

k

兆字节(1024KB)

M

吉字节(1024MB)

G

88、fdisk:分区命令,只能对小于2T的磁盘进行分区
说明

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区.只能对小于2T的磁盘进行分区.

语法

fdisk (选项) 设备文件(指定要进行分区或者显示分区的硬盘设备文件)

选项

-b 分区大小:指定每个分区的大小;

-l:列出指定的外围设备的分区表状况;

-s 分区编号:将指定的分区大小输出到标准输出上,单位为区块;

-u:搭配-l参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;

-v:显示版本信息。

实例
a、首先选择要进行操作的磁盘:

fdisk /dev/sdb

 

b、输入m列出可以执行的命令:

command (m for help): m

Command action

  a   toggle a bootable flag

  b   edit bsd disklabel

  c   toggle the dos compatibilityflag

  d   delete a partition

  l   list known partition types

  m   print this menu

  n   add a new partition

  o   create a new empty DOSpartition table

  p   print the partition table

  q   quit without saving changes

  s   create a new empty Sundisklabel

  t   change a partition's system id

  u   change display/entry units

  v   verify the partition table

  w   write table to disk and exit

  x   extra functionality (expertsonly)

 

c、输入p列出磁盘目前的分区情况:

Command (m for help): p

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

 

  Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1           1        8001  8e  Linux LVM

/dev/sdb2               2          26      200812+ 83  Linux

 

d、输入d然后选择分区,删除现有分区:

Command (m for help): d

Partition number (1-4): 1

 

Command (m for help): d

Selected partition 2

 

e、查看分区情况,确认分区已经删除:

Command (m for help): print

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

 

Command (m for help):

 

f、输入n建立新的磁盘分区,首先建立两个主磁盘分区:

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p    //建立主分区

Partition number (1-4): 1  //分区号

First cylinder (1-391, default 1): //分区起始位置

Using default value 1

last cylinder or +size or +sizeM or +sizeK (1-391, default 391):100  //分区结束位置,单位为扇区

 

Command (m for help): n  //再建立一个分区

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 2  //分区号为2

First cylinder (101-391, default 101):

Using default value 101

Last cylinder or +size or +sizeM or +sizeK (101-391, default 391):+200M  //分区结束位置,单位为M

 

g、确认分区建立成功:

Command (m for help): p

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         100      803218+ 83  Linux

/dev/sdb2             101         125      200812+ 83  Linux

 

h、再建立一个逻辑分区:

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e  //选择扩展分区

Partition number (1-4): 3

First cylinder (126-391, default 126):

Using default value 126

Last cylinder or +size or +sizeM or +sizeK (126-391, default 391):

Using default value 391

 

i、确认扩展分区建立成功:

Command (m for help): p

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         100      803218+ 83  Linux

/dev/sdb2             101         125      200812+ 83  Linux

/dev/sdb3             126         391    2136645    5  Extended

 

j、在扩展分区上建立两个逻辑分区:

Command (m for help): n

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

l //选择逻辑分区

First cylinder (126-391, default 126):

Using default value 126

Last cylinder or +size or +sizeM or +sizeK (126-391, default 391):+400M   

 

Command (m for help): n

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

l

First cylinder (176-391, default 176):

Using default value 176

Last cylinder or +size or +sizeM or +sizeK (176-391, default 391):

Using default value 391

 

k、确认逻辑分区建立成功:

Command (m for help): p

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         100      803218+ 83  Linux

/dev/sdb2             101         125      200812+ 83  Linux

/dev/sdb3             126         391    2136645    5  Extended

/dev/sdb5             126         175      401593+ 83  Linux

/dev/sdb6             176         391    1734988+  83  Linux

 

Command (m for help):

 

从上面的结果我们可以看到,在硬盘sdb我们建立了2个主分区(sdb1,sdb2),1个扩展分区(sdb3),2个逻辑分区(sdb5,sdb6)

 

注意:主分区和扩展分区的磁盘号位1-4,也就是说最多有4个主分区或者扩展分区,逻辑分区开始的磁盘号为5,因此在这个实验中试没有sdb4的。

 

l、最后对分区操作进行保存:

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

m、建立好分区之后我们还需要对分区进行格式化才能在系统中使用磁盘。

 

在sdb1上建立ext2分区:

mkfs.ext2 /dev/sdb1

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

100576 inodes, 200804 blocks

10040 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=209715200

7 block groups

32768 blocks per group, 32768 fragments per group

14368 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840

 

Writing inode tables: done                          

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

 

在sdb6上建立ext3分区:

mkfs.ext3 /dev/sdb6

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

217280 inodes, 433747 blocks

21687 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=444596224

14 block groups

32768 blocks per group, 32768 fragments per group

15520 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840,229376, 294912

 

Writing inode tables: done                          

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@localhost ~]#

 

n、建立两个目录/oracle和/web,将新建好的两个分区挂载到系统:

mkdir /oracle

mkdir /web

mount /dev/sdb1 /oracle

mount /dev/sdb6 /web

 

o、查看分区挂载情况:

df -h

文件系统              容量  已用 可用 已用% 挂载点

/dev/mapper/VolGroup00-LogVol00

                     6.7G  2.8G  3.6G 44% /

/dev/sda1             99M   12M   82M 13% /boot

tmpfs                125M     0  125M  0% /dev/shm

/dev/sdb1            773M  808K  733M  1% /oracle

/dev/sdb6            1.7G   35M  1.6G  3% /web

 

p、如果需要每次开机自动挂载则需要修改/etc/fstab文件,加入两行配置:

vim /etc/fstab

 

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1

LABEL=/boot            /boot                   ext3    defaults        1 2

tmpfs                  /dev/shm                tmpfs   defaults        0 0

devpts                 /dev/pts               devpts  gid=5,mode=620  0 0

sysfs                  /sys                    sysfs   defaults        0 0

proc                   /proc                   proc    defaults        0 0

/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

/dev/sdb1              /oracle                 ext2    defaults        0 0

/dev/sdb6              /web                    ext3    defaults        0 0

 

89、parted:分区命令,适合于对大于2T的磁盘进行分区,且必须将磁盘转为GPT格式
说明

parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。

语法

parted (选项) 要执行的parted命令  指定要分区的硬盘所对应的设备文件

选项

-h:显示帮助信息;

-i:交互式模式;

-s:脚本模式,不提示用户;

-v:显示版本号。

实例

parted /dev/sdb

GNU Parted Copyright (C) 1998 - 2004 freeSoftware Foundation, Inc.

This program is free software, covered by the GNU General PublicLicense.

This program is distributed in the hope that it will be useful, butWITHOUT ANY

WARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A

PARTICULAR PURPOSE.  See theGNU General Public License for more details.

 (parted)mklabel gpt

(parted)print

/dev/sdb的磁盘几何结构:0.000-2048.000兆字节

磁盘标签类型:gpt

Minor   起始点      终止点 文件系统   名称                 标志

(parted)mkpart primary 0 2048 <-----上面print显示的数字< p="">

(parted)print

/dev/sdb的磁盘几何结构:0.000-2048.000兆字节

磁盘标签类型:gpt

Minor   起始点      终止点 文件系统   名称                 标志

1          0.017   2047.983

(parted)quit

90、mount:用于加载文件系统到指定的加载点
说明

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。

语法

mount (选项) 指定要加载的文件系统对应的设备名  指定加载点目录

选项

-V:显示程序版本;

-l:显示已加载的文件系统列表;

-h:显示帮助信息并退出;

-v:冗长模式,输出指令执行的详细信息;

-n:加载没有写入文件“/etc/mtab”中的文件系统;

-r:将文件系统加载为只读模式;

-a:加载文件“/etc/fstab”中描述的所有文件系统。

-t vfstype:指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。

常用类型有:

光盘或光盘镜像             :iso9660
DOS fat16文件系统         :msdos
Windows 9x fat32文件系统  :vfat
Windows NT ntfs文件系统   :ntfs
Mount Windows文件网络共享 :smbfs
UNIX(LINUX) 文件网络共享   :nfs

-o options:主要用来描述设备或档案的挂接方式。

常用的参数有:

loop     :用来把一个文件当成硬盘分区挂接上系统
ro       :采用只读方式挂接设备
rw       :采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集

实例

mount -t auto /dev/cdrom /mnt/cdrom

91、umount:卸载已经加载的文件系统
说明

umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。

语法

umount (选项) 指定要卸载的文件系统或者其对应的设备文件名

选项

-a:卸除/etc/mtab中记录的所有文件系统;

-h:显示帮助;

-n:卸除时不要将信息存入/etc/mtab文件中;

-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;

-t<文件系统类型>:仅卸除选项中所指定的文件系统;

-f:强制卸载

-l:lazy,延迟卸载

-v:执行时显示详细的信息;

-V:显示版本信息。

实例

umount -v /dev/sda1

umount -v /mnt/mymount/

如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:

umount -v /mnt/mymount/

umount: /mnt/mymount: device is busy

umount: /mnt/mymount: device is busy

有时,导致设备忙的原因并不好找。碰到这种情况时,可以强制卸载,也可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点。

可以强制卸载

umount –lf /mnt/nfs

也可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:

lsof | grep mymount         #查找mymount分区里打开的文件

bash   9341  francois cwd   DIR   8,1  1024    2 /mnt/mymount

从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。

kill -9 9341

也可以通过fuser来kill pid

fuser -m /boot 将会显示使用这个模块的pid

fuser -mk /boot 将会直接kill那个pid

对付系统文件正忙的另一种方法是执行延迟卸载:

umount -vl /mnt/mymount/     #执行延迟卸载

延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:

eject /dev/cdrom      #卸载并弹出CD

92、mkfs:用于在设备上(通常为硬盘)创建Linux文件系统
说明

mkfs命令用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。

语法

mkfs (选项) 指定要创建的文件系统对应的设备文件名或指定文件系统的磁盘块数

选项

fs:指定建立文件系统时的参数;

-t<文件系统类型>:指定要建立何种文件系统;

-v:显示版本信息与详细的使用方法;

-V:显示简要的使用方法;

-c:在制做档案系统前,检查该partition是否有坏轨。

实例

在/dev/hda5上建一个msdos的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:

mkfs -V -t msdos -c /dev/hda5

mkfs -t ext3 /dev/sda6     //将sda6分区格式化为ext3格式

mkfs -t ext2 /dev/sda7     //将sda7分区格式化为ext2格式

93、tune2fs:允许系统管理员调整“ext2/ext3”文件系统中的可该参数
说明

tune2fs命令允许系统管理员调整“ext2/ext3”文件系统中的可该参数。Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式

语法

tune2fs (选项) 指定调整的文件系统或者其对应的设备文件名

选项

-c:调整最大加载次数;

-C:设置文件系统已经被加载的次数;

-e:设置内核代码检测到错误时的行为;

-f:强制执行修改,即使发生错误;

-i:设置相邻两次文件系统检查的相隔时间;

-j:为“ext2”文件系统添加日志功能,将其转换为“ext3”文件系统;

-l:显示文件超级块内容;

-L:设置文件系统卷标;

-m:显示文件保留块的百分比;

-M:设置文件系统最后被加载到的目录;

-o:设置或清除文件系统加载的特性或选项;

-O:设置或清除文件系统的特性或选项;

-r:设置文件系统保留块的大小;

-T:设置文件系统上次被检查的时间;

-u:设置可以使用文件系统保留块的用户;

-U:设置文件系统的UUID。

实例

tune2fs -c 30 /dev/hda1      设置强制检查前文件系统可以挂载的次数

tune2fs -c -l /dev/hda1      关闭强制检查挂载次数限制。

tune2fs -i 10 /dev/hda1     10天后检查

tune2fs -i 1d /dev/hda1      1天后检查

tune2fs -i 3w /dev/hda1      3周后检查

tune2fs -i 6m /dev/hda1      半年后检查

tune2fs -i 0 /dev/hda1       禁用时间检查

tune2fs -j /dev/hda1         添加日志功能,将ext2转换成ext3文件系统

tune2fs -r 40000 /dev/hda1   调整/dev/hda1分区的保留空间为40000个磁盘块

tune2fs -o acl,user_xattr /dev/hda1    设置/dev/hda1挂载选项,启用Posix Access Control Lists和用户指定的扩展属性

94、dumpe2fs:用于打印“ext2/ext3”文件系统的超级块和快组信息
说明

用于打印“ext2/ext3”文件系统的超级块和快组信息

语法

dumpe2fs (选项) 指定要查看信息的文件系统

选项

-b:打印文件系统中预留的块信息;

-ob<超级块>:指定检查文件系统时使用的超级块;

-OB<块大小>:检查文件系统时使用的指定的块大小;

-h:仅显示超级块信息;

-i:从指定的文件系统映像文件中读取文件系统信息;

-x:以16进制格式打印信息块成员。

实例

dumpe2fs /dev/hda1

dumpe2fs 1.39 (29-May-2006)

Filesystem volume name:   /

last mounted on:         

Filesystem UUID:         845ccd40-1f3b-4729-a63d-cb80f51b082a

Filesystem magic number: 0xEF53

Filesystem revision #:    1(dynamic)

Filesystem features:     has_journal ext_attr resize_inode dir_index filetype needs_recoverysparse_super large_file

Default mount options:   user_xattr acl

Filesystem state:        clean

Errors behavior:         Continue

Filesystem OS type:       Linux

Inode count:             5242880

Block count:             5241817

Reserved block count:     262090

free blocks:             4434157

Free inodes:             5170836

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      1022

Blocks per group:        32768

Fragments per group:     32768

Inodes per group:        32768

Inode blocks per group:   1024

Filesystem created:       SunMar 24 02:09:14 2013

Last mount time:          ThuAug  1 16:42:07 2013

Last write time:          ThuAug  1 16:42:07 2013

Mount count:              10

Maximum mount count:      -1

Last checked:             Sun Mar 24 02:09:14 2013

Check interval:           0()

Reserved blocks uid:      0(user root)

Reserved blocks gid:      0(group root)

First inode:              11

Inode size:               128

Journal inode:            8

First orphan inode:       3735559

Default directory hash:   tea

Directory Hash Seed:     e3f7162e-1194-4161-805d-763db89dbc69

Journal backup:          inode blocks

Journal size:             128M

 

Group 0: (Blocks 0-32767)

  Primary superblock at0, Group descriptors at 1-2

  Reserved GDT blocks at3-1024

  Block bitmap at 1025(+1025), Inode bitmap at 1026 (+1026)

  Inode table at 1027-2050(+1027)

  0 free blocks, 32757 freeinodes, 2 directories

  Free blocks:

  Free inodes: 12-32768

95、showmount:查询mountd守护进程,以显示NFS服务器加载的信息。
说明

showmount命令用于查询mountd守护进程,以显示NFS服务器加载共享目录的相关信息

语法

showmount (选项) 指定NFS服务器的ip

选项

-d:仅显示已被NFS客户端加载的目录;

-e:显示NFS服务器上所有的共享目录。

-a:以IP:/dir格式显示NFS服务器的IP地址和可被挂载的目录

实例

showmount –e 192.168.1.8

showmount –d 192.168.1.8

showmount –a 192.168.1.8

96、exportfs:用来管理当前NFS共享的文件系统列表
说明

exportfs命令是NFS服务的管理命令。可以加载NFS配置生效和,还可以直接配置NFS共享目录,也就是无需配置/etc/exports实现共享(但重启后失效)

语法

exportfs (选项)

选项

-a:打开或取消所有目录共享。

-o:options,...指定一列共享选项,与 exports(5) 中讲到的类似。

-i:忽略 /etc/exports 文件,从而只使用默认的和命令行指定的选项。

-r:重新共享所有目录。它使/var/lib/nfs/xtab 和/etc/exports 同步。 它将 /etc/exports 中已删除的条目从 /var/lib/nfs/xtab 中删除,将内核共享表中任何不再有效的条目移除。

-u:取消一个或多个目录的共享。

-f:在&ldquo;新&rdquo;模式下,刷新内核共享表之外的任何东西。 任何活动的客户程序将在它们的下次请求中得到 mountd添加的新的共享条目。

-v:输出详细信息。当共享或者取消共享时,显示在做什么。 显示当前共享列表的时候,同时显示共享的选项。

实例

exportfs -rv :加载配置生效,等价于/etc/init.d/nfs reload

exportfs –o rw,sync,all_squash,anonuid=555,anongid=555192.126.1.0/24:/data

97、rpcinfo:查看rpc中注册的服务
说明

rpcinfo命令用于显示那些使用rpc/portmap注册的程序的信息,并向程序进行RPC调用,检查它们是否正常运行。

语法

rpcinfo -p [host]

rpcinfo [-n port] -u |- t host program [version]

rpcinfo -b | -d program version

选项

-p (probe,探测) 列出所有在host用portmap注册的RPC程序,如果没有指定host,就查找本机上的RPC程序。

-n (port number,端口号) 根据-t或者-u,使用编号为port的端口,而不是由portmap指定的端口号

-u (UDP) UDP RPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应。

-t (TCP) TCP RPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应。

-b (broadcast,广播) 向程序program的version版本进行RPC广播,并列出响应的主机。

-d (delete,删除) 将程序program的version版本从本机的RPC注册表中删除。只有具有root特权的用户才可以使用这个选项。

实例

rpcinfo –p localhost

98、ssh:远程登录命令
说明

ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

语法

ssh (选项) 要连接的远程ssh服务器

选项

-1:强制使用ssh协议版本1;

-2:强制使用ssh协议版本2;

-4:强制使用IPv4地址;

-6:强制使用IPv6地址;

-A:开启认证代理连接转发功能;

-a:关闭认证代理连接转发功能;

-b:使用本机指定地址作为对应连接的源

-C:请求压缩所有数据;

-F:指定ssh指令的配置文件;

-f:后台执行ssh指令;

-g:允许远程主机连接主机的转发端口;

-i:指定身份文件;

-l:指定连接远程服务器登录用户名;

-N:不执行远程指令;

-o:指定配置选项;

-p:指定远程服务器上的端口;

-q:静默模式;

-v:调试模式

-X:开启X11转发功能;

-x:关闭X11转发功能;

-y:开启信任X11转发功能。

实例

ssh -p28888 root@192.168.58.238

ssh root@192.168.58.238 /sbin/ifconfig

99、scp:远程拷贝文件命令
说明

scp命令用于在Linux下进行远程拷贝文件的命令

语法

scp (选项)  要复制的源文件  目标文件

选项

-1:使用协议版本1;

-2:使用ssh协议版本2;

-4:使用ipv4;

-6:使用ipv6;

-B:以批处理模式运行;

-C:使用压缩;

-F:指定ssh配置文件;

-l:指定宽带限制;

-o:指定使用的ssh选项;

-P:指定远程主机的端口号;

-p:保留文件的最后修改时间,最后访问时间和权限模式;

-q:不显示复制进度;

-r:以递归方式复制。

实例

scp test.txt root@192.168.1.8:/tmp #将文件发送到远程服务器

scp root@192.168.1.8:/tmp/test.txt /wddg  #将文件从远程服务器拷贝回来

 

100、rsync:远程数据同步工具
说明

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。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]

选项

-v, --verbose 详细模式输出。

-q, --quiet 精简输出模式。

-c, --checksum 打开校验开关,强制对文件传输进行校验。

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。

-r, --recursive 对子目录以递归模式处理。

-R, --relative 使用相对路径信息。

-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。

--backup-dir 将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX 定义备份文件前缀。

-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件。

-l, --links 保留软链结。

-L, --copy-links 想对待常规文件一样处理软链结。

--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结。

--safe-links 忽略指向SRC路径目录树以外的链结。

-H, --hard-links 保留硬链结。

-p, --perms 保持文件权限。

-o, --owner 保持文件属主信息。

-g, --group 保持文件属组信息。

-D, --devices 保持设备文件信息。

-t, --times 保持文件时间信息。

-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间。

-n, --dry-run现实哪些文件将被传输。

-w, --whole-file 拷贝文件,不进行增量检测。

-x, --one-file-system 不要跨越文件系统边界。

-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节。

-e, --rsh=command 指定使用rsh、ssh方式进行数据同步。

--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息。

-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件。

--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件。

--delete 删除那些DST中SRC没有的文件。

--delete-excluded 同样删除接收端那些被该选项指定排除的文件。

--delete-after 传输结束以后再删除。

--ignore-errors 及时出现IO错误也进行删除。

--max-delete=NUM 最多删除NUM个文件。

--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输。

--force 强制删除目录,即使不为空。

--numeric-ids 不将数字的用户和组id匹配为用户名和组名。

--timeout=time ip超时时间,单位为秒。

-I, --ignore-times 不跳过那些有同样的时间和长度的文件。

--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间。

--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0。

-T --temp-dir=DIR 在DIR中创建临时文件。

--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份。

-P 等同于 --partial。

--progress 显示备份过程。

-z, --compress 对备份的文件在传输时进行压缩处理。

--exclude=PATTERN 指定排除不需要传输的文件模式。

--include=PATTERN 指定不排除而需要传输的文件模式。

--exclude-from=FILE 排除FILE中指定模式的文件。

--include-from=FILE 不排除FILE指定模式匹配的文件。

--version 打印版本信息。

--address 绑定到特定的地址。

--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件。

--port=PORT 指定其他的rsync服务端口。

--blocking-io 对远程shell使用阻塞IO。

-stats 给出某些文件的传输状态。

--progress 在传输时现实传输过程。

--log-format=formAT 指定日志文件格式。

--password-file=FILE 从FILE中得到密码。

--bwlimit=KBPS 限制I/O带宽,KBytes per second。

-h, --help 显示帮助信息。

实例

对应于以上六种命令格式,rsync有六种不同的工作模式:

(1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。

如:rsync -a /data /backup

(2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。

如:rsync -avz *.c foo:src

(3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。

如:rsync -avz foo:src/bar /data

(4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。

如:rsync -av root@192.168.78.192::www/databack

(5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。

如:rsync -av /databackroot@192.168.78.192::www

(6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

如:rsync -v rsync://192.168.78.192/www