El numero 1 (programes), 5 (archius) permet seleccionar la tipologia de la cerca
man NUMERO_DE_TIPUS passwd
Filtrar documentacio per usuaris(La mateixa comanda apropos)
man -k users
Text de resum per saber que fa la comanda(La mateixa comanda whatis)
man -f users
Arreglar comandes llargues (Fix Command). Li pots donar el numero de la comanda del historial que vols modificar.
fc
Sistema modernet:
tldr grep
Pintar la sortida:
echo hola
echo $?
false
echo $?
Executa un darrera de l'altre.
echo hola; echo hola
Executa un darrera de l'altre si el primer acaba be.
echo hola && echo adeu
false; echo adios
false && echo adios
Si un no s'executa, ho fa l'altre. Un OR.
false || echo adios
Pipes(Tuberies):
ls -1 | wc -l
ls | xargs -I_ ls _
Enviant sortides a altres documents:
echo "Hola Mon" > archiu
echo "Adeu" >> archiu
grep o < archiu
Variables:
nom_variable="hola"
echo $nom_variable
export $NOM_GLOBAL="adeu"
echo $ADEU
Alias
alias px="ps aux"
Funcions
function hola {
local -r primer_argument=$1 # Aixo mante el scope
echo "Aquest es el primer agument: $primer_argument"
}
Formes diferents de fer funcions:
#!/bin/bash
my_function () {
echo "some result"
return 55
}
my_function
echo $?
Referencies interessants funcions: https://linuxize.com/post/bash-functions/
Multiples inputs
mkdir hola deu
ls -1
mkdir "hola adeu"
ls -1
Secuencia per iterar del 1 al 10:
seq 1 10
Iteracio for
for x in $(seq 1 10); do
echo "Num $x"
done
Iteracio while
while true
do
echo "Hola"
done
Condicions
if true
then
echo "hola"
fi
if false; then echo "aaaaa"; fi
if [-a archiu]; then echo "Exsiteix"; fi
if ((4 > 3)); then echo "Si es mes gran"; fi
if ./executable; then echo "tot be"; fi # Fara el echo del output
if ./executable > /dev/null; then echo "tot be"; fi # output redireccionat a devnull
if ./executable
then
echo "tot be"
else
echo "tot malament"
fi # Fara el echo del output
La sortida 1 es la sortida de consola normal. La sortida 2 es la sortida d'errors. Amb "2>&1" es redirigeix la sortia d'errors per la sortida 1 que va a parar a /dev/null.
if ./executable > /dev/null 2>&1 ;then
echo "tot be"
else
echo "tot malament"
fi
head archiu
head -n1 archiu
head -3 archiu
head -3 *.log
head -3 -q *.log # No apareix noms dels fichers
tails
tails -n1 archiu
tails -2 archiu
more
Molt mes potent que more. Funciona com vi.
less
cat archiu1 archiu2
Visualitzar les lineas del document:
cat -n archiu
- -c amb , es per seleccionar els caracters
- -c amb - es per seleccionar rangs
- -d es per tallar per elements, despres es pot seleccionar els elements amb -f
cut -c1,2,3 /etc/passwd
cut -c1,3 /etc/passwd
cut -c3-10 /etc/passwd
cut -d":" -f1 /etc/passwd
cut -d":" -f1,2 /etc/passwd
cut -d":" -f1-4 /etc/passwd
Grep normal i invers:
cat hola | grep a
cat hola | grep -v a # Invers
cat hola | grep -i a # Case sensitive
grep -r hola # grep recursiu als documetns
ls | grep -E "^D.*s$" # Regex D principi s final
Filtrant AWK
ps aux | grep -i node | grep -v grep | awk '{print $2}'
ps aux | grep -i node | grep -v grep | awk '{print $1}'
ps aux | grep -i node | grep -v grep | awk '{print $2}' | xargs kill -9
cat archiu.cvs | awk -F ',' '{print $2}' # Tallant per coma
grep 1 < archiu.cvs | awk -F ',' '{print $2}' # Filtrant i tallant per coma
cat archiu.cvs | awk -F ',' '{print $1-$2}'
cat archiu.cvs | awk -F ',' '{print $1" "$2}'
Fzf
ls | fzf
variable_resultant=$(ls | fzf) # Posar el valor de la seleccio al
ps aux |grep -v grep | fzf | awk '{print $2}' | xargs kill -9
Localitzar binaris de comandes:
which git
which -a git # multiples documents
command -v git
Localitzar archius:
locate wifi.log
Buscar ultima comanda executada:
!!
!echo
Per posar en background usar &
sleep 100 &
sleep 100 > /dev/null &
jobs
Control-Z per posar en pausa i "bg" per posar en background
Es pot posar el numero que vols posar en bg. Sempre s'usa el %
bg %1
Recuperar del background. (Foreground)
fg %1
Tips:
if (($(date +%s) % 2 )); then
echo is odd
exit 0
else
>&2 echo "is even"
exit 1
fi
- -v per verbose
- -c compacta
- -x expandeix
- -t mostra informacio que conte un tar
- -f escriu o llegeix un ficher
- -z comprimeix gunzip
- -j comprimeix bzip2
- -J comprimeix xz
- -r afegir un ficher al pack compactat(no comprimit)
- -P utilitza rutes absolutes
- -p preserva els permisos / usuaris dels documents originals
- -N compacta els elements a partir de la data solicitada
- -d copia incremental
tar -cf archiu.tar /documents
tar -xf archiu.tar
tar -cf archiu.tar /documents /documents2 /documents3
tar -xfz archiu.tar.gz
tar -cfN 2016-04-02 archiu.tar /documents
tar -xfj archiu.tar.bz2
Per comprimir i deixar el archiu original -k
Al comprimir el document original desapareix.
Descomprimir s'utilitza -d
- gzip : gunzip
- bzip : bunzip2
- xz : unxz
Comanda per revisar i si els archius de bash estan ben fets.