对linux高级用户有用的20个命令
1.命令:ifconfig
ifconfig命令用于配置网络接口信息。如配置网络接口的ip地址,默认网关地址等,以便机器能够联通互联网。
显示当前网络接口信息
viidiot@ubuntu:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:b3🇩🇪1c
inet addr:192.168.1.141 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb3:de1c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8673 errors:0 dropped:0 overruns:0 frame:0
TX packets:6397 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10167651 (10.1 MB) TX bytes:417860 (417.8 KB)
Interrupt:19 Base address:0×2024
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:66 errors:0 dropped:0 overruns:0 frame:0
TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10954 (10.9 KB) TX bytes:10954 (10.9 KB)
关闭名为eth0 网络接口
viidiot@ubuntu:~$ sudo ifconfig eth0 down
开启名为eth0 网络接口
viidiot@ubuntu:~$ sudo ifconfig eth0 up
设置网络接口的ip地址
viidiot@ubuntu:~$ sudo ifconfig eth0 192.169.1.113
设置网络接口的ip地址,掩码,广播地址
viidiot@ubuntu:~$ sudo ifconfig eth0 192.169.1.113 netmask 255.255.255.0 broadcast 192.168.1.255
设置好ip地址和掩码之后,我们可以通过平命令来检测一下网络的联通性
viidiot@ubuntu:~$ ping www.baidu.com
connect: Network is unreachable
可以发现还是无法联通网络,这是因为我们还没有为网络配置路由。
【附】使用route命令设置默认网关
在使用ifconfig设置了网络接口ip地址,掩码后,可以利用route命令设置默认网关地址,即为其我们的网络添加了一条默认路由规则。
viidiot@ubuntu:~$ sudo route add default gw 192.168.1.1
然后再用ping命令来测试网络的联通性
viidiot@ubuntu:~$ ping www.baidu.com
PING www.a.shifen.com (115.239.210.27) 56(84) bytes of data.
64 bytes from 115.239.210.27: icmp_req=1 ttl=128 time=44.1 ms
64 bytes from 115.239.210.27: icmp_req=2 ttl=128 time=52.8 ms
64 bytes from 115.239.210.27: icmp_req=3 ttl=128 time=42.8 ms
64 bytes from 115.239.210.27: icmp_req=4 ttl=128 time=49.0 ms
64 bytes from 115.239.210.27: icmp_req=5 ttl=128 time=42.5 ms
64 bytes from 115.239.210.27: icmp_req=6 ttl=128 time=47.1 ms
现在可以联通网络了,good,呵呵。
2.命令:netstat
Netstat命令可用于查看系统各种与网络相关的信息,如网络连接状态,系统路由表,网络接口统计信息等等。
列出所有网络端口信息
viidiot@ubuntu:~$netstat -a
列出所有tcp连接信息
viidiot@ubuntu:~$netstat -at
显示所有端口的数据包统计信息
viidiot@ubuntu:~$netstat -s
如需要查看端口网络动态信息,只需使用命令的-c参数即可
viidiot@ubuntu:~$netstat -c
3.命令:nslookup
Nslookup用于查看网络主机的相信信息,如ip地址,服务端口等信息。
viidiot@ubuntu:~$ nslookup www.baidu.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 115.239.210.27
Name: www.a.shifen.com
Address: 115.239.210.26
4.命令:dig
Dig命令用于向dns域名解析服务器一些譬如主机地址相关信息。这个命令,我至今没用过,尴尬。命令使用方法如下,可以发现dig能够获得很详细的主机相关信息。
viidiot@ubuntu:~$ dig www.baidu.com
; <<>> DiG 9.7.1-P2 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10771
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 5 IN CNAME www.a.shifen.com.
www.a.shifen.com. 5 IN A 115.239.210.27
www.a.shifen.com. 5 IN A 115.239.210.26
;; AUTHORITY SECTION:
a.shifen.com. 5 IN NS ns2.a.shifen.com.
a.shifen.com. 5 IN NS ns3.a.shifen.com.
a.shifen.com. 5 IN NS ns4.a.shifen.com.
a.shifen.com. 5 IN NS ns1.a.shifen.com.
;; ADDITIONAL SECTION:
ns1.a.shifen.com. 5 IN A 61.135.165.224
ns2.a.shifen.com. 5 IN A 180.149.133.241
ns3.a.shifen.com. 5 IN A 61.135.162.215
ns4.a.shifen.com. 5 IN A 115.239.210.176
;; Query time: 222 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Sep 30 15:11:36 2013
;; MSG SIZE rcvd: 226
5.命令:uptime
Uptime命令能够提供系统的启动时间,当前负载情况,系统当前用户数。
viidiot@ubuntu:~$ uptime
15:15:07 up 8:46, 2 users, load average: 0.36, 0.44, 0.44
6.命令:wall
Wall命令对系统管理员来说很常用,它能够给登录到系统的用户发送信息(需要用户的mesg permission设置成yes,该用户才会收到信息)。比如系统需要重启,管理员得通知当前登录的用户,做好准备,我要重启系统了,你们该干嘛干嘛,总之得有心理准备,过会就重启了哦。。。
[avishek@tecmint ~]$ 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
7.命令:msg
通过Msg命令你能决定是否允许其他用户通过write命令给你发送消息。
8.命令:write
通过write命令可以直接给另一太linux机器发送文本消息。
9.命令:talk
Write命令的加强版。
10.命令:w
W命令很酷吧,只有一个字符。它是uptime命令和who命令的混血儿。允许效果如下,看到没,相当于运行了一个uptime命令,接着再运行一个who命令。
viidiot@ubuntu:~$ w
15:32:34 up 9:03, 2 users, load average: 0.27, 0.36, 0.36
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
viidiot tty7 :0 23Sep13 7days 10:45 1.17s gnome-session
viidiot pts/0 :0.0 14:21 1.00s 1.93s 0.21s w
11.命令:rename
给文件快捷重命名。
12.命令:top
显示CPU进程信息。
viidiot@ubuntu:~$ top
top - 15:36:39 up 9:07, 2 users, load average: 1.04, 0.56, 0.42
Tasks: 137 total, 2 running, 135 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.9%us, 9.6%sy, 0.0%ni, 82.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1025232k total, 772468k used, 252764k free, 150000k buffers
Swap: 916476k total, 0k used, 916476k free, 415288k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1674 root 20 0 163m 21m 7956 R 13.6 2.2 10:53.65 Xorg
6900 viidiot 20 0 94076 13m 10m S 4.3 1.4 0:28.08 gnome-terminal
7593 viidiot 20 0 2624 1124 840 R 0.7 0.1 0:00.16 top
1551 root 20 0 26336 4124 3376 S 0.3 0.4 1:16.39 vmtoolsd
1967 viidiot 20 0 96212 22m 17m S 0.3 2.2 2:02.38 vmtoolsd
13. 命令: mkfs.ext4
这个命令在指定的设备上创建一个新的ext4文件系统,如果这个命令后面跟的是个错误的设备,那么整个设备就会被擦除和格式化,所以建议不要运行这个命令,除非你清楚自己正在干什么。
14. vi/emac/nano 命令
vi (visual), emac, nano 是 linux 中最常用的一些编辑器。它们经常用于编辑文本,不过我喜欢vim,是vi的加强版。
15. 命令: rsync
Rsync复制文件,参数-P开启进度条。从而可以看到文件的复制进度。很酷吧,不止windows可以,linux在命令行就能做到。
16. 命令: free
Free命令显示当前系统的资源使用情况,如内存,交换器等的使用情况。
viidiot@ubuntu:~$ free
total used free shared buffers cached
Mem: 1025232 772840 252392 0 150016 415292
-/+ buffers/cache: 207532 817700
Swap: 916476 0 916476
17. mysqldump 命令
数据库备份用。从名字上就能明白这个命令所代表的作用。mysqldump 命令会转储(备份)数据库的全部或特定一部分数据到一个给定的文件中。例如:
[avishek@tecmint ~]$ mysqldump -u root -p –all-databases > /home/server/Desktop/backupfile.sql
18. mkpasswd 命令
根据指定的长度,产生一个无比牛逼的随机密码,呵呵。
[avishek@tecmint ~]$ mkpasswd -l 20
w0Pr7aqKk&hmbmqdrlmk
19. Command: paste
合并两个或多个文本文件,按行来进行合并。示例。如果 file1 的内容是:
1
2
3
file2 的内容是:
a
b
c
d
则合并结果为:
1 a
2 b
3 c
d
20.命令: lsof
lsof 是”list open files(“列表中打开的文件”) 的缩写,显示系统当前已打开的所有文件。对于想找出哪些进程使用某一特定文件非常有用,或显示为单个进程打开所有文件。一些有用的 10 个lsof 命令示例,你可能会感兴趣。
21. find命令
rumenz@local:~# find -name *.sh ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh
rumenz@local:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH) ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh rumenz@local:~# find -name *.tar.gz /var/www/modules/update/tests/aaa_update_test.tar.gz ./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz ./home/server/Downloads/drupal-7.22.tar.gz ./home/server/Downloads/smtp-7.x-1.0.tar.gz ./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz ./usr/share/gettext/archive.git.tar.gz ./usr/share/doc/apg/php.tar.gz ./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz ./usr/share/doc/argyll/examples/spyder2.tar.gz ./usr/share/usb_modeswitch/configPack.tar.gz
22. grep命令
rumenz@local:~# grep rumenz /etc/passwd rumenz:x:1000:1000:rumenz,,,:/home/rumenz:/bin/bash
rumenz@local:~# grep -i rumenz /etc/passwd rumenz:x:1000:1000:rumenz,,,:/home/rumenz:/bin/bash
rumenz@local:~# grep -r "127.0.0.1" /etc/ /etc/vlc/lua/http/.hosts:127.0.0.1 /etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1" /etc/mysql/my.cnf:bind-address = 127.0.0.1 /etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1 /etc/security/access.conf:#+ : root : 127.0.0.1 /etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1; /etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1; /etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1 /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1 /etc/hosts:127.0.0.1 localhost
-w
单词 (egrep -wword1
|word2
/path/to/file)。-c
for count(即模式匹配的总次数)(grep -cword
/path/to/file)。–color
对于彩色输出(grep–color
服务器 /etc/passwd)。
23. man命令
man
是系统的手册页。Man 提供了有关命令及其用法的所有可能选项的在线文档。几乎所有的命令都带有相应的手册页。例如,
rumenz@local:~# man man MAN(1) Manual pager utils MAN(1) NAME man - an interface to the on-line reference manuals SYNOPSIS man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ... man -k [apropos options] regexp ... man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ... man -f [whatis options] page ... man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ... man -w|-W [-C file] [-d] [-D] page ... man -c [-C file] [-d] [-D] page ... man [-hV]
手册页本身的手册页,类似地man cat
([cat 命令的]手册页和man ls
([命令 ls 的]手册页)。
24. ps命令
rumenz@local:~# ps PID TTY TIME CMD 4170 pts/1 00:00:00 bash 9628 pts/1 00:00:00 ps
rumenz@local:~# ps -A PID TTY TIME CMD 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:01 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:00 kworker/u:0H 8 ? 00:00:00 migration/0 9 ? 00:00:00 rcu_bh ....
25. kill命令
rumenz@local:~# ps -A | grep -i apache2 1285 ? 00:00:00 apache2
rumenz@local:~# kill 1285 (to kill the process apache2)
rumenz@local:~# pkill apache2