Sous Windows, je peux écrire un fichier contenant des commandes pour cmd (généralement des fichiers .cmd
ou .bat
). Lorsque je clique sur ces fichiers, il ouvre cmd.exe
et les exécute avec les commandes contenues dans le fichier.
Comment pourrais-je faire cela dans Ubuntu?
Je suis sûr que c'est un doublon, mais je ne trouve pas ma réponse.
C'est semblable à ces questions, mais elles ne répondent pas à la question:
Stocke les commandes de terminal fréquemment utilisées dans un fichier
émulateur CMD.exe sous Ubuntu pour exécuter le fichier .cmd/.bat
Il y a deux méthodes.
Tout d’abord, le plus courant est d’écrire un fichier, assurez-vous que la première ligne est
#!/bin/bash
Puis enregistrez le fichier. Ensuite, marquez-le comme exécutable avec chmod +x file
Ensuite, lorsque vous cliquez sur (ou exécutez le fichier à partir du terminal), les commandes seront exécutées. Par convention, ces fichiers n'ont généralement pas d'extension, mais vous pouvez les faire terminer par .sh
ou par tout autre moyen.
Quelques notes:
/bin/python
, /bin/sh
, /bin/dash
, mais même les choses les plus bizarres sur la balle fonctionnent comme /bin/mysql
bash file/to/run.sh
Un exemple simple de Bash
#!/bin/bash
echo "This is a Shell script"
ls -lah
echo "I am done running ls"
SOMEVAR='text stuff'
echo "$SOMEVAR"
La deuxième méthode consiste à enregistrer des commandes en utilisant script
. Exécutez script
puis faites des choses. Lorsque vous avez terminé, saisissez exit
et le script générera un fichier avec tous les "éléments" que vous avez créés. Ceci est moins utilisé mais fonctionne assez bien pour faire des choses comme des macros. man script
pour plus d'informations.
Vous voulez dire écrire dans un fichier en utilisant un script Shell? Voici quelques façons:
touch file
Cette méthode créera simplement un fichier, mais si le fichier existe déjà, elle modifie simplement la date de modification à l'heure à laquelle vous avez utilisé cette commande.
echo "text" > file
Cette méthode remplace le contenu de file
par text
. Si vous voulez effacer un fichier, vous pouvez simplement faire ceci:
echo "" > file
Supposons que vous souhaitiez écrire plus d'une ligne et que vous ne souhaitiez pas utiliser des milliers de commandes echo
, utilisez la commande suivante:
cat << EOF > file
test
test1
foo
bar
EOF
Cela vous permet d'écrire plusieurs lignes dans une commande. Le contenu de file
serait alors le suivant:
test
test1
foo
bar
Si vous souhaitez ajouter un fichier à un fichier, remplacez >
par >>
.
J'espère que cela t'aides!
EDIT: Oh, je vois, vous écrivez le fichier dans gedit, en utilisant l'extension .sh
(facultatif, mais c'est une bonne idée), puis dans un gestionnaire de fichiers, cliquez avec le bouton droit de la souris sur l'icône. fichier, sélectionnez Propriétés-> Autorisations, puis cochez Allow executing file as program
. Ensuite, vous pouvez double-cliquer dessus et il sera exécuté :). De plus, si vous voulez le faire dans le terminal, vous pouvez exécuter cette commande pour la rendre exécutable (vous pouvez ajouter du nom Sudo
si elle ne vous appartient pas):
chmod +x file
Et pour courir:
./file
Les scripts Shell sont l’équivalent des fichiers de commandes Windows. Un excellent guide de démarrage est Script Bash .
Pour la plupart, les commandes que vous pouvez entrer sur la ligne de commande peuvent être placées dans un script Shell.
Quelques éléments différents des fichiers de commandes Windows:
Il existe différents interpréteurs de commandes, appelés shells. La valeur par défaut est bash, mais si vous êtes intéressé, il en existe d’autres, tels que zsh, ksh, dash, Perl, python, etc.
Pour exécuter un script Shell, vous devez rendre le fichier exécutable, ce que vous pouvez faire avec chmod +x <filename>
Dans Ubuntu, le répertoire en cours n'est pas le chemin de recherche du programme. Vous devez donc exécuter ./<filename>
, pas <filename>
Les noms de variable sont $<varname>
, pas %<varname>%
Les commandes d'un script Shell ne sont pas imprimées par défaut, comme dans un fichier de commandes.
L'extension du nom de fichier peut être .sh
ou (plus habituel), vous n'avez pas besoin d'utiliser une extension. Mettez #!/bin/bash
sur la toute première ligne du fichier , qui indique à Ubuntu le programme à utiliser pour exécuter le fichier.
Les commentaires commencent par #
, pas rem
.
J'espère que cela vous aide et amusez-vous à écrire des scripts!