<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          10 個你可能不曾用過卻很有用的 Linux 命令

          共 14619字,需瀏覽 30分鐘

           ·

          2021-07-04 19:56

          置頂/星標公眾號??,硬核文章第一時間送達!

          鏈接 | https://coolshell.cn/articles/790.htm


          下面可能是你不曾用過后十個Linux的命令。相當?shù)挠杏谩?/p>

          1)pgrep

          pgrep名字前有個p,我們可以猜到這和進程相關,又是grep,當然這是進程相關的grep命令。不過,這個命令主要是用來列舉進程ID的。如:

          $ pgrep -u hchen
          22441
          22444

          這個命令相當于:

          ps -ef | egrep '^hchen' | awk '{print $2}'

          2)pstree

          這個命令可以以樹形的方式列出進程。如下所示:

          [hchen@RHELSVR5 ~]$ 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

          這個命令主要是做一個精度比較高的數(shù)學運算的。比如開平方根等。下面是一個我們利用bc命令寫的一個腳本(文件名:sqrt)

          #!/bin/bash
          if [ $# -ne 1 ]
          then
              echo 'Usage: sqrt number'
              exit 1
          else
              echo -e "sqrt($1)\nquit\n" | bc -q -i
          fi

          于是,我們可以這樣使用這個腳本進行平方根運算:

          [hchen@RHELSVR5]$ ./sqrt 36
          6
          [hchen@RHELSVR5]$ ./sqrt 2.0000
          1.4142
          [hchen@RHELSVR5]$ ./sqrt 10.0000
          3.1622

          4)split

          如果你有一個很大的文件,你想把其分割成一些小的文件,那么這個命令就是干這件事的了。

          [hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz
          -rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz

          [hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_

          [hchen@RHELSVR5]# ls -l LF_*
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ac
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ad
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ae
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_af
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ag
          -rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ah
          -rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_ai

          文件合并只需要使用簡單的合并就行了,如:

          [hchen@RHELSVR5]#  cat LF_* >largefile.tar.gz

          5)nl

          nl命令其它和cat命令很像,只不過它會打上行號。如下所示:

          [hchen@RHELSVR5 include]# nl stdio.h | head -n 10
               1  /* Define ISO C stdio on top of C++ iostreams.
               2     Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc.
               3     This file is part of the GNU C Library.

               4     The GNU C Library is free software; you can redistribute it and/or
               5     modify it under the terms of the GNU Lesser General Public
               6     License as published by the Free Software Foundation; either
               7     version 2.1 of the License, or (at your option) any later version.

               8     The GNU C Library is distributed in the hope that it will be useful,

          6)mkfifo

          熟悉Unix的人都應該知道這個是一個創(chuàng)建有名管道的系統(tǒng)調用或命令。平時,我們在命令行上使用豎線“|”把命令串起來是使用無命管道。而我們使用mkfifo則使用的是有名管道。下面是示例:

          下面是創(chuàng)建一個有名管道:

          [hchen@RHELSVR5 ~]# mkfifo /tmp/hchenpipe

          [hchen@RHELSVR5 ~]# ls -l /tmp
          prw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe

          然后,我們在一個shell中運行如下命令,這個命令不會返回,除非有人從這個有名管道中把信息讀走。

          [hchen@RHELSVR5 ~]# ls -al > /tmp/hchenpipe

          我們在另一個命令窗口中讀取這個管道中的信息:(其會導致上一個命令返回)

          [hchen@RHELSVR5 ~]# head /tmp/hchenpipe
          drwx------ 8 hchen hchen    4096 05-10 18:27 .
          drwxr-xr-x 7 root  root     4096 03-05 00:06 ..
          drwxr-xr-x 3 hchen hchen    4096 03-01 18:13 backup
          -rw------- 1 hchen hchen     721 05-05 22:12 .bash_history
          -rw-r--r-- 1 hchen hchen      24 02-28 22:20 .bash_logout
          -rw-r--r-- 1 hchen hchen     176 02-28 22:20 .bash_profile
          -rw-r--r-- 1 hchen hchen     124 02-28 22:20 .bashrc
          -rw-r--r-- 1 root  root    14002 03-07 00:29 index.htm
          -rw-r--r-- 1 hchen hchen   31465 03-01 23:48 index.php

          7)ldd

          這個命令可以知道你的一個可執(zhí)行文件所使用了動態(tài)鏈接庫。如:

          [hchen@RHELSVR5 ~]# 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 > less.txt

          9)xmlwf

          這個命令可以讓你檢查一下一個XML文檔是否是所有的tag都是正常的。如:

          [hchen@RHELSVR5 ~]# curl 'https://coolshell.cn/?feed=rss2' > cocre.xml
            % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                           Dload  Upload   Total   Spent    Left  Speed
          100 64882    0 64882    0     0  86455      0 --:--:-- --:--:-- --:--:-- 2073k
          [hchen@RHELSVR5 ~]# xmlwf cocre.xml
          [hchen@RHELSVR5 ~]# perl -i -pe 's@<link>@<br>@g' cocre.xml
          [hchen@RHELSVR5 ~]# xmlwf cocre.xml
          cocre.xml:13:23: mismatched tag

          10)lsof

          可以列出打開了的文件。

          [root@RHELSVR5 ~]# lsof | grep TCP
          httpd       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)
          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)


          往期推薦




          專輯 | 趣味設計模式
          專輯 | 音視頻開發(fā)
          專輯 | C++ 進階
          專輯 | 超硬核 Qt
          專輯 | 玩轉 Linux
          專輯 | GitHub 開源推薦
          專輯 | 程序人生


          關注公眾「高效程序員」??,一起優(yōu)秀!

          回復“1024”,送你一份程序員大禮包。
          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人大香蕉视频在线观看 | 91中文字幕日本乱码 | 人人草在线观看 | 尤物成人在线 | 大香蕉导航 |