Консольные трюки
Всем привет!
Сидел думал как назвать пост чтобы его заголовок точно и ёмко передавал суть написанного, но не придумал ничего лучшего чем «Консольные трюки». Да ну и пусть, фиг с ним =)
Итак, суть такова. Я рассмотрю сейчас две актуальные для меня проблемы и их элегантные решения при помощи консольных утилит. В итоге возможно это кому-то поможет сэкономить время на рутине также как и мне.
1. Я хочу быстро сохранять заметки в облачное хранилище
Действительно, сейчас без облачных технологий никуда. Все мы где-то храним свои заметки, кто в Google Docs, кто в Evernote, а кто-то и вовсе в виде текстовых файликов в директории синхронизированной с Dropbox’ом.
Мне просто нужно быстро что-то записать.
Мне же по душе вариант с Evernote т.к. тут упорядоченное представление содержимого в виде отдельных блокнотов, полнотекстовый поиск по заметкам и приятный интерфейс приложений. Но вот для того чтобы сохранить какую-то мелкую заметку мне очень лениво грузить новую вкладку с веб-приложением или запускать Windows-клиент в WINE.
И тут на помощь нам приходит Geeknote.
Проект развивается уже давно и на мой взгляд обладает очень удобным консольным интерфейсом.
Теперь для того чтобы создать новую заявку нужно лишь на брать в консоли
1 | geeknote create --title "Note title" --content "WRITE" --notebook "My note" |
Где нужно заменить “Note title” и “My note” на заголовок и название блокнота соответственно. В итоге после ввода команды открывается ваш любимые текстовый редактор где вы можете набирать свою заметку. После его закрытия и сохранения заметки она автоматически улетает в Evernote, а из памяти вашего компьютера растворяется без следа.
Все бы ничего, но такую длинную команду писать долго и лениво.
Так что делаем вот так:
1 | mkdir ~/.bin |
Внутри пишем однострочный скрипт:
1 | #!/bin/bash |
Сохраняем. Даем права на запуск:
1 | chmod +x ~/.bin/geeknote.sh |
Теперь нам осталось только прописать alias в нашей оболочке. Допустим у вас Bash:
1 | vim ~/.bashrc |
В конце файла прописываем наш алиас:
1 | alias gnote='~/.bin/geeknote.sh' |
Осталось только перезапустить шелл и можно писать что-то вроде:
1 | gnote 'Моя первая запись' |
Единожды утилита спросит логин-пароль и после сохранения записи вы ее увидите в своем Evernote.
2. Быстро сохранить какой-либо полезный код
Нередко по работе возникает необходимость накидать какой-то быстрый код который возможно в будущем пригодится, но при этом качество у него совершенно не подходящее для захламления им своего публичного аккаунта на Github. Сохранять у себя где то на диске или просто заливать код в какой-нибудь cloud-storage также смысла нет ибо вряд ли вы его потом отыщете когда он вам пригодится. Тут на помощь может придти gist.github.com либо же сниппеты на bitbucket. Но у них есть существенный недостаток - нет возможности сохранить какую-либо структуру директорий. Короче не совсем то, да и открывать новую вкладку в браузере, а потом копипастить туда код с каждого файла по отдельности тоже не наш путь.
И тут мы вспоминаем про приватные репозитории в Bitbucket которые можно бесплатно создавать в неограниченных количествах! Точно! Вот туда то мы и будем лить. А потом вспоминаем про то что в этом случае нам также придется идти на Bitbucket, создавать там новый репозиторий и делать вручную git remote add. Короче снова слишком много действий.
А вот тут нас выручат bash,curl и API Bitbucket.
1 | vim ~/.bin/bbsyc.sh |
Пишем скрипт:
1 | #!/bin/bash |
Тут мы заменяем login и password на свои.
Далее мы снова открываем .bashrc и добавляем алиас:
1 | alias bbsync='~/.bin/bb.sh' |
Затем рестартим шелл.
Теперь мы можем просто перейти в любую директорию и вызвать bbsync. Скрипт спросит у нас название нового репозитория, создаст его на Bitbucket и зальет наш код.
Как видите все просто и удобно. Занимает считанные секунды.
Для удобства созданные таким способом репы я помечаю префиксом ‘bb-‘.