[ Пред. ] [ Содержание ] [ След. ]

ToDo в консоли

[ @console @todolist @cheat ]

 


Любая система «туду» хороша, если список дел постоянно перед глазами.


Придумал простой способ добавить себе напоминалки о чём-то, что нужно сделать, глядя в консоль — прямо в консоль.


Сделать Туду


Сделать текстовый файл (можно и без расширения):


mcedit ~/todo.txt


Добавить в него одну и более строк с задачами. Обязательно добавить одну пустую строку в конце.


Отредактировать файл ~/.bashrc


mcedit ~/.bashrc


В самую последную строку этого файла добавить вызов содержимого из todo.txt:


# Вывод содержимого в консоль
cat ~/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


Это список символов, которые можно, но бессмысленно (даже ошибочно) использовать


`
~
#
&
*
(
)
;
'''''''''
"
\


и вполне можно


!
@
$
%
^
/
=
_