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

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

[复制链接]
gaosmile 发布时间:2020-4-11 12:24
3 m7 [# O1 C' h" l2 S4 C
下面可能是你不曾用过后十个Linux的命令。相当的有用。
* S/ P) F, |" z- F3 ^# ~9 s
1)pgrep
: ^2 \! o% P* c3 X( c
pgrep名字前有个p,我们可以猜到这和进程相关,又是grep,当然这是进程相关的grep命令。不过,这个命令主要是用来列举进程ID的。如:
0 ^. y4 [# n6 b( i5 O1 A9 e# d: G; J
  1. " X6 }' Z1 N- _3 Y
  2. $ pgrep -u hchen
    ( J7 k8 N& U5 c  H4 l6 b
  3. 224413 @- d. z3 m2 C" [& n5 O& q
  4. 22444
    ( i0 p/ h3 A$ v% ^* J4 H/ y
复制代码
这个命令相当于:
  1. $ ~- Y/ K- R# w: l5 w
  2. ps -ef | egrep '^hchen' | awk '{print $2}'# c+ ?" c) E; j( i, J$ \, [
复制代码

0 c- D* y, t7 f
2)pstree
6 q$ M, j2 L/ C" F1 j: l
% t, L7 t- a# g' b/ v1 _  Z
这个命令可以以树形的方式列出进程。如下所示:
; t( G4 h5 S; `' j
  1. + m! w" q1 U$ @  L9 D0 |9 ^9 L8 v
  2. [hchen@RHELSVR5 ~]$ pstree
    + x, Y+ \7 r& F+ y
  3. init-+-acpid
    $ |1 c, k5 o4 f" B
  4.      |-auditd-+-python
    # o& ^- x7 w# }2 O: I
  5.      |        `-{auditd}
    1 [1 J- Q7 e( T/ v
  6.      |-automount---4*[{automount}]( C, o6 ^+ G" R1 |" d
  7.      |-backup.sh---sleep- v- Z: s7 {0 {+ L2 D
  8.      |-dbus-daemon1 Q1 G) t! i6 v7 o/ p
  9.      |-events/0
    2 p. c( ]- [3 [$ o4 G- l: c
  10.      |-events/1) l$ \1 N7 M+ H% h" p
  11.      |-hald---hald-runner---hald-addon-acpi
    # \6 B7 g) ^/ f; M" b. o$ e# m# ^
  12.      |-httpd---10*[httpd]
    9 |- K2 ^' F0 R- A
  13.      |-irqbalance
    * ^" O- I! D8 v, s0 a
  14.      |-khelper5 Z$ l* F8 X& }) T  e
  15.      |-klogd
    8 x0 U$ k# S" ~3 @' n( S
  16.      |-ksoftirqd/0$ r1 L8 s0 c/ k; a* Q
  17.      |-ksoftirqd/19 V1 C0 S3 S$ M4 }" \7 J
  18.      |-kthread-+-aio/02 `, T# I0 m' r; e! k& v6 w4 x
  19.      |         |-aio/1
    7 R5 B# |0 f. _0 p! c
  20.      |         |-ata/0' W5 e$ u) t2 E  x2 O5 x
  21.      |         |-ata/1% T! b2 f/ U% {# D* b
  22.      |         |-ata_aux  ^6 q& j* v# _6 W$ _% M. K0 F
  23.      |         |-cqueue/0& l* |) I' w: G, z  N8 Q  K+ m
  24.      |         |-cqueue/1' F+ M7 M% R" b  G2 Z- L/ R
  25.      |         |-kacpid
    " ?  w. M# y; [2 J7 a
  26.      |         |-kauditd
    % {8 q- ~1 m; r4 t0 y3 _; t
  27.      |         |-kblockd/0
    ' K1 z- h" N5 \. N7 J
  28.      |         |-kblockd/1+ w7 u: L* h# c
  29.      |         |-kedac
    % n: q) Q5 r$ B' F& }
  30.      |         |-khubd
    # w+ V$ c6 H' `8 K7 R: O- N
  31.      |         |-6*[kjournald]3 a0 D& b% R5 i4 X8 F0 D
  32.      |         |-kmirrord3 \4 Z" m, \1 z! f9 Z3 b  E
  33.      |         |-kpsmoused2 Z$ H, [, t: k6 X' Q, u
  34.      |         |-kseriod
    + @1 P+ E6 b# u! i3 P; `
  35.      |         |-kswapd00 e2 _; M9 Z' Y+ p2 D: s$ z
  36.      |         |-2*[pdflush]
    # _, ?1 l* H2 }0 x
  37.      |         |-scsi_eh_0
    6 }/ u, D: _/ j( B! r
  38.      |         |-scsi_eh_1' ]6 q% G  [: D8 O8 m, J/ z: }4 V
  39.      |         |-xenbus, a5 P7 m" ?! [8 H  D  I: X" e
  40.      |         `-xenwatch
    ) }% e4 B3 J( u# s
  41.      |-migration/0; u8 B& J  Y$ Q
  42.      |-migration/1
    + P" a3 L* o" N- j, o
  43.      |-6*[mingetty]( y6 I, m! d- B* y
  44.      |-3*[multilog]
    7 X" q4 a" T) @0 k
  45.      |-mysqld_safe---mysqld---9*[{mysqld}]
    ! a7 q0 X( l* q
  46.      |-smartd
    6 `) C) j$ o* ?
  47.      |-sshd---sshd---sshd---bash---pstree
    - [: s% G% I# K- m. B0 r5 G
  48.      |-svscanboot---svscan-+-3*[supervise---run]
    + E4 ]2 r( O& C2 e& [
  49.      |                     |-supervise---qmail-send-+-qmail-clean) T; y" t" T9 r( B
  50.      |                     |                        |-qmail-lspawn
    # z* o3 R# t( t7 H7 n
  51.      |                     |                        `-qmail-rspawn
    3 ?$ E" T8 h& J& B8 {
  52.      |                     `-2*[supervise---tcpserver]
    0 A" v- e& i7 s+ I% H% r
  53.      |-syslogd
    2 r& H6 J3 q3 ^% \
  54.      |-udevd+ h3 Y. w" W* w* B) \1 ^6 [0 p
  55.      |-watchdog/0! b4 r. Y+ j4 m2 a6 p5 K) B" v
  56.      |-watchdog/1
    : C/ x' Q1 q) d% [
  57.      `-xinetd
    # G1 L( r) I; j$ j. H
复制代码

- A8 C/ ?* `5 w
3)bc# u" o' i3 p" S4 u  Z; S7 G

5 n! ~7 |8 A  x% c6 y* U2 Z
这个命令主要是做一个精度比较高的数学运算的。比如开平方根等。下面是一个我们利用bc命令写的一个脚本(文件名:sqrt). G5 ^6 S# s* Y! K" ?9 c
  1. 5 x' F( T" o" _7 M; D0 G
  2. #!/bin/bash
    5 T; S& c6 n3 \9 q5 F2 \1 B6 [
  3. $ q; y) \: y5 @; [- H) a
  4. if [ $
    2 k& `! |9 q4 s; o* `
  5. then) ?4 ]5 c3 S1 V3 \/ E7 e" T2 j* n
  6.     echo 'Usage: sqrt number'
    9 T9 l& e2 J; K& c) S% j5 i  S
  7.     exit 1
    ( I* A3 ~: P- Z! |" T: G
  8. else8 {9 y6 b# x+ \( w
  9.     echo -e "sqrt($1)\nquit\n" | bc -q -i
    ; l/ E2 D, h1 [; n2 E$ r0 d
  10. fi
    - p( S6 ^9 B+ m" u5 @/ U
复制代码

( G3 G. \9 e1 p1 O
于是,我们可以这样使用这个脚本进行平方根运算:9 O6 i0 |7 f4 X& R6 f$ G

  1. ; F7 @/ c) {- R2 O! n9 W/ c2 w
  2. [hchen@RHELSVR5]$ ./sqrt 36$ [3 p4 F9 V  h
  3. 6" `+ [1 D4 h  Y6 A8 Q
  4. [hchen@RHELSVR5]$ ./sqrt 2.0000
    ' ]  r. k3 `  K
  5. 1.4142! U* p) E4 D3 z9 R
  6. [hchen@RHELSVR5]$ ./sqrt 10.00005 t) A; X5 n$ E# a( A! v) l. @8 l
  7. 3.1622
    # T/ J: I, ^8 b
复制代码

8 J8 v0 [4 b/ v& r
4)split
; S4 I# c% U7 [" f: b2 p- Z0 a" u
如果你有一个很大的文件,你想把其分割成一些小的文件,那么这个命令就是干这件事的了。
' D; ^# p4 _! V2 }  F& O+ u4 k# o$ Y

  1. - ?! U! z4 T* J1 g! `
  2. [hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz; k! p3 M' @6 `$ N  f
  3. -rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz! T0 j. E' q1 ^2 f  f

  4. 0 i7 R* C4 z& |' _* V
  5. [hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_
    # r, `0 F+ r# P2 h
  6. $ x: R0 ?3 [% a6 A/ _3 @/ b  h
  7. [hchen@RHELSVR5]# ls -l LF_*
    : @7 k4 t6 J( j8 l
  8. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa
    ; b+ {+ T0 i- m, R- B# s& Q
  9. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab
    9 |( n4 e6 m$ M7 M# Z
  10. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ac5 W% d" w& Y3 f7 P1 l
  11. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ad* C1 U( D% ?  d* H! X0 F
  12. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ae
    7 _& S. r- |. o+ r
  13. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_af' z6 w4 F7 p/ L- G6 Q# @
  14. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ag" y( A( V5 T( [/ {9 a' a' f
  15. -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ah
    ! j/ b$ t+ H) t; W4 y
  16. -rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_ai
    1 O" D* r2 p- q) a& ]
复制代码

9 w! l4 x9 m: [# W
文件合并只需要使用简单的合并就行了,如:
7 ]  {; G, a8 b' W" h' B0 ]

  1. - Q( _3 m  y7 Z7 C+ ?8 Q3 x+ T
  2. [hchen@RHELSVR5]#  cat LF_* >largefile.tar.gz7 T" h5 K+ Q9 I
复制代码
5)nl

* I. I. b+ j; u1 y
nl命令其它和cat命令很像,只不过它会打上行号。如下所示:
4 z9 F. A* C6 I
  1. : P; {% d) k- X
  2. [hchen@RHELSVR5 include]# nl stdio.h | head -n 10
    ( [" ]- W! b8 I! E/ O! N
  3.      1  /* Define ISO C stdio on top of C++ iostreams./ [" `- m2 n* ?+ N
  4.      2     Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc." @) {1 l& E* V, O
  5.      3     This file is part of the GNU C Library.
    ) n7 W: q! ^5 y" W' E; |

  6. ' i: a4 R9 ?% l. ~* A
  7.      4     The GNU C Library is free software; you can redistribute it and/or
    0 @( y6 S1 `. |$ K' v
  8.      5     modify it under the terms of the GNU Lesser General Public
    1 Q  ?" @- _0 q% C6 O% d
  9.      6     License as published by the Free Software Foundation; either5 J/ o. X4 `* w7 B! H! u+ A6 u
  10.      7     version 2.1 of the License, or (at your option) any later version.5 h4 s  l2 z/ W  Q+ Q/ `, j

  11. + @! _) R9 {$ E7 M% s
  12.      8     The GNU C Library is distributed in the hope that it will be useful,
    + M+ B( p1 ^, m8 `
复制代码
6)mkfifo
熟悉Unix的人都应该知道这个是一个创建有名管道的系统调用或命令。平时,我们在命令行上使用竖线“|”把命令串起来是使用无命管道。而我们使用mkfifo则使用的是有名管道。下面是示例:
下面是创建一个有名管道:2 L9 g* \4 l" R3 W, c" X2 D

  1. 0 m. s9 S8 T( K3 H) K5 A
  2. [hchen@RHELSVR5 ~]# mkfifo /tmp/hchenpipe
    $ i- [- m+ `* R" P

  3. & @/ Q& ]7 t. q  w. x
  4. [hchen@RHELSVR5 ~]# ls -l /tmp0 f+ y. O# Q* Q8 N# |& e
  5. prw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe5 E7 W; o& u" L0 f- V) l: V  T
复制代码

& }6 G0 w; n! N+ u7 o3 M
然后,我们在一个shell中运行如下命令,这个命令不会返回,除非有人从这个有名管道中把信息读走。
3 V  S! R. m5 c9 `( h

  1. " {5 U% O4 z$ b2 r  _: R1 N1 m! Z; R
  2. [hchen@RHELSVR5 ~]# ls -al > /tmp/hchenpipe
    # n9 ~. q$ B5 ?" {# _' c
复制代码

3 R. {  K  S; p9 F. n
我们在另一个命令窗口中读取这个管道中的信息:(其会导致上一个命令返回)/ O, S6 v2 f3 ?- L8 O% ?; F0 ?0 M% e

  1. 3 h; Y  M  }$ O( Y: o
  2. [hchen@RHELSVR5 ~]# head /tmp/hchenpipe
    & A3 D# h8 z6 o+ S
  3. drwx------ 8 hchen hchen    4096 05-10 18:27 .  q2 a6 V9 s7 U' ]
  4. drwxr-xr-x 7 root  root     4096 03-05 00:06 ..
    . @: i6 O' j4 h- f; m$ e: `5 c
  5. drwxr-xr-x 3 hchen hchen    4096 03-01 18:13 backup
    7 A" I5 C! g3 `2 R- p* a0 ]" I/ x! O
  6. -rw------- 1 hchen hchen     721 05-05 22:12 .bash_history& S/ C/ ^( s* h! _' y
  7. -rw-r--r-- 1 hchen hchen      24 02-28 22:20 .bash_logout
    $ ?: t& x7 g8 {9 W2 ~% K
  8. -rw-r--r-- 1 hchen hchen     176 02-28 22:20 .bash_profile
    ) G9 s5 o$ N# M+ N9 m# T  W
  9. -rw-r--r-- 1 hchen hchen     124 02-28 22:20 .bashrc
    5 o  c! O* O) }2 L, K2 ^
  10. -rw-r--r-- 1 root  root    14002 03-07 00:29 index.htm+ f3 L9 u" B) y
  11. -rw-r--r-- 1 hchen hchen   31465 03-01 23:48 index.php+ ^; b# `/ z, P4 x
复制代码
. g1 d$ o1 N4 _# g# `, M( |2 \4 C
7)ldd' D# R+ }0 j# [$ a

+ e1 n. P0 q- O4 X1 p$ w* j
这个命令可以知道你的一个可执行文件所使用了动态链接库。如:
  1. <font color="#001000"><font face="Tahoma">
    : R: ?; {. ]# H5 V2 _9 g
  2. [hchen@RHELSVR5 ~]# ldd /usr/bin/java
    5 A: V* K" N1 L$ `, H+ m" ~6 {' ?
  3.         linux-gate.so.1 =>  (0x00cd9000)
    ( Q/ e/ I/ I6 j% C! @
  4.         libgij.so.7rh => /usr/lib/libgij.so.7rh (0x00ed3000)
    + D( B+ [- g2 q! b, S: Y
  5.         libgcj.so.7rh => /usr/lib/libgcj.so.7rh (0x00ed6000)
    5 N! a8 c; t1 ~) P4 E
  6.         libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00110000)2 v, i; a7 r4 Q
  7.         librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x009c8000)
    ) d9 `( u) z: B& j3 y
  8.         libdl.so.2 => /lib/libdl.so.2 (0x008b5000)/ E6 |9 b) j- x0 Z/ X
  9.         libz.so.1 => /usr/lib/libz.so.1 (0x00bee000)/ s6 ]! j7 m* S, u9 n! a7 c+ |- {
  10.         libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa7000)4 L) y$ R; {8 y8 R" p+ L
  11.         libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x0022f000)9 D9 Z" @- U, y& K* U
  12.         libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x00127000), N1 ~, C( T' P& D. T
  13.         /lib/ld-linux.so.2 (0x00214000)</font></font><font color="#001000"><b>
    6 `$ p  @* J& W. J' ]) m; a, x
  14. </b></font>
复制代码
8)col
7 ~6 e, [- {: j( ~

. L$ D3 s, u1 H# k$ N& V
这个命令可以让你把man文件转成纯文本文件。如下示例:
  1. 7 |7 W. d# C" }& M& r, W
  2. # PAGER=cat
    - \( l$ O- l$ C! M  y) y) H" g3 I
  3. # man less | col -b > less.txt- y& Q% H0 H9 f
复制代码
9)xmlwf
" j5 t3 H9 y2 S" ~) A
; ?* V& B4 T3 p4 q! Y$ w
这个命令可以让你检查一下一个XML文档是否是所有的tag都是正常的。如:( Y' z$ w3 X; D: E, Y
  1. 0 `9 N: S% m) T- ^
  2. [hchen@RHELSVR5 ~]# curl 'http://coolshell.cn/?feed=rss2' > cocre.xml
    9 G+ w' z: d7 F) a4 H# U3 f
  3.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    ' c1 k6 ]2 D0 Q( ]. J3 v0 T8 R
  4.                                  Dload  Upload   Total   Spent    Left  Speed* R% \* b2 j0 |0 Q! k; \* m
  5. 100 64882    0 64882    0     0  86455      0 --:--:-- --:--:-- --:--:-- 2073k4 f' Z) g# I1 Q  \
  6. [hchen@RHELSVR5 ~]# xmlwf cocre.xml8 m( g  J: Y: l9 ?) p
  7. [hchen@RHELSVR5 ~]# perl -i -pe 's@<link>@<br>@g' cocre.xml& c; k6 ?# i, L
  8. [hchen@RHELSVR5 ~]# xmlwf cocre.xml' T. T/ _+ ^" l, Q! [$ w) v8 e: X
  9. cocre.xml:13:23: mismatched tag% k" K* S, o' k% G: w9 x4 a
复制代码

3 z9 v3 }+ Y# y+ |" M
10)lsof- `, g, k+ }% ~/ S2 d: U
( s4 A5 s: D  _" n4 n( }
可以列出打开了的文件。
  1. 3 f2 K" h# ^2 h) r1 U
  2. [root@RHELSVR5 ~]# lsof | grep TCP* X/ ?& c9 p9 V) r$ j' u& l
  3. httpd       548    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
    ; _  p8 E# f1 v4 U6 l$ D/ j
  4. httpd       548    apache    6u     IPv6   14300972    TCP *:https (LISTEN)4 w; Z$ S/ |3 k% d0 }$ j. `
  5. httpd       561    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
    % n0 X+ L* j4 J$ C
  6. httpd       561    apache    6u     IPv6   14300972    TCP *:https (LISTEN)( C% ]) t) |0 s& @1 i
  7. sshd       1764      root    3u     IPv6       4993    TCP *:ssh (LISTEN); m& Z3 a( G3 u; y/ k' U* M
  8. tcpserver  8965      root    3u     IPv4  153795500    TCP *:pop3 (LISTEN)8 F3 A6 W7 v1 Y$ X% {7 J1 e/ S
  9. mysqld    10202     mysql   10u     IPv4   73819697    TCP *:mysql (LISTEN)0 Q, d( W- R7 h: m# O! }7 m2 ]
  10. sshd      10735      root    3u     IPv6  160731956    TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED)' b+ k8 M+ K8 I6 n  L: ?& [! p0 F
  11. sshd      10767     hchen    3u     IPv6  160731956    TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED)
    , {) Z2 n- G7 U! w: p
  12. vsftpd    11095      root    3u     IPv4  152157957    TCP *:ftp (LISTEN)* U2 x9 @* N6 C4 @; D
复制代码

% B0 e, n- ~2 d! J& s! r. \
7 U7 G. i" X' S; o* a' t( r0 Q* F, E
收藏 评论0 发布时间:2020-4-11 12:24

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版