Lección del día: 10 comandos de Linux para mejorar la eficiencia

Linux es el sistema operativo más adecuado para el desarrollo. Confía todos los derechos de operación al usuario, y qué tipo de patrón aparecerá si hay alguna operación. La franqueza, la libertad y la honestidad son sus mayores encantos.

Hoy, he recopilado 10 comandos de Linux para ti. Espero que puedas tener una comprensión más profunda de las características relevantes de Linux en este artículo:

01 pgrep

Hay una p antes del nombre de pgrep. Podemos adivinar que esto está relacionado con el proceso, y es grep nuevamente. Por supuesto, este es un comando grep relacionado con el proceso.

Sin embargo, este comando se usa principalmente para listar el ID del proceso. Como:

$ pgrep -u hchen2244122444

Este comando es equivalente a:

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

02 pstree


Este comando puede enumerar procesos en formato de árbol. Como sigue:


[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

03 a. C.


Este comando se utiliza principalmente para realizar una operación matemática con alta precisión. Por ejemplo, sacar la raíz cuadrada y así sucesivamente. El siguiente es un script que escribimos usando el comando bc (nombre de archivo: sqrt)

#!/bin/bash
if [ $# -ne 1 ]

then
echo 'Usage: sqrt number'
exit 1else
    echo -e "sqrt($1)\nquit\n" | bc -q -i
fi

Entonces, podemos usar este script para realizar operaciones de raíz cuadrada como esta:

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

04 split

Si tiene un archivo muy grande y desea dividirlo en algunos archivos más pequeños, entonces este comando lo hará.

[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

La combinación de archivos solo necesita usar una combinación simple, como:

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

05 nl

El comando nl es muy similar al comando cat, excepto que reproducirá el número ascendente. Como sigue:

[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,

06 mkfifo


Cualquiera que esté familiarizado con Unix debe saber que se trata de una llamada o comando del sistema para crear una tubería conocida. Por lo general, usamos la barra vertical "|" en la línea de comando para encadenar los comandos juntos usando una tubería inactiva. Cuando usamos mkfifo, usamos una tubería conocida. El siguiente es un ejemplo: lo siguiente es crear una tubería con nombre:

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

Luego, ejecutamos el siguiente comando en un shell, y este comando no regresará a menos que alguien lea la información de esta famosa tubería.

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

Leemos la información en esta canalización en otra ventana de comando: (hará que regrese el comando anterior)

[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

07 ldd

Este comando puede conocer la biblioteca de vínculos dinámicos utilizada por uno de sus archivos ejecutables. Como:

[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)

08 col


Este comando le permite convertir archivos man en archivos de texto sin formato. El siguiente ejemplo:

# PAGER=cat# man less | col -b > less.txt

09 xmlwf

Este comando le permite verificar si todas las etiquetas en un documento XML son normales. Como:

[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.xmlcocre.xml:13:23: mismatched tag

10 ls de

Puede enumerar los archivos abiertos:

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

Vídeo de hoy: tecnología de inyección remota C / C ++

 

Supongo que te gusta

Origin blog.csdn.net/Python6886/article/details/112759446
Recomendado
Clasificación