Občas jsem si myslel, že chci zapsat do souboru, když jsem v terminálu. Chtěl bych, aby tyto poznámky byly všechny ve stejném souboru, jen jeden po druhém. Chtěl bych také značku data a času na každé z nich.
Je to možné, aniž byste museli soubor otevírat pokaždé? Mohu jej jednoduše zadat do terminálu a nechat jej přiložit k souboru pokaždé pomocí příkazu nebo skriptu?
Používám GNU BASH).
Napište si skript Shell s názvem „n“. Dej to do toho:
#!/bin/sh
notefile=/home/me/notefile
date >> $notefile
emacs $notefile -f end-of-buffer
Doporučuji to místo cat >> notefile
protože:
Pokud trváte na vyhýbání se textovému editoru, použijte funkci Shell:
n () { date >> /home/me/notefile; cat >> /home/me/notefile; }
který by měl fungovat ve všech skořepinách a prohlašovat kompatibilitu Bourne Shell.
Chcete-li do souboru z příkazového řádku zapsat více řádků, postupujte takto:
cat >> sometextfile.txt << EOF
text
more text
and another line
EOF
Stačí použít echo
:
echo $(date) Hi. >> notes.txt
K přidání souboru můžete použít >> nebo jej přepsat pomocí>.
Spousta úhledných zvonů a píšťalky zde!
Metoda KISS:
date >>filename; cat >>filename
Pokud máte v počítači nainstalovánu Ruby), můžete použít https://github.com/minhajuddin/taskr . Tímto způsobem získáte pěkné zobrazení vašich poznámek pomocí značky a uplynulé hodiny.
Taskwarrior může dělat to, co jste chtěli, o něco lépe než jednoduchý skript Shell. sekundový tutoriál by vám měl říct, jestli mám pravdu nebo špatně.
V závislosti na vašich potřebách může být syslogd dalším nástrojem, který si můžete prohlédnout. Příkaz
[email protected]:~$ logger This message is sent to syslog
zprávu zaznamená do zařízení user.notice. U mnoha systémů Linux bude stačit, aby byl otevřen a připojen soubor /var/log/user.log, s ostatními budete možná muset definovat manipulaci pro toto zařízení a úroveň protokolu (nebo kterékoli zařízení, které si vyberete - local0) k místním zařízením7 lze obvykle takové věci přiřadit.
Výhodou je, že je možné (aka konfigurovatelné) odesílat poznámky z klientských počítačů na centrální logovací server, což se mi líbí pro sledování administrativních akcí, protože automaticky udržuje časové údaje, informace o uživateli a hostiteli a zároveň udržuje akce v pořádku. .
výsledný výstup v lokálním souboru:
[email protected]:~$ tail /var/log/user.log
Jan 31 07:18:37 tetrad theuser: This message is sent to syslog
Příklad konfiguračního řádku syslog na Solaris:
local5.notice ifdef(`LOGHOST', /var/log/diary, @loghost)
Poznámka: ifdef
je předzpracován s m4
, na stroji s názvem hosthost/hostalias "loghost" budou zprávy zaznamenány do souboru/var/log/deník, na všech ostatních budou odeslány do vzdálené syslogové služby v loghost. Chcete-li otestovat tento druh konfigurace, lze konfigurační soubor odeslat prostřednictvím m4 pro rozšíření (ponechte -D LOGHOST
Chcete-li vidět, jak by to vypadalo na systému, který se nezavolává loghost :
[email protected]$ /usr/ccs/bin/m4 -D LOGHOST /etc/syslog.conf
Kombinace několika různých odpovědí k dosažení toho, co jsem hledal, bylo několik možností.
user @ hostname: ~/Documents $ echo text >> filename [filename] user @ hostname: ~/Documents $ cat filename text
user @ hostname: ~/Documents $ cat >> filename2 << EOF > textový řádek 1 > textový řádek 2 > textový řádek 3 > EOF user @ hostname: ~/Documents $ cat filename2 textový řádek 1 textový řádek 2 textový řádek 3
Upravit soubor na dané číslo řádku
user @ hostname: ~/Documents $ sed -i '2iinserting new line' filename2 user @ hostname: ~/Documents $ cat filename2 textový řádek 1 vložení nového řádku textový řádek 2 textový řádek 3