TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Container tasks examplesTo keep in mind:Example for the generate, folder and linger: # man podman-generate-systemd Build a container 1| Use the URL http://classroom.example.com/Containerfile to build the container image with the name “web”| Build it in ~/mycontainer as harry user.| Do not modify the container file. Connect to Harry user and create the /mycontainer directory: $ mkdir ~/mycontainer
[ CATEGORIE ] : Linux
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure LVMTo keep in mind: Création de partition LVM Création de PV (pour chaque partition) Création de VG (Englobant 1 ou plusieurs PV) Création de LV (Faisant partie d’un VG) Formatage du LV dans un système de fichier Création de répertoires pour monter les LV (1 LV = 1 Répertoire) Rendre persistant dans /etc/fstab Les PV:Un simple fdisk pour partitionner, ajouter le type (t) lvm: # fdisk /d
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm SELinux task examplesTo keep in mind. Context: # cat /etc/selinux/config // Edit context - permanent Web site: # vim /etc/httpd/conf/httpd.conf // Change document root if needed# systemctl enable httpd.service --now# systemctl reload httpd.service # man semanage-fcontext# semanage fcontext -a -t httpd_sys_content_t "/myBlog(/.*)?"# restorecon -R -v /myBlog Users di
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Swap partition tasks examplesDon’t forget # mkswap /dev/sdb1# swapom /dev/sdb1 And in fstab: UUID=29ee03a0-196a-42cd-986f-4560097c9764 swap swap defaults 0 0UUID=fe0b8dff-238d-4748-8e16-c576c4c0b8be swap swap pri=42 0 0 Create a swap partition 1Create a swap partition of 512MB at /dev/sdb, with a persistent prioity of 20. # free -m # fdisk /dev/sdb/ // g, n, +512M, t, swap, w# partprobe# lsb
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Default target tasks examplesDefault target 1| Set the default target to boot into X Window level (previously level 5). It is simple task configuring systemd properly: # systemctl set-default graphical.target We can also check if it succeeded with: # systemctl get-default Additional comment: Here is the list of all targets in systemd: 0 poweroff.target 1 rescue.target 2 multi-user.targe
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure autofs task examplesAlways: # dnf install nfs-utils autofs -y # systemctl enable autofs --now# systemctl restart autofs Configure autofs 1| Configure autofs to automount the home directories of netuserX user.| Note theFollowing:| - netuserX home directory is exported via NFS, which is available on classroom.example.com(192.168.1.43)| and your NFS-exports directory is /netdir/netuserX for
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage FirewallMaybe very hard to memorize, so, if needed : # firewall-cmd -h | grep <pattern># firewall-cmd --<TAB> Then ALREADY RELOAD THE CONFIG for APPLY CHANGES: # firewall-cmd --reload Manage Firewall Example 1| Refuse domain 172.25.0.0/16 to access the server. # firewall-cmd --zone=block --add-source=172.25.0.0/16 --permanent# firewall-cmd --reload Manage Firewall Example 2| Rem
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Repository task examplesCreate a repository 1| Add new repositories :| - http://classroom.example.com/rhel8.0/x86_64/dvd/AppStream| - http://classroom.example.com/rhel8.0/x86_64/dvd/BaseOS Do it in console (not remote), if there is no ip or hostname assigned to take remote connectivity. You can do that: # dnf config-manager --add-repo http://classroom.example.com/rhel8.0/x86_64/dvd/AppStream# dnf c
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Script bash tasks examplesScript bash 1| Create a script file:| - if the paramater is “GM” it outputs “good morning”| - if it is “GN”, it outputs “good night” #!/bin/bash# Vérifie si exactement un argument est fourniif [ $# != 1 ]; then echo "Erreur : Ce script nécessite exactement un argument (GM ou GN)." exit 1fi# Vérifie la valeur de l'argumentif [ "$1" = "GM&quo
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage Root PasswordManage Root Password 1SUPPRIMER TOUTES DIRECTIVES console=... puis Ctrl-X. Ajouter init=/bin/bash dans la console de grub On doit obtenir un prompt # en bas d’écran, pensez à taper sur entrée au cas où le terminal soit rempli de messages console.Si l’écran reste noir, vous avez laissé traîner des console=, c’est vrai aussi avec rd.break. # mount -o remount /# /sbin/load_polic
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Users, groups and group memberships tasks examplesCreate users, groups and group memberships 1| Create the following users, groups and group memberships:| - A group named admin.| - A user harry who belongs to admin as a secondary group.| - A user natasha who belongs to admin as a secondary group.| - A user sarah who doesn’t have access to an interactive shell and who’s not a member of admin.| - Th
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage JournaldConfigure Journald 1| Configure journald to persist between reboots # vim /etc/systemd/journald.conf#Storage=autoStorage=persistent Apply (Seems you need to reboot to seen logs in /var/log/journal): # systemctl restart systemd-journald.service Then verify with journalctl after reboot (1 for 1rst reboot, 2 for second, etc.q): # journalctl -b 1 From man journald.conf: Storage=Cont
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure TunedTo keep in mind. If necessary: # yum install tuned -y # systemctl start tuned# systemctl enable tuned To manage tuned, you must use tuned-adm: # tuned-adm <TAB> Configure Tuned 1| Set the recommended tuned profile for your system. # tuned-adm recommend# tuned-adm profile virtual-guest // or whatever profile that it recommends Verify: # tuned-adm active Configure Tuned 2| set
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure NTPTo keep in mind. If necessary: # yum install chrony -y # systemctl restart chronyd.service# systemctl enable chronyd.service --now # vim /etc/chrony.conf Configure NTP 1| Configure your system so that it is an NTP pool of 2.centos.pool.ntp.org NTP is a service that is using chrony deamon. It should be already installed in the system but it does not cost You to issue: # yum install -y
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage FindTo keep in mind.Execute a simply find command in order to display the result in the terminal: # find / -user harry If it seems ok, you can use exec <cmd> {} <target> \; after: # find / -user harry -exec cp -rf {} /root/find.user \; Manage Find 1| Find all files owned by harry and copy them to /root/find.user| Find files (not subdirectories) owner by user
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Cron job tasksTo keep in mind: # systemctl status crond.service# systemctl enable crond.service# systemcdl restart crond.service Fin the full path by using the which command and use it in the crontab: # which <cmd> Exemple: # which echo/usr/bin/echo Files to check: # cat /var/log/cron // it shows list of cronjobs# cat /etc/crontab // it shows how cronjob works Cron job 1| Set a Cron
TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage networkingManage networking Example 1| Assign hostname and ip address for your virtual machine.| - Hostname: servera.lab.example.com| - Ip address: 192.168.1.42| - Mask: 255.255.255.0| - Gateway: 192.168.1.1| - NameServer: 192.68.1.200 On console (not remote console) : # hostnamectl set-hostname servera.lab.example.com# hostnamectl Note the interface with the ethernet type: # nmcli connectio
Pour créer un fichier avec une date de type 2023-11-29-22-13-37 : # touch /MonDossier/monFichier-$(date +%Y-%m-%d-%H-%M-%S).txt
Rechercher des dossiers dans une arboressence en précisant la profondeur : # find / -maxdepth 12 -type d -name "MonRepertoireImportant"/etc/MonRepertoireImportant/usr/MonRepertoireImportant/exports/volume42/licences/usr/MonRepertoireImportant/exports/volume42/usr/MonRepertoireImportant DocumentationMAN find
Si vous avez un fichier avec des informations qui vous interessent sur plusieurs lignes et que vous souhaitez une sortie sur une seule vous pouvez utiliser la commande awk. Exemple de fichier : [...]HOST: serv01.my.company.org [Linux]---------- Comment: Backup MasterUse : A B C[...]HOST: serv02.my.company.org [Linux]---------- Comment: Hyper MasterUse : A B C D[...]HOST: serv03.my.company.org [Linux]---------- Comment: Super MasterUse : A C[...] Commande awk : awk
Pour lister tous les liens en dur, la commande awk permet de lister les mêmes inodes en récupérant le champs %i de stat : stat -c '%i %n' * | awk 'Doublon[$1]++' | cut -d ' ' -f 2- En inversant la commande, uniquement tous les liens symboliques peuvent être listés, (mais ainsi que les répertoires et les fichiers, qui ont leur unique inode): stat -c '%i %n' * | awk '!Doublon[$1]++' | cut -d ' ' -f 2- Résumé : HardLink SoftLink Ac
Commandes de base pour diagnostiquer un problème réseau en effectuant les tests préliminaires : # ssh <nomhôte ou adresseIP># ping <nomhôte ou adresseIP># tracert <nomhôte ou adresseIP># dig <nomhôte ou adresseIP> La commande dig envoie l‘@IP du serveur, pinger le serveur pour vérifier.
La commande bang bang ou !! permet d’exécuter la dernière commande tapée dans le terminal. Il est également possible de préciser un nombre !n ou n correspond à la ligne dans l’historique (voir commande history) Pour lancer la dernière commande : # !! Pour lancer la commande n°42 (voir son historique): # !42 Remerciements midorino3142 Merci à midorino3142 pour ce TIL !
Pour remplacer plusieurs mots (ou bouts de mots) sous Vim, on utilise g, s et %s : Toutes les occurences : :%s/texte/Nouveau/g Une seule (la 1ère trouvée) : :s/texte/Nouveau/g Exemple : changer le mot corbeau en corbeille sans toucher aux autres mots (comme beau) :g/corbeau/s/beau/beille/g Exemple : changer les espaces en tab ou inversement (mettre le bon nombre d’espaces) :%s/ /\t/g:%s/\t/ /g Et si vous avez fait un gros mistake, utiliser :u autant de fois que nécessaire.
Commande pour supprimer tous les processus d’un utilisateur en particulier : # ps aux | grep "^usename" | awk '{print $2}' | xargs kill -9 Détails : ps aux : liste tous les processus grep "^usename" : liste uniquement les lignes commençant par username awk '{print $2}' : Récupère la 2ème colonne (où se trouve le PID des processus) xargs kill -9 : Met les PID sous forme de ligne (avant en colonne) et exécute un kill
Pour trouver la ligne la plus fréquentes dans un fichier : # cat file | sort | uniq -c | sort -n | tail -1
Si vous voulez changer les droits et supprimer tous les dossiers du répertoire /John qui commencent par “test” et finissent par “.bdr” : # find /home/John/ -type d -name "test*.bdr" -exec sh -c 'chmod u+w {}/* ; rm -f {}/*' \; VérificationEn cas de doute, vous pouvez simplement lancer le début de la commande, find listera tous les fichiers qui seront modifiés et supprimés avec chmod et rm -f: # find /home/John/ -type d -name "test*.bdr" Décompo
La commande printenv peut être utilisée pour répertorier toutes les variables d’environnement sur le système, certaines de ces valeurs changent en fonction de l’utilisateur connecté. Pour afficher toutes les variables d’environnement : # printenv Exemple de sortie : SHELL=/bin/bashPWD=/rootLOGNAME=alineXDG_SESSION_TYPE=ttyMOTD_SHOWN=pamHOME=/rootLANG=fr_FR.UTF-8LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:
Pour changer des droits en fonction d’un répertoire ou d’un fichier en parcourant une arboressence : UtilisationManuelDéfinition dans les manuels : xargs — build and execute command lines from standard input exec — execute commands and open, close, or copy file descriptors Find et execLa commande find couplée à exec : # find <path> -type d -exec chmod 755 {} \;# find <path> -type f -exec chmod 644 {} \; Son équivalent avec les droits rxw : # find <path>
Le caractère * permet de selectionner tous les fichiers dans un répertoire mais un message d’erreur peut apparaitre : ls: cannot access *: No such file or directory. La plupart du temps cette erreur, malgré la connexion en root, peut être dûe au fait que le volume sur lequel on accèdent soit partagé, ou sous couvert de NetApp par exemple. $ sudo ls /<path>/*ls: cannot access *: No such file or directory Autre exemple : $ grep "word" /<path>/*grep: *.*: No such file or direc
Pour chercher les numéros de série des disques durs : # smartctl -a # hwinfo -disk # hwinfo -wlan # hwinfo -monitor # hwinfo -partition # hwinfo -pci # hwinfo -scsi # demidecode # cat /proc/dma # lshw -short # lspci -t # lspci -v # lspci -vv # lspci -s
Commande très triviale mais on oublie facilement comment la lancer… Les 3 façons d’éxécuter un .bashrcPour lancer un fichier bash dans un autre répertoire, ici c’est le fichier bash.bashrc :(Bien penser à mettre le point “.“) # . /etc/bash.bashrc Pour lancer un fichier bash dans le répertoire courant, ici c’esr le fichier .bashrc :(Bien penser à mettre le point “.“ et le tilde “~“) # . ~/.bashrc Il également possible d’utiliser la commande source, qui exécute des commandes (ici celles conte
Commande rapide pour savoir sous quelle architecture on se trouve sous Linux # uname -m Si la commande renvoie x86_64 c’est du 64 bitsSi la commande renvoie i686 ou i386 c’est du 32 bits