Memo Linux

la commande ultime : man

Naviguer dans les répertoires

commande action
pwd affiche le répertoire courant
cd rep se place dans le répertoire rep
cd se place dans le répertoire de l’utilisateur ~/
cd .. se place dans le répertoire parent
ls rep liste les fichiers du répertoire rep
ls -a liste avec les fichiers cachés
ls -l liste avec les droits d’accès et la taille

Actions sur les fichiers/dossiers

commande action
mv source cible deplace le fichier source vers cible
cp source cible copie le fichier source vers cible
cp -R source cible copie le répertoire source vers cible
ln source lien créer un lien fort de source vers lien
ln -s source lien créer un lien symbolique de source vers lien
touch file créer le fichier file ou met à jour sa date de modification
mkdir rep créer un repertoire rep
mkdir -p rep/rep2 mkdir avec création des dossiers parents si nécessaire
rm file supprime le fichier file
rm -f file supprime le fichier file protégé en écriture
rmdir rep supprimer un répertoire vide
rm -R rep supprime un répertoire
du -h file ou rep affiche la taille du fichier file ou du répertoire rep

Afficher/Comparer les fichiers

commande action
wc fichier compte le nombre de lignes, de mots, d’octets de fichier
cat fichiers concatène les fichiers
more fichier affiche fichier page après page. ‘Espace’=page suivante, ‘Entrée’=ligne suivante, ‘u’=remonter
less fichier affiche fichier avec une navigation Left/Right/Up/Down/PageUp/PageDown
head -n x fichier affiche les x premières lignes de fichier
tail -n x fichier affiche les x dernières lignes de fichier
tail -f fichier affiche la dernière ligne de fichier au fur et à mesure qu’il se remplit
diff file1 file2 affiche les différences entre deux fichiers texte
diff -u file1 file2 affiche les différences au format utilisé par patch
comp file1 file2 compare deux fichiers binaires
comp file1 file2 n N compare deux fichiers, file1 à partir du nième octet, et file2 à partir du Nième

Utilisateurs

commande action
whoami affiche le login de l’utilisateur
who affiche les utilisateurs connectés
id afficher les uid, gid et groupes de l’utilisateur
id user afficher les uid, gid et groupes de user (root only)
finger user affiche les informations de user
write user afficher un message sur le terminal de user
tty afficher le nom de son terminal
su – sudo passer en mode administrateur, super-utilisateur
passwd changer le mot de passe de l’utilisateur courant
adduser ajouter un utilisateur
deluser supprime un utilisateur
addgroup ajoute un groupe
delgroup supprime un groupe

Processus

commande action
ps afficher les processus de l’utilisateur rattachés à un terminal
ps ax afficher tous les processus
ps aux afficher tous les processus en indiquant les utilisateurs
pstree afficher les processus dans une arborescence
top afficher un tableau de bord des processus les plus gourmands
kill signal pid tuer un processus en utilisant son pid
pkill signal nom tuer un processus en utilisant le nom du programme

signaux utilisés par kill/pkill

signal action
-1 (HUP) recharger le fichier de configuration du processus
-2 (INT) interrompre le processus
-3 (QUIT) quitter le processus
-9 (KILL) tuer le processus (à eviter, tenter -15 avant)
-15 (TERM) terminer le processus proprement
-18 (STOP) geler le processus
-20 (CONT) reprendre l’exécution d’un processus gelé

Matériel

commande action
lsusb liste les périphériques de type usb connectés
lspci liste les périphériques de type pci connectés
cat /proc/cpuinfo affiche les informations processeur
cat /proc/partitions affiche les partitions montées

exemples

commande action
lspci | egrep « 3D|Display|VGA » afficher le modèle de sa carte graphique
lspci | grep -i « net » | cut -d: -f3 afficher le modèle de sa carte Wi-fi
lspci | grep -i audio | cut -d: -f3 afficher le modèle de sa carte son

Réseau

commande action
hostname affiche le nom d’hôte de la machine
ping machine envoie un ping à une machine
traceroute machine fait un traceroute vers machine
netstat affiche l’usage du réseau pas les processus
netstat -a netstat avec l’affichage des processus serveurs
lsof liste détaillée de l’usage des fichiers et du réseau
ifconfig affiche la configuration des interfaces réseaux
ifconfig interface IP masque configure une interface réseau
route affiche la table de routage
commande action
curl ifconfig.me IP publique
ip address show eth0 | grep « inet  » | tr -s  »  » « : » | cut -d: -f3 IP locale pour eth0
/sbin/ifconfig eth0 | grep « inet  » | tr -s  »  » « : » | cut -d: -f4
ip address show eth0 | grep « inet  » | tr -s  »  » « : » | tr -s « / » « : » | cut -d: -f3

Recherche

commande/option action
locate motif recherche de fichiers dont le nom correspond au motif
updatedb mettre à jour la base de données de locate
find chemin options recherche les fichiers correspondant aux options dans chemin
find -name motif recherche sur le nom du fichier. ex: find -name ‘*.html’
find -type f/d/l recherche par type où f=fichier, d=répertoire et l=lien
find -exec cmd exécute la commande cmd à tous les fichiers trouvés

Exemple: trouver toutes les images avec l’extension png dans le dossier ‘Images’ de l’utilisateur et les copier dans le dossier tmp (‘{}’ représente les fichiers trouvés):

find $HOME/Images -name "*.png" -exec cp {} $HOME/tmp/ \;

Archives

format compression extraction
.tar.bz2, .tbz2 tar -cvjf archive.tar.bz2 repertoire tar xvjf
.tar.gz, .tgz tar -cvzf archive.tar.gz repertoire tar xvzf
.bz2 bzip2 fichiers bunzip2
.rar unrar x
.gz gzip fichiers gunzip
.tar tar -cvf archive.tar fichiers tar xvf
.zip zip -r archive.zip fichiers unzip
.Z compress fichiers uncompress
.7z 7z a fichiers 7z x
.xz xz -z repertoire unxz

Kernel

commande description
cat /proc/version détails du noyau Linux utilisé.
uname -r version du noyau utilisé.
dpkg -l | egrep « linux-(header|image) » liste les noyaux installés sur votre machine.

Magic SysRq Key

La plupart des commandes citées ci-dessous utilisent la touche
« Magic SysRq Key ».

C’est la touche « Impr écran » du clavier.

Activation / Désactivation de SysRq

Il faudra absolument que le noyau de votre Linux soit compilé avec
l’option Magic SysRq Key pour que cette touche fonctionne.

La plupart des distributions récentes l’inclut aujourd’hui.

Pour vérifier l’activation de cette touche, on effectue la commande suivante :

# cat /proc/sys/kernel/sysrq

0

Le zéro signifie que cette dernière n’a pas été activée.

Pour changer cette valeur, on effectue la commande suivante :

echo « 1″ > /proc/sys/kernel/sysrq

Pour activer la touche Magic SysRq Key au démarrage de la machine, éditer le fichier /etc/sysctl.conf et
mettre l’option sysrq à 1 :

kernel.sysrq = 1

Les commandes

  • Alt + SysRq + r : met le clavier en mode ‘raw’. Ceci est pratique
    notamment lorsque le clavier et la souris sont complètement bloqués. En
    passant sur ce mode, on peut de nouveau utiliser les touches pour saisir
    des commandes.
  • Ctrl + Alt + F1 à F6 : permet de naviguer à travers les consoles en mode texte (appelées aussi tty)
  • Ctrl + Alt + F7 : permet de retourner au mode graphique.
  • Ctrl + Alt + Backspace : arrête l’interface graphique, on pourra la relancer ensuite avec la commande startx
  • Alt + SysRq + s : écrit toutes les données en cours sur le disque dur afin d’éviter les pertes ou les corruptions de fichiers
  • Alt + SysRq + u : permet de remonter tous les systèmes de fichiers en lecture seule pour éviter la corruption de données
  • Alt + SysRq + e : tue tous les processus normalement (le processus init n’est pas concerné)
  • Alt + SysRq + i : force le kill de tous les processus (le processus init n’est pas concerné)
  • Alt + SysRq + l : même chose que la précédente, sauf que le processus init est concerné ici
  • Alt + SysRq + b : redémarre le système
  • Alt + SysRq + o : arrête le système

Note : dans la plupart des distributions, l’utilisation de la
touche SysRq n’est pas activée par défaut pour des raisons de sécurité.
En effet, quelqu’un qui aurait un accès physique à la machine, pourrait
facilement la redémarrer via une combinaison de touches et compromettre
cette dernière ensuite.

Filtrage DNS

Pour bloquer les pubs, traqueurs et sites malveillants…

  • Sur Windows

cmd en admin :

net stop dnscache
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Dnscache" /v Start /t REG_DWORD /d "4"
notepad %systemroot%\system32\drivers\etc\hosts
C:\Windows\hosts
C:\winnt\system32\drivers\etc\hosts
C:\windows\system32\drivers\etc\hosts
ipconfig /flushdns

  • Sur Linux, Unix, OS X

sudo pluma /etc/hosts

/private/etc/hosts

  • Sur Android

DNS66 sur f-droid
http://jebaird.com/2012/12/21/hosts-to-ip-host-generating-blocked-hosts-from-a-host-file-for-a-cisco-router.html
root -> /system/etc/hosts

  • Sur un réseau complet

avec la config dans le routeur

avec pi-Hole

Liste de Host

https://adaway.org/hosts.txt
http://winhelp2002.mvps.org/hosts.txt
https://hosts-file.net/ad_servers.txt
https://someonewhocares.org/hosts/hosts
https://www.malwaredomainlist.com/hostslist/hosts.txt
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext

https://sebsauvage.net/hosts/hosts

source :
winhelp2002.mvps.org/hosts.htm
sebsauvage.net/wiki/doku.php?id=dns-blocklist
firebog.net

Installation Linux Mint

Installation

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo update-manager -d

sudo add-apt-repository ppa:fossfreedom/rhythmbox-plugins && sudo add-apt-repository ppa:linrunner/tlp

sudo add-apt-repository ppa:linrunner/tlp && sudo add-apt-repository ppa:jd-team/jdownloader

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

sudo apt-get update

sudo apt-get install -y pluma chromium-browser-l10n ghex gcolor2 libreoffice-help-fr libreoffice-l10n-fr qbittorrent playonlinux steam youtube-dl filezilla youtube-dl jdownloader-installer

sudo apt-get install -y openssh-server apache2 libapache2-mod-php libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-sqlite3 php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-zip php7.0-xml sqlitebrowser sqlite mariadb-server

sudo apt-get install -y virtualbox virtualbox-qt virtualbox-ext-pack virtualbox-guest-additions-iso

sudo apt-get install -y sysv-rc-conf gufw smart-notifier gsmartcontrol ntfs-config libdvdnav4 htop p7zip-full rar arj dconf-tools gconf-editor gparted libav-tools libavcodec-extra tlp tlp-rdw firejail fail2ban fslint pigz pbzip2 geany gedit ethtool luckybackup xpad clipit numlockx ripperx powertop zram-config sudo grub-customizer

sudo apt-get install -y gimp gimp-data-extras gimp-plugin-registry gimp-texturize gimp-gap gimp-gmic optipng pngnq jpegoptim eom shutter exiv2 mint-backgrounds-* ubuntu-wallpapers-*

sudo apt-get install -y audacity rhythmbox rhythmbox-plugin-complete vlc mkvtoolnix mkvtoolnix-gui libdvd-pkg mediainfo-gui

sudo apt-get install -y ttf-liberation ttf-mscorefonts-installer ttf-ancient-fonts ttf-ubuntu-font-family ttf-dejavu ttf-dejavu-extra

sudo fc-cache -f -v

sudo tlp start

Réglages

Activer Pare-feu

Agencement du clavier > Agencements > Options > Comportement de la touche Verr. Maj > Verr. Maj active ou désactive maj., ce qui affecte toutes les touches.
Brasero : désactiver le greffon de normalisation des pistes si la gravure de cd audio ne fonctionne pas.

Astuces

Mettre en pause une application

killall -STOP firefox
killall -CONT firefox

Monter un volume automatiquement

gedit /etc/mtab

Monter le disque à l’aide d’une interface graphique.
Copier la dernière ligne qui s’est rajoutée.

sudo gedit /etc/fstab

Rajouter la ligne à la fin.

Dans le cas d’une partition ntfs, remplacer /dev/sdX /media/XXX fuseblk rw,nosuid,… par /dev/sdX /media/XXX ntfs rw,nosuid,…

Configuration des mises à jour

Ouvrir le gestionnaire de mises à jour
Menu Édition > Préférences:
Onglet “Options”:
Cocher en plus “Toujours cocher les mises à jour de sécurité”
Décocher “Toujours afficher les mises à jour du noyau”
Cocher “Ne pas suggérer l’utilisation de dépôts locaux”
Onglet “Actualisation automatique”:
1-Mettre 15 minute
2-Mettre 7 jours

 

sudo pluma /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT= »acpi_backlight=vendor »
supprimer « quiet splash »
sudo update-grub

sudo iw reg set FR
Utilisation des canaux WiFi légaux en France:
sudo pluma /etc/rc.local
ajouter : iw reg set FR (avant le exit 0)
Désactivation de l’économie d’énergie du WiFi:
sudo pluma /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
remplacer wifi.powersave = 3 par wifi.powersave = 2
Dans /etc/rc.local, ajouter la ligne iw dev wlp3s0 set power_save off (avant le exit 0)
(wlp3s0 est l’identifiant de votre interface réseau Wifi, à trouver en tapant iwconfig)

Changement des DNS:
Clic-droit sur le gestionnaire de connexion réseau
> Modification des connexions
> choisir une connexion > Modifier… > onglet Paramètres IPv4
> choisir «Adresses automatique uniquement (DHCP)» puis dans les DNS,
mettre, 80.67.169.12, 80.67.169.40 (ce sont ceux de FDN)

sudo ufw enable
sudo usermod -a -G vboxusers `whoami`

Changer l’arrière-plan du bureau, bouton Ajouter…
et sélectionnez les images présentes dans /usr/share/backgrounds/

Réduction de l’utilisation du swap :
Avec 4 Go de RAM, on a pas vraiment de raison d’utiliser le swap.
Solution 1 :
Demander au système de réduire son utilisation du swap:
sudo bash -c ‘echo « vm.swappiness=10 » >> /etc/sysctl.conf’
Rebooter pour prendre en compte, ou faire
sudo sysctl -p
Solution 2 :
Utiliser zram :
sudo apt install zram-config
Vérifiez en tapant :
cat /proc/swaps

sudo pluma /etc/default/smartmontools
start_smartd=yes
sudo service smartmontools start
gksu gsmartcontrol permet d’aller examiner les paramètres du disque dur

sudo apt autoremove

Améliorer le cache DNS (dnsmasq)
NetworkManager lance un serveur DNS local (dnsmasq) qui ne garde pas en cache les réponses DNS, mais on peut le forcer:
sudo bash -c « echo ‘cache-size=2000’ >> /etc/NetworkManager/dnsmasq.d/cache.conf »
sudo service network-manager restart

sudo sh -c « echo ‘Dir::Cache \ »\ »;\nDir::Cache::archives \ »\ »;’ >> /etc/apt/apt.conf.d/02nocache »
_________________________________________________________________________________________

Journaliser le Fstrim sur un SSD

Sur un SSD, il est necessaire de « trimmer » le disque, pour vider complètement les cases mémoire qui ne sont que marquées comme telles. Cette procédure est hebdomadaire par défaut, mais la commande suivante permet de la rendre quotidienne :

sudo mv -v /etc/cron.weekly/fstrim /etc/cron.daily
_________________________________________________________________________________________

Mettre le dossier /tmp en RAM

Les fichiers temporaires /tmp peuvent être mis en Ram pour gagner du temps en évitant des accès disque. Ceci économise aussi le disque SSD et assure une purge des fichiers à chaque redémarrage.

Ajoutez la ligne suivante sur une nouvelle ligne du Fstab, en modifiant le 512M pour changer sa taille (1000M pour 1 Go, par exemple) :
sudo pluma /etc/fstab
tmpfs /tmp tmpfs defaults,noatime,mode=1777,nosuid,size=2048M 0 0

_________________________________________________________________________________________

Désactiver la mise à jour de la date de dernier accès
Ceci améliorrera sensiblement la vitesse d’accès à votre disque dur, ainsi que la vitesse de démarrage : ajouter noatime,nodiratime dans le Fstab :
sudo pluma /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 noatime,nodiratime,errors=remount-ro 0 1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults,noatime,nodiratime 0 2
_________________________________________________________________________________________

Notify-osd

Je veux le système de notification d’Ubuntu dans Mint (mais pas la version officiele car elle a le défaut de ne pas se mettre tout en haut). Cette version patchée est disponible dans un dépôt externe :

Installation :

sudo add-apt-repository ppa:leolik/leolik
sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install libnotify-bin
sudo aptitude install notify-osd notify-osd-icons notifyosdconfig

On dit à Mate d’utiliser notify-osd plutôt que son service à lui :

sudo sed -i ‘s/Exec=\/usr\/lib\/mate-notification-daemon\/mate-notification-daemon/Exec=\/usr\/lib\/x86_64-linux-gnu\/notify-osd/g’ /usr/share/dbus-1/services/org.freedesktop.mate.Notifications.service

Et on place les notifications tout en haut à droite :

gsettings set com.canonical.notify-osd gravity 1
_______________________________________________________________________________________

sudo pluma /etc/php/7.0/apache2/php.ini

post_max_size = 10M
upload_max_filesize = 256M
error_reporting = -1
display_errors = On

Dans le fichier d’Apache (/etc/apache2/apache2.conf) je limite le nombre de processus qu’il doit lancer (c’est sur mon ordinateur personnel, donc pas besoin de 50 processus qui prennent 50 Mo de RAM chacun : il n’y aura pas de visiteurs autres que moi).
À ajouter à la fin du fichier :

<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 1
MaxSpareServers 3
MaxClients 12
MaxRequestsPerChild 3
</IfModule>

ServerName localhost

Supprimer le dossier www et je crée un lien vers mon dossier :

sudo mv /var/www /var/www-BAK
sudo ln -s ~/Documents/blog /var/www

Pour que les fichiers .htaccess soient pris en compte localement :
sudo pluma /etc/apache2/sites-available/000-default.conf
<Directory /var/www/>
AllowOverride All
Order allow,deny
allow from all
</Directory>

sudo a2enmod rewrite
sudo service apache2 restart
_________________________________________________________________________________________

Ne faites plus ifconfig mais ip addr

Pour lister tout le matériel présent dans la machine (avec numéros de série):
sudo lshw

Et spécifiquement pour la partie réseau :
sudo lshw -C network

L’interface graphique ne répond plus ? Tuez-la avec Ctrl+Alt+← Backspace

Besoin rapidement d’un terminal en mode texte ? Ctrl+Alt+F1
Pressez Alt+F7 ou Alt+F8 pour revenir au mode graphique

_________________________________________________________________________________________

sudo ntfsfix /dev/sdb1