Je veux éditer crontab. C'est supposé être Vi, mais ce n'est pas, comme vous pouvez le voir:
root@euve252628:~# crontab -e
0
0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php
?
:wq
?
Oui, ça m'a donné un ?
. Et pourquoi ça me donne un zéro?
Quand je tape a qet appuyez sur Enter- il se ferme. J'ai besoin de savoir comment économiser, car ce n'est pas du classique Vi.
cron
text-editor
juste moi
la source
la source
ed
: par défaut, il donne un nombre de caractères (ce qui dans les systèmes basés sur Debian est généralement888
la première fois, c'est-à-dire le nombre de caractères du modèle "vide" de la crontab). Si vous voyez un nombre de 0, vous devez avoir modifié cela. Voir la commande Crontab -e ne fonctionnant pas correctementEDITOR
à autre chose, si vous êtes intéressé par l'utilisation de ed, ceci est une excellente introduction: sanctum.geek.nz/arabesque/actually-using-usingRéponses:
C'est
ed
Par défaut, son invite est la chaîne vide. Si vous voulez quitter, entrez simplement
q
. Ne préfixez pas avec:
. Si vous avez des modifications non enregistrées, il vous répondra avec?
. Vous pouvez interpréter cela comme "êtes-vous sûr?", Et confirmez en commandant àq
nouveau. En passant, toute commande qu’elle ne comprend pas entraînera également une réponse?
. C'est le seul message d'erreur qu'il connaisse.Ses commandes sont ce que vim / vi / ex / sed est basé sur, si commandes telles que
g/re/p
,%s/vi/&m/g
,1,3d
,/pattern/,$d
,w
,q
,wq
travail comme vim.Les commandes comme
i
,a
etc
passent en mode insertion. Pour quitter le mode insertion et revenir au mode commande, entrez simplement une ligne qui ne contient qu'un.
. Pour "passer" à une autre ligne, entrez simplement le numéro de la ligne, un décalage par rapport à la ligne actuelle+2
ou-1
, ou une expression rationnelle en tant que commande pour accéder à cette ligne..
signifie la ligne en cours en mode commande. Vous pouvez l'utiliser pour savoir où vous en êtes.$
signifie dernière ligne.Soit dit en passant, si vous voulez en savoir plus sur ce programme, il s’agit d’un programme GNU sous Linux, la plupart de sa documentation est au
info ed
lieu deman ed
.Voici un exemple de session, avec des commentaires ajoutés (non acceptés par ed):
EDIT: Comme le mentionne grawity, des messages d’erreur plus utiles peuvent être activés avec
h
ouH
. De plus,,
plutôt que%
dans la partie portée d’un commandement, c’est la manière officielle de se référer à "toutes les lignes" dansed
. Dans GNUed
, la possibilité de l'utiliser%
pour cela est supportée mais n'est pas mentionnée dans leinfo
manuel. L’utilisation de%
pour toutes les lignes a apparemment été inventée parex
, apparemment parce que, là,,
signifie.,.
plutôt que1,$
comme dansed
.EDIT2: Définition d'un éditeur différent
Comme pour les autres réponses mentionnées, si vous souhaitez spécifier un autre éditeur, vous pouvez le faire en définissant les variables d’environnement
EDITOR
ouVISUAL
. La différence entre les deux est expliquée dans cette réponse .Vous pouvez le faire comme ceci si vous voulez le définir pour une seule commande:
ou comme ceci si vous voulez que tous les programmes lancés dans la session shell l'utilisent:
Vous pouvez enregistrer le
export
dans~/.profile
ou/etc/profile
, selon si vous voulez qu'il soit un paramètre utilisateur ou d'un système pour bash, respectivement. C'est la manière unix portable de définir l'éditeur. vous pouvez le faire dans n'importe quelle distribution.Dans Ubuntu, il y a aussi la
update-alternatives
commande. L'éditeur par défaut actuel peut être vu avecupdate-alternatives --display editor
, et vous pouvez l'utiliserupdate-alternatives --config editor
pour le définir:la source
h
pour les demander (ouH
pour les activer de manière permanente).%
semble être une ex invention officiellement. Ed utilisations,
pour désigner toutes les lignes, même si certaines versions acceptent%
aussi bien.)EDITOR
etVISUAL
.ed
sont les mêmes que dansvi
, sauf que vous n’avez pas besoin d’appuyer sur ":" pour sortir du mode d’édition graphique. J'ai appris Unix quand les "vrais programmeurs" ne perdaient pas de temps à utiliser des interfaces graphiques - un terminal "écran vert" 80x25 fonctionne presque aussi bien qu'un perforateur de carte IBM 029 pour l'édition, mais pas tout à fait;)EDITOR
etVISUAL
ne sont pas vraiment pertinents. La question était essentiellement: qu'est-ce que cet éditeur et comment l'utiliser? (Qu'est-ce que c'est0
et ceci?
et comment puis-je économiser?)Comment savoir ce qu'est cet éditeur
Appuyez sur Ctrl+ Z. Cela suspend l'éditeur et vous donne une invite du shell. À l'invite, exécutez
ps
pour voir quels processus sont en cours d'exécution dans ce terminal.bash
est le shell d'origine,crontab
est attendu,sh
est un autre shell qui doit avoir été appelé parcrontab
etps
est laps
commande en cours d'exécution . Cela laisseed
(fourni par le paquet du même nom ).Si vous ne savez pas comment quitter l'éditeur, vous pouvez le tuer à ce stade, avec
kill 26302
oukill %1
.Qu'est-ce que ed?
Ed est un ancien éditeur, qui remonte à avant que les moniteurs fussent une chose (banale). Il a été conçu pour les ordinateurs dont le périphérique de sortie interactif était un téléimprimeur .
Le nombre
0
affiché au début est le nombre de lignes du fichier. Évidemment, c'est une information importante.?
signifie que ed n'a pas compris ce que vous avez tapé. Les imprimantes linéaires étant lentes, ed ne perd pas de temps et d’encre à afficher des informations inutiles telles que des messages d’erreur. Une vieille blague (je ne connais pas l'origine) dit:Si vous vous sentez inexpérimenté, vous pouvez lancer la commande
H
(toutes les commandes sauf une sont une seule lettre (sans compter les arguments de données), car ceux qui aiment taper) et vous obtiendrez des messages d'erreur. Par exemple, si vous appuyez simplement sur Enter…Clair, n'est ce pas? (Une ligne vide est la commande vide - celle qui n’est pas une simple lettre. La commande vide se déplace sur la ligne suivante et l’imprime. Si vous êtes à la fin du fichier, ce qui est toujours le cas dans un champ vide. fichier, il n'y a pas de ligne suivante, donc l'adresse à laquelle vous avez demandé de déplacer est invalide.)
Comment obtenir un autre éditeur
La
crontab
commande, comme la plupart des commandes qui exécutent un éditeur de texte, vérifie les variables d'environnementVISUAL
etEDITOR
(dans cet ordre), détermine le programme à exécuter, en revenant à une valeur par défaut du système. Si l'une de ces variables est définie sured
, modifiez-la ou supprimez-la.Sous Ubuntu (et Debian et autres), l’éditeur système par défaut
/etc/alternatives/editor
est géré par le mécanisme des alternatives . Par défaut, il sélectionne le «meilleur» éditeur installé, le «meilleur» étant défini par les priorités définies par les mainteneurs de paquets. Utilisezupdate-alternatives
pour configurer une alternative. Vous pouvez afficher les éditeurs disponibles et leurs priorités aveced
a la priorité -100, alors que tous les autres éditeurs «sensibles» ont une priorité positive. Par conséquent, la seule façon de l'utiliser par défaut est si aucun éditeur n'a été installé. Une installation par défaut d’Ubuntu utilise nano comme éditeur par défaut, avec une priorité de 400. Si l’alternative a été définie sured
, vous pouvez la modifier avecla source
ps
avecpstree -sap $$
? (il est plus facile de savoir quel éditeur a été lancé, car il est maintenant sous forme d'arborescence)/usr/bin/editor
est un lien symbolique vers/etc/alternatives/editor
. Le fait que les applications appellent/usr/bin/editor
est un détail que j'ai ignoré.EDITOR
etVISUAL
. Ils constituent en fait le moyen approprié de choisir un éditeur car il s’agit d’une préférence de l’utilisateur, et non d’une préférence à l’échelle du système. Je préfère resterps
ici pour que les choses restent simples.D'après votre question, il semble que votre
vim
éditeur par défaut ne le soit pas et que vous ayez des problèmes avec l'éditeur par défaut actuel.La commande ci-dessous définira l'EDITEUR par défaut comme
vim
Après avoir défini l'éditeur par défaut
vim
, l'exécutioncrontab -e
sera utiliséevim
comme éditeur.Remarques:
vim
permanence, vous devrez ajouter la commande ci - dessus à votre~/.bashrc
ou~/.profile
ou d'un fichier similaire.la source
Pour utiliser l'éditeur de VI pour éditer la crontab, utilisez la commande ci-dessous.
ou, si vous voulez éditer avec un autre éditeur comme gedit, nano, etc., remplacez simplement vi par le nom de l'éditeur.
la source