Expertus metuit
Написано Sergey Stolyarov 2014-02-17 в 15:20

Изначально я планировал написать небольшую заметку о наиболее часто используемых командах, однако в процессе получилось так много пояснений, что весь старый текст пришлось удалить и написать новый в формате полноценного туториала. Текст рассчитан на новичков, никогда нормально не сталкивавшихся с гитом. Я также старался не углубляться во внутренности работы репозитория или редкие малоиспользуемые в обычной жизни команды.

Структура статьи традиционная: знакомство с git, базовые команды, общепринятые подходы, а в конце справка о терминах и концепциях, список ссылок. Я не хочу углубляться в историю создания git и вообще стараюсь писать кратко, по делу и без воды, без слишком детальных объяснений команд, без копипасты манов или книг, однако при необходимости буду давать ссылки на сайты или книги по теме.

Я буду рассказывать только о классической программе git, работающей из командной строки. Все примеры использования предназначены для UNIX-подобных систем, например, линукса или макоси. Все примеры создания или модификации файлов также рассчитаны на UNIX-подобные системы. Почему именно консольный вариант: в гуёвых программах типа TortoiseGit очень сложно понять концепты, их авторы подразумевают, что вы всё уже знаете, а это не так. Почему линукс и макось: терминал в windows очень некомфортен, работать там больно и мучительно. Если у вас Windows, советую поставить убунту в Virtualbox/VMWare, также в комментариях Искандер упоминает git-bash для windows, но я об этом ничего сказать не могу.

Перед вами именно туториал, то есть в идеале вы должны читать его последовательно с начала и до конца, выполняя примеры из текста. У git обширная собственная терминология и куча общепринятых (в рамках git-экосистемы) названий сущностей; я постараюсь рассказать о самых важных из них, а вы постарайтесь их запомнить, они действительно очень важны и пригодятся, когда вы будете читать документацию или книги. Часть терминов я буду давать в переводе (например, «ветка» для слова «branch»), а часть — в транслитерации, так как адекватного перевода слова нет (например, «дифф» как перевод слова «diff»). Я очень не люблю многословные переводы простых слов и стараюсь по возможности ими не пользоваться, для понимания короткие слова важнее длинных фраз. Поэтому привыкайте к словам типа «коммит» или «репозиторий».

В тексте много примеров, они все согласованы с текстом и рассчитаны на параллельное их исполнение в процессе чтения. То есть дошли до примера, открыли терминал, выполнили указанные в тексте команды, порадовались, дальше читаем.

Статья ещё не завершена и будет постепенно дописываться, однако уже написанное радикально меняться не будет.

Теги: git, tutorial, linux, kb
Написано Sergey Stolyarov 2014-01-23 в 11:10

Не нашёл ни одной вменяемой инструкции по разворачиванию LXC на debian-хосте, поэтому пишу свою (на основе других статей, список которых в самом конце документа). Все инструкции рассчитаны на Debian Stable (Debian 8 jessie на момент написания статьи) и версию lxc 1.0.7.

LXC (LinuX Containers, http://linuxcontainers.org/) — это система виртуализации на уровне операционной системы, по сути нечто вроде продвинутого chroot. Удобно использовать для разработки и тестирования софта. Здесь рассматривается работа с lxc только средствами пакета lxc, а другие — например, через libvirt — нет.

Устанавливается традиционно (далее следую традиционному соглашению: если команда начинается с символа #, то она выполняется с правами суперюзера; если начинается с % — с правами обычного юзера; строчки без такого символа в начале являются выводом команды):

# apt-get install lxc
Теги: kb, debian, linux
Написано Sergey Stolyarov 2014-01-21 в 11:45

Очищаем кеши

Очищаем pagecache:

sync; echo 1 > /proc/sys/vm/drop_caches

Очищаем dentry и inodes:

sync; echo 2 > /proc/sys/vm/drop_caches

Очищаем pagecache, dentry и inodes:

sync; echo 3 > /proc/sys/vm/drop_caches

Эта магия освобождает много памяти. Можно запустить free до и после, чтобы убедиться.

Теги: linux, kb
Написано Sergey Stolyarov 2013-12-16 в 21:37

Как использовать curl для отладки HTTP, то есть для отправки на сервер HTTP-запросов. У меня потребности небольшие, поэтому здесь только конкретно нужные мне команды. Оформлено всё традиционно: описание задачи, решение, описание решения.

Отправить GET-запрос и показать ответ вместе с заголовками

curl -Gi http://google.com

Опция -G указывает использовать HTTP GET, опция -i — включить заголовки в вывод.

Теги: macosx, linux, kb
Написано Sergey Stolyarov 2013-07-04 в 11:54

Когда-то я писал о личном опыте использвания Sublime Text 2, а после выхода Sublime Text 3 решил начать новую статью, ориентированную именно на версию 3 с небольшим акцентом на миграцию с 2 на 3.

Sublime Text — это профессиональный программерский текстовый редактор. Он завоевал очень большую популярность благодаря проработанности интерфейса, кроссплатформенности, удобной и простой расширяемости плагинами. Мои впечатления со времён написания первой статьи не особо изменились, поэтому я второй раз их переписывать не буду.

Написано Sergey Stolyarov 2013-05-21 в 00:21

Создать файл ~/.gimp-2.8/fonts.conf вот с таким содержимым:

<fontconfig>
  <match target="font">
    <edit name="rgba" mode="assign">
      <const>none</const>
    </edit>
  </match>
</fontconfig>

Изначально проблема проявляется так: на краю отрендеренного текста цветные пятна.

Теги: linux, kb, gimp
Написано Sergey Stolyarov 2013-05-13 в 18:15

В SSH есть крайне полезная фича, позволяющая организовать прозрачный проброс трафика через практически любой SSH-сервер. Такое туннелирование позволяет сравнительно легко переключаться между прокси-серверами из разных стран, а весь трафик автоматически шифруется (так как передаётся внутри ssh-сессии). Для работы достаточно самой дохлой VPS-ки, которую можно сейчас купить за очень небольшие деньги. Несколько виртуалок в разных странах — и получаем набор прокси на любой случай.

Принцип туннелирования простой: подключаемся к ssh-серверу со специальными опциями и получаем SOCKS-прокси, висящий на указанном в опциях порту локальной машины. Что самое приятное — на удалённой машине не надо ставить никакой софт, плюс необязательно быть суперпользователем, достаточно обычного аккаунта.

Дальше я детально опишу сценарий настройки и конфигурации такой системы.

Теги: kb, linux
Написано Sergey Stolyarov 2013-04-05 в 10:42

В файле ~/.ssh/config можно писать алиасы для используемых хостов, указывать для разных хостов разные ключи и так далее.

Host home
    HostName home.example.com
    Port 1488
    Ciphers arcfour,blowfish-cbc
    Compression yes
    CompressionLevel 9


Host github.com
    IdentityFile ~/.ssh/id_rsa-github

Host bitbucket.org
    IdentityFile ~/.ssh/id_rsa-bitbucket
Теги: linux, kb
Написано Sergey Stolyarov 2013-03-06 в 15:14

Перед вами 1001-я статья о GnuPG, не читайте её.

Здесь написано о GnuPG, как им пользоваться и при этом понимать, что делаешь.

В статье идёт речь исключительно о консольном клиенте gpg, удобнее всего с ним работать в терминале на linux/macos-машине.

Официальный сайт GnuPG здесь, огрызки смыслов в виде официального руководства здесь, статья в ру-википедии здесь. А эта статья адресована техноманьякам, поскольку нормальные люди GnuPG (как и PGP) использовать не будут.

Теги: linux, security
Написано Sergey Stolyarov 2013-02-22 в 11:29

Типичная ситуация: коннектимся с машины M1 на машину M2 через SSH, затем на машине M2 меняем юзера через sudo и хотим там запустить X11-приложение, чтобы оно открылось на дисплее машины M1. Это может быть, например, отладчик или графическая гуйня к базе.

Дальше я по шагам распишу все этапы подключения с комментариями.

Теги: linux, kb
© 2006—2016 Sergey Stolyarov | Работает на Pyrone