在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令。
对 Linux 新手非常有用的 20 个命令
第二篇文章中我们讨论了中级用户管理自己的系统所需要的命令。
对中级 Linux 用户非常有用的 20 个命令
接下来呢?在这篇文章中我将解释管理Linux 服务器所需的一些命令。
ifconfig用来配置常驻内核的网络接口信息。在系统启动必要时用来设置网络适配器的信息。之后,它通常是只需要在调试时或当系统需要调整时使用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[avishek@tecmint ~]$
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”参数用来显示所有网络适配器(网卡)的详细信息,包括那些停用的适配器。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
[avishek@tecmint ~]$
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)
|
1
|
[avishek@tecmint ~]$
ifconfig
eth0 down
|
1
|
[avishek@tecmint ~]$
ifconfig
eth0 up
|
为网络适配器eth0设定IP地址“192.168.1.12”.
1
|
[avishek@tecmint ~]$
ifconfig
eth0 192.168.1.12
|
1
|
[avishek@tecmint ~]$
ifconfig
eth0 netmask 255.255.255.
|
1
|
[avishek@tecmint ~]$
ifconfig
eth0 broadcast 192.168.1.255
|
1
|
[avishek@tecmint ~]$
ifconfig
eth0 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
|
注Note:如果你设置一块无线网卡的信息,你可以使用的命令是“iwconfig”.欲知更多ifconfig命令的例子和使用方法,读“15个有用的ifconfig 命令”.
netstat命令显示各种网络相关的信息,如网络连接,路由表,接口统计,伪装连接,组播成员身份等….
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[avishek@tecmint ~]$
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
....
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[avishek@tecmint ~]$
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
...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[avishek@tecmint ~]$
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 输出的主机、端口和用户名称的话 。
1
|
[avishek@tecmint ~]$
netstat
-an
|
好,你可能需要获取的 netstat 持续输出的动态信息,通过传递中断输出指令 (ctrl + c)来停止。
1
|
[avishek@tecmint ~]$
netstat
-c
|
网络实用程序,用于获得互联网服务器的信息。顾名思义,该实用程序将发现通过查询 DNS 域的名称服务器信息。
1
2
3
4
5
6
7
8
|
[avishek@tecmint ~]$
nslookup
tecmint.com
Server: 192.168.1.1
Address: 192.168.1.1
#53
Non-authoritative answer:
Name: tecmint.com
Address: 50.16.67.239
|
1
2
3
4
5
6
7
8
9
10
|
[avishek@tecmint ~]$
nslookup
-query=mx tecmint.com
Server: 192.168.1.1
Address: 192.168.1.1
#53
Non-authoritative answer:
tecmint.com mail exchanger = 0 smtp.secureserver.net.
tecmint.com mail exchanger = 10 mailstore1.secureserver.net.
Authoritative answers can be found from:
|
1
2
3
4
5
6
7
8
9
10
|
[avishek@tecmint ~]$
nslookup
-
type
=ns tecmint.com
Server: 192.168.1.1
Address: 192.168.1.1
#53
Non-authoritative answer:
tecmint.com nameserver = ns3404.com.
tecmint.com nameserver = ns3403.com.
Authoritative answers can be found from:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[avishek@tecmint ~]$
nslookup
-
type
=any tecmint.com
Server: 192.168.1.1
Address: 192.168.1.1
#53
Non-authoritative answer:
tecmint.com mail exchanger = 10 mailstore1.secureserver.net.
tecmint.com mail exchanger = 0 smtp.secureserver.net.
tecmint.com nameserver = ns06.domaincontrol.com.
tecmint.com nameserver = ns3404.com.
tecmint.com nameserver = ns3403.com.
tecmint.com nameserver = ns05.domaincontrol.com.
Authoritative answers can be found from:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[avishek@tecmint ~]$
nslookup
-
type
=soa tecmint.com
Server: 192.168.1.1
Address: 192.168.1.1
#53
Non-authoritative answer:
tecmint.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:
|
更改使用你想要连接的端口号
1
2
3
4
5
6
7
|
[avishek@tecmint ~]$
nslookup
-port 56 tecmint.com
Server: tecmint.com
Address: 50.16.76.239
#53
Name: 56
Address: 14.13.253.12
|
dig是查询DNS 域名服务器的工具,可以查询的主机地址、 邮件交流、 域名服务器相关的信息。在任何 Linux (Unix) 或 Macintosh OS X 操作系统上,都可以使用该工具。dig的最典型的用法是单个主机的查询。
1
2
3
4
5
6
|
[avishek@tecmint ~]$
dig
tecmint.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> tecmint.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
|
1
2
3
4
5
6
7
8
9
10
|
[avishek@tecmint ~]$
dig
tecmint.com +nocomments
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> tecmint.com +nocomments
;; global options: +cmd
;tecmint.com. IN A
tecmint.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
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
dig
tecmint.com +noauthority
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> tecmint.com +noauthority
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
dig
tecmint.com +noadditional
; <<>> DiG 9.9.2-P1 <<>> tecmint.com +noadditional
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
dig
tecmint.com +nostats
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> tecmint.com +nostats
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
dig
tecmint.com +noanswer
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> tecmint.com +noanswer
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
|
1
2
3
4
|
[avishek@tecmint ~]$
dig
tecmint.com +noall
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> tecmint.com +noall
;; global options: +cmd
|
你连接到你的Linux 服务器时发现一些不寻常或恶意的东西,你会做什么?猜测……不,绝不!你可以运行uptime来验证当服务器无人值守式到底发生了什么事情。
1
2
3
|
[avishek@tecmint ~]$ uptime
14:37:10 up 4:21, 2
users
, load average: 0.00, 0.00, 0.04
|
对系统管理员来说一个最重要的命令.wall发送一条消息到大家登录端将其mesg权限设置为”yes”。这条信息可以被wall作为参数,或者可以将它作为wall的标准输入。
1
2
3
4
5
|
[avishek@tecmint ~]$ wall
"we will be going down for maintenance for one hour sharply at 03:30 pm"
we will be going down
for
maintenance
for
one hour sharply at 03:30 pm
|
其他人们可以使用”wtrite”命令,将在在向您发送文本到屏幕上。你可以控制是否显示。
1
|
mesg [n<
/strong
>|y<
/strong
>] n<
/strong
> - prevents the message from others popping up on the
screen
. y<
/strong
> – Allows messages to appear on your
screen
.
|
如果 ‘mesg’ 是 ‘y’,让你的文本直接发送到另一台 Linux 机器的屏幕。.
1
|
[avishek@tecmint ~]$ write ravisaive
|
增强的write命令,talk命令可让你与其他登录的用户交谈。
1
|
[avishek@tecmint ~]$ talk ravisaive
|
1
2
3
|
[avishek@tecmint ~]$ yum
install
talk
OR
[avishek@tecmint ~]$ apt-get
install
talk
|
是否觉得命令’w'很滑稽?但是事实上不是的。它是一个命令,尽管只有一个字符长!命令”w“是uptime和who命令,以前后的顺序组合在一起。
1
2
3
4
5
6
7
|
[avishek@tecmint ~]$ 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将会通过从文件名的首字符开始替换,重命名为指定的文件名。
1
|
Give the
file
names a1, a2, a3, a4.....1213
|
仅仅写这些命令:[@Lesus 注: 在Ubuntu上不支持这种格式, rename与mv不同的是,rename可以批量修改,如同带了while的mv操作。]
1
2
|
rename a1 a0 a
rename a1 a0 a
|
显示CPU进程信息。这个命令自动刷新,默认是持续显示CPU进程信息,除非使用了中断指令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
[avishek@tecmint ~]$
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
|
另查看12 TOP命令例子·[@Lesus 注:htop比top命令更好用,不过需要自己安装
这个命令在指定的设备上创建一个新的ext4文件系统,如果这个命令后面跟的是个错误的设备,那么整个设备就会被擦除和格式化,所以建议不要运行这个命令,除非你清楚自己正在干什么。
1
2
|
Mkfs.ext4
/dev/sda1
(sda1 block will be formatted)
mkfs.ext4
/dev/sdb1
(sdb1 block will be formatted)
|
vi(visual),emac,nano是 linux 中最常用的一些编辑器。它们经常用于编辑文本,配置,… 等文件. A quick guide to work around vi and nano is, emac is a.
1
2
|
[avishek@tecmint ~]$
touch
a.txt (创建一个名为a.txt的文本文件)
[avishek@tecmint ~]$
vi
a.txt (用
vi
打开a.txt)
|
[按下‘i’键进入插入模式, 否则你不能输入任何内容]
1
|
echo
"Hello"
(这里的文本会存到文件中)
|
1
|
[avishek@tecmint ~]$ nano a.txt (用nano打开 a.txt)
|
1
|
edit, with the content, required
|
ctrl +x (关闭编辑器).它会显示如下的提示输出信息:
1
2
3
|
Save modified buffer (ANSWERING
"No"
WILL DESTROY CHANGES)
Y Yes
N No ^C Cancel
|
点击‘y’ 选择 yes 并输入文件名,就完成编辑了.
Rsync复制文件,参数-P开启进度条。如果你已经安装了rsync,你可以使用一个简单的别名。
1
|
alias
cp
=
'rsync -aP'
|
现在尝试在终端复制一个大文件,这样将会看到显示剩余部分的输出,与进度条类似。
而且,保持和维护备份是系统管理员不得不做的最重要、最无聊的工作之一。Rsync是一个用于新建和维护备份的非常好用的终端工具(也存在许多其它工具)。
1
2
3
4
5
6
7
|
[avishek@tecmint ~]$
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
|
注意:-z表示压缩, -v表示详细信息,-r表示递归。
跟踪内存的使用和资源一样重要,就像管理员执行的任何其它任务,可以使用 'free' 命令来在这里救援.
1
2
3
4
5
6
|
[avishek@tecmint ~]$
free
total used
free
shared buffers cached
Mem: 2028240 1788272 239968 0 69468 363716
-/+ buffers
/cache
: 1355088 673152
Swap: 3905532 157076 3748456
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
free
-b
total used
free
shared buffers cached
Mem: 2076917760 1838272512 238645248 0 71348224 372670464
-/+ buffers
/cache
: 1394253824 682663936
Swap: 3999264768 160845824 3838418944
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
free
-k
total used
free
shared buffers cached
Mem: 2028240 1801484 226756 0 69948 363704
-/+ buffers
/cache
: 1367832 660408
Swap: 3905532 157076 3748456
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
free
-m
total used
free
shared buffers cached
Mem: 1980 1762 218 0 68 355
-/+ buffers
/cache
: 1338 641
Swap: 3813 153 3660
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
free
-g
total used
free
shared buffers cached
Mem: 1 1 0 0 0 0
-/+ buffers
/cache
: 1 0
Swap: 3 0 3
|
1
2
3
4
5
6
|
[avishek@tecmint ~]$
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
|
1
2
3
4
5
6
7
8
9
10
11
|
[avishek@tecmint ~]$
free
-s 3
total used
free
shared buffers cached
Mem: 2028240 1824096 204144 0 70708 364180
|