推薦5個常用Linux運維命令

大雄45發表於2021-11-17
導讀 推薦5個常用 運維

推薦5個常用Linux運維命令推薦5個常用Linux運維命令

pgrep

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

$ pgrep -u hchen
22441
22444

這個命令相當於:

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

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

$ 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
bc

這個命令主要是做一個精度比較高的數學運算的。比如開平方根等。下面是一個我們利用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

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

$ ./sqrt 36
6
$ ./sqrt 2.0000
1.4142
$ ./sqrt 10.0000
3.1622
split

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

$ ls -l largefile.tar.gz
-rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz 
$ split -b 50m largefile.tar.gz LF_
$ 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

檔案合併只需要使用簡單的合併就行了,如:

$ cat LF_* >largefile.tar.gz
mkfifo

熟悉Unix的人都應該知道這個是一個建立有名管道的系統呼叫或命令。平時,我們在命令列上使用豎線“|”把命令串起來是使用無命管道。而我們使用mkfifo則使用的是有名管道。下面是示例:

下面是建立一個有名管道:

$ mkfifo /tmp/hchenpipe
$ ls -l /tmp
prw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe

然後,我們在一個 中執行如下命令,這個命令不會返回,除非有人從這個有名管道中把資訊讀走。

$ ls -al > /tmp/hchenpipe

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

$ 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

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2842556/,如需轉載,請註明出處,否則將追究法律責任。

相關文章