Max Janot’s World

21 marzo 2007

10 comandi 10

Filed under: Linux — maxjanot @ 9:42 am

Presento una lista di 10 interessanti comandi usabili con bash.

  1. pgrep, invece di:
    # ps -ef | egrep '^root ' | awk '{print $2}'
    1
    2
    3
    4
    5
    20
    21
    38
    39
    ...

    Puoi utilizzarlo cosi’:

    # pgrep -u root
    1
    2
    3
    4
    5
    20
    21
    38
    39
    ...
  2. pstree, fa una lista dei processi in un formato ad albero. Puo’ essere molto utile quando si usano applicazioni molto pesanti.
    # pstree
    init-+-acpid
         |-atd
         |-crond
         |-cups-config-dae
         |-cupsd
         |-dbus-daemon-1
         |-dhclient
         |-events/0-+-aio/0
         |          |-kacpid
         |          |-kauditd
         |          |-kblockd/0
         |          |-khelper
         |          |-kmirrord
         |          `-2*[pdflush]
         |-gpm
         |-hald
         |-khubd
         |-2*[kjournald]
         |-klogd
         |-kseriod
         |-ksoftirqd/0
         |-kswapd0
         |-login---bash
         |-5*[mingetty]
         |-portmap
         |-rpc.idmapd
         |-rpc.statd
         |-2*[sendmail]
         |-smartd
         |-sshd---sshd---bash---pstree
         |-syslogd
         |-udevd
         |-vsftpd
         |-xfs
         `-xinetd
  3. bc e’ un linguaggio di calcolo molto preciso. Puo’ essere utile eseguire delle operazioni di radice quadrata in script shell.
    # ./sqrt
    Usage: sqrt number
    # ./sqrt 64
    8
    # ./sqrt 132112
    363
    # ./sqrt 1321121321
    36347

    Qui c’e’ lo script:

    # cat sqrt
    #!/bin/bash
    if [ $# -ne 1 ]
    then
            echo 'Usage: sqrt number'
            exit 1
    else
            echo -e "sqrt($1)nquitn" | bc -q -i
    fi
  4. split, puo’ essere utile splittare un file di grandi dimensioni in altri piu’ piccoli.
    # ls -lh largefile
    -rw-r--r--  1 root root 251M Feb 19 10:27 largefile
    # split -b 2m largefile LF_
    # ls -lh LF_* | head -n 5
    -rw-r--r--  1 root root 2.0M Feb 19 10:29 LF_aa
    -rw-r--r--  1 root root 2.0M Feb 19 10:29 LF_ab
    -rw-r--r--  1 root root 2.0M Feb 19 10:29 LF_ac
    -rw-r--r--  1 root root 2.0M Feb 19 10:29 LF_ad
    -rw-r--r--  1 root root 2.0M Feb 19 10:29 LF_ae
    # ls -lh LF_* | wc -l
    126
  5. nl numero di linee.
    # head wireless.h
    /*
     * This file define a set of standard wireless extensions
     *
     * Version :    20      17.2.06
     *
     * Authors :    Jean Tourrilhes - HPL
     * Copyright (c) 1997-2006 Jean Tourrilhes, All Rights Reserved.
     */
    
    #ifndef _LINUX_WIRELESS_H
    # nl wireless.h | head
         1  /*
         2   * This file define a set of standard wireless extensions
         3   *
         4   * Version :    20      17.2.06
         5   *
         6   * Authors :    Jean Tourrilhes - HPL
         7   * Copyright (c) 1997-2006 Jean Tourrilhes, All Rights Reserved.
         8   */
    
         9  #ifndef _LINUX_WIRELESS_H
  6. mkfifo e’ il piu’ cool.
    Creiamo una pipe e cominciamo a lavorarci su:mkfifo pipe; tail file > pipePoi leggiamo da essa:

    cat pipe

  7. ldd, per sapere a quale file e’ linkata una particolare libreria.
    # ldd /usr/java/jre1.5.0_11/bin/java
            libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00bd4000)
            libdl.so.2 => /lib/libdl.so.2 (0x00b87000)
            libc.so.6 => /lib/tls/libc.so.6 (0x00a5a000)
            /lib/ld-linux.so.2 (0x00a3c000)
  8. col, per salvare le pagine man in file di testo
    # PAGER=cat
    # man less | col -b > less.txt
  9. xmlwf, per sapere se un file XML e’ well-formed
    # curl -s 'http://bashcurescancer.com' > bcc.html
    # xmlwf bcc.html
    # perl -i -pe 's@<br/>@<br>@g' bcc.html
    # xmlwf bcc.html
    bcc.html:104:2: mismatched tag
  10. lsof lista i file aperti. Si possono fare molte cose, come trovare quali porte sono aperte:
    # lsof | grep TCP
    portmap    2587   rpc    4u     IPv4       5544                 TCP *:sunrpc (LISTEN)
    rpc.statd  2606  root    6u     IPv4       5585                 TCP *:668 (LISTEN)
    sshd       2788  root    3u     IPv6       5991                 TCP *:ssh (LISTEN)
    sendmail   2843  root    4u     IPv4       6160                 TCP badhd:smtp (LISTEN)
    vsftpd     9337  root    3u     IPv4      34949                 TCP *:ftp (LISTEN)
    cupsd     16459  root    0u     IPv4      41061                 TCP badhd:ipp (LISTEN)
    sshd      16892  root    3u     IPv6      61003                 TCP badhd.mshome.net:ssh->kontiki.mshome.net:4661 (ESTABLISHED)

    O trovare il numero di file aperti da un particolare utente:

    # lsof | grep ' root ' | awk '{print $NF}' | sort | uniq | wc -l
    179
Annunci

Lascia un commento »

Non c'è ancora nessun commento.

RSS feed for comments on this post. TrackBack URI

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.

%d blogger hanno fatto clic su Mi Piace per questo: