#1 Le 24/10/2024, à 19:29
- fred-cavernedufond
[RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
Bonjour,
Comment rédiger une ligne de commande voire un petit script, permettant de lancer plusieurs de ces commandes de nattoyage en une seule fois ?
https://doc.ubuntu-fr.org/nettoyer_ubuntu
L'idée est de ne pas se fader à chaque fois la recopie de plusieurs lignes dans le terminal...
Fred
Dernière modification par fred-cavernedufond (Le 17/11/2024, à 10:00)
Fred
Ubuntu 22.04 LTS
Hors ligne
#2 Le 24/10/2024, à 20:29
- fred-cavernedufond
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
#3
ma...yé rien essayé yé sé pas faire, sénior ...yé pourquoi yé pose la questionne'
...et yé comprends pas ou lé sénior y voit la réponse dans la questionne...si la réponse yé dans la questionné, yé poserais pas la questionne, no ?
Fred
Ubuntu 22.04 LTS
Hors ligne
#3 Le 24/10/2024, à 20:36
- Watael
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 25/10/2024, à 08:34
- fred-cavernedufond
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
rédiger [...] un script
Merci. Je vais travailler le sujet bien que je sois allergique à la programmation. Je reformule : en une seule ligne de commande, je souhaite l'exécution de ces différentes commandes en une seule fois via le terminal :
sudo apt autoclean
sudo apt purge ~c
LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision ; do sudo snap remove "$snapname" --revision="$revision" ; done
Je pourrais ajouter des commandes si besoin. Est-ce qu'une simple virgule suffit à séparer chaque instruction ?
Fred
Fred
Ubuntu 22.04 LTS
Hors ligne
#5 Le 25/10/2024, à 08:36
- Sciensous
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
hé hé je vais être encore plus sympa :
un fichier texte (ex: fred.delacaverne) contenant:
commande1
commande2
commande3
et pour lancer: source <lefcichieravecsasnchemin>
(ex: source /home/fred/fred.delacaverne )
(chemin à adapter avec le vrai)
amélioration: ajout d'un shebang au début:
#!/bin/sh (moi)
ou
#!/bin/bash (Watel)
qui permet de le rendre executable
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#6 Le 25/10/2024, à 10:16
- Watael
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
en une seule ligne de commande, je souhaite l'exécution de ces différentes commandes en une seule fois via le terminal
ce n'est pas souhaitable. Il vaut mieux mettre toutes les commandes dans un fichier, et rendre ce dernier exécutable (chmod +x /chemin/nomFichier).
pour lancer: source <lefcichieravecsasnchemin>
Attention ! avec source, le script va être exécuté dans l'environnement courant, et, éventuellement, le modifier.
les scripts que je n'ai pas encore rendus exécutables sont exécutés ainsi : bash /chemin/nomScript, où l'indication du chemin est facultative.
on peut rendre exécutable un script sans shebang, c'est alors le shell de connexion de l'utilisateur qui sera utilisé.
si un script ne contient qu'une suite de commandes externes, je n'utilise pas bash.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 25/10/2024, à 10:40
- Sciensous
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
merci pour ces précisions Watael (j'ai voulu faire simple)
que veux-tu dire :
si un script ne contient qu'une suite de commandes externes, je n'utilise pas bash.
dans ce cas tu n'utilises pas bash mais quoi à la place ?
Dernière modification par Sciensous (Le 25/10/2024, à 10:41)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#8 Le 25/10/2024, à 14:43
- Watael
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
dans ce cas, j'utilise sh.
ça peut être un lien vers bash, et, alors, appelé ainsi il s'exécute en mode POSIX.
mais (je viens de parcourir le man pour ne pas dire plus de bêtise) ça ne concerne que la lecture des fichiers de configuration, et ça n'allège pas l'exécution (toutes les commandes bash sont accessibles (shopt, [[...)).
il n'y a donc pas de gain à utiliser sh, dans ce cas, plutôt que bash.
l'emploi /bin/sh indique tout de même l'intention d'être POSIX.
mais pour être sûr de ne pas utiliser de "bashisme", il vaudrait mieux mettre /bin/dash en shebang.
Dernière modification par Watael (Le 25/10/2024, à 19:48)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 25/10/2024, à 18:16
- RaphaelG
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
Dans ma 24.04, /bin/sh est un lien symbolique vers /bin/dash donc pour moi les shebangs #!/bin/sh et #!/bin/dash sont strictement équivalents.
~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 31 2024 /bin/sh -> dash
~$ ls -l /bin/dash
-rwxr-xr-x 1 root root 129784 Mar 31 2024 /bin/dash
~$ ls -l /bin/bash
-rwxr-xr-x 1 root root 1446024 Mar 31 2024 /bin/bash
~$
Ils ne font pas du tout la même taille. J'en déduis que l'empreinte mémoire n'est pas du tout la même.
En ligne
#10 Le 25/10/2024, à 19:06
- Sciensous
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
pour revenir au sujet de Fred_carvernedufond: il y aussi la possibilité de l'alias:
alias maj='commande1; commande2; comande3'
à mettre de préférence dans .bash_aliases
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#11 Le 26/10/2024, à 09:46
- fred-cavernedufond
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
pour revenir au sujet de Fred_carvernedufond: il y aussi la possibilité de l'alias:
alias maj='commande1; commande2; comande3'
à mettre de préférence dans .bash_aliases
...c'est l'idée, mais ce qui me bloque également c'est le fait de savoir comment vont interagir ces commandes (ici trois prises au hasard dans l'idée du nettoyage machine) ? Je m'explique : si, pour etre exécuté, une commande à besoin d'une confirmation de l'utilisateur du type "Voulez-vous supprimer/installer ces fichiers ?", il faut
a) soit entrer une valeur fixe "oui/non" dans la ligne de commande ou script, qui sera alors systématiquement répété.
b) soit supprimer cette interaction
c) autre ?
Bon okay, il y Bleach bit mais c'est histoire d'apprendre
Fred
Dernière modification par fred-cavernedufond (Le 26/10/2024, à 09:48)
Fred
Ubuntu 22.04 LTS
Hors ligne
#12 Le 26/10/2024, à 10:19
- Tawal
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
Hello,
Si tes commandes doivent prendre des paramètres variables, je te conseille de passer par un script exécutable.
Ainsi tu pourras passer les arguments nécessaires aux commandes directement au script.
Il faudra bien sûr que le script traite ces arguments pour les donner aux bonnes commandes.
Pour en apprendre plus : La programmation «Shell» - developpez.com
Edit:
Je te déconseille fortement Bleachbit, inutile.
Dernière modification par Tawal (Le 26/10/2024, à 10:21)
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#13 Le 17/11/2024, à 10:00
- fred-cavernedufond
Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?
hé hé je vais être encore plus sympa :
un fichier texte (ex: fred.delacaverne) contenant:commande1 commande2 commande3
J'aime ces réponses simples et efficaces ; c'est ce à quoi je pensais.
Parfait Merci
Fred
Ubuntu 22.04 LTS
Hors ligne