Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.061639172804921 Monero.

Utiliser des commandes shell avec le terminal : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
m (Ajouter un utilisateur)
m (Clés de dépôts)
Ligne 473 : Ligne 473 :
  
 
=Clés de dépôts=
 
=Clés de dépôts=
 +
# Paquets complémentaires pour ajouter un dépôt apt et les clés.
 +
# sudo apt-get install software-properties-common
 +
# sudo apt install dirmngr
 +
 
  Lister les clés : apt-key list
 
  Lister les clés : apt-key list
  

Version du 12 août 2018 à 00:41

Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets
 

Sommaire

Connaître la version de Linux utilisée

Les 4 commandes suivantes donnent des informations complémentaires sur votre version de GNU/Linux.

lsb_release -a

No LSB modules are available.
Distributor ID:	LinuxMint
Description:	Linux Mint 18.3 Sylvia
Release:	18.3
Codename:	sylvia

cat /etc/issue

Linux Mint 18.3 Sylvia \n \l

cat /proc/version

Linux version 4.4.0-21-generic ([email protected]) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016

uname -m

x86_64

cat /etc/debian_version

9.1

Le symbole $

Le $ indiqué devant une commande permet de faire la différence entre la commande saisie, et, le texte en réponse obtenu une fois la commande lancée.
«$» indique qu'il s'agit d'un simple utilisateur.
«#» indique qu'il s'agit de l'administrateur également appelé root.

Les raccourcis avec un terminal

Déplacement

   Ctrl + a : aller au début de la ligne
   Ctrl + e : aller à la fin de la ligne
   Alt + b : se déplacer mot par mot dans la ligne de commande en arrière (b pour backward)
   Alt + f : se déplacer mot par mot dans la ligne de commande en avant (f pour forward)
   Ctrl + xx : positionner le curseur au début du mot ou à la fin

Couper / Coller

   Ctrl + k : couper la chaîne du curseur jusqu'à la fin de la ligne
   Ctrl + u : couper la chaîne du curseur jusqu'au début de la ligne
   Ctrl + w : couper le mot avant le curseur
   Ctrl + y : coller une chaîne

Modification

   Ctrl + t : inverser la position des deux caractères avant le curseur (pratique quand on tape par exemple, sl au lieu de ls)
   Alt + shift + t : inverser la position des deux mots avant le curseur
   Alt + shift + c : mettre une lettre en majuscule
   Alt + shift + l : mettre un mot en minuscule (l pour lowercase)
   Alt + shift + u : mettre un mot en majuscule (u pour uppercase)
   Alt + shift + . : réécrire le paramètre de la dernière commande

Divers

   Ctrl + l : effacer le contenu de l'écran
   Ctrl + _ : annuler la dernière modification
   Ctrl + c : arrêter la commande en cours
   Ctrl + z : interrompt temporairement un processus, qui peut être relancé avec la commande fg (au premier plan) ou bg (en arrière-plan)
   Ctrl + d : quitter le shell en cours
   Ctrl + r : permet de rechercher une commande dans l'historique de la console

Autocomplétion

La touche Tab permet de compléter le nom des commandes.

Elle permet aussi de compléter le chemin vers un fichier mais cela n'est pas toujours très pertinent.

Par exemple, il serait préférable que l'argument après apt-get soit complété en fonction des paquets disponibles, et non des fichiers dans le répertoire courant.

Cette fonction est présente dans Ubuntu.

Si elle n'est pas ou plus activée, il suffit d'éditer le fichier /etc/bash.bashrc et de décommenter les lignes concernant l'auto-complétion :

# if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
# fi

Les alias

La ligne de commande est très efficace, mais taper au clavier prend du temps.
Raccourcir des commandes avec les alias en ajoutant dans le fichier ~/.bashrc, juste après some more ls aliases, les alias souhaités.
Relancer la session utilisateur pour que les alias soient pris en compte.
Exemple :
alias monalias='Une longue commande'
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
alias c='clear'

Lancer plusieurs programmes à la suite

Utiliser le caractère &.
programme&
autre_programme

Exemples pour des alias avec apt-get

alias search='apt-cache search'
alias show='apt-cache show'
alias install='sudo apt-get install'
alias remove='sudo apt-get remove'
alias update='sudo apt-get update'
alias upgrade='sudo apt-get upgrade'

Recharger .bashrc avec la commande source ~/.bashrc

Utiliser ensuite la commande update && upgrade pour lancer une mise à jour.

Dans mon cas, j'obtiens une erreur au moment de recharger .bashrc

source ~/.bashrc
/home/root/.bashrc:16: command not found: shopt
/home/root/.bashrc:24: command not found: shopt
/home/root/.bashrc:122: command not found: shopt
/usr/share/bash-completion/bash_completion:51: command not found: shopt
/usr/share/bash-completion/bash_completion:57: command not found: complete
/usr/share/bash-completion/bash_completion:62: command not found: complete
/usr/share/bash-completion/bash_completion:65: command not found: complete
/usr/share/bash-completion/bash_completion:68: command not found: complete
/usr/share/bash-completion/bash_completion:71: command not found: complete
/usr/share/bash-completion/bash_completion:74: command not found: complete
/usr/share/bash-completion/bash_completion:77: command not found: complete
/usr/share/bash-completion/bash_completion:80: command not found: complete
/usr/share/bash-completion/bash_completion:83: command not found: complete
/usr/share/bash-completion/bash_completion:86: command not found: complete
/usr/share/bash-completion/bash_completion:89: command not found: complete
/usr/share/bash-completion/bash_completion:92: command not found: complete
/usr/share/bash-completion/bash_completion:314: parse error near `\n'
\[\e]0;\[email protected]\h \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\]

Noter que le shell par défaut de Debian s'appelle bash, mais qu'il en existe d'autres, selon les usages (zsh, csh, ...), pour lesquels le fonctionnement est légèrement différent.

Attention ! J'utilise zsh, et, zsh utilise ~/.zshrc et non pas ~/.bashrc.

Enlever les alias ajoutés dans .bashrc puisqu'il ne recharge pas, et, ajouter les alias dans le fichier .zshrc

Recharger .zshrc avec la commande source ~/.zshrc

Les alias update && upgrade sont maintenant fonctionnels.

Arrêter et relancer un service proprement

FTP (port 21)FTP est géré par ncftpd. www.ncftpd.com

Pour arrêter le service : Il faut éditer /etc/inittab (vérifier que vous avez une ligne concernant ncftpd) et redémarrer init
# pico /etc/inittab
#/sbin/init q
Pour redémarrer le service : Il suffit de tuer tous les process. ncftpd et il va redémarrer automatiquement.
# killall -9 ncftpd

Telnet (port 23)Telnet est géré par xinetd

Pour arrêter le service, il faut éditer le fichier de configuration de Telnet puis redémarrer xinetd.
L'option dans xinetd fonctionne à l'envers à savoir vous devez mettre no pour activer le service.==
# pico /etc/xinetd.d/telnet
#/etc/init.d/xinetd restart
Pour démarrer le service:
# pico /etc/xinetd.d/telnet
# /etc/init.d/xinetd restart

SMTP (port 25)SMTP est géré par Qmail www.qmail.org

Pour arrêter le service (le script de démarrage agit aussi sur le serveur POP3) :
# cd / #/etc/init.d/qmail stop
Pour démarrer le service :
# cd / # /etc/init.d/qmail start

DNS (port 53)DNS est géré par Bind www.isc.org/products/BIND/

Pour arrêter le service :
# /etc/init.d/named stop
Pour démarrer le service :
# /etc/init.d/named start

web (port 80)La partie web est gérée par Apache httpd.apache.org

Pour arrêter le service :
# /etc/init.d/httpd stop
Pour démarrer le service :
# /etc/init.d/httpd start

POP3 (port 110)POP est géré par Qmail www.qmail.org

Pour arrêter le service (le script de démarrage agit aussi sur le serveur SMTP).
# cd / # /etc/init.d/qmail stop
Pour démarrer le service :
# cd / # /etc/init.d/qmail start

IMAP (port 143)IMAP est géré par Courier-Imap? www.inter7.com/courierimap.html

Pour arrêter le service :
# /etc/init.d/imapd stop
Pour démarrer le service :
# /etc/init.d/imapd start

SQL (port 3306)SQL est géré par MySQL www.mysql.com

Pour arrêter le service :
# /etc/init.d/mysql stop
Pour démarrer le service :
# /etc/init.d/mysql start

Webmin (port 10000)Webmin est géré par Webmin www.webmin.com

Pour arrêter le service :
# /etc/init.d/webmin stop
Pour démarrer le service :
# /etc/init.d/webmin start

Commandes APT

apt-cache search <nom-du_paquet>
Recherche dans les paquets disponibles.
apt-cache depends <nom-du_paquet>
Dépendances.
apt-cache madison <nom-du_paquet>
Versions disponibles.
apt-cache policy <nom-du_paquet>
Versions et possibilités.
apt policy <nom-du_paquet>
Différence entre apt-cache policy et apt policy ?
apt-cache show <nom-du_paquet>
Informations sur le paquet.
apt-show-versions <nom-du_paquet>
Alternative. Informations sur le paquet. Installer : apt-get install apt-show-versions
apt-show-versions <nom-du_paquet> pour connaître la version.
apt-show-versions apache2 -a pour connaître toutes les versions disponibles.
apt-get install <nom-du_paquet> -s
Simulation d'installation.
apt-get install <nom-du_paquet>
Installation du paquet mentionné.
apt-get remove <nom-du_paquet>
Désinstallation/suppression du paquet.
apt-get remove <nom-du_paquet> --purge
Désinstallation complète, fichiers de configuration compris.
apt-get autoclean
Vide le cache disque des paquets.
apt-get clean
Vide le cache disque des paquets.
Le cache contient notamment des paquets .deb utilisés récemment.
cd /var/cache/apt/archives
apt-get update
Chargement des données liées au sources.list.
apt update
E: Le pilote pour la méthode /usr/lib/apt/methods/https n'a pu être trouvé.
N: Is the package apt-transport-https installed?
Installer alors : apt-transport-https
La mise à jour des paquets fonctionne à nouveau.
apt-get upgrade
Mise à jour des paquets.
apt-get dist-upgrade
Met à jour la distribution complète.

Nohup apt upgrade

La commande nohup permet de garder une trace de la mise à jour dans un fichier texte.
La mise à jour n'est alors pas exécutée mais les informations de la mise à jour sont copiées vers le fichier texte.

Résoudre les problèmes apt

Documentation Ubuntu pour apt : https://doc.ubuntu-fr.org/probleme_apt

Tester la présence d'un paquet installé

dpkg -l |grep <nom-du_paquet>

On peut aussi tester cette autre méthode, pour lister les paquets installés d'une application.

dpkg -l |awk '/libreoffice/ {print $1 " "$2 " "$3}'

dpkg -l |awk '/libreoffice-gtk/' est équivalent à dpkg -l |grep libreoffice-gtk

Lister tous les paquets

Liste de tous les paquets installés avec la commande dpkg -l

Le terminal affiche la fin de la liste des paquets installés.

Sauvegarder la liste en entier

Conserver cette liste en créant un fichier liste vide avec la commande touch liste.
Copier les information dans le fichier liste avec la commande dpkg -l >> liste.
A détailler : dpkg -l |grep ii
A détailler : dpkg --get-selections

Lister les paquets récemment installés

cat /var/log/apt/history.log

Connaître le status d'un service

service apache2 status

Trouver les dépendances d'un paquet

Utiliser aptitude why

Connaître les dépendances d'un paquet logiciel avec aptitude why.
aptitude why gedit
Affichera :
i   gedit        Dépend     gedit-common (< 3.19)
i A gedit-common Recommande gedit

Utiliser dpkg-depcheck

 Le paquet dpkg-depcheck permet de connaître les dépendances nécessaires à un paquet.
 Voir le manuel : http://pwet.fr/man/linux/commandes/dpkg_depcheck
 Installer ce paquet : sudo apt install devscripts
 Lancer la commande : dpkg-depcheck GreeN-Project
 Packages used:
 green-project
 libc6:amd64
 tzdata
 libtinfo5:amd64
 coreutils

Utiliser apt-rdepends

Installer apt-rdepends sur Ubuntu ou Debian : sudo apt-get install apt-rdepends
Exemple sans avoir à utiliser les privilèges root : apt-rdepends nom-du-paquet
Le paquet apt-rdepends permet également de connaître les dépendances nécessaires à un paquet.
Installer apt-rdepends :
sudo apt-get install apt-rdepends
Lancer la commande pour connaître les dépendances d'un paquet :
apt-rdepends paquet

Visualiser les dépendances d’un paquet .deb de manière graphique

Le programme apt-rdepends peut exporter les informations de dépendances dans un fichier pour permettre à un éditeur graphique GUI appelé dotty de visualiser les dépendances dans un format graphique.
Installer l’outil éditeur de graphe Dotty :
sudo apt-get install graphviz 
Lister les dépendances d'un paquet avec apt-rdepends puis les exporter dans un fichier .dot :
apt-rdepends -d apt-rdepends | dot > apt.dot
Ouvrir le fichier avec l’éditeur dotty :
dotty apt.dot

Tracer une commande avec strace

strace -f -o strace.log la-commande-que-je-veux-tracer
Avec la ligne précédente, on enregistre tout, ça peut faire beaucoup.
Rajouter un filtre pour les appels système :
strace -f -o strace.log -eopen la-commande-que-je-veux-tracer
Ajouter -eread pour les appels en lecture.
Lire strace.log avec un pager (less, more...).
Sur un processus déjà en route, utiliser l'option `-p pid-du-processus` pour rattacher strace au processus.
man strace pour en savoir plus.

Installer un paquet logiciel

Debian / Ubuntu

Utiliser l'une des commandes suivantes pour installer un paquet logiciel.
sudo apt-get install NomDuPaquet
sudo aptitude install NomDuPaquet
sudo apt install NomDuPaquet
Ajouter l'argument --fix-missing pour résoudre automatiquement les dépendances manquantes.
Lorsque c'est possible, les informations du sources.list renseignent automatiquement le programme sur les dépendances manquantes.

Most

Most est un programme de défilement qui affiche, une pleine page à la fois, le contenu d’un fichier sur un terminal.
Une ligne d'état en bas de l'écran affiche le nom du fichier, le numéro de la première ligne affichée à l'écran et le pourcentage du fichier qui a déjà été affiché.

Contrairement à d'autres programmes de visualisation, most peut afficher un nombre arbitraire de fenêtres tant qu'elles peuvent toutes être affichées.
Différentes fenêtres peuvent être utilisées pour montrer le même fichier à différents endroits.
En plus d'afficher des fichiers textes ordinaires, most peut aussi afficher des fichiers binaires ou avec des caractères ASCII quelconques.
sudo apt-get install most

Lire les fichiers compressés

sudo apt-get install p7zip p7zip-full unrar

Compresser en .zip en ligne de commande

sudo apt-get install zip
zip archive.zip fichiers

Compresser en .tar en ligne de commande

Sauvegarder deux répertoires vers un répertoire distant avec SSH et en compressant en .tar lors du transfert.
tar -cf - /mon_dossier_1 /dossier/dossier_2 | ssh -2 [email protected] tar -xf - -C /dossier_de_destination/sur_serveur_distant/

Compresser en .tar.gz en ligne de commande

cd /home/user/Documents
tar -czvf $(date +\%A)_Documents.tar.gz *
# Corriger le message d'information suivant "tar: Suppression de « / » au début des noms des membres"
# Se placer dans le dossier cd /home/user
# tar -czvf Documents.tar Documents
# tar: /home/user/Documents : fichier modifié pendant sa lecture.
# Le script est lancé depuis le dossier à sauvegarder.
# Lancer plutôt le script depuis le répertoire utilisateur ou le Bureau par exemple.

Evernote

http://sourceforge.net/projects/nevernote/files/
sudo dpkg -i nixnote2-2.0-beta6_amd64.deb
sudo apt-get -f install

Compresser avec KGB Archiver

Source : https://packages.debian.org/jessie/utils/kgb

Compresser une vidéo avec Handbrake sur Debian Jessie

Vérifier cette procédure. Je l'avais supprimée de mes notes, peut être que Handbrake était bogué ou dépassé.

Installer Handbrake pour compresser une vidéo sur Debian Jessie.

Ajouter la liste des dépôts multimédia dans les sources.list
deb www.deb-multimedia.org jessie main non-free

apt-get update
apt-get install deb-multimedia-keyring
Valider oui.
apt-get update
apt-get upgrade
apt-get install handbrake-gtk

Manipuler des vidéos avec pitivi

Actuellement un bogue avec Debian. Il devrait être corrigé prochainement.

Un paquet est manquant.

Manipuler des vidéos avec avidemux

Installer avidemux pour faire du montage de vidéos.

Ajouter le dépôt suivant dans /etc/apt/sources.list
deb http://www.deb-multimedia.org jessie main non-free
apt-get update
apt-get install deb-multimedia-keyring
sudo apt-get install avidemux

Le montage vidéo peut se faire sur openshot.

dmesg

Dmesg : dmesg.fr
Lancer la commande dmesg pour obtenir des informations complémentaires sur d'éventuelles erreurs.
Plus d'informations : https://manpages.debian.org/jessie/manpages-fr-extra/dmesg.1.fr.html

Utiliser pastebin pour partager les logs de votre machine

Utiliser pastebin pour partager les logs de votre machine avec d'autres administrateurs système.
inxi -Fxxxzc0 |pastebin
sudo rfkill list all |pastebin
dmesg |pastebin
Utiliser pastebin pour partager les logs de vos noyaux avec d'autres administrateurs système.
dpkg -l linux-image* | pastebin

Changer les droits sur un fichier avec chmod

Source : https://doc.ubuntu-fr.org/droits
Source : https://www.washington.edu/computing/unix/permissions.html

Lecture seule pour certains fichiers

Penser à mettre certains fichiers /index.php, /administrator/index.php et /templates/votretemplate/index.php en chmod 444 pour ne pas qu'ils puissent être modifiés.

Passer les dossiers et fichiers en 755

Le dossier contenant le site visionduweb est passé en 755 en local.

chmod -R 755 /opt/lampp/htdocs/visionduweb

Rendre un fichier exécutable

Sous linux la commande chmod permet de modifier les droits des fichiers. Pour transformer un fichier en fichier exécutable il faut lancer la commande suivante :

Cette commande ajoute les droits d'exécution au propriétaire du fichier.
chmod u+x fichier.sh
Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer :
chmod g+x fichier.sh
Rendre le script exécutable pour les autres utilisateurs :
chmod o+x fichier.sh
Autoriser tout le monde :
chmod ugo+x fichier.sh
- u pour user correspond à l'utilisateur
- g pour group correspond au groupe
- o pour other correspond à tous les autres utilisateurs
La lettre x correspond aux droits d'exécution.

Réattribuer des droits à un ensemble de types de fichiers

Réattribue les droits 644 aux images d'un dossier.
Noter que en bash les parenthèses et les pipelines dans une expression rationnelle (regex) doivent être échappées.
find /chemin/vers/dossier -regex ".+\.\(jpe?g\|gif\|png\)" -exec chmod 644 {} \;

Changer le propriétaire et le groupe

Changer le propriétaire et le groupe pour le premier utilisateur installé
chown 1000:1000 NomDuFichier
1000 = Premier utilisateur installé.
0 = Utilisateur root
8 = Service mail

Clés de dépôts

# Paquets complémentaires pour ajouter un dépôt apt et les clés.
# sudo apt-get install software-properties-common
# sudo apt install dirmngr
Lister les clés : apt-key list
pub   rsa4096 2015-07-14 [SCEA]
     5811 8E89 F3A9 1289 7C07  0ADB F762 2157 2C52 609D
uid           [ unknown] Docker Release Tool (releasedocker) <[email protected]>
Supprimer une clé : apt-key del <key-id>
Supprimer la clé du dépôt de Docker : apt-key del 2C52609D

Installer des paquets avec ppa

Logiciels à installer avec ppa

Source : https://www.learn2crack.com/2013/08/ubuntu-apps-command-line-ppa.html

Lister les ppa installés

Lancer la commande suivante :
ls -l /etc/apt/sources.list.d/
Source : https://doc.ubuntu-fr.org/ppa

Un script permet d'ajouter des PPA a Debian avec la bonne syntaxe

#!/bin/bash
if [ $# -eq 1 ]
NM=`uname -a && date`
NAME=`echo $NM | md5sum | cut -f1 -d" "`
then

ppa_name=`echo "$1" | cut -d":" -f2 -s` if [ -z "$ppa_name" ] then echo "PPA name not found" echo "Utility to add PPA repositories in your debian machine" echo "$0 ppa:user/ppa-name" else echo "$ppa_name" echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu xenial main" >> /etc/apt/sources.list apt-get update >> /dev/null 2> /tmp/${NAME}_apt_add_key.txt key=`cat /tmp/${NAME}_apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3` apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key rm -rf /tmp/${NAME}_apt_add_key.txt fi

else

echo "Utility to add PPA repositories in your debian machine" echo "$0 ppa:user/ppa-name"

fi
Sauvegarder ce fichier dans /usr/sbin/
cp add-apt-repository.sh.txt /usr/sbin/add-apt-repository
Changer la permission pour exécuter.
chmod o+x /usr/sbin/add-apt-repository
Changer le propriétaire pour root.
chown root:root /usr/sbin/add-apt-repository
Ajouter normalement un PPA.
sudo add-apt-repository ppa:ppa-name
Suivre ce tutoriel. Le script d'origine, à l'étape 1, lucid est remplacé par xenial.
Comment installer un logiciel avec ppa sur Debian : https://blog.anantshri.info/howto-add-ppa-in-debian/

Vérifier les pilotes qui sont chargés

Utiliser lspci -k

Pour avoir plus d'informations sur le pilote, utiliser la commande modinfo.

Par exemple : modinfo nvme

Différer des commandes avec at

Ok-ko.png Source : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/executer-un-programme-a-une-heure-differee

Afficher l'arborescence d'un répertoire avec le paquet tree

# Installer le paquet tree :
sudo apt-get install tree
# Afficher l'arborescence :
tree Dossier
# Afficher l'arborescence en ajoutant le propriétaire et le poids du fichier :
tree Dossier -Csu

Devenir root

Bascule l'utilisateur vers le root, nécessite le mot de passe root.
su -
Bascule l'utilisateur vers le root, nécessite le mot de passe de l'utilisateur.
sudo su -
Donne l'accès root pour une commande spécifique, nécessite le mot de passe de l'utilisateur.
sudo <command>
Relancer un commande ou l'on a oublié sudo sans avoir à ressaisir la ou les commandes.
sudo !!
Devenir root avec sudoers sur une distribution live de GNU/Linux.
sudo bash

Quitter le mode root

ctrl d ou exit

Savoir qui est connecté

finger
who
Avoir les pseudos et le nombre d'utilisateurs connectés : who -q
Avoir les pseudos et la date de connexion des utilisateurs connectés : who | awk '{print $1" "$3}'
Avoir le nombre d'utilisateurs connectés : who | wc -l
w

Faire une recherche de fichier

#Trouver un fichier ici le fichier screenrc recherché sur toute la racine "/".
find / -name screenrc

Utiliser les espaces pour les dossiers et les fichiers

cd espace\ de\ travail

ou

cd "espace de travail"

ou encore

REP='espace de travail'
cd "${REP}"

Faut t'il interpréter les variables

Un problème de shell assez intéressant. Ici bash fait la transformation : cd $rep ==> cd espace de travail ==> 'cd' 'espace' 'de' 'travail'

Avec zsh par contre, ceci marche parfaitement :

rep="blah blah"
cd $rep

La variable rep occupe exactement un argument de la commande 'cd'. C'est donc un choix qui est fait par le shell.

Informations sur un dossier ou un fichier

ls --full-time pour lister les dossiers et les fichiers avec la date de création / modification.

Pour connaître l'encodage d'un fichier, utiliser la commande file.

file tesat.sql
tesat.sql: UTF-8 Unicode text, with very long lines

Connaître les droits sur les fichiers d'un dossier.

ls -ltr nomdufichier

Toutes les options de la commande ls

Ok-ko.png Source : http://geekstrick.com/ls-command-with-all-its-parameter-in-linux/

Vérifier la date du système

Utiliser la commande date pour vérifier la date du système.
Utiliser la commande dpkg-reconfigure tzdata pour reconfigurer la date du système.

Heure du serveur et horloge atomique

NTP permet de synchroniser l'heure du serveur avec des horloges atomiques.
apt-get install ntp ntpdate.
Éditer /etc/ntp.conf ou /etc/default/ntpdate pour vérifier la configuration.
Éventuellement modifier les adresses des serveurs avec les plus proches de chez vous : http://support.ntp.org/bin/view/Servers/NTPPoolServers
Redémarrer le service : /etc/init.d/ntp restart
Voir aussi le passage de chrony à systemd timesyncd : https://www.dsfc.net/logiciel-libre/linux/ntp-passage-de-chrony-a-systemd-timesyncd/

Ouvrir un fichier texte

Ouvrir un fichier texte avec un pager

Ouvrir le fichier texte dialogue.

Pour lire un long fichier de journal (log), on utilisera un pager comme less ou most qui rend la lecture plus confortable.

{less || more || most}  dialogue

Pour ne lire que le début où la fin du fichier dialogue, on utilisera head ou tail.

{head || tail}  dialogue

Ouvrir un fichier texte avec un éditeur

nano dialogue

mcedit dialogue

vim dialogue

emacs dialogue

Écrire dans le terminal

Afficher des informations avec cat dans le terminal

Lancer la commande cat redirige le texte vers la sortie standard, la console, avec le symbole -. Le mot clé EOF est le marqueur de fin de fichier.

cat <<- EOF

Saisir ou copier coller les informations suivantes, puis, faire entrée.

Ceci est un test
si on met une commande ça fait quoi ?
who
et comme ça ?
`who`
Hoo, et alors avec ça ?
$(uname -r)
"$(uname -r)"
Mais je veux juste l'écrire, pas l'exécuter !
\$(uname -r)
C'est mieux.
* $ ^
Tiens, ça ne fait rien avec les caractères spéciaux...
Fini pour le moment.
EOF

Résultat affiché dans le terminal.

Ceci est un test
si on met une commande ça fait quoi ?
who
et comme ça ?
nomutilisateur  tty7         2017-04-03 08:44 (:0)
nomutilisateur  pts/1        2017-04-03 10:35 (:0.0)
Hoo, et alors avec ça ?
4.4.0-21-generic
"4.4.0-21-generic"
Mais je veux juste l'écrire, pas l'exécuter !
$(uname -r)
C'est mieux.
* $ ^
Tiens, ça ne fait rien avec les caractères spéciaux...
Fini pour le moment.

Les commandes entourées par des simples côte ' ' sont évaluées. (Voir le deuxième 'who'.)

Pour conserver la valeur littérale, écrire la commande, elle ne sera pas évaluée. who

Afficher la valeur d'une variable avec $variable ou "$variable".

Pour conserver la valeur littérale, utiliser \. \$PATH affiche $PATH et non pas la valeur de la variable.

Utiliser echo dans le terminal

echo -e alternative au texte précédent \n
alternative au texte précédent n

Lire, écrire et concaténer avec cat

Une version améliorée de cat existe pour GNU/Linux Debian, nommée dog. Le chien serrait meilleur que le chat.

Voir man cat et man dog.

dog n'est pas une commande standardisée, à éviter dans des scripts pour des raisons de portabilité.

dog possède de nombreuses options supplémentaires et peut travailler par exemple sur des url.

Lire deux fichiers texte

$ cat test.txt
blabla, ceci et un test.
$ cat test2.txt
Et voici un deuxième fichier de test.

Ecrire jusqu'à un mot clé prédéfini et sur une ligne

# Créer un fichier texte.
touch une-ligne.txt
# Modifier la date de création du fichier avec touch.
# Permet de créer de vieux fichiers pour faire des tests.
touch -t [AAMMJJhhmm] fichier
# Ajouter du texte dans le fichier.
cat << FIN >> une-ligne.txt
Je veux écrire du texte dans un fichier.
Ça je voudrais bien\
que ça tienne sur une ligne.

FIN
# Affiche
Je veux écrire du texte dans un fichier.
Ça je voudrais bien que ça tienne sur une ligne.
La touche entrée correspond à un saut de ligne.
Une ligne laissée vide affichera une ligne laissée vide.
Le symbole \ supprime un retour à la ligne éventuel.
Le mot FIN n'est pas écrit dans le fichier, c'est notre marqueur de fin de fichier défini dans la commande.
On peut utiliser n'importe quel mot comme marqueur. Par convention on trouvera souvent EOF qui signifie “End Of File” (“fin de fichier” en Anglais).

Concaténer avec cat

Concaténer des fichiers texte avec la commande cat.

La commande cat peut aussi mettre bout-à-bout deux archives vidéo ou images .iso.

Concaténer vers un fichier texte

$ cat -n test.txt test2.txt > test3.txt

Symbole de redirection et utilisation.

> fichier 	Crée le fichier s'il n'existe pas, remplace son contenu s'il existe.
>> fichier 	Crée le fichier s'il n'existe pas, ajoute à la fin du fichier s'il existe.

Afficher alors le nouveau fichier obtenu.

$ cat test3.txt
1 blabla, ceci et un test.
2 Et voici un deuxième fichier de test.

Concaténer vers une image .iso

Les images .iso ou vidéo doivent avoir été découpées volontairement.

Exemple pour découper une image .iso de 95Mo en deux avec split en précisant une taille maximale pour des parties de 50Mo avec l'option --bytes=.

Deux fichiers “xaa” et “xab”, noms par défaut de la commande split, sont créés.

split --bytes=50M pmagic-4.2.iso
ls
pmagic-4.2.iso xaa  xab

Exemple pour reconstruire l'image .iso avec cat. Le nom de l'archive reconstruire est modifiée en pmagic-4.2_2.iso.

Vérification de la somme de contrôle md5 pour vérifier que l'opération n'a pas altérée l'image reconstruite. Ce sont bien les mêmes.

cat xaa xab > pmagic-4.2_2.iso
md5sum pmagic-4.2.iso
8a1ad4e84cae8fe1d1e230cdc8ec1bd2  pmagic-4.2.iso
md5sum pmagic-4.2_2.iso
8a1ad4e84cae8fe1d1e230cdc8ec1bd2  pmagic-4.2_2.iso

Concaténer vers une vidéo

Les images .iso ou vidéo doivent avoir été découpées volontairement.

Il faut que les vidéos aient les mêmes propriétés (Format, débit, encodage).

Exemple pour découper une vidéo puis la concaténer à nouveau.

split --bytes=1M lion.ogv
ls
lion.ogv  xaa  xab  xac  xad
cat xaa xab xac xad > lion2.ogv

Cette manipulation peut permettre de déplacer plus facilement de gros fichiers.

Écrire dans un fichier avec EOF

Ecrire du texte statique

#Créer un fichier texte dialogue.
touch dialogue
#Ouvrir un fichier.
cat dialogue
#Aller à la suite et enregistrer un texte.
cat >dialogue <<EOF
Ceci est un essai.
EOF

Ecrire la valeur de variables

Le commande pwd indique le chemin du répertoire dans lequel on se trouve.
La variable $PWD contient la même information. Afficher le chemin du répertoire courant avec echo $PWD.
cat << EOF > fichier
heredoc> cd "$HOME"
heredoc> echo "$PWD"
heredoc> EOF

Affiche

cd "/home/user"
echo "/home/user"

A noter que ajouter un antislash avec la commande suivante par exemple echo \$PWD affichera $PWD alors que echo $PWD affichera la valeur de la variable.

Écrire dans un fichier - Alternative

echo -e alternative au texte précédent \n >> dialogue

Faire un diff et conserver les changements dans un fichier

Installer :
# aptitude install diffutils patch
Comparer deux fichiers :
$ diff -u ancien-fichier nouveau-fichier
Exporter les changements vers un fichier.diff :
$ diff -u ancien-fichier nouveau-fichier > fichier.diff
Exporter les changements du fichier.diff vers un fichier de patch troisieme-fichier :
$ patch -i fichier.diff troisieme-fichier
Revenir au fichier ancien-fichier initial
$ patch -R -i fichier.diff ancien-fichier
Source : https://wiki.debian-fr.xyz/Utiliser_diff_et_patch

Copier vers le presse papier

# To copy output from shell to X11 clipboard:
pwd | xclip
# To paste from X11 clipboard to shell:
xclip -o | ls
Le programme « xclip » n'est pas encore installé. Vous pouvez l'installer en tapant :
sudo apt install xclip
Source : https://doc.ubuntu-fr.org/xclip
Source : https://codeyarns.com/2016/03/09/how-to-use-xclip/

Formater un texte

Organiser un texte sur une certaine largeur de caractère avec la commande fmt source > sortie
Supprimer les retours à la ligne avec la commande tr -d '\n' < input.txt > output.txt

Déplacer un fichier ou un dossier

mv source destination

Renommer un fichier

Renommer un fichier par date de création

Script de test

Créer un fichier renommer-fichiers.sh et ouvrir le fichier avec l'éditeur de texte.
#!/bin/bash 
for f in *.*  
do  
 mv -n "$f" "$(date -r "$f" +"%Y%m%d_%H%M%S")_VisionduWeb_$f"  
done
# $f = Nom d'origine du fichier avec l'extension.
# J'utilise un nom identique pour chaque fichier: _VisionduWeb_
# L'extension n'est plus affichée. Il faut ajouter l'extension: _VisionduWeb.pdf ou faire appel au nom d'origine avec $f qui va réinscrire le nom du fichier d'origine mais aussi conserver l'extension.
sudo sh renommer-fichiers.sh

Script fonctionnel

J'aimerais conserver l'extension sans avoir à conserver le nom d'origine : datecreation_heurecreation_NomDuFichierUniqueEtStatique.extension

Placer le script dans le dossier ou les fichiers sont à renommer.

#!/bin/bash 
for f in *.* 
do 
       extension="${f##*.}" 
       mv -n "$f" "$(date -r "$f" +"%Y%m%d_%H%M%S")_VisionduWeb.$extension" 
done
sudo sh renommer-fichiers.sh

Merci à [croftman] de développez.

Script fonctionnel avec passage de paramètres

Placer le script ou vous voulez et passer le paramètre pour définir la cible ou sont placés les fichiers à renommer.

#!/bin/bash 
if [ -n $1 ]
	then
		cd $1
fi

for f in *.* 
do 
      extension="${f##*.}" 
      mv -n "$f" "$(date -r "$f" +"%Y%m%d_%H%M%S")_VisionduWeb.$extension" 
done
sudo sh renommer-fichiers.sh dossier1/dossier2

Renommer des extensions

Pour renommer par exemple les fichiers .odt.txt en .txt, utiliser la commande rename avec la syntaxe PERL : rename 's/.odt.txt/.txt/' *

Ajouter et supprimer un utilisateur

Définition

Les utilisateurs systèmes servent aux tâches spécifiques régulières qui souvent portent le même nom que l’utilisateur. Exécution de logiciels ou de commandes.
Les utilisateurs réels sont associés à des personnes qui se connectent sur la machine via une interface graphique ou un accès en ligne de commande.

Ajouter un utilisateur

adduser toto
Des questions facultatives sont demandées par le système qui demandera également un mot de passe pour créer l’utilisateur "toto" sur le système.
Les options par défaut lors de la création d'un utilisateur sont définies dans le fichier de configuration /etc/adduser.conf
Modifier par exemple les répertoires utilisateur par défaut ou les groupes auxquels les utilisateurs sont affiliés.
Par défaut le répertoire utilisateur sera /home/toto
L'utilisateur toto qui a été créé possède maintenant des privilèges de compte réguliers.
Il est parfois nécessaire de faire des tâches administratives qui nécessitent les privilèges supplémentaires de sudoers.

Ajouter un utilisateur système

adduser --system --home /opt/redmine --shell /bin/bash --gecos 'Redmine user' --disabled-password redmine
adduser --system --no-create-home --ingroup redmine --disabled-password redmine

Ajouter un utilisateur à un groupe

adduser non_utilisateur nom_du_groupe
Ajouter l'option --no-create-home pour ne pas créer de dossier home.
Ajouter éventuellement l'option --ingroup avant le nom du groupe pour bien préciser que c'est le nom du groupe qui suit.

Ajouter le droit sudoers pour un utilisateur

Un utilisateur ayant les privilèges de sudoers possède le droit d'accès à la racine du système.
Un utilisateur ayant les privilèges de sudoers possède autant de droits que l'utilisateur root.
Permet d'éviter l'accès avec l'utilisateur root et complique le travail d'un pirate informatique qui devra connaître le nom d'utilisateur toto.
Cela permettra à un utilisateur normal d'exécuter des commandes avec des privilèges administratifs en plaçant le mot sudo avant chaque commande.
Debian 8 n'est pas installé avec sudo par défaut.
# Installer le paquet sudo pour utiliser les commandes sudo et visudo.
apt update
apt install sudo

sudoers avec le mode graphique

Placer l'utilisateur dans le groupe sudo afin qu'il puisse faire partie de la liste des sudoers et soit en mesure d'effectuer des tâches d'administration.

sudoers depuis le terminal

Depuis Debian

Par défaut, sur Debian 8, les utilisateurs qui appartiennent au groupe "sudo" sont autorisés à utiliser la commande sudo.
Pour ajouter le nouvel utilisateur au groupe "sudo", utiliser root et la commande suivante :
usermod -a -G sudo toto
Quitter totalement le système, redémarrer, pour que les changements de droits soient appliqués.
Plus d'informations sur les commandes usermod : https://www.computerhope.com/unix/usermod.htm

Autres situations

Ok-ko.png Ajouter manuellement un utilisateur aux mêmes droits que root depuis le fichier sudoers
Ok-ko.png Éditer le fichier "/etc/sudoers" et copier la ligne avec les "ALL" et changer "root" par "toto".
Ok-ko.png Plus d'informations sur sudoers : https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos
Ok-ko.png Utiliser sudoers sans mot de passe : https://www.linuxtricks.fr/wiki/sudo-utiliser-et-parametrer#paragraph_utiliser-sudo
Ok-ko.png Documentation Ubuntu : https://doc.ubuntu-fr.org/sudoers

Ajouter une clé SSH à un utilisateur distant

SSH
Exporter la clé SSH publique du client vers un utilisateur du serveur distant
Se connecter en SSH avec un utilisateur sudoers pour configurer le serveur distant

Alerte mail de login root

Vous pouvez éditer le fichier /root/.bashrc qui est exécuté au démarrage d'une session root pour envoyer un e-mail de notification.
De cette façon, vous serez prévenu lorsqu'un login est effectué.
vi /root/.bashrc
Ajoutez la ligne (en modifiant l'adresse e-mail de destination) :
echo 'Accès Shell Root le ' `date` `who` | mail -s `hostname` Shell Root de `who | cut -d"(" -f2 | cut -d")" -f1` [email protected]

Personnalisation esthétique de bashrc ces lignes

alias ls='ls $LS_OPTIONS --color=auto'
alias ll='ls $LS_OPTIONS -al --color=auto'
alias vi='vim'

Changer d'utilisateur

su autre_utilisateur
Revenir à l’utilisateur précédent avec la commande exit.

Changer le mot de passe d’un utilisateur

Il est nécessaire de changer le mot de passe d'un utilisateur root surtout si celui-ci a été attribué par défaut.
Pour changer le mot de passe d’un utilisateur, se connecter avec l'utilisateur puis utiliser la commande passwd
A NE PAS FAIRE POUR UNE RELEASE 3 OVH PAR EXEMPLE.
Webmin et peut être d'autres services utilisent le mot de passe root.
Changer le mot de passe root pourrait alors créer un dysfonctionnement du serveur.

Tester la complexité des mots de passe utilisateurs

Les mots de passes des utilisateurs sont stockés dans le fichier /etc/shadow.
Seul l'utilisateur root peut lire ce fichier.
Installer en tant que root le programme john et le lancer sur le fichier /etc/shadow :
apt install john
john /etc/shadow
Quand john a trouvé un mot de passe, il l'affiche avec le login associé.
Attention, john utilisera le processeur à 100 % !
Il est conseillé de lui donner une priorité faible avec la commande nice ou renice si la machine doit être utilisée pendant ce temps.
Plus le nombre d'utilisateurs est grand, plus il faudra laisser tourner john longtemps pour que le test soit significatif.

Supprimer un utilisateur du système

Bloquer un compte utilisateur

Avant de supprimer l’utilisateur, il est important de bloquer son compte.
sudo passwd -l toto

Fermer les programmes lancés par un utilisateur et sa connexion

On ne peut pas supprimer un compte de quelqu’un qui est connecté sur la machine.
Fermer l’ensemble des programmes lancés par cet utilisateur ainsi que sa connexion.
Lister les pid des programmes utilisés par toto : sudo pgrep -u toto
Si aucun nombre n'est retourné, l’utilisateur n’est pas connecté et n’a lancé aucun programme.
Voir les programmes lancés par l’utilisateur avec sudo ps -fp $(pgrep -u toto)
Si l’utilisateur a des tâches CRON dans son fichier crontab, supprimez les avec la commande : crontab -r -u toto
Sinon, il faut tuer les connexions existantes avec killall -KILL -u toto
Une autre façon de tuer tous les processus d'un utilisateur : pkill -u user
Fonctionne très bien pour une connexion SSH, ou plusieurs utilisateurs serraient connectés plusieurs fois, suite à un plantage du terminal, et, une nouvelle connexion.
Supprimer l’utilisateur toto et son répertoire "home" ainsi que sa boîte email (avec l’option -r) avec la commande userdel : userdel -r toto

Groupe utilisateur

Savoir si l'utilisateur est dans un groups : groups nomutilisateur

groups nomutilisateur
nomutilisateur : nomutilisateur adm cdrom sudo dip plugdev lpadmin vboxsf sambashare vboxusers
Ok-ko.png Complément : https://wiki.debian-fr.xyz/Commandes_utilisateurs_et_groupes

Lancer un programme

Pour lancer un programme qui nécessite les droits d'exécution, utiliser ./ devant le nom du programme.
Exemple : ./blackcoin-qt pour lancer depuis la console l'exécution du logiciel Blackcoin QT en mode graphique.

Exécuter des programmes en arrière-plan avec screen

Screen permet de continuer à exécuter des programmes en tâche de fond et de conserver les messages du serveur. Lorsque vous revenez sur la console de votre serveur, vous aurez accès aux messages affichés en votre absence.

Installer screen

sudo apt install screen

Utiliser screen

Screen sert a lancer un programme en tâche de fond quand il doit tourner sans s'arrêter, ou, qu'il prend du temps pour être traité.
Créer une nouvelle fenêtre virtuelle avec la commande screen.
Détacher ce programme de la console : Ctrl + a puis appuyer sur la touche d pour détacher screen et revenir à la fenêtre principale.
La console peut être fermée, le programme continuera de tourner.
Pour revenir à cette fenêtre lors de la prochaine connexion, lancer screen -r
Autres commandes de base :
Créer un screen nommé toto : screen -S toto
Lister les screen disponibles : screen -ls
Se connecter au screen toto : screen -x toto
Se connecter au screen avec l'id 3002 : screen -x 3002
Se connecter automatiquement à un screen si un seul disponible : screen -x
Raccourcis clavier
CTRL+a CTRL+a : Revenir au terminal précédent
CTRL+a {0,9} : Aller au terminal n°x
CTRL+a p : Aller au terminal précédent
CTRL+a n : Aller au terminal suivant
CTRL+a " : Afficher la liste des terminaux disponibles et on peut choisir avec le numéro ou les flèches
CTRL+a A : Renommer le terminal courant
CTRL+a d : Détacher le terminal. Il reste accessible.
CTRL+a S : Spliter le terminal en 2
CTRL+a TAB : Basculer sur le split suivant
CTRL+a X : Fermer le split courant
CTRL+a x : Verrouiller le screen avec le mot de passe de l'utilisateur courant.
Observer le partage en console avec la commande screen-x
Ok-ko.png Documentation : https://doc.ubuntu-fr.org/screen
Ok-ko.png Documentation : http://www.jacksay.com/tutoriaux/bash-shell/utilitaire-screen.html
Ressources complémentaires
Ok-ko.png Source : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/executer-des-programmes-en-arriere-plan
Ok-ko.png Source : https://wiki.debian.org/fr/Screen

Editer le fichier .screenrc

Il est possible pour chaque utilisateur du système de personnaliser son screen grâce à un fichier de configuration spécifique ~/.screenrc placé dans le /home/user.

Un exemple de ce fichier est disponible dans /etc/screenrc.

Il vous suffit de faire : cp /etc/screenrc ~/.screenrc pour pouvoir configurer votre fichier .screenrc personnel.

Ne pas afficher la page de copyright

# Don't display the copyright page
# default: on
startup_message off

echo 'startup_message off' >> ~/.screenrc

Configurer le fichier screenrc dans /etc/screenrc ou ~/.screenrc

Copier et coller le fichier screenrc avec Vim

Aller dans home/user avec la commande cd~ ou cd $HOME

Créer le fichier .screenrc touch .screenrc

Ouvrir le fichier .screenrc vi .screenrc

Saisir le code :split /usr/share/doc/screen/examples/screenrc

Saisir la commande ggVG ( VG avec la touche maj. La commande ggVG sélectionne le texte qui vient d'être collé. ).

Saisir la lettre Y ( Voir comment faire pour saisir des majuscules ).

Saisir le raccourci clavier ctrl w (2x) pour changer d'écran.

Saisir la lettre P ( Voir comment faire pour saisir des majuscules ).

Saisir :wq!

Saisir :qa!

Solution rapide depuis le terminal - Vérifier si la manipulation fonctionne correctement

Depuis le dossier home/user

cat /usr/share/doc/screen/examples/screenrc >> ~/.screenrc

On peut le faire manuellement en GUI ou, avec cp .screenrc ~

Lancer most .screenrc

Quitter avec q.

Vérifier vimdiff /usr/share/doc/screen/examples/screenrc .screenrc

Télécharger le bon fichier directement en ligne

wget path-a-trouver/(dot_)screenrc

Mettre ce fichier dans home/user/.screenrc

Ou avant ça, les comparer vimdiff dot_screenrc .screenrc

Une archive existe dans /usr/share/doc/screen/examples/screenrc

Changer la langue sur GNU/Linux

Reconfigurer la langue du system avec dpkg-reconfigure locales.

Pour Ubuntu

Avec l'interface graphique, aller dans le Menu / Système / Tous les paramètres, un icône permet de gérer les langues du système.

Depuis le terminal sudo apt install Language-support-fr Language-pack-fr Language-pack-fr-base

Installer également le pack de langue KDE ou GNOME en fonction de votre environnement graphique. Ce n'est pas nécessaire pour XFCE.

language-pack-kde-fr pour KDE
language-pack-gnome-fr et language-pack-gnome-fr-base pour GNOME

Pour Mint Mate Serena

La solution graphique : Chercher language ou langue dans le menu. Choisir la langue et mettre à jour les paquets.

La solution console : sudo apt-get install language-pack-fr language-pack-fr-base language-pack-gnome-fr language-pack-gnome-fr-base

Supprimer les packs de langue qui ne sont pas en français. Je supprime les packs anglais également.

Redémarrer.

Pour Debian

Chercher task-french avec la commande apt-cache search task-french puis installer les paquets nécessaires.
task-french - environnement français
task-french-desktop - bureau français
task-french-kde-desktop - bureau KDE français
education-lang-fr - Debian Edu applications for French installs
education-lang-fr-desktop - Debian Edu Desktop applications for French installs
education-lang-fr-desktop-kde - French Debian Edu KDE desktop applications
iceowl-l10n-fr - French language package for iceowl-extension
texlive-latex-extra - TeX Live: LaTeX additional packages
galette-plugin-admintools - Administration tools for Galette
Voir les paquets a installer.
$ apt-cache search task-french
i   task-french                     - environnement français                    
i   task-french-desktop             - bureau français                           
i   task-french-kde-desktop         - bureau KDE français
Pour iceweasel
apt install iceweasel-l10n-fr
Pour Thunderbird, aller dans Add-ons / Extensions Français Language Pack (Thunderbird)

Changer de clavier qwerty pour azerty

Source : https://wiki.debian.org/fr/Keyboard

Pour Kali Linux

Chercher task french avec la commande apt-cache search task french puis installer les paquets nécessaires.

Pour Firefox

sudo apt install firefox-locale-fr

Pour VLC

Pour ce qui concerne VLC, s'assurer que le paquet VLC-I18n a bien été installé.

Utiliser le manuel en français

Utiliser man en français, depuis le terminal, c'est possible. Autant profiter du travail effectué par la communauté francophone.

sudo apt install manpages-fr
sudo apt install manpages-fr-dev
sudo apt install manpages-fr-extra

PGP vs GPG

"PGP" et "GPG" signifient "Pretty Good Privacy" et "Gnu Privacy Guard".
PGP et GPG sont utilisés pour crypter et appliquer des signatures numériques aux communications comme le courrier électronique.
Leur but est de rendre la communication impossible pour les autres à lire sauf s'ils ont la bonne clé de déchiffrement.
Lire : https://www.nextinpact.com/news/98509-openpgp-et-gnupg-25-ans-chiffrement-pour-tous-ce-quil-faut-savoir-avant-sy-mettre.htm

PGP

PGP a été développé par Phil Zimmermann.
Symantec a acheté les droits à PGP en 2010.
Installer pgp :
apt-get install pgp
Importer une clé privée PGP .asc : https://www.deepdotweb.com/2015/02/17/basic-guide-pgp-linux/

Signer un fichier avec GPG

Le programme gratuit de signature numérique et de cryptage des e-mails peut être téléchargé pour un usage personnel ou professionnel.
Toutes les données de l'algorithme sont stockées et documentées publiquement par OpenPGP Alliance.
GPG est plus compatible que l'original PGP avec OpenPGP.
GPG est la réécriture de PGP.
GnuPG, est libre.

Installer GPG

apt-get install gpa gnupg2

Créer une clé GPG

# Générer une clé.
gpg --gen-key
4096
0
y
nom
mail
commentaire
passephrase
Ouvrir gpa pour gérer l'ensemble des clés: sudo gpa

Créer une clé GPG

gpg -k retourne toutes les clés, et gpg -K retourne notre ou nos clés privées.
gpg -K pour voir si une clé a été crée.
# Générer une clé.
gpg --gen-key
Nom : NOM
Mail : [email protected]
Passe phrase : PASSE
pub   rsa3072 2018-03-09 [SC] [expire : 2020-03-08]
      7F038.........................970F0C30
Pour signer un fichier : gpg [email protected] --clearsign fichier.txt
Un fichier.txt.asc est créé.

Sinon : gpg --output fichier.sign --sign fichier.txt
Comment créer et gérer des clés : https://www.nextinpact.com/news/102685-gpg-comment-creer-paire-clefs-presque-parfaite.htm
Lire : https://www.gnupg.org/download/index.html
Lire : https://doc.ubuntu-fr.org/gnupg
Source : https://www.gnupg.org/gph/en/manual/x135.html
Utiliser GPG pour envoyer des e-mails chiffrés avec Thunderbird : http://lehollandaisvolant.net/tuto/gpg/

Améliorer la vitesse du Boot

Connaître la vitesse de Boot actuelle avec la commande suivante :
systemd-analyze time
Source : http://blog.touret.info/blog/2018/01/20/ameliorer-le-boot-sous-debian-9/#utm_source=rss&utm_medium=rss

Connaître l'adresse IP d'un site internet et son mail principal déclaré

host -T visionduweb.com 
visionduweb.com has address 93.184.35.226
visionduweb.com mail is handled by 10 postmaster.visionduweb.com

Lire les mails du système

Lire les mails du système en ligne de commande avec mutt

Installer mutt

sudo apt-get install mutt
mutt

Les commandes de mutt

Lire les mails avec mutt.
q 	Quit
d 	Del
u	Undel
s	Save
m	Mail
r	Reply
g	Group
?	Help
Marquer les mails à supprimer avec D.
Quitter mutt. Un message de confirmation demande si les mails doivent être supprimés.

Envoyer un mail avec mutt

Pour envoyer un courriel il suffit de taper "m".

# Il faut alors saisir le destinataire :
To : 
# Puis le sujet :
Subject: 
# On peut alors écrire le corps du courriel.
Le message.
# Une fois fini ctrl+x pour sortir.
# Taper Y pour sauvegarder.
# Taper Y pour envoyer le courriel.

Si vous recevez le courriel c'est que votre serveur de courriel fonctionne correctement.

Mutt avec Gmail

Source : https://nickdesaulniers.github.io/blog/2016/06/18/mutt-gmail-ubuntu/

Utiliser la messagerie et la commande mail

mail
/var/mail/    
ll est un raccourci pour ls -l et permet de lister le contenu d'un dossier et d'afficher les droits.

Mount

Monter un partage CIFS

Source : https://www.it-connect.fr/monter-un-partage-cifs-sous-linux/

Monter une clé USB depuis le terminal avec mount

# Vérifier /etc/add_user.conf à la ligne 77 du ficher adduser.conf et à la ligne 81
# Se mettre dans plugdev crée une entrée dans le mtab. Monter les clés USB avec une entrée dans le fstab.
# adduser NomUser plugdev
## /dev/sdb1       /media/Zer00CooL  auto        user,noauto     0       0
# Créer l'entrée dans /media en étant root ou sudo.
## mkdir  /media/NomUser

Vérifier si le dossier Backup_vers_Samba en local est monté vers le partage de Samba

if mount|grep -q '^//192.168.X.X/dossier_samba_en_partage_distant'
then
 echo
 # Si la cible est montée alors ...
 echo "Le dossier Backup_vers_Samba local est déjà monté sur le réseau vers le partage de Samba."
 echo
else
 echo
 # Sinon la cible n'est pas montée alors ...
 echo "Le dossier Backup_vers_Samba local va être monté sur le réseau vers le partage de Samba."
 echo
 # Monter le dossier Backup_vers_Samba local sur le réseau vers le dossier en partage distant.
 mount -t cifs //192.168.X.XX/dossier_samba_en_partage_distant /media/Backup_vers_Samba/ -o username='utilisateur_samba',password='password_utilisateur_samba'
fi

unmount

umount /media/Backup_vers_Samba/
Si le dossier de montage n'est plus nécessaire, le supprimer.
rmdir /media/Backup_vers_Samba

Lister les ports utilisés avec Netstat

Netstat permet de connaître les ports en écoute sur votre machine, sur quelles interfaces, avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître les routes.
Pour voir les connexions actives netstat -nt, pour les ports ouverts netstat -ntl. On peut aussi vérifier s'il existe une route par défaut.
Par exemple existe-t-il une route par défaut vers la machine 213.186.xx.xx utilisez alors netstat -nr | grep 213.186.xx.xx.
L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur : netstat -a ou netstat -a |grep ssh.
Retourne la liste avec le nom des services - donne des informations sur les interfaces réseau : netstat -a | grep 'listen' -i.
Des informations, paquets reçus, perdus, forwardés, taille options,..., sur le trafic réseau dans le protocole donné : netstat -p ip.
Liste les adresses locales utilisées : netstat -ltunp.
netstat -paunt
-a : Tous les ports
-t : Tous les ports TCP
-u : Tous les ports UDP
-l : Tous les ports en écoute
-n : Affiche directement les IP. Pas de résolution de nom.
-p : Affiche le nom du programme et le PID associé.

Rechercher avec lsof

lsof permet de lister les fichiers ouverts et les processus actifs.
lsof -i indique les processus de type internet.
On peut ne demander que pour un protocole lsof -ni tcp:25 ou que vers une machine lsof -ni @213.186.xx.xx:25
Pour connaître tous les fichiers ouverts sur /hda1 utiliser lsof /dev/hda1
lsof -i -a -p 1234 permet de connaître tous les ports réseau ouverts par le processus 1234 (-a est interprété comme AND).
lsof -p 1234, 12345 -u 500, toto permet de connaître tous les fichiers ouverts par l'utilisateur 500 ou toto ou par le processus 1234 ou 12345.
Il existe des commandes pour faire cela (fuser, ps, netstat...), mais lsof est très complet.
Ok-ko.png Source : http://www.hsc.fr/ressources/breves/ports-ouverts.html.fr

fsck

En cas de problème de fichiers ou de disque, la commande fsck peut permettre de résoudre les difficultés rencontrées.

Par exemple, suite à l'utilisation de Bleachbit pour nettoyer le système, il m'est arrivé deux fois de ne pas arriver à relancer le système au démarrage.

Dans ce cas, la commande fsck /dev/nvme0n1p5 a résolu le ou les problèmes de démarrage.

Que faire avec un paquet qui a un bogue

Utiliser apt-listbugs. Ce paquet est disponible dans les dépôts et permet de se prémunir, pour ceux qui sont en testing ou instable, de l'installation d'un paquet "bugué".
Source : https://wiki.debian-fr.xyz/Apt-listbugs
Il est très simple d'installation et d'utilisation ! Quand un bogue sérieux est identifié, geler le paquet jusque résolution du problème.
Pour retrouver les paquets gelés, utiliser la commande : dpkg -l |grep "^hi" ou encore dpkg --list | grep ^hi

Nettoyer Debian

Deborphan

Deborphan recherche les paquets orphelins qui ne sont plus utilisés, pas les fichiers de conf obsolètes.
Dans un premier temps on peut l'utiliser sans option.
apt-get remove --purge `deborphan --guess-all`
Attention! Deborphan considère certaines librairies comme inutilisées quand aucun paquet n'en dépend de manière essentielle alors qu'elles apportent des fonctionnalités utiles (Codec divX...).

Fichiers de configurations

La commande suivante indique quels fichiers de configuration ne sont pas installés par un paquet.
dpkg -S /etc/init.d/* | grep "no path"
Enlève les fichiers de configuration associés à des paquets desinstallés.
dpkg --purge `dpkg --get-selections|awk '/deinstall/ {print $1}'`
Repérer les fichiers de configuration orphelins
dpkg -l | awk '$1~/^rc$/{print $2}' | xargs echo
Supprimer les fichiers de configuration orphelins
dpkg -P $(dpkg -l | awk '$1~/^rc$/{print $2}')
Une fois par mois faire un aptitude purge '~c' pour éliminer les fichiers de configuration des paquets qui ont été désinstallés et non purgés.

Vider les corbeilles : 3 types de corbeilles sont à prendre en compte

La corbeille utilisateur : ~/.local/share/Trash/ . pour la vider proprement:
rm -Rf ~/.local/share/Trash/*
La corbeille administrateur : /root/.local/share/Trash/ . pour la vider proprement:
rm -Rf /root/.local/share/Trash/*
Les corbeilles externes : situées sur vos disques dur externes, elles sont généralement nommées /media/votre_disque/.Trash_1000, ce qui correspond à votre identifiant utilisateur (uid)

Nettoyer les miniatures

rm -Rf ~/.thumbnails

Vider l'historique du terminal

history -c
history -w
Pour une suppression immédiate et radicale : rm ~/.bash_history
Ok.png Léa Linux - Effacer l'historique des commandes bash : http://lea-linux.org/documentations/Trucs:Effacer_historique_des_commandes_bash
Trouver les paquets supprimés mais non purgés avec dpkg -l |grep "^rc"

Fichiers oubliés

A tester sur une machine virtuelle.
Afin de savoir s'il y a des fichiers temporaires oubliés :
[email protected] # find / -ignore_readdir_race -name "*~"
Libre à vous d'en faire ce que vous voulez, je vous recommande de les supprimer :
for f in $(find / -ignore_readdir_race -name "*~"); do rm $f; done

Fichiers sans propriétaire

A tester sur une machine virtuelle.
Afin de savoir s'il y a des fichiers sans propriétaire :
[email protected] # find / -ignore_readdir_race -nouser -nogroup
Libre à vous d'en faire ce que vous voulez, en théorie il ne devrait pas y en avoir.

Bleachbit

Nettoie automatiquement votre système.

Supprimer les noyaux obsolètes

Inutile de conserver un noyau obsolète, si le nouveau noyau mis à jour permet à votre système de fonctionner.
Dans le cas de GNU/Linux Mint, sur une année d'utilisation, plusieurs Gigas peuvent être récupérés.

Ressources complémentaires pour nettoyer Debian

Ok-ko.png Source : https://wiki.debian-fr.xyz/Nettoyer_sa_Debian
Ok-ko.png Source : https://debian-facile.org/utilisateurs:arpinux:tutos:nettoyer-sa-debian
Ok-ko.png Source : http://doc.ubuntu-fr.org/optimisation

Ressources système

Connaître les ressources système utilisées par un paquet logiciel.
sudo apt install htop
htop
Source complémentaires : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/surveiller-l-activite-du-systeme

Redémarrer Linux en ligne de commande

sudo reboot
sudo shutdown -r
sudo shutdown -r now
#Dans une minute
sudo shutdown -r 1
#A 23h
sudo shutdown -r 23:00
#Annuler un redémarrage
sudo shutdown -c
#En passant par la commande associée au runlevel
sudo init 6

Le Kernel : Noyau de Linux

# Lister les noyaux
dpkg -l |grep linux-image
# Supprimer un ancien noyau.
apt-get remove --purge linux-image-4.13.0-31-generic
# Mettre à jour le grub pour prendre en compte les changements.
# Ici, au démarrage sélectif, les noyaux supprimés précédemment apparaissent toujours.
sudo update-grub
# Mettre à jour Grub2 pour les nouvelles versions de GNU/Linux.
sudo update-grub2

Grub

Le fichier de configuration :
sudo nano /etc/default/grub
Paramétrages manuels : https://doc.ubuntu-fr.org/tutoriel/grub2_parametrage_manuel

Changer la résolution de GRUB2 au démarrage

La résolution par défaut est au maximum et affiche un texte trop petit dans le menu multiboot de GRUB.
Lors de l'affichage du menu du GRUB, appuyer sur c pour faire apparaître la console.
Lancer la commande videoinfo fonctionnelle avec un EFI GRUB pour connaître les résolutions acceptées par le GRUB.
La commande vbeinfo ne fonctionne pas puisque le GRUB est un EFI GRUB.
Éditer # etc/default/grub et ajouter la ligne suivante : GRUB_GFXMODE=800x600
Appliquer les changements : sudo update-grub
Eventuellement : sudo update-grub2
Au redémarrage, le GRUB est parfaitement lisible et occupe correctement l'écran.

Changer le thème de GRUB2

Thème Ubuntu Mate

Thème Ubuntu Mate : apt://grub2-themes-ubuntu-mate

Liste de thèmes

Liste de thèmes : https://www.gnome-look.org/search/projectSearchText/grub2+theme/

Thème Alienware

Télécharger le thème : https://www.gnome-look.org/p/1111263/
Créer le dossier themes dans le dossier /boot/grub/ : sudo mkdir /boot/grub/themes
Copier le contenu des données du fichier alienware.zip dans le dossier /boot/grub/themes.
Le fichier boot/grub/themes/alienware/theme.txt permet de modifier l'affichage personnalisé, de modifier l'emplacement des images, de changer les textes.
Le fichier est proposé en téléchargement à l'aide de coinhive contre 10240 hash et hébergé sur OneDrive.
Télécharger la version modifiée proposée par Vision du web.
Faire une copie du fichier grub par défaut dans le dossier /etc/default/.
sudo cp grub grub.old.bak
Aller dans le dossier qui contient les fichiers de alienware.zip et copier le nouveau fichier grub.
sudo cp grub /etc/default/grub
En option, ajouter les lignes "Redémarrer le système" et "Éteindre le système".
Faire une copie du fichier 40_custom par défaut dans le dossier /etc/grub.d/.
sudo cp 40_custom 40_custom.old.bak
Aller dans le dossier qui contient les fichiers de alienware.zip et copier le nouveau fichier 40_custom.
sudo cp 40_custom /etc/grub.d/40_custom
Noter que les droits du fichier sont en 0755 : sudo chmod 0755 /etc/grub.d/40_custom.
Ce fichier 40_custom peut être traduit en français :
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Arrêter le système' {
halt
echo 'Le système va être arrêté...'
}

menuentry 'Redémarer le système' {
reboot
echo 'Le système va être redémarré...'
}
Mettre à jour le grub : sudo update-grub

Grub et --removable

L'option --removable a deux effets :
- Installer GRUB en tant que EFI/boot/bootx64.efi (si EFI PC 64 bits), qui est le chemin de support amovible reconnu par défaut sans enregistrement d'une entrée d'amorçage EFI, donc utilisé notamment par tous les installateurs et systèmes live, au lieu de l'emplacement normal EFI/debian/grubx64.efi ;
- N'appelle pas efibootmgr pour enregistrer une entrée dans les variables d'amorçage du firmware EFI, opération dont l'échec provoque l'erreur d'installation de GRUB.
Installer systématiquement GRUB avec --removable sur tous les systèmes EFI afin de moins dépendre des caprices des firmwares UEFI et de leur gestion calamiteuse des variables d'amorçage.

Exemple de désinstallation / réinstallation de grub

# Désinstaller grub-pc  et grub. Attention ne pas rebooter avant d'avoir réinstallé grub-pc et le bootloader sur le MBR.
sudo  apt-get  remove  grub-pc
sudo  apt-get  purge  grub-pc
sudo  apt-get  remove  grub
sudo  apt-get  purge  grub
# Réinstaller grub-pc.
sudo  apt-get  install  grub-pc
# Réinstaller le bootloader sur le MBR.
sudo  update-grub
puis
sudo  grub-install   /dev/sda
# Sinon pour booter sur windows, voir a adapter la méthode manuelle :
set prefix=(hd0,6)/boot/grub
insmod /boot/grub/linux.mod
set root=(hd0,1)
chainloader+1
boot

Réinstaller le grub en mode rescue

Démarrer l'installateur en mode rescue.
Exécuter un shell à la racine du système installé.
Pas de commandes, cela ce fait dans l'installateur.
mount /boot/efi
grub-install --removable
Et comme /boot/grub/grub.cfg sera probablement manquant,
update-grub

Ecran noir au démarrage avec quelques points blancs

Résolution en instance. Note suite au bogue :
Suite à une mise à jour de Windows 10 ( 2 mises à jour en simultanée, une pour le système, l'autre pour la sécurité ) windows a redémarré sur le choix de GNU/Linux par défaut.
Depuis, au démarrage, je n'ai plus de GRUB, mais, un écran noir avec 3 points blancs qui forment un trait.
J'ai update-grub et update-grub2 sans succès.
Installation de grub-repair, sans succès. ( sudo add-apt-repository -y ppa:yannubuntu/boot-repair && sudo apt update && sudo apt install -y boot-repair boot-info && sudo boot-repair )
Décendu et supprimé 2 noyau, sans succès.
Je suis 2 versions de noyau au dessous de la version courante et l'écran noir avec tiret blanc statique s'affiche toujours.
Je relance boot-repair
Finalement, " je casse tout ".
Au démarrage par défaut, j'ai une erreur : grub rescue
Je dois passer par f12 et lancer le disque dur 3.
Je réinstalle un OS sur le 1er disque dur et le grub sur le 3ème disque dur.
Je récupère un grub fonctionnel mais mon temps de chargement passe de 50 secondes à 3 minutes 40.
Je n'ai pas réussi pour le moment à réparer mon Grub avec boot-repair.
Source : http://doc.ubuntu-fr.org/boot-repair
Source : https://sourceforge.net/p/boot-repair/home/fr/

Changer le mot de passe du root

Démarrer et appuyer sur la touche e
Une fois dans le fichier du grub, appuyer à nouveau sur e puis ajouter en fin de page : init=/bin/bash ou init=/bin/sh
Touche entrée puis touche b pour arriver à un prompt
Monter le système en lecture / écriture : mount -n -o remount,rw /
Mettre à jour le mot de passe du root, lancer la commande passwd
reboot

Tentative pour accélérer le boot

Source : https://guideubuntu.blogspot.fr/2012/01/accelerer-le-demarrage-dubuntu.html

Couper la mise en veille du système

#!/bin/bash
echo "Stopper la mise en veille de l'écran !"
xset s off
xset -dpms

Permettre la surbrillance dans un terminal à l'aide de la souris

gpm devrait permettre de copier coller, mais, je n'arrive pas à utiliser cette fonctionnalité.
Le curseur de la souris et la surbrillance fonctionnent parfaitement bien.
sudo apt-get install gpm
Source : https://formation-debian.viarezo.fr/gpm.html
Source : https://linux.developpez.com/formation_debian/gpm.html

Installer ncurses

sudo apt install libncursesw5-dev libncurses5-dev ncurses-doc

Liens complémentaires sur ncurses

Introduction à ncurses : http://linuxfocus.org/Francais/March2002/article233.shtml
https://fr.wikipedia.org/wiki/Ncurses
https://fr.wikipedia.org/wiki/Curses

calcurses

Voir également avec calcurses.
Site officiel : http://calcurse.org (Ne fonctionne pas le 24 Juin 2018.)
apt-cache search calcurs

Bibliographie

Ok-ko.png Source : https://buzut.fr/101-commandes-indispensables-sous-linux/
Ok-ko.png Source : Commandes complémentaires : https://doc.ubuntu-fr.org/utilisateurs/fabux/brouillons/com_sh_reso
Ok-ko.png Source : Pages concernant la console : https://doc.ubuntu-fr.org/Console#pages_concernant_la_console
Ok-ko.png Source : Les commandes fondamentales de Linux : http://wiki.linux-france.org/wiki/Les_commandes_fondamentales_de_Linux
Ok-ko.png Source : https://buzut.fr/101-commandes-indispensables-sous-linux/
Ok-ko.png Source : https://wiki.debian.org/fr/ShellCommands
Ok-ko.png Source : https://abs.traduc.org/abs-fr/

Programmation en Shell Bash Linux

Programmation en Shell Bash Linux est un pense bête pour programmer en Shell Bash.

Utiliser Zenity

Utiliser Zenity

NAVIGATION

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

PARTICIPER ET PARTAGER

Vous êtes sur le HackerSpace de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
Pourquoi utiliser GNU/Linux ? Y'a moins bien, mais, c'est beaucoup plus cher.
GNU/Linux, hackerspace, opensource, logiciels libres et transition écologique.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Pour écrire en Markdown : Éditeur - Générateur de tableau 1 - Générateur de tableau 2.
Vous pouvez partager les articles du wiki avec l'ensemble de la communauté des internautes.
Les recherches sur la sécurité servent à administrer et protéger votre système informatique.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

SOUTENIR LE WIKI

Soutenir le wiki avec des Bitcoins.
Soutenir le wiki avec des Bitcoins Cash.
Soutenir le wiki avec des Bitcoins Gold.
Soutenir le wiki avec des Bitcore (BTX).
Soutenir le wiki avec des Blackcoins.
Soutenir le wiki avec des Bytecoins.
Soutenir le wiki avec des Clams.
Soutenir le wiki avec des Dash.
Soutenir le wiki avec des Monero.
Soutenir le wiki avec des Dogecoins.
Soutenir le wiki avec des Ethereum.
Soutenir le wiki avec des Ethereum Classique.
Soutenir le wiki avec des Litecoins.
Soutenir le wiki avec des Potcoins.
Soutenir le wiki avec des Solarcoins.
Soutenir le wiki avec des Zcash.