Informations :
Dates
- Publish : : 2008
- Modification : Sunday 08 january 2023
- 2494 views
Share :
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
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
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
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) :
- Il faut un fichier en execution dans le répertoire
/etc/init.d/
- Lancer la commande
update-rc.d
suivit dit nom du fichier executable suivit du level de démarage
Ajouter un service au démarage
Il existe donc 6 runlevel sous Debian GNU/Linux:
- Le runlevel 0 correspond à l'arrêt du système
- Le runlevel 1 correspond au démarrage single-user
- Le runlevel 2 correspond mode de démarrage normal
- Les runlevels 3-5 correspondent à des modes de démarrage que l'on peut se configurer
- Le runlevel 6 correspond au redémarrage
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
-
X
=S
ouK
, oùS
(start) passe le paramètre start au script mon_script etK
(kill) passe le paramètre stop
Si il n'y a pas de paramètres, le script est tout simplement executé que ca soitS
ouK
-
nn
= numéro correspondant à la priorité de démarrage dans le runlevel.
Les numéros les plus petits sont démarrés en premiers.
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
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 .
Supprimer le service du démarage
Script avec 1 ligne
001update-rc.d -f apache remove
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) :
- pgpkeys.mit.edu
- keyserver.ubuntu.com
Script avec 2 lignes
001gpg --keyserver pgpkeys.mit.edu --recv-key 01234567
002gpg -a --export 01234567 | apt-key add -
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
Pour voir en temps réel l'enregistrement :
Script avec 1 ligne
001tail -f mon_fichier
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
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
On installe :
Script avec 2 lignes
001apt-get install kdebase-bin kdemultimedia
002apt-get install x-window-system-core
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
Installer les librairies et les utilitaires
Script avec 1 ligne
001apt-get install kdelibs arts fontconfig
Installer un Display Manager (window manager) xdm
, kdm
, gdm
, blackbox
, fluxbox
... :
Script avec 1 ligne
001apt-get install kdm
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
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
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 langageC
, mais aussi de langages de scriptssed
,awk
, shell (sh
),grep
,cut
,test
etexpr
.
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
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
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)....
Et installer des modules perl
:
Script avec 3 lignes
001user@machine:~ # cpan
002cpan[1]>install URI
003cpan[1]>quit
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
- Documentation Perl en français * La documentation Perl en français
- Programmation Perl/Les modules — Wikilivres
- Formation Perl - Guide Perl : les modules
- PERL : Mémo pour scripter - Wiki