Accueil > Linux > Lignes de commandes > bash - shell - un certain nombre de programmes
bash - shell - un certain nombre de programmes
Publié le 19 mars 2017, dernière mise-à-jour le 14 novembre 2025, > 56 visites, >> 165987 visites totales.
- gkrellm : contrôler charge CPU, disque durs, réseau, mails, mémoire->#gkrellm]
- ulimit,prlimit : mettre des limites sur les processus ( tailles , segments, mémoire ...
- debsums : vérifier les paquets et les fichiers de configuration
- cpulimit : limiter l’utilisation de l’ordi
- cputool : limiter l’utilisation de l’ordi
- watch : Exécuter un programme périodiquement en affichant le résultat à l’écran
- chattr : bloquer un fichier en écriture et quelconques changements
- trouver un fichier dans un paquet
- apt apt-get
- touch
- built-in commands
- readlink
- pid d’une fenêtre
- pid des processus
- formater des lignes
- afficher les codes hexadécimaux dans un texte
- export
- id
- loginctl
- ps
- cd
- ls
- sudo -s
- chown et chmod
- ifconfig ( obsolète )
- mount et umount
- ps
- kill et killall
- top et htop
- apt
- paquets : dépendances
- df
tail/head
tail -n 25 fichier : afficher les dernières 25 lignes
head -n 23 fichier : afficher les premières 25 lignes
tail -n +10 fichier |head -n 20 : afficher les lignes 10 à 10+20-1
CESU
A partir des fichiers de salaires donnés par le cesu, Bulletin salaire_MACHIN_11_2019.pdf, on obtient
| Id | Date | Net | NetImposable | Heures | SalaireHoraireNet | SalaireBrut | Patron | Fichier |
| 2015/05 | 180 | 186,71 | 6 | 30 | 235,39 | MACHIN | ./MACHIN/Bulletin salaire_MACHIN_05_2015.pdf |
find . -name "*pdf" -print |while read i ; do echo "$i";nom=$(echo "$i" |sed 's#.*Bulletin salaire_\(.*\)_\([0-9][0-9]\)_\(20[0-9][0-9]\).pdf#\1#'); pdf2htmlEX "$i" a.html ; tmp=$(cat a.html |sed 's/<[^<>]*>//g' |tr "\n" " " |sed "s#.*Paie du [0-9][0-9]/\([0-9][0-9]\)/\(20[0-9][0-9]\).*Salaire net imposable (CSG/CRDS inclus) : \([0-9,]*\) €.*Net à payer avant impôt sur le revenu:\([0-9,]*\) €.*Nombre d'heures travaillées:\([0-9]*\).*Salaire horaire net (heures normales):\([0-9,]*\) €.*Salaire brut : \([0-9,]*\) €.*#\2/\1\t\4\t\3\t\5\t\6\t\7\n#"); echo -e "\t""$tmp""\t""$nom""\t""$i" >>tmp.csv ;done ; echo -e "Id\tDate\tNet\tNetImposable\tHeures\tSalaireHoraireNet\tSalaireBrut\tPatron\tFichier">salaires.csv ; cat tmp.csv |sort -u >> salaires.csv ;rm tmp.csv a.html
xclip
xclip -o : colle le texte copié ( copier/coller )
shellcheck
sudo apt-get install shellcheck
Tester l’intégrité d’un fichier sh : oublie de guillemets,...
décimal <-> hexadécimal
- décimal -> hexadécimal
echo "257"|dc -e '10i16o?p' 101 - hexadécimal -> décimal
echo "101"|dc -e '10o16i?p' 257 - (2+1)*F -> decimal
echo "F 1 2"|dc -e '10o16i?+*p' 45
ulimit, prlimit : mettre des limites aux processus
ulimit [-HS] -a
ulimit -HS] [-bcdefiklmnpqrstuvxPRT [limitation]]
prlimit [options] [--resource[=limits]] [--pid PID]
prlimit [options] [--resource[=limits]] command [argument...]
debsums : vérifier les paquets et les fichiers de configuration
debsums -s : Affiche seulement les erreurs.
debsums -e : Vérifie seulement les fichiers de configuration.
debsums -c : Vérifie les fichiers modifiés.
cpulimit : limiter l’utilisation de l’ordi
sudo apt-get install cpulimit
- limiter l’utilisation de l’ordi par un programme
il faut d’abord récupérer le PID- si on connaît le nom du programme, par exemple ici blender4 :
ps -C blender4 -o pid= - on obtient un nombre (ou plusieurs ) : 771928
- si on connaît le nom du programme, par exemple ici blender4 :
- un ordinateur contient plusieurs "coeurs" , chacun compte pour 100% ainsi 8 coeurs = 800%.
- exemple : on autorise la moitié de la puissance de l’ordi à 8 coeurs pour blender4 , soit 400% :
cpulimit -l 400 -p 771928
- exemple : on autorise la moitié de la puissance de l’ordi à 8 coeurs pour blender4 , soit 400% :
(d’après https://fr.linux-terminal.com/?p=5438)
cputool : limiter l’utilisation de l’ordi
sudo apt-get install cpuset
attention , cputool marche avec 1024 = 100%
- limiter l’utilisation du processeur d’un processus portant l’ID 1234 à 50 % :
sudo cpuset -p 1234 -u 512 - allouer uniquement les cœurs de processeur 0 et 1 au processus portant l’ID 1234 :
sudo cpuset -p 1234 -l 0,1
regroupement de processus :
- créer un groupe :
sudo mkdir /sys/fs/cgroup/cpuset/mycpuset - déplacer les processus dans le cpuset :
echo 1234 | sudo tee /sys/fs/cgroup/cpuset/mycpuset/tasks - limiter l’utilisation du processeur du cpuset "mycpuset" à 20% :
echo 20 | sudo tee /sys/fs/cgroup/cpuset/mycpuset/cpu.shares
( d’après https://fr.linux-console.net/?p=22930 )
watch : Exécuter un programme périodiquement en affichant le résultat à l’écran
exemple : regarder l’état de la mémoire vive toutes les 1s en mettant en exergue les différences et quiite si rien n’a changé au bout de 7 fois : : watch -n 1 -d -q 7 free
chattr : bloquer un fichier en écriture et quelconques changements
chattr +i fichier
trouver un fichier dans un paquet
grep foo2hbpl2 /var/lib/dpkg/info/*.list
dpkg -S foo2hbpl2
apt apt-get
apt list mariadb-client mariadb-server
En train de lister... Fait
mariadb-client/stable,now 1:10.11.3-1 amd64 [installé, automatique]
mariadb-client/stable 1:10.11.3-1 i386
mariadb-server/stable,now 1:10.11.3-1 amd64 [installé]
mariadb-server/stable 1:10.11.3-1 i386
liste des fichiers installés par apt-get/apt ou enlevés par remove :
for nom in $(ls -tr /var/log/apt/history.log*);do zgrep -a apt "$nom"|egrep " install | remove "|grep -v -- "-d" |sed -e 's#-y##' -e 's#^Commandline: ##' -e 's#^apt #apt-get #'|sed 's# --reinstall # #';done
on obtient des lignes
apt-get install
apt-get remove
apt-get --purge
touch
changer la date du fichier
touch -t "AAAAMMJJMMSS" fichier
touch -t "202310051200" fichier
built-in commands
compgen -b
readlink
Afficher la valeur d’un lien symbolique après résolution ou le nom canonique d’un fichier
readlink /usr/bin/X
Xorg
carlrwxrwxrwx 1 root root 4 19 févr. 14:42 X -> Xorg
pid d’une fenêtre
lancer
xprop |igrep pid|sed "s#[^0-9]##g"
choisir une fenêtre
pid des processus
echo $BASHPID
5770
gedit &
[1] 6087
pstree -p | grep -C 2 6087
| |-dconf-service(1617)-+-{dconf-service}(1622)
| | -{dconf-service}(1623)
| |-gnome-terminal-(5760)-+-bash(5770)-+-gedit(6087)-+-bash(6095)
| | | | |-{gedit}(6088)
| | | | |-{gedit}(6089)
formater des lignes
afficher sur 6 colonnes : ls |pr -6t
afficher les codes hexadécimaux dans un texte
echo "la ligne de commande" | hd
echo "a^Va" |hd
00000000 61 16 61 0a |a.a.|
00000004
echo "a^Va" |hd |cut -d "|" -f2
a.a.
00000004
export
export donne les valeurs des variables
exemple :
export |grep SHELL
declare -x SHELL="/bin/bash"
echo $SHELL
/bin/bash
id
utilisateur normal : id
uid=1000(moi) gid=1000(moi) groupes=1000(moi),....
root : id
uid=0(root) gid=0(root) groupes=0(root)
loginctl
loginctl session-status
Failed to query ControlGroup: No such property 'ControlGroup'
1 - moi (1000)
Since: Wed 2017-08-02 14:43:37 CEST; 2h 3min ago
Leader: 4152 (lightdm)
Seat: seat0; vc7
Display: :0
Service: lightdm; type x11; class user
Desktop: mate
State: active
Unit: session-1.scope
ps
ps aux |grep lightdm
root 2287 0.0 0.0 289964 6528 ? SLl 14:42 0:00 /usr/sbin/lightdm
root 2770 2.0 0.8 427468 72676 tty7 Ssl+ 14:42 2:34 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
lightdm 3658 0.0 0.0 48136 2428 ? S 14:43 0:00 dbus-launch --autolaunch=951a1a1adc434650a61cdb4b557a485b --binary-syntax --close-stderr
lightdm 3773 0.0 0.0 45120 2584 ? Ss 14:43 0:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
lightdm 4014 0.0 0.0 220224 6244 ? Sl 14:43 0:01 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
root 4152 0.0 0.0 250708 6840 ? Sl 14:43 0:00 lightdm --session-child 12 21
cd
ouvrir un terminal menu applications/accessoires/terminal :
apparaît nom@ordi : $ qui sera utilisé dans la suite
cd nom_du_repertoire : va dans le répertoire
exemple : cd /usr/bin
cd .. on remonte d’un répertoire
cd : on va dans le répertoire personnel ( équivalent à cd /home/nom )
ls
ls : liste les fichiers et répertoires
ls -alliste les fichiers et répertoires y compris cachés et les permissions
permissions : voir chmod xyz fichier
r = read ( lecture autorisée ) :vaut 4 ou 0
w = write ( écriture autorisée) : vaut 2 ou 0
x : exécution autorisée : vaut 1 ou 0
rx = 4 + 1 = 5
rwx = 4 + 2 + 1 = 7
sudo -s
sudo -s : apparaît root@ordi : $ : vous devenez root, donc vous pouvez tout faire sur cet ordi, y compris tout effacer.
chown et chmod
chown nom :nom fichier : le fichier devient le fichier de nom dans le groupe nom ; le fichier doit déjà vous appartenir sinon passez en root
chown -R nom :nom repertoire : le répertoire et tout ce qu’il contient devient le fichier de nom dans le groupe nom
chmod xyz fichier : le fichier prend les permissions xyz : très utile si vous ne pouvez pas copier dans un répertoire, ou lire un fichier. ( voir ls -al )
x : permissions du propriétaire
y : permissions du groupe
z : permissions de tout le monde
x, y et z sont des nombres de 0 à 7 tels que :
0 2 4 6 : fichier non exécutable ( ou répertoire non ouvrable )
1 3 5 7 : fichier exécutable ( ou répertoire ouvrable )
0 1 4 5 : fichier non réinscriptible
2 3 6 7 : fichier réinscriptible
0 1 2 3 : fichier non lisible
4 5 6 7 : fichier lisible
exemple : 5 : fichier exécutable ( ou répertoire ouvrable ) et fichier non réinscriptible et fichier lisible
exemple chmod 754 fichier :
7 : fichier exécutable ( ou répertoire ouvrable ) et fichier réinscriptible et fichier lisible pour le propriétaire du fichier
5 : fichier exécutable ( ou répertoire ouvrable ) et fichier non réinscriptible et fichier lisible pour tous les utilisateurs appartenant au groupe du fichier
4 : fichier non exécutable ( ou répertoire non ouvrable ) et fichier non réinscriptible et fichier lisible pour tous les utilisateurs
chmod -R xyz repertoire : le répertoire et tout ce qu’il contient prend les permissions xyz
ifconfig ( obsolète )
ifconfig : donne les caractéristiques de votre réseau et/ou internet
utiliser plutot ip a commandes réseaux en vrac
mount et umount
mount -a : monte tout ce qui est déclaré dans /etc/fstab, par exmple, permet d’accéder à une partition nouvellement créée
umount /media/hda1 : démonte /media/hda1
ps
ps aux : montre les programmes en cours d’exécution ; permet en particulier de les arrêter en notant le premier nombre ( PID )
kill et killall
killall firefox-bin : arrête tous les programmes firefox-bin
kill -9 PID, tue le programme PID
on peut aussi utiliser top ou htop :
top puis CTRL C pour arreter : montre l’utilisation du CPU
free : montre l’utilisation des mémoires
contrôler charge CPU, disque durs, réseau, mails, mémoire->#gkrellm]
gkrellm
GKrellM est un moniteur système logiciel servant à surveiller l’état du processeur, de la mémoire vive, des disques durs, des interfaces réseau, des boîtes de courriel ainsi que beaucoup d’autres choses. Il est distribué sous licence GNU GPL.
Des greffons (ou plugins) sont disponibles pour une multitude de tâches, par exemple piloter le lecteur multimédia XMMS ou un client SETI@home. GKrellM est devenu populaire auprès des utilisateurs des systèmes d’exploitation GNU/Linux et *BSD. Il existe pour lui beaucoup de thèmes différents. GKrellM utilise peu de mémoire vive, mais il n’est pas aussi extensible que d’autres logiciels similaires, tels les gDesklets.
top et htop
top - 00:37:05 up 1:44, 2 users, load average: 4,74, 3,54, 2,77
Tasks: 168 total, 1 running, 167 sleeping, 0 stopped, 0 zombie
%Cpu(s): 95,0 us, 5,0 sy, 0,0 ni, 0,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
MiB Mem : 2874,5 total, 117,2 free, 821,0 used, 1936,4 buff/cache
MiB Swap: 7000,2 total, 6987,7 free, 12,6 used. 1810,6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2211 poum 20 0 1115808 212328 67788 S 77,8 7,2 5:57.61 ghb
511 root 20 0 369520 61344 43420 S 11,1 2,1 3:08.68 Xorg
on peut configurer htop pour avoir la température
apt
-
apt-get install programme: télécharge sur internet ou un cd ( déclaré dans /etc/apt/sources.list ) et installe le programme
-
apt-cache show vlc-plugin-jackAffiche les informations associée au paquet vlc-plugin-jack.
Package: vlc-plugin-jack
Source: vlc
Version: 3.0.10-0+deb9u1
Installed-Size: 216
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: amd64
Depends: libc6 (>= 2.8), libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125, libvlccore9 (>= 3.0.10), vlc-plugin-abi-3-0-0f
Description-fr: greffons audio Jack pour VLC
VLC est le lecteur multimédia du projet VideoLAN. Il peut lire les
fichiers MPEG, MPEG-2, MPEG-4, DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3,
Ogg/Vorbis, les DVD, VCD, la baladodiffusion et les flux multimédia de diverses
sources réseau.
.
Ces greffons permettent au lecteur multimédia VLC d'utiliser JACK. Pour
activer le module de sortie audio, utilisez l'option « --aout jack » ou
sélectionnez le greffon de sortie audio « jack » dans le menu des
préférences. Pour une entrée jack, utilisez
« vlc jack://channels=…:ports=… »
Description-md5: 48cfa579f6997ac3ff068125f952b74b
Homepage: http://www.videolan.org/vlc/
Enhances: vlc
Multi-Arch: same
Pre-Depends: dpkg (>= 1.17.14)
Section: video
Priority: optional
Filename: pool/updates/main/v/vlc/vlc-plugin-jack_3.0.10-0+deb9u1_amd64.deb
Size: 132398
MD5sum: fe8dd1d6c9ddacf6889ed48a0924bac2
SHA1: ef6bfbff50a17f95b5916e73bb143fcdca531bf4
SHA256: a3aa78a79588c66d5396965aef622d738c9549ace592b274d131c9f76123a236
Package: vlc-plugin-jack
Source: vlc
Version: 3.0.8-0+deb9u1
Installed-Size: 214
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: amd64
Depends: libc6 (>= 2.8), libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125, libvlccore9 (>= 3.0.8), vlc-plugin-abi-3-0-0f
Pre-Depends: dpkg (>= 1.17.14)
Enhances: vlc
Description-fr: greffons audio Jack pour VLC
VLC est le lecteur multimédia du projet VideoLAN. Il peut lire les
fichiers MPEG, MPEG-2, MPEG-4, DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3,
Ogg/Vorbis, les DVD, VCD, la baladodiffusion et les flux multimédia de diverses
sources réseau.
.
Ces greffons permettent au lecteur multimédia VLC d'utiliser JACK. Pour
activer le module de sortie audio, utilisez l'option « --aout jack » ou
sélectionnez le greffon de sortie audio « jack » dans le menu des
préférences. Pour une entrée jack, utilisez
« vlc jack://channels=…:ports=… »
Description-md5: 48cfa579f6997ac3ff068125f952b74b
Multi-Arch: same
Homepage: http://www.videolan.org/vlc/
Tag: role::plugin
Section: video
Priority: optional
Filename: pool/main/v/vlc/vlc-plugin-jack_3.0.8-0+deb9u1_amd64.deb
Size: 130968
MD5sum: a02911e1527ce2e37f0cb54140b438cc
SHA256: 54246babb43585a6353dd2e5d09460be5f12792088d9d8dcf7129e810c2482d7
paquets : dépendances
apt-cache depends vlc-plugin-jackAffiche toutes les dépendances du paquet vlc-plugin-jack.
Pré-Dépend: dpkg
dpkg:i386
Dépend: libc6
|Dépend: libjack-jackd2-0
Dépend: <libjack-0.125>
libjack-jackd2-0
libjack0
Dépend: libvlccore9
Dépend: <vlc-plugin-abi-3-0-0f>
libvlccore9
Améliore: vlc
-
apt-cache rdepends vlc-plugin-jackAffiche tous les paquets dont dépend le paquet vlc-plugin-jackvlc-plugin-jack Reverse Depends: multimedia-players
Visualiser les dépendances d’un paquet .deb de manière graphique
sudo apt-get install apt-rdepends graphviz
apt-rdepends -d xz-utils | dot > /tmp/apt.dot ; dotty /tmp/apt.dot
-
apt-cache search -n vlc-plugin-jackRecherche et affiche tous les paquets ayant dans leur nom vlc-plugin-jackvlc-plugin-jack - greffons audio Jack pour VLC
-
apt-cache madison vlc-plugin-jackIndique le dépôts fournissant le paquet vlc-plugin-jackvlc-plugin-jack | 3.0.10-0+deb9u1 | http://deb.debian.org/debian-security stretch/updates/main amd64 Packages vlc-plugin-jack | 3.0.10-0+deb9u1 | http://security.debian.org stretch/updates/main amd64 Packages vlc-plugin-jack | 3.0.8-0+deb9u1 | http://deb.debian.org/debian stretch/main amd64 Packages vlc-plugin-jack | 3.0.8-0+deb9u1 | http://ftp.crihan.fr/debian stretch/main amd64 Packages vlc | 3.0.8-0+deb9u1 | http://deb.debian.org/debian stretch/main Sources vlc | 2.2.7-1~deb9u1 | http://deb.debian.org/debian-security stretch/updates/main Sources vlc | 3.0.10-0+deb9u1 | http://deb.debian.org/debian-security stretch/updates/main Sources vlc | 3.0.8-0+deb9u1 | http://ftp.crihan.fr/debian stretch/main Sources vlc | 2.2.7-1~deb9u1 | http://security.debian.org stretch/updates/main Sources vlc | 3.0.10-0+deb9u1 | http://security.debian.org stretch/updates/main Sources
df
df : octets sur chaque point de montage
ex df /dev/hdb1
Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur
/dev/hdb1 19607924 17211740 1400156 93% /media/hdb1
