Parfois j'ai l'printing que je veux écrire dans un file alors que je suis au terminal. Je voudrais que ces notes soient toutes dans le même file, juste énumérées l'une après l'autre. Je voudrais aussi une label de date / heure sur chacun d'eux.
Est-il possible de le faire sans avoir à ouvrir le file à chaque fois? Puis-je simplement l'entrer dans le terminal et l'avoir ajouté au file à chaque fois avec une command ou un script?
J'utilise GNU BASH.
Ecrivez-vous un script shell appelé "n". Mettez ceci dedans:
#!/bin/sh notefile=/home/me/notefile date >> $notefile emacs $notefile -f end-of-buffer
Je recommand ceci au lieu de cat >> notefile
parce que:
Si vous insistez pour éviter un éditeur de text, utilisez une fonction shell:
n () { date >> /home/me/notefile; cat >> /home/me/notefile; }
qui devrait fonctionner dans toutes les coquilles revendiquant la compatibilité Bourne shell.
Utilisez simplement echo
:
echo $(date) Hi. >> notes.txt
En outre, pour écrire plusieurs lignes dans un file à partir de la command line, procédez comme suit:
cat >> sometextfile.txt << EOF text more text and another line EOF
Beaucoup de cloches et de sifflets soignée ici!
Méthode KISS:
date >>filename; cat >>filename
Si ruby est installé sur votre ordinateur, vous pouvez utiliser https://github.com/minhajuddin/taskr . De cette façon, vous obtenez une belle vue de vos notes avec des labels et les heures écastings.
Selon vos besoins, syslogd pourrait être un autre outil à lire. La command
theuser@tetrad:~$ logger This message is sent to syslog
va save le message avec la fonction user.notice. Avec de nombreux systèmes Linux, il suffira d'avoir un file /var/log/user.log ouvert et ajouté à d'autres, vous devrez peut-être définir une gestion pour cette installation et le niveau de journalisation (ou, selon votre choix, local0 aux installations locales7 sont généralement libres d'assigner à des choses comme ça.
Il a l'avantage d'être capable d'envoyer des notes de machines clientes vers un server de journalisation central, ce que j'aime utiliser pour garder une trace de l'action administrative car il préserve automatiquement les informations d'horodatage, d'user et d'hôte tout en gardant les actions en ordre .
résultat résultant dans le file local:
theuser@tetrad:~$ tail /var/log/user.log Jan 31 07:18:37 tetrad theuser: This message is sent to syslog
Exemple de ligne de configuration syslog sur Solaris :
local5.notice ifdef(`LOGHOST', /var/log/diary, @loghost)
Remarque: ifdef
est prétraité avec m4
, sur la machine avec hostname / hostalias "loghost", les messages seront enregistrés dans le file / var / log / diary, sur tous les autres, ils seront envoyés au service syslog distant au loghost. Pour tester ce type de configuration, le file de configuration peut être envoyé via m4 pour l'extension (laissez le -D LOGHOST
pour voir à quoi il ressemblerait sur un système qui n'est pas appelé loghost :
theuser@solstice$ /usr/ccs/bin/m4 -D LOGHOST /etc/syslog.conf
Taskwarrior peut faire ce que vous voulez un peu mieux qu'un simple script shell. Le didacticiel de 30 secondes devrait vous dire si j'ai raison ou tort.
echo "`date` text here" >> filename
ou
echo "text here `date`"|tee -a filename
plus sur le tee
En combinant quelques réponses différentes pour atteindre ce que je cherchais, ce qui était de multiples options.
user @ hostname: ~ / Documents $ text echo >> nom de file user @ nom_hôte: ~ / Documents $ cat nom_file text
user @ nom_hôte: ~ / Documents $ cat >> nom_file2 << EOF > ligne de text 1 > ligne de text 2 > ligne de text 3 > EOF user @ nom_hôte: ~ / Documents $ cat nom_file2 ligne de text 1 ligne de text 2 ligne de text 3
Modifier un file à un numéro de ligne donné
user @ nom_hôte: ~ / Documents $ sed -i '2iinserting nouvelle ligne' nom_file2 user @ nom_hôte: ~ / Documents $ cat nom_file2 ligne de text 1 insert une nouvelle ligne ligne de text 2 ligne de text 3