ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, OS GNU/Linux, Trucs et astuces

Divers trucs et astuces de l'environnement GNU/Linux.

Author : ZW3B

Commandes de base

ls liste ce qui se trouve dans un répertoire. Par exemple : ls -la /home/user (liste les fichiers/dossiers et ceux cachés) ou ls -lt /home/user (liste les fichiers/dossiers selon la date).

cd permet de rentrer dans un répertoire. Par exemple cd /home/ (se rendre dans le répertoire /home).

cp permet de copier un fichier ou un répertoire. Par exemple cp /home/user/file.txt /home/user/file-copy.txt ou cp -r /home/user/folder/ /home/user/folder-copy/.

mv permet de déplacer un fichier ou un répertoire. Par exemple mv /home/user/file.txt /home/user/file-move.txt ou mv /home/user/folder/ /home/user/folder-move/.

rmdir permet de suprimer un répertoire vide. Par exemple rmdir /home/user/folder-move/.

rm permet de suprimer un fichier ou un répertoire non vide (option -rf récursive et force).

Lister avec la commande tree

tree liste l'arborescence. Par exemple : tree -d -L 2 /home/user va lister seulement les répertoires récursivement sur 2 sous-dossiers.

Vous pouriez utiliser la commande "ls" ou créer une fonction "bash" vous même. Quels exemples par ici :
https://stackoverflow.com/questions/3455625/linux-command-to-print-directory-structure-in-the-form-of-a-tree

Quel est le système ?

uname ou echo $OSTYPE affiche le nom du système d'exploitation.

uname -a affiche diverses informations système (nom du SE, version, microprocesseur ...).

arch ou uname -m affiche le type du microprocesseur.

cat /proc/cpuinfo affiche des informations sur le microprocesseur (type, fréquence, cache ...).

Notes : les informations recueillies avec uname -a peuvent aussi être obtenues avec certaines variables système : echo $OSTYPE $BASH $BASH_VERSION etc.

Depuis combien de temps ce shell est-il actif ?

uptime affiche l'heure, la durée d'activité du système, le nombre d'utilisateurs ...

echo $SECONDS affiche la durée d'activité du shell courant en secondes.

echo $[$SECONDS/3600]h $[($SECONDS%3600)/60]mn $[$SECONDS%60]s affiche cette durée en heures, minutes et secondes.

Notes : bash ne connaît que les entiers et donc que les divisions euclidiennes, / permet d'en obtenir le quotient et % d'en obtenir le reste (ou modulo). Chaque fois que vous changez de terminal, ouvrez un nouvel xterm ou faites un su, celui-ci correspond à un nouveau (sous)shell, sa variable SECONDS est donc alors à 0. Pour savoir depuis combien de temps vous êtes sous Linux, revenez à votre console de login ; pour savoir depuis quand le système est actif, utilisez uptime.
Voir cette note sur les calculs avec BASH.

Qu'en est-il des disques, de la mémoire, du microprocesseur ?

mount affiche la liste des disques montés.
mount -a monte la liste des disques/partitions configurés dans le fichier /etc/fstab
mount -t ext3 /dev/sdb1 /mnt/share monte la partition 1 (formaté en Linux EXT3) du disque b dans le répertoire /mnt/share

Si la commande umount -f 10.106.42.2:/home/share vous retourne umount.nfs4: /home/share: device is busy vous pouvez utiliser le démontage paresseux avec l'option -l (lazy umount) :

Script avec 1 ligne

001umount 10.106.42.2:/home/alibaba -l
Retirer les numéros de lignes

Utiliser la commande lsof | grep '/home/share' pour visualiser les fichiers ouverts.

df -ah affiche au format humain l'espace total, occupé, libre sur tous les disques.

du -sh affiche au format humain l'espace total d'un répoertoire. Par exempel : du -sh /home/user/.

free ou cat /proc/meminfo affiche des informations sur la mémoire (totale, libre, swap ...).

vmstat affiche les statistiques sur la mémoire virtuelle.

top affiche et permet d'observer en temps réel l'activité de la mémoire et du microprocesseur. Notes : la touche q permet de quitter la commande top.

Quelles sont et que signifient les variables système ?

$ + appuyer sur TABULATION 2 fois affiche les noms des principales variables système.

help variables | more affiche page par page la définition des principales variables système.

Notes : les noms des variables système sont généralement écrits en majuscules. A chacune de ces variables correspond une question et une réponse, quelques unes seulement ont été formulées à divers endroits dans cette page.

Que contiennent ces variables système ?

echo $NOM_VARIABLE affiche le contenu de NOM_VARIABLE.

echo $USER affiche le nom de l'utilisateur en cours.

echo $PS1 affiche la chaîne de caractères définissant le prompt.

printenv | more affiche page par page l'environnement.

set | more affiche page par page le contenu des principales variables système.

Notes : vous pouvez bien sûr modifier le prompt PS1="chaîne de caractères". Pour rendre cette modification générale et durable, il faut utiliser le fichier /etc/bashrc (nécessite d'être root).

Qui suis-je et qui est ou était connecté au système ?

id nom_utilisateur affiche les identifications de nom_utilisateur.

id affiche vos identifications : UID, GDI, groupes.

whoami affiche vos coordonnées dans le système.

pwd affiche le répertoire où vous vous trouvez.

who -H affiche avec une entête des informations (nom de login, console ... ) sur les utilisateurs connectés.

w affiche qui est connecté (who -H) et aussi ce qu'il fait.

last -n 12 affiche la liste des 12 dernières connexions.

Notes : la commande who am i ne fonctionne pas toujours sous xterm, dans ce cas entrez whoami mais vous n'obtiendrez que votre nom de login. De nombreuses commandes permettent d'obtenir une partie des renseignements évoqués ci-dessus, leurs noms parlent d'eux-mêmes : logname, users, groups ...

Quelles sont la date et l'heure ?

date affiche la date et l'heure.

date +%x affiche seulement la date au format jj.mm.aaaa.

date +%X affiche uniquement l'heure au format hh:mm:ss.

cal affiche un calendrier du mois en cours.

cal 2010 affiche le calendrier de l'an 2010, etc.

Modifier la date :

date +%Y%m%d -s "20141021".

Modifier l'heure :

date +%T -s "11:20:00".

Modifier le fuseau horaire :

La commande dpkg-reconfigure tzdata avec une distribution debian/ubuntu modifie le fichier /etc/timezone.

Mettre à jour la date et l'heure automatiquement

La commande ntpdate se connecte sur des serveur de temps NTP : (Network Time Protocol) et met à jour votre heure système. Il faut ouvrir le port UDP 123 sur vos pares-feu.

Script avec 2 lignes

001# Envoie la demande de mise à jour du temps toutes les 6 heures avec un sleep entre 0 et 60 minutes (en IPv6).
0020 */6 * * *    sleep $(shuf -i 0-3600 -n1); /usr/sbin/ntpdate -6 ntp.lab3w.fr  1>>/var/log/syslog 2>/dev/null 2>&1
Retirer les numéros de lignes

Alternative à NTP, chrony qui supporte le protocole Network Time Security (NTS).

Calculatrice en mode console

echo 12*3.02 | bc -l calcul correct, arrive bien à multiplier avec la virgule, retourne 36.24.

A ne pas utiliser : echo $((145/8*456)) mauvais calcul, retourne 8208 !!

echo 145/8*456 | bc -l calcul correct, retourne 8265.00000000000000000000

Screensaver sécurisé pour ma console

Vous sortez pour la pause déjeuner et ne voulez pas que tous vos collègues accèdent à votre poste ; Lancer cmatrix comme écran de veille de vos consoles et vlock s'occupe de sécuriser votre console avec une jolie matrix.
Créer l'alias lock qui executera votre commande de mise en pause déjeuner ^^

Script avec 2 lignes

001alias lock='cmatrix -saB -u 4 -C green && vlock'
002lock
Retirer les numéros de lignes

Désactivé la mise en veille à la fermeture du capot

Pour que le couvercle (Lid) ne soit plus pris en compte, il faut :

Editer le fichier vim /etc/systemd/logind.conf et activer la ligne HandleLidSwitch=suspend en HandleLidSwitch=ignore

Linux command mail closed mail + send with dot do not working

Lorsque que l'on souhaite envoyer un mail depuis la console linux, il s'avère des fois que le . (dot) de terminaison de fin de mail ne fonctionne pas - Il faut utiliser la combinaison des touches Ctrl+d. Plus d'infos..

Ajouter / Suppprimer un script de démarage

Sous débian et Ubuntu (et ses variantes) :

Ajouter un service au démarage

Il existe donc 6 runlevel sous Debian GNU/Linux:

Les runlevel sont des niveaux constitués d'un ensemble de liens situés dans les répertoires /etc/rcX.d/ (X=runlevel) qui pointent vers les scripts situés dans /etc/init.d/
Ces liens sont de la forme Xnnmon_script ce qui pointe vers /etc/init.d/mon_script

Tous les scripts dont le lien commence par K sont executés en premier, ensuite vient les scripts dont le lien commence par S.

Script avec 1 ligne

001update-rc.d apache defaults
Retirer les numéros de lignes

Ici on déclare un runlevel de 10 au lieu de 20 (par default)

Script avec 1 ligne

001update-rc.d firewall start 10 1 2 3 4 5 . stop 10 0 6 .
Retirer les numéros de lignes

Supprimer le service du démarage

Script avec 1 ligne

001update-rc.d -f apache remove
Retirer les numéros de lignes

La commande update-rc.d permet de gérer les différents runlevel (mais on peut également créer les liens "à la main")....

Clé d'authentification de dépots APT - Erreur GPG : NO PUBKEY

Si vous avez une erreur de type gpg: failed to start the dirmngr '/usr/bin/dirmngr': et cela depuis debian stretch en gros. Il faut simplement installer le paquet dirmngr.

Les serveurs (non exhaustif) :

Script avec 2 lignes

001gpg --keyserver pgpkeys.mit.edu --recv-key 01234567
002gpg -a --export 01234567 | apt-key add - 
Retirer les numéros de lignes

Apt : ajout correct d'une clé GPG

Depuis 2020, ajouter une clé GPG pour les dépôts utilisés par apt ne doit plus se faire par le biais de la commande apt-key ; celle-ci est déclaré obsolète ET ne doit plus être utilisée - même s'il y a de « vieux grincheux » qui s'y essayent toujours../ https://www.debian-fr.org/t/apt-ajout-correct-dune-cle-gpg/85278

Enregistrer les entrées et sorties d'écran :

Pour stopper l'enregistrement taper exit.

Script avec 1 ligne

001script -f mon_fichier
Retirer les numéros de lignes

Pour voir en temps réel l'enregistrement :

Script avec 1 ligne

001tail -f mon_fichier
Retirer les numéros de lignes

Crontab (tâche planifiée linux) :

Lancer une tache planifée sur un script qui s'excutera quelques secondes plustard.

Script avec 11 lignes

001crontab -e
002# +---------------- minute (0 - 59)
003# |  +------------- hour (0 - 23)
004# |  |  +---------- day of month (1 - 31)
005# |  |  |  +------- month (1 - 12)
006# |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
007# |  |  |  |  |
008# *  *  *  *  *  command to be executed
009
010# Un script toutes les heures sur un nombre aleatoire de minutes (entre 0 et 40 minutes)
011# 0 */1 * * * sleep $(shuf -i 0-2400 -n1) ; good_ramdom_script.bash 1>>/var/log/syslog 2>/dev/null 2>&1
Retirer les numéros de lignes

Permet de ne pas surcharger le serveur (le monde) à la même seconde, à la même heure tous les jours - Par exemple comme envoyer toutes les 15 minutes de chaque heure - ou à minuit pile votre demande, tâche planifiée.

Installer KDE sous Debian

On se dit souvent, que c'est compliquer d'installer KDE sur une install minimum... mais en s'y plongeant de plus près...

On pourait installer les dépendances de KDE (ou bien) :

Script avec 1 ligne

001apt-get build-dep kdebase-bin
Retirer les numéros de lignes

On installe :

Script avec 2 lignes

001apt-get install kdebase-bin kdemultimedia
002apt-get install x-window-system-core
Retirer les numéros de lignes

kdebase-bin : Le strict minimum pour faire tourner votre environnement sous KDE.
kdemultimedia : Des applications multimédia incluant le support pour les CD, les MP3, les DVD, l'enregistrement du son et de la vidéo.
kdeadmin : Outils administratifs KDE tels que KCron (planificateur de tâches), KUser (gestion des utilisateurs) et KDat (gestion des sauvegardes).
kdeartwork : Diverses composantes à caractère artistique telles que des écrans de veille et des thèmes. Consultez www. pour ce qui a trait à l'art et à KDE.

Installer les packages selon votre langue (ex: kde-l10n-en ou la version actuelle)

Script avec 1 ligne

001apt-get install kde-l10n-fr
Retirer les numéros de lignes

Installer les librairies et les utilitaires

Script avec 1 ligne

001apt-get install kdelibs arts fontconfig
Retirer les numéros de lignes

Installer un Display Manager (window manager) xdm, kdm, gdm, blackbox, fluxbox... :

Script avec 1 ligne

001apt-get install kdm
Retirer les numéros de lignes

Installer des applications externes :

Script avec 2 lignes

001apt-get install koffice koffice-l10n-fr koffice-libs
002apt-get install k3b kaffeine kaffeine-mozilla xmms
Retirer les numéros de lignes

koffice est la Suite Office complète de KDE.
k3b est un utilitaire de gravure de CD/DVD complet.
kaffeine est un lecteur multimédia pour KDE.
xmms est un player audio, vidéo.

Re-configurer Xorg :

Script avec 1 ligne

001dpkg-reconfigure xserver-xorg
Retirer les numéros de lignes

Compiler un noyau Linux en partant des sources de kernel.org et cela en créant des packages debian.

WikipediA : Linux ou GNU/Linux est une famille de systèmes d'exploitation open source de type Unix fondé sur le noyau Linux, créé en 1991 par Linus Torvalds.

De nombreuses distributions Linux ont depuis vu le jour et constituent un important vecteur de popularisation du mouvement du logiciel libre.

Si vous souhaitez testé de compiler le dernier noyau Linux sur une Debian en créant des paquets, j'ai créais une sujet de discussion ici -> Re-compilation Linux kernel..

Commandes : make deb-pkg / make bindeb-pkg / patch

Sinon pour profiter des derniers noyeaux officiels, il suffit de prendre les backports de debian, pas besoin d'aller sur kernel.org .

Install Perl no-standard directory

WikipediA : Perl est un langage de programmation créé par Larry Wall en 1987 pour traiter facilement de l’information de type textuel.

Ce langage, interprété, s'inspire des structures de contrôle et d'impression du langage C, mais aussi de langages de scripts sed, awk, shell (sh), grep, cut, test et expr.

J'ai créais un sujet de discussion sur l'environnemnt de programmation "perl " : Comment installer un environnement « perl » dans le répertoire de sa « homedirectory » et sans droit « root » .

Ou autrement dit : Installing mod_perl without superuser privileges ou Installation into a Nonstandard Directory (Practical mod_perl)

En plus de pouvoir être un langage Web (grâce au CGI entre autre), il peut travailler avec la machine ou avec des « composants » externes grâce aux sockets ou interaction en dehors du protocole Web (HTTP/HTTPS).

How to install "perl" from source

Perl Source sur CPAN (Comprehensive Perl Archive Network)

Comme çà :

Script avec 7 lignes

001user@machine:~ # wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz
002tar -xzf perl-5.36.0.tar.gz
003cd perl-5.36.0
004./Configure -des -Dprefix=$HOME/localperl
005make
006make test
007make install
Retirer les numéros de lignes

Puis ajouter des variables d'environnement :

Script avec 10 lignes

001user@machine:~ # vi .bashrc
002[...]
003PATH="${HOME}/localperl/bin${PATH:+:${PATH}}"; export PATH;
004PERL5LIB="${HOME}/localperl/lib/5.36.0:${HOME}/localperl/lib/perl5:${HOME}/localperl/lib/site_perl/5.36.0/x86_64-linux"; export PERL5LIB;
005PERLLIB=$PERL5LIB; export PERLLIB;
006PERL_LOCAL_LIB_ROOT=$PERL5LIB; export PERL_LOCAL_LIB_ROOT;
007PERL_MB_OPT="--install_base "${HOME}/localperl""; export PERL_MB_OPT;
008PERL_MM_OPT="INSTALL_BASE=${HOME}/localperl"; export PERL_MM_OPT;
009
010user@machine:~ # source .bashrc
Retirer les numéros de lignes

Et vérifier votre perl (local) :

Script avec 5 lignes

001user@machine:~ # which perl
002/home/user/localperl/bin/perl
003
004user@machine:~ # perl -V
005Summary of my perl5 (revision 5 version 36 subversion 0)....
Retirer les numéros de lignes

Et installer des modules perl :

Script avec 3 lignes

001user@machine:~ # cpan
002cpan[1]>install URI
003cpan[1]>quit
Retirer les numéros de lignes

Informations Perl & LWP by Sean M. Burke LWP Modules : Chapter 4. URLs (URI.pm).


INSTALL - Build and Installation guide for perl 5 - metacpan.org

Créez et utilisez un lib/ local pour des modules Perl avec la variable d'envirnnement PERL5LIB -> local::lib

Configurer votre configuration personnelle .cpan/CPAN/MyConfig.pm -> Cpan::FirstTime

Trouver des miroirs « CPAN » Find CPAN mirrors and configure the local CPAN