10个常⽤的Linux命令
10个 Linux 命令,让你的操作更有效率
今天帮⼤家收集了10个Linux的命令,希望⼩伙伴们能够本⽂中更深刻地理解 Linux 的相关特性:
1. pgrep
pgrep名字前有个p,我们可以猜到这和进程相关,⼜是grep,当然这是进程相关的grep命令。不过,这个命令主要是⽤来列举进程ID的。如:
[root@shiyan opt]# pgrep -u postfix
1071
1072
这个命令相当于:
[root@shiyan opt]# ps -ef |egrep '^postfix '|awk '{print $2}'
1071
1072
2.pstree
这个命令可以以树形的⽅式列出进程。如下所⽰:
[root@shiyan opt]# pstree
init-+-acpid
|-auditd-+-python
|`-{auditd}
|-automount---4*[{automount}]
|-backup.sh---sleep
|-dbus-daemon
|-events/0
|-events/1
|-hald---hald-runner---hald-addon-acpi
|-httpd---10*[httpd]
|-irqbalance
|-khelper
|-klogd
|-ksoftirqd/0
|-ksoftirqd/1
|-kthread-+-aio/0
||-aio/1
||-ata/0
||-ata/1
||-ata_aux
||-cqueue/0
||-cqueue/1
||-kacpid
||-kauditd
||-kblockd/0
||-kblockd/1
||-kedac
||-khubd
||-6*[kjournald]
||-kmirrord
||-kpsmoused
||-kseriod
||-kswapd0
||-2*[pdflush]
||-scsi_eh_0
||-scsi_eh_1
||-xenbus
| `-xenwatch
|-migration/0
|-migration/1
|-6*[mingetty]
|-3*[multilog]
|-mysqld_safe---mysqld---9*[{mysqld}]
|-smartd
|-sshd---sshd---sshd---bash---pstree
|-svscanboot---svscan-+-3*[supervise---run]
||-supervise---qmail-send-+-qmail-clean
|||-qmail-lspawn
||`-qmail-rspawn
| `-2*[supervise---tcpserver]
|-syslogd
|-udevd
|-watchdog/0
|-watchdog/1
-xinetd
3.bc
这个命令主要是做⼀个精度⽐较⾼的数学运算的。⽐如开平⽅根等。下⾯是⼀个我们利⽤bc命令写的⼀个脚本(⽂件名:sqrt)
#!/bin/bash
if[ $# -ne 1 ]
then
echo'Usage: sqrt number'
exit 1else
echo -e "sqrt($1)\nquit\n"|bc -q -i
fi
于是,我们可以这样使⽤这个脚本进⾏平⽅根运算:
[root@shiyan opt]# ./sqrt 36
6
[root@shiyan opt]# ./sqrt 2.0000
1.4142
[root@shiyan opt]# ./sqrt 10.0000
3.1622
4.split
如果你有⼀个很⼤的⽂件,你想把其分割成⼀些⼩的⽂件,那么这个命令就是⼲这件事的了。
[root@shiyan opt]# ls -lh apache-tomcat-7.0.
-rw-r--r-- 1 root root 8.6M Jan 14 17:04 apache-tomcat-7.0.
[root@shiyan opt]# ls -lh LF*
-rw-r--r-- 1 root root 2.0M Jan 20 22:30 LF_aa
-rw-r--r-- 1 root root 2.0M Jan 20 22:30 LF_ab
-rw-r--r-- 1 root root 2.0M Jan 20 22:30 LF_ac
-rw-r--r-- 1 root root 2.0M Jan 20 22:30 LF_ad
-rw-r--r-- 1 root root 538K Jan 20 22:30 LF_ae
⽂件合并只需要使⽤简单的合并就⾏了,如:
[root@shiyan opt]# cat LF_* >
5.nl
nl命令其它和cat命令很像,只不过它会打上⾏号。如下所⽰:
[root@shiyan opt]# nl /etc/passwd |head -10
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
mkfifo
熟悉Unix的⼈都应该知道这个是⼀个创建有名管道的系统调⽤或命令。
平时,我们在命令⾏上使⽤竖线“|”把命令串起来是使⽤⽆命管道。
⽽我们使⽤mkfifo则使⽤的是有名管道。下⾯是⽰例:
下⾯是创建⼀个有名管道:
[root@shiyan opt]# mkfifo /tmp/hchenpipe
[root@shiyan opt]# ls -l /tmp
total 0
prw-r--r-- 1 root root 0 Jan 20 22:39 hchenpipe
然后,我们在⼀个shell中运⾏如下命令,这个命令不会返回,除⾮有⼈从这个有名管道中把信息读⾛。[root@shiyan opt]# ls -al > /tmp/hchenpipe
我们在另⼀个命令窗⼝中读取这个管道中的信息:(其会导致上⼀个命令返回)
[root@shiyan ~]# head /tmp/hchenpipe
total 8732
drwxr-xr-x. 2 root root 41 Jan 20 22:34 .
dr-xr-xr-x. 18 root root 258 Jan 20 22:27 ..
-rw-r--r-- 1 root root 8938514 Jan 14 17:04 apache-tomcat-7.0.
7. ldd
这个命令可以知道你的⼀个可执⾏⽂件所使⽤了动态链接库。如:
[root@shiyan ~]# ldd /usr/bin/java
linux-gate.so.1 =>(0x00cd9000)
libgij.so.7rh => /usr/lib/libgij.so.7rh (0x00ed3000)
libgcj.so.7rh => /usr/lib/libgcj.so.7rh (0x00ed6000)
libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00110000)
librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x009c8000)
libdl.so.2 => /lib/libdl.so.2 (0x008b5000)
libz.so.1 => /usr/lib/libz.so.1 (0x00bee000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa7000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x0022f000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x00127000)
/lib/ld-linux.so.2 (0x00214000)
8. col
这个命令可以让你把man⽂件转成纯⽂本⽂件。如下⽰例:
# PAGER=cat# man less | col -b >
9. xmlwf
这个命令可以让你检查⼀下⼀个XML⽂档是否是所有的tag都是正常的。如:
[root@shiyan ~]# curl 'coolshell/?feed=rss2' > l
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 64882 0 64882 0 0 86455 0 --:--:-- --:--:-- --:--:-- 2073k
[root@shiyan ~]# l
[root@shiyan ~]# perl -i -pe 's@<link>@<br>@g' l
[root@shiyan ~]# l:13:23: mismatched tag
10. lsof
可以列出打开了的⽂件:
[root@shiyan ~]# lsof | grep TCPhttpd 548 apache 4u IPv6 14300967 TCP *:http (LISTEN)
httpd 548 apache 6u IPv6 14300972 TCP *:https (LISTEN)
httpd 561 apache 4u IPv6 14300967 TCP *:http (LISTEN)
httpd 561 apache 6u IPv6 14300972 TCP *:https (LISTEN)
sshd 1764 root 3u IPv6 4993 TCP *:ssh (LISTEN)
tcpserver 8965 root 3u IPv4 153795500 TCP *:pop3 (LISTEN)
curl是什么命令mysqld 10202 mysql 10u IPv4 73819697 TCP *:mysql (LISTEN)
sshd 10735 root 3u IPv6 160731956 TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED) sshd 10767 hchen 3u IPv6 160731956 TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED) vsftpd 11095 root 3u IPv4 152157957 TCP *:ftp (LISTEN)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论