赞
踩
ifconfig
用于配置内核常驻网络接口。它用于在启动时根据需要设置接口。
检查活动网络接口
- [rumenz@local ~]$ ifconfig
-
- eth0 Link encap:Ethernet HWaddr 40:2C:F4:EA:CF:0E
- inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
- inet6 addr: fe80::422c:f4ff:feea:cf0e/64 Scope:Link
- UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
- RX packets:163843 errors:0 dropped:0 overruns:0 frame:0
- TX packets:124990 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:154389832 (147.2 MiB) TX bytes:65085817 (62.0 MiB)
- Interrupt:20 Memory:f7100000-f7120000
-
- lo Link encap:Local Loopback
- inet addr:127.0.0.1 Mask:255.0.0.0
- inet6 addr: ::1/128 Scope:Host
- UP LOOPBACK RUNNING MTU:16436 Metric:1
- RX packets:78 errors:0 dropped:0 overruns:0 frame:0
- TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:0
- RX bytes:4186 (4.0 KiB) TX bytes:4186 (4.0 KiB)
检查所有网络接口
使用
-a
显示所有接口的详细信息
- [rumenz@local ~]$ ifconfig -a
-
- eth0 Link encap:Ethernet HWaddr 40:2C:F4:EA:CF:0E
- inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
- inet6 addr: fe80::422c:f4ff:feea:cf0e/64 Scope:Link
- UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
- RX packets:163843 errors:0 dropped:0 overruns:0 frame:0
- TX packets:124990 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:154389832 (147.2 MiB) TX bytes:65085817 (62.0 MiB)
- Interrupt:20 Memory:f7100000-f7120000
-
- lo Link encap:Local Loopback
- inet addr:127.0.0.1 Mask:255.0.0.0
- inet6 addr: ::1/128 Scope:Host
- UP LOOPBACK RUNNING MTU:16436 Metric:1
- RX packets:78 errors:0 dropped:0 overruns:0 frame:0
- TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:0
- RX bytes:4186 (4.0 KiB) TX bytes:4186 (4.0 KiB)
-
- virbr0 Link encap:Ethernet HWaddr 0e:30:a3:3a:bf:03
- inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
- UP BROADCAST MULTICAST MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:0
- RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
禁用网卡
[rumenz@local ~]$ ifconfig eth0 down
启用网卡
[rumenz@local ~]$ ifconfig eth0 up
为网卡分配 IP 地址
指定
192.168.1.12
作为网卡 eth0 的 IP 地址。
[rumenz@local ~]$ ifconfig eth0 192.168.1.12
更改网卡eth0的子网掩码
[rumenz@local ~]$ ifconfig eth0 netmask 255.255.255.
更改网卡 eth0 的广播地址
[rumenz@local ~]$ ifconfig eth0 broadcast 192.168.1.255
为网卡 eth0 分配 IP 地址、网络掩码和广播
[rumenz@local ~]$ ifconfig eth0 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
Note
: 如果使用无线网络,则需要使用命令iwconfig
。欲了解更多ifconfig
命令示例和用法,请阅读[15 个有用的ifconfig
命令]。
netstat
命令显示各种网络相关信息,如网络连接、路由表
列出所有网络端口
- [rumenz@local ~]$ netstat -a
-
- Active UNIX domain sockets (servers and established)
- Proto RefCnt Flags Type State I-Node Path
- unix 2 [ ACC ] STREAM LISTENING 741379 /run/user/user1/keyring-I5cn1c/gpg
- unix 2 [ ACC ] STREAM LISTENING 8965 /var/run/acpid.socket
- unix 2 [ ACC ] STREAM LISTENING 18584 /tmp/.X11-unix/X0
- unix 2 [ ACC ] STREAM LISTENING 741385 /run/user/user1/keyring-I5cn1c/ssh
- unix 2 [ ACC ] STREAM LISTENING 741387 /run/user/user1/keyring-I5cn1c/pkcs11
- unix 2 [ ACC ] STREAM LISTENING 20242 @/tmp/dbus-ghtTjuPN46
- unix 2 [ ACC ] STREAM LISTENING 13332 /var/run/samba/winbindd_privileged/pipe
- unix 2 [ ACC ] STREAM LISTENING 13331 /tmp/.winbindd/pipe
- unix 2 [ ACC ] STREAM LISTENING 11030 /var/run/mysqld/mysqld.sock
- unix 2 [ ACC ] STREAM LISTENING 19308 /tmp/ssh-qnZadSgJAbqd/agent.3221
- unix 2 [ ACC ] STREAM LISTENING 436781 /tmp/HotShots
- unix 2 [ ACC ] STREAM LISTENING 46110 /run/user/ravisaive/pulse/native
- unix 2 [ ACC ] STREAM LISTENING 19310 /tmp/gpg-zfE9YT/S.gpg-agent
- ....
列出所有 TCP 端口
- [rumenz@local ~]$ netstat -at
-
- Active Internet connections (servers and established)
- Proto Recv-Q Send-Q Local Address Foreign Address State
- tcp 0 0 localhost:mysql *:* LISTEN
- tcp 0 0 *:5901 *:* LISTEN
- tcp 0 0 *:5902 *:* LISTEN
- tcp 0 0 *:x11-1 *:* LISTEN
- tcp 0 0 *:x11-2 *:* LISTEN
- tcp 0 0 *:5938 *:* LISTEN
- tcp 0 0 localhost:5940 *:* LISTEN
- tcp 0 0 ravisaive-OptiPl:domain *:* LISTEN
- tcp 0 0 ravisaive-OptiPl:domain *:* LISTEN
- tcp 0 0 localhost:ipp *:* LISTEN
- tcp 0 0 ravisaive-OptiPle:48270 ec2-23-21-236-70.c:http ESTABLISHED
- tcp 0 0 ravisaive-OptiPle:48272 ec2-23-21-236-70.c:http TIME_WAIT
- tcp 0 0 ravisaive-OptiPle:48421 bom03s01-in-f22.1:https ESTABLISHED
- tcp 0 0 ravisaive-OptiPle:48269 ec2-23-21-236-70.c:http ESTABLISHED
- tcp 0 0 ravisaive-OptiPle:39084 channel-ecmp-06-f:https ESTABLISHED
- ...
显示所有端口的统计信息
- [rumenz@local ~]$ netstat -s
-
- Ip:
- 4994239 total packets received
- 0 forwarded
- 0 incoming packets discarded
- 4165741 incoming packets delivered
- 3248924 requests sent out
- 8 outgoing packets dropped
- Icmp:
- 29460 ICMP messages received
- 566 input ICMP message failed.
- ICMP input histogram:
- destination unreachable: 98
- redirects: 29362
- 2918 ICMP messages sent
- 0 ICMP messages failed
- ICMP output histogram:
- destination unreachable: 2918
- IcmpMsg:
- InType3: 98
- InType5: 29362
- OutType3: 2918
- Tcp:
- 94533 active connections openings
- 23 passive connection openings
- 5870 failed connection attempts
- 7194 connection resets received
- ....
如果你不想将主机、端口和用户名解析为 netstat 的输出。
[rumenz@local ~]$ netstat -an
你可能需要不断获取 netstat 的输出,直到通过中断指令(
ctrl+c
)。
[rumenz@local ~]$ netstat -c
一种网络实用程序,用于获取有关 Internet 服务器的信息。顾名思义,该实用程序通过查询来查找域的名称服务器信息
DNS
.
- [rumenz@local ~]$ nslookup rumenz.com
-
- Server: 192.168.1.1
- Address: 192.168.1.1#53
-
- Non-authoritative answer:
- Name: rumenz.com
- Address: 50.16.67.239
查询邮件交换记录
- [rumenz@local ~]$ nslookup -query=mx rumenz.com
-
- Server: 192.168.1.1
- Address: 192.168.1.1#53
-
- Non-authoritative answer:
- rumenz.com mail exchanger = 0 smtp.secureserver.net.
- rumenz.com mail exchanger = 10 mailstore1.secureserver.net.
-
- Authoritative answers can be found from:
查询名称服务器
- [rumenz@local ~]$ nslookup -type=ns rumenz.com
-
- Server: 192.168.1.1
- Address: 192.168.1.1#53
-
- Non-authoritative answer:
- rumenz.com nameserver = ns3404.com.
- rumenz.com nameserver = ns3403.com.
-
- Authoritative answers can be found from:
查询 DNS 记录
- [rumenz@local ~]$ nslookup -type=any rumenz.com
-
- Server: 192.168.1.1
- Address: 192.168.1.1#53
-
- Non-authoritative answer:
- rumenz.com mail exchanger = 10 mailstore1.secureserver.net.
- rumenz.com mail exchanger = 0 smtp.secureserver.net.
- rumenz.com nameserver = ns06.domaincontrol.com.
- rumenz.com nameserver = ns3404.com.
- rumenz.com nameserver = ns3403.com.
- rumenz.com nameserver = ns05.domaincontrol.com.
-
- Authoritative answers can be found from:
查询权限开始
- [rumenz@local ~]$ nslookup -type=soa rumenz.com
-
- Server: 192.168.1.1
- Address: 192.168.1.1#53
-
- Non-authoritative answer:
- rumenz.com
- origin = ns3403.hostgator.com
- mail addr = dnsadmin.gator1702.hostgator.com
- serial = 2012081102
- refresh = 86400
- retry = 7200
- expire = 3600000
- minimum = 86400
-
- Authoritative answers can be found from:
查询端口号
更改要连接的端口号
- [rumenz@local ~]$ nslookup -port 56 rumenz.com
-
- Server: rumenz.com
- Address: 50.16.76.239#53
-
- Name: 56
- Address: 14.13.253.12
dig
是一个查询工具DNS
nameservers 获取有关主机地址、邮件交换、名称服务器和相关信息的信息。这个工具可以在任何 Linux (Unix
) 或Macintosh OS X
操作系统。最典型的用途dig
是简单地查询单个主机。
- [rumenz@local ~]$ dig rumenz.com
-
- ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> rumenz.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<
关闭注释行
- [rumenz@local ~]$ dig rumenz.com +nocomments
-
- ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> rumenz.com +nocomments
- ;; global options: +cmd
- ;rumenz.com. IN A
- rumenz.com. 14400 IN A 40.216.66.239
- ;; Query time: 418 msec
- ;; SERVER: 192.168.1.1#53(192.168.1.1)
- ;; WHEN: Sat Jun 29 13:53:22 2013
- ;; MSG SIZE rcvd: 45
关闭来源段
- [rumenz@local ~]$ dig rumenz.com +noauthority
-
- ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> rumenz.com +noauthority
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<
关闭附加段
- [rumenz@local ~]$ dig rumenz.com +noadditional
-
- ; <<>> DiG 9.9.2-P1 <<>> rumenz.com +noadditional
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<
关闭统计段
- [rumenz@local ~]$ dig rumenz.com +nostats
-
- ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> rumenz.com +nostats
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<
关闭结果段
- [rumenz@local ~]$ dig rumenz.com +noanswer
-
- ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> rumenz.com +noanswer
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<
一次禁用所有部分
- [rumenz@local ~]$ dig rumenz.com +noall
-
- ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> rumenz.com +noall
- ;; global options: +cmd
uptime命令能够打印系统总共运行了多长时间和系统的平均负载
- [rumenz@local ~]$ uptime
-
- 14:37:10 up 4:21, 2 users, load average: 0.00, 0.00, 0.04
管理员最重要的命令之一,
wall
向使用他们登录的每个人发送消息mesg
权限设置为yes
。该消息可以作为参数给出wall
,也可以发送到 wall 的标准输入。
- [rumenz@local ~]$ wall "we will be going down for maintenance for one hour sharply at 03:30 pm"
-
- Broadcast message from root@localhost.localdomain (pts/0) (Sat Jun 29 14:44:02 2013):
-
- we will be going down for maintenance for one hour sharply at 03:30 pm
让你控制人们是否可以使用
write
命令,通过屏幕向你发送文本。
- mesg [n|y]
- n - prevents the message from others popping up on the screen.
- y – Allows messages to appear on your screen.
让你直接将文本发送到另一台 Linux 机器的屏幕,如果
mesg
是y
。
[rumenz@local ~]$ write ravisaive
对
write
命令,talk
命令可让你与登录用户交谈。
[rumenz@local ~]$ talk ravisaive
Note
: 如果talk
命令未安装,你可以随时apt
或yum
所需的包。
- [rumenz@local ~]$ yum install talk
- OR
- [rumenz@local ~]$ apt-get install talk
什么命令
w
看起来你很有趣吗?但实际上并非如此。这是一个命令,即使它只有一个字母长!命令w
的组合uptime
和who
命令一个接一个地发出,按照这个顺序。
- [rumenz@local ~]$ w
-
- 15:05:42 up 4:49, 3 users, load average: 0.02, 0.01, 0.00
- USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
- server tty7 :0 14:06 4:43m 1:42 0.08s pam: gdm-passwo
- server pts/0 :0.0 14:18 0.00s 0.23s 1.65s gnome-terminal
- server pts/1 :0.0 14:47 4:43 0.01s 0.01s bash
顾名思义,此命令重命名文件。rename 将通过替换文件名中的第一个匹配项来重命名指定的文件。
Give the file names a1, a2, a3, a4.....1213
只需键入命令。
- rename a1 a0 a?
- rename a1 a0 a??
显示进程
CPU
.默认情况下,此命令会自动刷新并继续显示CPU
除非给出中断指令,否则处理。
- [rumenz@local ~]$ top
-
- top - 14:06:45 up 10 days, 20:57, 2 users, load average: 0.10, 0.16, 0.21
- Tasks: 240 total, 1 running, 235 sleeping, 0 stopped, 4 zombie
- %Cpu(s): 2.0 us, 0.5 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- KiB Mem: 2028240 total, 1777848 used, 250392 free, 81804 buffers
- KiB Swap: 3905532 total, 156748 used, 3748784 free, 381456 cached
-
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 23768 ravisaiv 20 0 1428m 571m 41m S 2.3 28.9 14:27.52 firefox
- 24182 ravisaiv 20 0 511m 132m 25m S 1.7 6.7 2:45.94 plugin-containe
- 26929 ravisaiv 20 0 5344 1432 972 R 0.7 0.1 0:00.07 top
- 24875 ravisaiv 20 0 263m 14m 10m S 0.3 0.7 0:02.76 lxterminal
- 1 root 20 0 3896 1928 1228 S 0.0 0.1 0:01.62 init
- 2 root 20 0 0 0 0 S 0.0 0.0 0:00.06 kthreadd
- 3 root 20 0 0 0 0 S 0.0 0.0 0:17.28 ksoftirqd/0
- 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
- 7 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/u:0H
- 8 root rt 0 0 0 0 S 0.0 0.0 0:00.12 migration/0
- 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
- 10 root 20 0 0 0 0 S 0.0 0.0 0:26.94 rcu_sched
- 11 root rt 0 0 0 0 S 0.0 0.0 0:01.95 watchdog/0
- 12 root rt 0 0 0 0 S 0.0 0.0 0:02.00 watchdog/1
- 13 root 20 0 0 0 0 S 0.0 0.0 0:17.80 ksoftirqd/1
- 14 root rt 0 0 0 0 S 0.0 0.0 0:00.12 migration/1
- 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
- 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
- 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
- 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
- 20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
- 21 root 20 0 0 0 0 S 0.0 0.0 0:00.04 bdi-default
- 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
- 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
- 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
此命令创建一个新的
ext4
指定设备上的文件系统,如果在此命令后跟随错误的设备,整个块将被擦除和格式化,因此建议不要运行此命令,除非并且直到你明白你在做什么。
- Mkfs.ext4 /dev/sda1 (sda1 block will be formatted)
- mkfs.ext4 /dev/sdb1 (sdb1 block will be formatted)
vi
,emacs
,nano
是 Linux 中一些最常用的编辑器。它们通常用于编辑文本、配置、文件。
vi 编辑器
- [rumenz@local ~]$ touch a.txt (creates a text file a.txt)
- [rumenz@local ~]$ vi a.txt (open a.txt with vi editor)
[按i
进入插入模式,否则你将无法输入任何内容]
echo "Hello" (your text here for the file)
alt+x
(退出插入模式,记得在最后一个字母之间保留一些空格。
ctrl+x
命令或你的最后一句话将被删除)。
:wq!
(保存文件,用当前文本,记住!
是覆盖)。
nano编辑器
[rumenz@local ~]$ nano a.txt (open a.txt file to be edited with nano)
edit, with the content, required
ctrl +x(关闭编辑器)。它将显示输出为:
- Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
- Y Yes
- N No ^C Cancel
点击
y
到 yes 并输入文件名,你就完成了。
Rsync
复制文件并有一个-P
切换进度条。所以如果你安装了 rsync,你可以使用一个简单的别名。
alias cp='rsync -aP'
现在尝试在终端中复制一个大文件并查看包含剩余项目的输出,类似于进度条。
此外,保持和维护备份是系统管理员需要执行的最重要和最无聊的工作之一。Rsync 是一个非常好的工具(存在,还有其他几个)用于在终端中创建和维护备份。
- [rumenz@local ~]$ rsync -zvr IMG_5267\ copy\=33\ copy\=ok.jpg ~/Desktop/
-
- sending incremental file list
- IMG_5267 copy=33 copy=ok.jpg
-
- sent 2883830 bytes received 31 bytes 5767722.00 bytes/sec
- total size is 2882771 speedup is 1.00
Note
:-z
用于压缩,-v 用于详细,-r 用于递归。
跟踪内存和资源与管理员执行的任何其他任务一样重要,并且
free
命令来拯救这里。
内存使用现状
- [rumenz@local ~]$ free
-
- total used free shared buffers cached
- Mem: 2028240 1788272 239968 0 69468 363716
- -/+ buffers/cache: 1355088 673152
- Swap: 3905532 157076 3748456
> 以 KB、MB 或 GB 为单位的调谐输出
- [rumenz@local ~]$ free -b
-
- total used free shared buffers cached
- Mem: 2076917760 1838272512 238645248 0 71348224 372670464
- -/+ buffers/cache: 1394253824 682663936
- Swap: 3999264768 160845824 3838418944
- [rumenz@local ~]$ free -k
-
- total used free shared buffers cached
- Mem: 2028240 1801484 226756 0 69948 363704
- -/+ buffers/cache: 1367832 660408
- Swap: 3905532 157076 3748456
- [rumenz@local ~]$ free -m
-
- total used free shared buffers cached
- Mem: 1980 1762 218 0 68 355
- -/+ buffers/cache: 1338 641
- Swap: 3813 153 3660
- [rumenz@local ~]$ free -g
-
- total used free shared buffers cached
- Mem: 1 1 0 0 0 0
- -/+ buffers/cache: 1 0
- Swap: 3 0 3
人类可读格式展示
- [rumenz@local ~]$ free -h
-
- total used free shared buffers cached
- Mem: 1.9G 1.7G 208M 0B 68M 355M
- -/+ buffers/cache: 1.3G 632M
- Swap: 3.7G 153M 3.6G
定期检查输出
- [rumenz@local ~]$ free -s 3
-
- total used free shared buffers cached
- Mem: 2028240 1824096 204144 0 70708 364180
- -/+ buffers/cache: 1389208 639032
- Swap: 3905532 157076 3748456
-
- total used free shared buffers cached
- Mem: 2028240 1824192 204048 0 70716 364212
- -/+ buffers/cache: 1389264 638976
- Swap: 3905532 157076 3748456
你应该已经从该命令的名称中了解了该命令的实际含义。
mysqldump
命令将所有或特定的数据库数据转储(备份)到给定的文件中。例如,
[rumenz@local ~]$ mysqldump -u root -p --all-databases > /home/server/Desktop/backupfile.sql
Note
:mysqldump
需要运行 mysql 并正确密码进行授权。我们已经介绍了一些有用的mysqldump
使用 mysqldump命令进行数据库备份的命令
制作指定长度的难以猜测的随机密码。
- [rumenz@local ~]$ mkpasswd -l 10
-
- zI4+Ybqfx9
- [rumenz@local ~]$ mkpasswd -l 20
-
- w0Pr7aqKk&hmbmqdrlmk
Note
:-l 10
生成一个随机密码10
字符而-l 20
生成字符密码20
,它可以设置为任何以获得所需的结果。此命令非常有用,通常以脚本语言实现以生成随机密码。你可能需要yum
或apt
expect' 包来使用这个命令。
- [root@rumenz ~]# yum install expect
- OR
- [root@rumenz ~]# apt-get install expect
使用行合并两个或多个文本文件
- [rumenz@local ~] cat rumenz1.txt #rumenz1.txt文件的内容
- 1
- 2
- 3
- [rumenz@local ~] cat rumenz2.txt #rumenz2.txt 文件的内容
- 4
- [rumenz@local ~] cat rumenz3.txt #rumenz3.txt文件的内容
- 5
- 6
- [rumenz@local ~] paste rumenz1.txt rumenz2.txt rumenz3.txt
- 1
- 2
- 3
- 4
- 5
- 6
lsof
代表list open files
并显示你的系统当前打开的所有文件。找出哪些进程使用某个文件或显示单个进程的所有文件非常有用。
- [rumenz@local ~]$ lsof
-
- COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- init 1 root cwd DIR 8,1 4096 2 /
- init 1 root rtd DIR 8,1 4096 2 /
- init 1 root txt REG 8,1 227432 395571 /sbin/init
- ...
相关文章
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。