Visualizzare e cambiare $PATH modalità temporanea e permanente

In LINUX così come nel vecchio DOS e in Windows  PATH rappresenta la variabile d’ambiente in cui vengono memorizzati i percorsi ( le dir )  in cui vengono cercati gli eseguibili. La variabile PATH può memorizzare una molteplicità di percorsi, in questo caso i due punti  : agiranno da separatore.

Per visualizzare PATH

echo $PATH

Visualizza in modo ordinato l’elenco

echo $PATH | sed s/:/'\n'/g

per modificare il PATH corrente aggiungendo il percorso /usr/pgsql-9.0/bin

PATH=$PATH:new_folder_contain_binaries

PATH=$PATH:/usr/pgsql-9.0/bin
o
export PATH=$PATH:/usr/pgsql-9.0/bin

l’espressione $PATH, davanti al nuovo percorso, richiama i precedenti percorsi, consentendo di trattenere i percorsi preesisteti.

Impostare $PATH a livello di terminale,  shell di tipo bash, sh o altro, rappresenta una modifica temporanea del path che avrà validità solo per la corrente sessione.

Aggiungere un percorso a PATH permanentemente per singolo utente

Se si desidera che la modifica alla varibaile PATH venga conservata anche dopo un reboot è necessario modificare  i files del tipo :

~/.bashrc (per Bash shell)
~/.profile(per KSH shell )

export PATH=$PATH:/usr/pgsql-9.0/bin

per attivare le modifiche è necessario utilizzare il comando source:

source ~/.bashrc
o
source ~/.profile

Aggiungere un percorso a PATH permanentemente per tutti gli utenti

I punti in cui agire sono nel dir /etc/

bash.bashrc
profile
environment

La soluzione preferibile:
creare un file di tipo .sh  (new-path-script.sh) in /etc/profile.d con un contenuto del tipo

PATH=new-dir-da-aggiungere:$PATH
export PATH

quindi rendiamo il file .sh creato eseguibile con

sudo chmod a+x /etc/profile.d/new-path-script.sh

oppure
aggiungere alla fine del file /etc/profile

PATH=new-dir-da-aggiungere:$PATH

oppure
modificare

/etc/environment

links:

command line – How to add a directory to my path? – Ask Ubuntu

Annunci

Determinare la dimensione delle directory in linux

du è il comando per determinare la dimensione di una directory in Linux

la forma base di du command è

du /dir/da/calcolare

le sue opzioni più interessanti

du -hc ## con somma totale è fomato (KB,MB.GB )

Per avere la dimensione del primo livello di sottodirectories

du -sm  ./* | sort -nr

se è supportata l’opzione -d

du -h  -d 1

-m ## dimensione in MB

Per la dimensione delle directories del filesystem ordinate e in MB

sudo du -sm  /[^p]* | sort -nr

Se si desiderano exludere i file system esterni ( -x) e limitare alle prime 15 dir.

sudo du -sxm  /[^p]* | sort -nr   | head -n 15

per determinare le dimensioni dellahome inluce le directory nascoste.

du -sm * .[^.]* | sort -nr   | head -n 15

.[^.]* dir nascoste

se è supportato -d

sudo du  -m -d 1  /  |  sort -nr

du opzioni

du --help
Usage: du [OPTION]... [FILE]...
  or:  du [OPTION]... --files0-from=F
Summarise disk usage of each FILE, recursively for directories.

Mandatory arguments to long options are mandatory for short options too.
  -0, --null            end each output line with NUL, not newline
  -a, --all             write counts for all files, not just directories
      --apparent-size   print apparent sizes, rather than disk usage; although
                          the apparent size is usually smaller, it may be
                          larger due to holes in ('sparse') files, internal
                          fragmentation, indirect blocks, and the like
  -B, --block-size=SIZE  scale sizes by SIZE before printing them; e.g.,
                           '-BM' prints sizes in units of 1,048,576 bytes;
                           see SIZE format below
  -b, --bytes           equivalent to '--apparent-size --block-size=1'
  -c, --total           produce a grand total
  -D, --dereference-args  dereference only symlinks that are listed on the
                          command line
  -d, --max-depth=N     print the total for a directory (or file, with --all)
                          only if it is N or fewer levels below the command
                          line argument;  --max-depth=0 is the same as
                          --summarize
      --files0-from=F   summarise disk usage of the
                          NUL-terminated file names specified in file F;
                          if F is -, then read names from standard input
  -H                    equivalent to --dereference-args (-D)
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
      --inodes          list inode usage information instead of block usage
  -k                    like --block-size=1K
  -L, --dereference     dereference all symbolic links
  -l, --count-links     count sizes many times if hard linked
  -m                    like --block-size=1M
  -P, --no-dereference  don't follow any symbolic links (this is the default)
  -S, --separate-dirs   for directories do not include size of subdirectories
      --si              like -h, but use powers of 1000 not 1024
  -s, --summarize       display only a total for each argument
  -t, --threshold=SIZE  exclude entries smaller than SIZE if positive,
                          or entries greater than SIZE if negative
      --time            show time of the last modification of any file in the
                          directory, or any of its subdirectories
      --time=WORD       show time as WORD instead of modification time:
                          atime, access, use, ctime or status
      --time-style=STYLE  show times using STYLE, which can be:
                            full-iso, long-iso, iso, or +FORMAT;
                            FORMAT is interpreted like in 'date'
  -X, --exclude-from=FILE  exclude files that match any pattern in FILE
      --exclude=PATTERN    exclude files that match PATTERN
  -x, --one-file-system    skip directories on different file systems
      --help     display this help and exit
      --version  output version information and exit