Chercher une string dans les fichiers d’un répertoire de manière récursive

1
2
3
4
5
grep -r "password" ~/Dev

i stands for ignore case.
r ou R stands for recursive.
l stands for "show the file name, not the result itself".

Alternative: utiliser ack (https://beyondgrep.com/install/)
$ ack "http://" ~/Dev/

Autre alternative: utiliser ag (https://github.com/ggreer/the_silver_searcher)
$ ag "password" ~/Dev

Liste des ports par défaut des utilitaires de base

1
vi /etc/services

Ajouter/ Retirer un groupe à un utilisateur

1
gpasswd –d group user

Ajouter un nouvel utilisateur sans droit de login

1
useradd –s /sbin/nologin user

Si useradd/adduser ne fonctionne pas, il est possible de créer un utilisateur manuellement:

  • Ajouter une entrée pour l’utilisateur dans /etc/passwd
  • Idem dans le fichier /etc/group
  • Créer le répertoire home de l’utilisateur
  • Créer le password pour l’utilisateur avec passwd

Voir toutes les variables d’environnement du système

1
env

Rediriger STDOUT and STDERR en Bash

1
2
3
4
Rediriger STDOUT vers un fichier en ajoutant > entre les commandes. 
Rediriger STDOUT vers une autre commande STDIN en ajoutant | entre les commandes.
Rediriger STDERR vers un fichier en ajoutant 2> entre les commandes.
Rediriger STDERR vers STDOUT en ajoutant 2>&1 entre les commandes.

Dupliquer un flux de données

Utiliser la commande tee

1
ifconfig -a | tee net.txt

Exemple:
Faire tourner un script Bash et à la fois voir son output dans le terminal et l’enregistrer dans une fichier:

1
bash_script 2>&1 | tee bash_script.log

Retourner les premières lignes d’un fichier

1
2
head fichier
# inverse de tail
  • Symlinks point to another file by name, if you change the contents of the file, but not the name it will point to the file with new content. If you remove the source or change the name to it, the symlink it no longer works.

  • Hardlinks point to the file by inode number, if you modify the file name or even delete it still works until every hard link to it is removed.

An inodeis a data structure used to represent a filesystem object. Lots of fields are stored in an inode ex: Inode number, direct/indirect disk blocks, number of blocks, change and modification time, File deletiontime, size, type, group, owner, permissions, etc.

Forcer un check filesystem lors du prochain reboot

1
touch /forcefsck

Voir les ports utilisés par les process

1
netstat -tulpn

Utiliser une machine comme router entre 2 subnets

1
echo "1" > /proc/sys/net/ipv4/ip_forward

Différence entre un process et thread?

Threads sont utilisées pour des petites tâches alors que les process sont utilisés par des tâches plus “lourdes” comme l’exécution d’applications.

Différence entre exec and fork?

Fork duplique le process actuel.
Exec exécutes un process en utilisant l’executable cible et vous n’avez pas 2 processes qui font tourner le même code ou qui hérite du même état.

Différence entre les 2 commandes ?

1
2
omyvar=helloo
export myvar=hello
  • 1er cas: omyvar est restreint uniquement au shell
  • 2ème cas: exporter la variable la rend accessible à n’importe quel process

Limiter la mémoire utilisée par un process

Soit en utilisant ulimit pour un changement temporaire ou sysctl -a pour un changement permanent

Voir les logs system (systemd)

1
journalctl -f

Voir les logs system et filtrer

1
journalctl -f -u le_filtre

Nettoyer les logs de plus de 2 jours (systemd)

1
journalctl --vacuum-time=2d

Ne garder que 500 Mo de logs (systemd)

1
journalctl --vacuum-size=500M

Montage/Démontage NFS

1
2
3
4
5
# Montage
mount -t nfs SERVER:MONTAGE_SUR_BAIE ./dossier_local/

# Démontage
umount ./dossier_local

Afficher les paramètres kernel configurés dans /etc/sysctl.conf

1
sysctl -p

Afficher les erreurs kernel en mode readable

1
dmesg -T

Debug réseau avec TCPdump

Ouvrir dans 1er terminal:

1
2
3
4
5
6
7
tcpdump -vnni any host dns_a_filtrer

tcpdump -vnni any port 5000

tcpdump -vnni any not dst net 192.168.0.1/8

tcpdump -vnni eth0 not dst net 192.168.0.1/8

Dans un second terminal:

1
2
3
4
5
ping dns_a_filtrer

docker pull dns_a_filtrer

curl dns_a_filtrer

Monitoring (simple) de host

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# IO par disque
sar -d

# Etat des IO disque
sar -b

# Etat du Swap
sar -W

# Etat de la mémoire
sar -r

# Etat du CPU
sar -u

# All
sar -A

Copier tout un dossier et gérer les IO Errors

Workaround:

1
rsync -auv --delete --ignore-errors /Volumes/Olivier/* /Volumes/LaCie/

Redhat

Lister les services

1
systemctl list-units --type=service

Systemd et cgroup

image

Source: Wikipédia

Linux Filesystem Hierarchy

image

Source: Wikipédia