[ @console @todolist @cheat ]
Любая система «туду» хороша, если список дел постоянно перед глазами.
Придумал простой способ добавить себе напоминалки о чём-то, что нужно сделать, глядя в консоль — прямо в консоль.
Сделать Туду
Сделать текстовый файл (можно и без расширения):
mcedit ~/todo.txt
Добавить в него одну и более строк с задачами. Обязательно добавить одну пустую строку в конце.
Отредактировать файл ~/.bashrc
mcedit ~/.bashrc
В самую последную строку этого файла добавить вызов содержимого из todo.txt:
Теперь при открытии каждого окна Konsole (или при логине под моим юзером в консоль в другом tty; или при каждом перечитывании «source ~/.bashrc») первые строки вывода в консоли будут заполнены содержимым из ~/todo.txt
Добавить в Туду новую строку
Всегда проще сделать
mcedit ~/todo.txt
и прописать там всё, что нужно. А можно и так:
echo 'Удалить контейнер Photoprism' >> ~/todo.txt
Внимание к символам:
> — уберет из файла всё содержимое и добавит в него новую строку
>> — оставит содержимое файла и добавит новую строку (в конце файла)
Текст для echo можно не обрамлять кавычками, но лучше да, чтобы не нарушать здоровые привычки.
Удалить из Туду какую-то строку
Удалить, например, третью:
sed -i '3d' ~/todo.txt
Упростить команды Туду
Для этого надо превратить все эти команды в функции.
mcedit ~/.bashrc
Добавить:
# Добавить строку в файл ~/todo.txt todo() { # Вычисляем количество строк в файле line_number=$(wc -l < ~/todo.txt) # Добавляем в файл новую строку с номером в формате '1)' echo "$((line_number + 1))) $*" >> ~/todo.txt } # Удалить строку из файла ~/todo.txt todorm() { sed -i "${1}d" ~/todo.txt } # Алиасы для смягчения ошибок при наборе alias туду='todo' alias ещвщ='todo' alias тудурм='todorm' alias ещвщкь='todorm' # Вывод содержимого в консоль cat ~/todo.txt
Сохранить, применить изменения:
source ~/.bashrc
Теперь
1) чтобы добавить задачу в todo.txt:
todo Положить диафильмы в коробку
И даже кавычки не нужны.
2) чтобы удалить строку/задачу из todo.txt (например, вторую):
todorm 2
Безопасность файла Туду
Имеет смысл держать файл с Туду на постоянно подключенном удалённом ресурсе вроде Dropbox.
В этом случае надо в файле ~/.bashrc во всех местах указать все обращения сразу к /home/astenix/Dropbox/todo.txt
Если todo.txt нужен в корне профиля, чтобы постоянно на глаза попадался, то в файле ~/.bashrc оставить всё, как есть, и сделать на файл в Dropbox симлинк:
ln -s /home/astenix/Dropbox/todo.txt
Ограничения
Этот скрипт не делает ничего особенного, поэтому сложные, разветвленные to do здесь неуместны.
Нельзя передавать этому скрипту где-либо в строке символ „*” → он принудительно вставляет в файл вызов команды ls
Это список символов, которые можно, но бессмысленно (даже ошибочно) использовать
`
~
#
&
*
(
)
;
'''''''''
"
\
и вполне можно
!
@
$
%
^
/
=
_