你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

可能是你不曾用过后十个Linux的命令

[复制链接]
gaosmile 发布时间:2020-4-11 12:24

. a# ^6 h: a  l% u下面可能是你不曾用过后十个Linux的命令。相当的有用。
, G- J3 _+ M7 x& Q! Q5 I
1)pgrep

, F' n) G( c- y( b( H1 Q8 V- C( S
pgrep名字前有个p,我们可以猜到这和进程相关,又是grep,当然这是进程相关的grep命令。不过,这个命令主要是用来列举进程ID的。如:4 e3 t$ z! s" y1 P/ e" z
  1. ( V" ]: F- o( |( E/ w) x- y, @3 y
  2. $ pgrep -u hchen- ]; w* n4 ^8 Y6 B! W# N* L
  3. 22441
    # \0 ~( J0 ~  v; f, m3 |. E
  4. 22444# g6 ^: }4 b' [6 R1 U
复制代码
这个命令相当于:

  1. : m, H5 X9 U; f
  2. ps -ef | egrep '^hchen' | awk '{print $2}'
    : @0 E/ B1 h0 Z  q4 ]
复制代码

  |/ w! ~! d0 G3 b. w4 e3 {& s
2)pstree- f% _2 R: y- ^3 H
! z4 V( J. j1 L/ g. w8 z. h* B8 |
这个命令可以以树形的方式列出进程。如下所示:# v" H. D) V+ `
  1. 8 C' b# t4 q: ?
  2. [hchen@RHELSVR5 ~]$ pstree
    ) `6 J  j2 l5 l0 f- [, F
  3. init-+-acpid$ f' U! Q, Z2 h1 o, T0 y- |
  4.      |-auditd-+-python% ]1 Q  r( Q% o  d* |3 @3 v
  5.      |        `-{auditd}
    : \- R1 ], `! h- S% O, c; E4 v8 O1 I
  6.      |-automount---4*[{automount}]
    ) V/ m/ N% }( B/ |* j. a2 e
  7.      |-backup.sh---sleep
    ! p0 a% p+ y8 d3 m0 h- q/ y3 @
  8.      |-dbus-daemon
    4 n: }; e. @! k' g9 W: i$ r4 U
  9.      |-events/0# {) F; E, E9 {, W
  10.      |-events/16 Z! a) O$ m* G" Z& q% Z1 {# Q
  11.      |-hald---hald-runner---hald-addon-acpi
    + q/ ~* x( m, h4 X9 r
  12.      |-httpd---10*[httpd]- o5 b' z  j9 j. W. @/ Q0 \* D
  13.      |-irqbalance" U4 k  T9 h0 w+ w" ]  e
  14.      |-khelper+ y( ~5 E, K! ~' N
  15.      |-klogd; x8 U' a% E; r2 X4 Y# f
  16.      |-ksoftirqd/0
    % X: I/ @$ T. H- N
  17.      |-ksoftirqd/1( E) j/ b* x' `, T% Q# X
  18.      |-kthread-+-aio/01 n: a$ J1 b" E/ t+ r
  19.      |         |-aio/1
    6 t+ o: @6 {7 b* ?- f
  20.      |         |-ata/0. x, b" P  L3 w; Z
  21.      |         |-ata/1
    # N4 J% p- r4 ]2 c( z' T
  22.      |         |-ata_aux
    , L9 |1 p, Z( i) D8 p  t
  23.      |         |-cqueue/0
    ! g4 p8 s0 Y: }, j
  24.      |         |-cqueue/1
    & g4 f. B+ {9 r. X! b% E" g4 a% }0 [' P
  25.      |         |-kacpid7 [7 Q8 g& w' T! {$ x
  26.      |         |-kauditd0 h: N- ?0 w/ F7 B+ S9 H5 l
  27.      |         |-kblockd/0% I  K% _- Q* Z1 |( V3 q5 e. s8 N2 t
  28.      |         |-kblockd/12 Y4 Z1 _$ m: D6 t) Y2 w! h8 m3 j
  29.      |         |-kedac$ S: [/ A: f0 c5 f- \- r
  30.      |         |-khubd
    # |" G2 ^) u9 g
  31.      |         |-6*[kjournald]/ q2 I* [1 T' S0 D/ `3 K
  32.      |         |-kmirrord: w& }5 _! c2 {
  33.      |         |-kpsmoused
    3 u- c8 D. S- X3 |3 x
  34.      |         |-kseriod
    3 M! @0 {: M2 H8 L! M
  35.      |         |-kswapd0
    8 j+ T; f2 O, l8 Y+ [
  36.      |         |-2*[pdflush]
    ( K% ]. q! P4 b+ L8 C
  37.      |         |-scsi_eh_0
    % K" j  h& K+ y% E# Q
  38.      |         |-scsi_eh_1, F. |( T4 i) z! I, j
  39.      |         |-xenbus
    : D2 q: C' @% y: f$ `; k2 O! ?8 B
  40.      |         `-xenwatch  G7 l7 ~  e! `7 O# t# w3 I
  41.      |-migration/0
    ! K% s4 O" B0 d( \: J
  42.      |-migration/1
    " `$ K% r, G8 e0 k
  43.      |-6*[mingetty]( ~0 Q3 F9 d( P  P0 [% m
  44.      |-3*[multilog]$ l$ i( t- I' |$ W8 Z/ a8 ^
  45.      |-mysqld_safe---mysqld---9*[{mysqld}]1 J0 J9 h" g; F/ H4 F7 Q
  46.      |-smartd" {% r! P9 o' w8 U8 c$ H. j: ~
  47.      |-sshd---sshd---sshd---bash---pstree$ Q; ]: J5 y" l
  48.      |-svscanboot---svscan-+-3*[supervise---run]
    ) p3 l. V' m8 x! Y; N
  49.      |                     |-supervise---qmail-send-+-qmail-clean
    * L5 v$ D- R8 w% Y$ E" {2 |
  50.      |                     |                        |-qmail-lspawn7 Z% M$ f; m5 p' h/ L/ Y
  51.      |                     |                        `-qmail-rspawn
    7 a) R- E1 e. d1 G" _/ ^
  52.      |                     `-2*[supervise---tcpserver]7 a! Y, X0 e) ]$ ^2 U+ h- f
  53.      |-syslogd
    ' M7 z) t( q' I& S6 l1 B( N& \" `
  54.      |-udevd, F/ A! k% f8 {$ c
  55.      |-watchdog/0
    % K, o/ W! S6 v, R# q2 ~) a( N: X2 ]
  56.      |-watchdog/1
    1 y, r& p0 X; E9 t( k8 O$ u( |- {3 v
  57.      `-xinetd
    7 x+ j' V6 E3 }: m, h7 x3 L
复制代码

2 e& b% O7 d+ c7 G" l
3)bc
5 @+ Q. R6 V0 J8 A9 |2 {

' f  V$ S  a: i/ f5 Q9 ~1 y
这个命令主要是做一个精度比较高的数学运算的。比如开平方根等。下面是一个我们利用bc命令写的一个脚本(文件名:sqrt)
* j" Y3 e- U& C: z5 C! n
  1. 0 W/ I/ r# I) E, ]: o
  2. #!/bin/bash
    $ N5 [- c; v7 ?7 N& r8 c. L
  3. + ^( `0 _% J3 ]* Q) S4 A; g
  4. if [ $3 L! A' I0 {( f4 Q' |" R
  5. then$ \* ~2 h; J0 d  C8 y: U+ z
  6.     echo 'Usage: sqrt number'5 D" M; ~9 w1 F# U6 U
  7.     exit 1
    ' l7 `9 N) ]8 w# \' H' }) w
  8. else  ?! F$ G1 k8 A0 I% V. b) W) F
  9.     echo -e "sqrt($1)\nquit\n" | bc -q -i
    % @+ ?8 e- n% B" ~* K
  10. fi2 A' r& @9 a! V6 K: m
复制代码

! B- E3 C) q7 e4 o) x
于是,我们可以这样使用这个脚本进行平方根运算:5 I5 W# X+ Y$ `& x" W

  1. + i# C9 f& t* C+ o- w
  2. [hchen@RHELSVR5]$ ./sqrt 36
    / u3 H/ U$ u; d% \# c$ w1 n( i
  3. 6& Y- r* P+ O( X- L. e7 g; ~8 g
  4. [hchen@RHELSVR5]$ ./sqrt 2.00002 o  p- |0 l- G& Q; a1 S" j
  5. 1.4142+ k' z2 O5 G# e4 D: ?7 T8 w" v3 S" |
  6. [hchen@RHELSVR5]$ ./sqrt 10.0000  A; F0 b; U( H( D& o2 X
  7. 3.1622; I& R3 s4 }3 ]  Z+ W
复制代码

3 ^$ |1 M* U. n( x+ R: Q
4)split

- i7 T+ L1 c6 \6 ~) W+ B3 q
如果你有一个很大的文件,你想把其分割成一些小的文件,那么这个命令就是干这件事的了。) d' h" @" G5 ]+ m& M2 V. E

  1. 9 L  p( ~6 H& W' Y. l
  2. [hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz$ J# G( A* d, F' j' t/ e  o
  3. -rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz7 v  L; w; Z5 ^2 p6 i

  4. ! p! y2 _3 i# L% N1 {
  5. [hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_+ i2 a3 b! b0 |# W7 T, n

  6. # `8 [, L' e! i; z4 B2 Z
  7. [hchen@RHELSVR5]# ls -l LF_*
    6 D/ b& o( Q" H2 h0 H; ]. X
  8. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa
    ( u. ^+ J/ X: i1 H. Y
  9. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab
    ' ^' F8 \5 K! r
  10. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ac' E4 _* b* [. E3 a. i: y
  11. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ad
    ( Z3 A  `0 Y* v, \, V
  12. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ae
    , Q: ]& L9 F- F
  13. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_af" n9 a! u8 O' x; q- G
  14. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ag
    6 z5 f& Q0 Q, k% J* }# g, ^
  15. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ah
      \9 E+ Y' ~4 ?. E4 J  Z
  16. -rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_ai7 O/ j6 Y' ?! I4 B, r
复制代码

7 s  S& d/ b- s) c
文件合并只需要使用简单的合并就行了,如:
. |7 B8 z: V3 V% g) _& _4 S

  1. $ F3 b2 [7 a4 ~% A  P
  2. [hchen@RHELSVR5]#  cat LF_* >largefile.tar.gz
    0 i0 s4 w& v% K6 z/ g- }
复制代码
5)nl
& W, z8 t& |' C
nl命令其它和cat命令很像,只不过它会打上行号。如下所示:
9 X- V* h, b7 Q4 E5 H8 C2 i
  1. 8 V" t7 }. d% K; b  u3 N- L1 l
  2. [hchen@RHELSVR5 include]# nl stdio.h | head -n 10- ], F, g6 h/ ?' j$ c
  3.      1  /* Define ISO C stdio on top of C++ iostreams.
    & E: x: p! b. d+ A# V( S
  4.      2     Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc.
    " g( q  `2 }' n
  5.      3     This file is part of the GNU C Library.5 O( m+ f0 k; K# O0 x  u* [
  6. 8 s$ y: L7 X% f5 R. Z
  7.      4     The GNU C Library is free software; you can redistribute it and/or
    + |# G% j( u# ^  S9 R+ J3 B
  8.      5     modify it under the terms of the GNU Lesser General Public- U' {% H' J6 P- m
  9.      6     License as published by the Free Software Foundation; either$ {6 J6 o4 [) X! m2 p
  10.      7     version 2.1 of the License, or (at your option) any later version.% c2 j. y2 a5 c

  11. 9 x- T8 d1 Y5 e/ f0 G/ P7 o5 {
  12.      8     The GNU C Library is distributed in the hope that it will be useful,
      o& L% `* S, f& T; n% N5 w' y
复制代码
6)mkfifo
熟悉Unix的人都应该知道这个是一个创建有名管道的系统调用或命令。平时,我们在命令行上使用竖线“|”把命令串起来是使用无命管道。而我们使用mkfifo则使用的是有名管道。下面是示例:
下面是创建一个有名管道:; O' [* B, r+ N1 K1 V5 a

  1. / Z" Y1 j' i" b
  2. [hchen@RHELSVR5 ~]# mkfifo /tmp/hchenpipe/ K/ s+ Y9 {( A. Q* q

  3. ; l3 m" q9 h! j0 b0 u. ]* H7 _
  4. [hchen@RHELSVR5 ~]# ls -l /tmp1 P7 @: z- A% m+ U  g0 v5 y
  5. prw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe
    2 Q2 w9 Y* d3 ?; M2 |/ e5 r
复制代码
9 w# I1 x- s$ H) M
然后,我们在一个shell中运行如下命令,这个命令不会返回,除非有人从这个有名管道中把信息读走。
/ O* r* p- V+ o
  1. , N$ P% j: ^  \- P2 q! J
  2. [hchen@RHELSVR5 ~]# ls -al > /tmp/hchenpipe
    * K4 W4 e, K4 f; g- R. N0 r) A& C
复制代码
2 B3 t+ g0 Z  a% O- Z
我们在另一个命令窗口中读取这个管道中的信息:(其会导致上一个命令返回)
  R, Q1 j$ Q" e2 f, ]
  1. , U* H( @6 M1 G: B
  2. [hchen@RHELSVR5 ~]# head /tmp/hchenpipe; S9 x$ G' e: v% T/ s) b: G; ]
  3. drwx------ 8 hchen hchen    4096 05-10 18:27 .5 Z8 W9 V0 j1 v) U8 m) |
  4. drwxr-xr-x 7 root  root     4096 03-05 00:06 ..
    # ^8 S- i$ L  z9 C! A# }4 B: Q+ Y
  5. drwxr-xr-x 3 hchen hchen    4096 03-01 18:13 backup
    ) e) Z7 ^2 I4 X$ y$ F, @4 r1 n
  6. -rw------- 1 hchen hchen     721 05-05 22:12 .bash_history
    9 ~' b4 Z7 Q, {. e% g7 C
  7. -rw-r--r-- 1 hchen hchen      24 02-28 22:20 .bash_logout& Z1 N) M: F  r: E
  8. -rw-r--r-- 1 hchen hchen     176 02-28 22:20 .bash_profile
    7 s4 S8 x) z5 o& n
  9. -rw-r--r-- 1 hchen hchen     124 02-28 22:20 .bashrc
    . h+ y& Z) f8 p# Q
  10. -rw-r--r-- 1 root  root    14002 03-07 00:29 index.htm9 L% q, c- V( ?" d5 i# q( |% Z  g! i
  11. -rw-r--r-- 1 hchen hchen   31465 03-01 23:48 index.php  j  y+ ~! n  y* G; X
复制代码

; @! A  D+ B$ g+ U; I
7)ldd
) V5 i: G8 v& ^# _; u

( Z$ _; `$ Z6 j$ j1 q
这个命令可以知道你的一个可执行文件所使用了动态链接库。如:
  1. <font color="#001000"><font face="Tahoma">5 D  `! n, r0 A. Y9 i
  2. [hchen@RHELSVR5 ~]# ldd /usr/bin/java: b" V& u7 Z; s7 [# F0 J& F
  3.         linux-gate.so.1 =>  (0x00cd9000)5 t$ U, o4 i0 B; c' `
  4.         libgij.so.7rh => /usr/lib/libgij.so.7rh (0x00ed3000)1 g. }% b- T* o7 A
  5.         libgcj.so.7rh => /usr/lib/libgcj.so.7rh (0x00ed6000)" U+ Q/ t; q0 M1 N; R
  6.         libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00110000)
    / `% F  B+ w7 g) x5 U' x
  7.         librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x009c8000)6 J% M- E1 s/ I% x$ m
  8.         libdl.so.2 => /lib/libdl.so.2 (0x008b5000)
    + _# C# g& c' O; R$ k- i- w
  9.         libz.so.1 => /usr/lib/libz.so.1 (0x00bee000)4 W  Y% Y" `6 H4 t" T+ o
  10.         libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa7000)/ S' U2 `3 \, i. X0 ~. ?
  11.         libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x0022f000)
    1 O% O) C; F- h) s9 c9 f
  12.         libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x00127000)% U* b3 J$ o. Y- m
  13.         /lib/ld-linux.so.2 (0x00214000)</font></font><font color="#001000"><b>& {/ n( T* \- _  G
  14. </b></font>
复制代码
8)col3 M. }$ d4 x4 r/ \2 O

4 j1 R0 z" _: Y% f
这个命令可以让你把man文件转成纯文本文件。如下示例:
  1. % n( A' q5 r8 A8 k. E( a
  2. # PAGER=cat  k# ~  T$ {, F" O
  3. # man less | col -b > less.txt
    - c+ d" v! f; e8 ]
复制代码
9)xmlwf
% X5 G+ o* q8 u* K
' a+ L! H6 W* W! A' P
这个命令可以让你检查一下一个XML文档是否是所有的tag都是正常的。如:
1 X4 h) x- X+ \  y6 [/ G

  1. ' @& [2 c# E: ]( Q" R! q* t1 B
  2. [hchen@RHELSVR5 ~]# curl 'http://coolshell.cn/?feed=rss2' > cocre.xml/ F: r2 m7 c1 ?; O! e' h+ {! b% Q
  3.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current5 J* E  x+ l5 [2 q& s, _% ], n2 l
  4.                                  Dload  Upload   Total   Spent    Left  Speed
    8 Y! d! s0 D5 y/ ]4 F& y2 \
  5. 100 64882    0 64882    0     0  86455      0 --:--:-- --:--:-- --:--:-- 2073k
    ( W& }) q/ ]: d" F7 s
  6. [hchen@RHELSVR5 ~]# xmlwf cocre.xml
    : P) g) p" j9 \4 F9 {
  7. [hchen@RHELSVR5 ~]# perl -i -pe 's@<link>@<br>@g' cocre.xml! z# k+ F" ~& a& h; q9 B
  8. [hchen@RHELSVR5 ~]# xmlwf cocre.xml8 ^- A6 D# b) y% j" G8 ]  {
  9. cocre.xml:13:23: mismatched tag4 b, e( \; o9 B  g
复制代码

% `; U. ]7 s% t6 w9 _
10)lsof0 [$ x3 z  f5 _6 n4 y$ F+ N
* E3 X: q$ Z2 S! |$ r. l
可以列出打开了的文件。
  1.   c+ G- @% f. k4 ]8 {+ t
  2. [root@RHELSVR5 ~]# lsof | grep TCP9 X2 E3 n, t" Y7 E; a
  3. httpd       548    apache    4u     IPv6   14300967    TCP *:http (LISTEN)4 v" a. R* C+ e# }( ^9 V
  4. httpd       548    apache    6u     IPv6   14300972    TCP *:https (LISTEN)
    " B7 M" o5 a4 S5 J- M" d
  5. httpd       561    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
    7 z4 r8 Y# |4 c4 A0 A. c3 V9 s
  6. httpd       561    apache    6u     IPv6   14300972    TCP *:https (LISTEN)4 V% C& n5 _! l( o  H& ]! h
  7. sshd       1764      root    3u     IPv6       4993    TCP *:ssh (LISTEN)
    2 S& q: g7 t8 Z% }& _, p
  8. tcpserver  8965      root    3u     IPv4  153795500    TCP *:pop3 (LISTEN)
    0 s" Y+ a+ S+ N0 _2 [
  9. mysqld    10202     mysql   10u     IPv4   73819697    TCP *:mysql (LISTEN)
    ; W7 M1 k  s5 u$ D8 c, p) ?* q! i
  10. sshd      10735      root    3u     IPv6  160731956    TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED), }1 \+ h0 K- r+ E% ^$ B
  11. sshd      10767     hchen    3u     IPv6  160731956    TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED)6 ]' O3 n, h: y7 K% k6 V: k; `
  12. vsftpd    11095      root    3u     IPv4  152157957    TCP *:ftp (LISTEN)" Q1 [* B7 _, M% w7 a
复制代码
$ w) }# D0 [+ Q$ t( ~8 O9 E

/ \$ Y& \; t$ \+ T
赞 收藏 评论0 发布时间:2020-4-11 12:24

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版