Difference between revisions of "BASH"
From Alessandro's Wiki
(Reverted edits by Ypebezimyx (Talk) to last version by 127.0.0.1) |
|||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
*; Bourne Again SHell (Bash) | |||
Bourne Again SHell (Bash) | |||
* interprete comandi Linux/Unix | * interprete comandi Linux/Unix | ||
| Line 62: | Line 13: | ||
comando 2>&1 | tee /tmp/comando_output.txt | comando 2>&1 | tee /tmp/comando_output.txt | ||
== | == mist used shell commands == | ||
tac:: Reverse lines of files | tac:: Reverse lines of files | ||
cat -n:: Numbering lines | cat -n:: Numbering lines | ||
| Line 86: | Line 37: | ||
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' | alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' | ||
alias zombie='ssh -X root@zombie' | alias zombie='ssh -X root@zombie' | ||
== Grep == | |||
greppare tra due linee di cui si conosce il testo: (univoco) | greppare tra due linee di cui si conosce il testo: (univoco) | ||
start=`ffmpeg -formats 2>/dev/null |grep -n '^Codecs:'|awk -F":" '{print $1}'`; | start=`ffmpeg -formats 2>/dev/null |grep -n '^Codecs:'|awk -F":" '{print $1}'`; | ||
| Line 95: | Line 48: | ||
echo $end; | echo $end; | ||
ffmpeg -formats 2>/dev/null|head -${stop}|tail -${end} | ffmpeg -formats 2>/dev/null|head -${stop}|tail -${end} | ||
== permissions! == | |||
* change only ''Directory'' permissions from current directory | |||
find . -type d -exec chmod 775 {} \; | |||
* change only ''File'' permissions from current directory. | |||
find . -type f -exec chmod 664 {} \; | |||
* add a user to a group (appending) | |||
usermod -a -G agroup auser | |||
== Redirection == | |||
2>&1 | |||
# Redirige lo stderr allo stdout. | |||
# I messaggi d'errore vengono visualizzati a video, ma come stdout. | |||
i>&j | |||
# Redirige il descrittore di file i in j. | |||
# Tutti gli output del file puntato da i vengono inviati al file | |||
#+ puntato da j. | |||
>&j | |||
# Redirige, per default, il descrittore di file 1 (lo stdout) in j. 81 # Tutti gli stdout vengono inviati al file puntato da j. | |||
0< NOMEFILE | |||
< NOMEFILE | |||
# Riceve l'input da un file. | |||
# È il compagno di ">" e vengono spesso usati insieme. | |||
# | |||
# grep parola-da-cercare <nomefile | |||
[j]<>nomefile | |||
# Apre il file "nomefile" in lettura e scrittura, e gli assegna il | |||
#+ descrittore di file "j". | |||
# Se il file "nomefile" non esiste, lo crea. | |||
# Se il descrittore di file "j" non viene specificato, si assume per | |||
#+ default il df 0, lo stdin. | |||
# | |||
# Una sua applicazione è quella di scrivere in un punto specifico | |||
#+ all'interno di un file. | |||
echo 1234567890 > File # Scrive la stringa in "File". | |||
exec 3<> File # Apre "File" e gli assegna il df 3. | |||
read -n 4 <&3 # Legge solo 4 caratteri. | |||
echo -n . >&3 # Scrive il punto decimale dopo i | |||
#+ caratteri letti. | |||
exec 3>&- # Chiude il df 3. | |||
cat File # ==> 1234.67890 | |||
# È l'accesso casuale, diamine. | |||
# Pipe. | |||
# Strumento generico per concatenare processi e comandi. | |||
# Simile a ">", ma con effetti più generali. | |||
# Utile per concatenare comandi, script, file e programmi. | |||
cat *.txt | sort | uniq > file-finale | |||
# Ordina gli output di tutti i file .txt e cancella le righe doppie, | |||
# infine salva il risultato in "file-finale". | |||
Revision as of 09:08, 6 March 2011
- Bourne Again SHell (Bash)
- interprete comandi Linux/Unix
Rinominare tutti i files/dirs to Title case, capitalize, first character-letter upper case (maiuscole)
for a in *; do echo "$a"; mv "$a" "`echo "$a" | ruby -n -e 'puts $_.capitalize'`" ; done
- Lista solo le directory
ls -d */.
- Ridirezionare Std Output & Std Error in un file:
comando 2>&1 | tee /tmp/comando_output.txt
mist used shell commands
tac:: Reverse lines of files cat -n:: Numbering lines cat -b:: Numbering non-blank lines wc -c:: Counting chars wc -w:: Counting words wc -l:: Counting lines head:: Printing the first lines tail:: Printing the last lines uniq:: Make duplicate lines unique uniq -d:: Print duplicated lines of input uniq -u:: Remove all duplicated lines cat -s:: Squeezing blank lines
- Aliases
Un alias serve per associare a un comando una serie di comandi e parametri come segue:
[xunil@elwood games]$ alias alias k1='kill -9 %1' alias l.='ls -d .* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' alias zombie='ssh -X root@zombie'
Grep
greppare tra due linee di cui si conosce il testo: (univoco)
start=`ffmpeg -formats 2>/dev/null |grep -n '^Codecs:'|awk -F":" '{print $1}'`;
echo $start;
stop=`ffmpeg -formats 2>/dev/null|grep -n '^Supported file protocols:'|awk -F":" '{print $1}'`;
echo $stop ;
let end=${stop}-${start};
echo $end;
ffmpeg -formats 2>/dev/null|head -${stop}|tail -${end}
permissions!
- change only Directory permissions from current directory
find . -type d -exec chmod 775 {} \;
- change only File permissions from current directory.
find . -type f -exec chmod 664 {} \;
- add a user to a group (appending)
usermod -a -G agroup auser
Redirection
2>&1
# Redirige lo stderr allo stdout.
# I messaggi d'errore vengono visualizzati a video, ma come stdout.
i>&j
# Redirige il descrittore di file i in j.
# Tutti gli output del file puntato da i vengono inviati al file
#+ puntato da j.
>&j
# Redirige, per default, il descrittore di file 1 (lo stdout) in j. 81 # Tutti gli stdout vengono inviati al file puntato da j.
0< NOMEFILE
< NOMEFILE
# Riceve l'input da un file.
# È il compagno di ">" e vengono spesso usati insieme.
#
# grep parola-da-cercare <nomefile
[j]<>nomefile
# Apre il file "nomefile" in lettura e scrittura, e gli assegna il
#+ descrittore di file "j".
# Se il file "nomefile" non esiste, lo crea.
# Se il descrittore di file "j" non viene specificato, si assume per
#+ default il df 0, lo stdin.
#
# Una sua applicazione è quella di scrivere in un punto specifico
#+ all'interno di un file.
echo 1234567890 > File # Scrive la stringa in "File".
exec 3<> File # Apre "File" e gli assegna il df 3.
read -n 4 <&3 # Legge solo 4 caratteri.
echo -n . >&3 # Scrive il punto decimale dopo i
#+ caratteri letti.
exec 3>&- # Chiude il df 3.
cat File # ==> 1234.67890
# È l'accesso casuale, diamine.
# Pipe.
# Strumento generico per concatenare processi e comandi.
# Simile a ">", ma con effetti più generali.
# Utile per concatenare comandi, script, file e programmi.
cat *.txt | sort | uniq > file-finale
# Ordina gli output di tutti i file .txt e cancella le righe doppie,
# infine salva il risultato in "file-finale".