Шпаргалка по командам и хоткеям Unix

Стянуто отсюда: http://www.debian.org/doc/manuals/debian-reference/ch01.en.html

Хоткеи:

key description of key binding
Ctrl-U стереть тест перед курсором (erase line before cursor)
Ctrl-H стереть символ перед курсром (erase a character before cursor)
Ctrl-D terminate input (exit shell if you are using shell)
Ctrl-C terminate a running program
Ctrl-Z temporarily stop program by moving it to the background job
Ctrl-S halt output to screen
Ctrl-Q reactivate output to screen
Ctrl-Alt-Del reboot/halt the system, see inittab(5)
Left-Alt-key (optionally, Windows-key) meta-key for Emacs and the similar UI
Up-arrow start command history search under bash
Ctrl-R start incremental command history search under bash
Tab complete input of the filename to the command line under bash
Ctrl-V Tab input Tab without expansion to the command line under bash

Команды:

command description
pwd выводит текущую директорию (display name of current/working directory)
whoami выводит имя текущего юзера (display current user name)
id выводит id текущего юзера (display current user identity (name, uid, gid, and associated groups))
file <foo> выводит тип файла, переданного в качестве аргумента (display a type of file for the file <foo>)
type -p <commandname> выводит расположение файла, вызывающегося при вводе команды (display a file location of command <commandname>)
type <commandname> выводит информацию о команде (display information on command <commandname>)
apropos <key-word> находит команды, связанные с переданным аргумеентом find commands related to <key-word>
whatis <commandname> display one line explanation on command <commandname>
man -a <commandname> display explanation on command <commandname> (Unix style)
info <commandname> display rather long explanation on command <commandname> (GNU style)
ls list contents of directory (non-dot files and directories)
ls -a list contents of directory (all files and directories)
ls -A list contents of directory (almost all files and directories, i.e., skip .. and .)
ls -la list all contents of directory with detail information
ls -lai list all contents of directory with inode number and detail information
ls -d list all directories under the current directory
tree display file tree contents
lsof <foo> list open status of file <foo>
lsof -p <pid> list files opened by the process ID: <pid>
mkdir <foo> make a new directory <foo> in the current directory
rmdir <foo> remove a directory <foo> in the current directory
cd <foo> change directory to the directory <foo> in the current directory or in the directory listed in the variable $CDPATH
cd / change directory to the root directory
cd change directory to the current user’s home directory
cd /<foo> change directory to the absolute path directory /<foo>
cd .. change directory to the parent directory
cd ~<foo> change directory to the home directory of the user <foo>
cd - change directory to the previous directory
</etc/motd pager display contents of /etc/motd using the default pager
touch <junkfile> create a empty file <junkfile>
cp <foo> <bar> copy a existing file <foo> to a new file <bar>
rm <junkfile> remove a file <junkfile>
mv <foo> <bar> rename an existing file <foo> to a new name <bar> (<bar> must not exist)
mv <foo> <bar> move an existing file <foo> to a new location <bar>/<foo> (the directory <bar> must exist)
mv <foo> <bar>/<baz> move an existing file <foo> to a new location with a new name <bar>/<baz> (the directory <bar> must exist but the directory <bar>/<baz> must not exist)
chmod 600 <foo> make an existing file <foo> to be non-readable and non-writable by the other people (non-executable for all)
chmod 644 <foo> make an existing file <foo> to be readable but non-writable by the other people (non-executable for all)
chmod 755 <foo> make an existing file <foo> to be readable but non-writable by the other people (executable for all)
find . -name <pattern> find matching filenames using shell <pattern> (slower)
locate -d . <pattern> find matching filenames using shell <pattern> (quicker using regularly generated database)
grep -e "<pattern>" *.html find a “” in all files ending with .html in current directory and display them all
top display process information using full screen, type q to quit
kill <1234> kill a process identified by the process ID: “<1234>”
gzip <foo> compress <foo> to create <foo>.gz using the Lempel-Ziv coding (LZ77)
gunzip <foo>.gz decompress <foo>.gz to create <foo>
bzip2 <foo> compress <foo> to create <foo>.bz2 using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding (better compression than gzip)
bunzip2 <foo>.bz2 decompress <foo>.bz2 to create <foo>
tar -xvf <foo>.tar extract files from <foo>.tar archive
tar -xvzf <foo>.tar.gz extract files from gzipped <foo>.tar.gz archive
tar -xvf -j <foo>.tar.bz2 extract files from <foo>.tar.bz2 archive
tar -cvf <foo>.tar <bar>/ archive contents of folder <bar>/ in <foo>.tar archive
tar -cvzf <foo>.tar.gz <bar>/ archive contents of folder <bar>/ in compressed <foo>.tar.gz archive
tar -cvjf <foo>.tar.bz2 <bar>/ archive contents of folder <bar>/ in <foo>.tar.bz2 archive
zcat README.gz > foo create a file foo with the decompressed content of README.gz
zcat README.gz >> foo append the decompressed content of README.gz to the end of the file foo (if it does not exist, create it first)

143989334-cover.jpg

Семинар по хапкидо в Днепропетровске

С 21 по 24 января был на семинаре по хапкидо в Днепропетровске, который проводил грандмастер Ким Нам Дже. Было здорово. Хотя это уже третий семинар по хапкидо, который я посетил, и кажется что с каждым разом физическая нагрузка становится все меньше.

О планах

Мы бываем на верху блаженства, когда планируем свое будущее, отбрасывая всякие ограничения с нашего оптимизма и силы воображения. К несчастью, Вселенная не всегда следует нашим планам.

Брайан Герберт «Батлерианский джихад»

Несколько статей о Друпале

В течение последнего года я написал три статьи о CMS Drupal, которые были опубликованы в бумажной и электронной версии журнала PC Magazine/RE. Сейчас я публикую “авторские” 1 версии этих статей. Каждая статья разбита на несколько разделов и ниже я привожу ссылки и описания каждого из них.

Первая статья “Разработка сайта на Drupal

  • Часть 1. Введение”. В этой части рассказывается о возможностях Друпала “из коробки”, а также об основных дополнительных модулях. Таксономия, ревизии, мультисайтинг — это совсем не страшно.
  • Часть 2. Архитектура Друпала”. Здесь сказаны общие слова о модульной системе Друпала, механизмах работы с формами, базой данных и кешем. Подробнее эти вопросы будут рассмотрены в следующих разделах и статьях.

После прочтения первых двух частей этой статьи новичок, задающийся вопросом “подойдет ли Друпал для моего нового суперстартапа”, должен на 100% определиться с ответом на этот вопрос. Вообще, в 95% случаев на этот вопрос можно ответить утвердительно, с оговоркой, что работать над проектом будет профессионал хорошо знакомый с Друпалом.

  • Часть 3. Модули Drupal”. CCK, Views, Imagecache, Panels, Ubercart — модули Друпала покрывающие 90% возникающих задач. В этой части статьи даны краткие описания каждого из перечисленных модулей.
  • Часть 4. Интранет-сайт на Друпале. Первый практический пример, в нем разрабатывается интранет-сайт для большой компании. Цель этого раздела — показать возможности, которыми обладает Друпал без доработки напильником. При разработке используются только существующие модули и не написано ни единой строчки программного кода. Аналогичное, только значительно более “кастомное” решение я успешно внедрил в одной из компаний со штатом в несколько сотен человек.
  • Часть 5. Социальная сеть на Друпале”. Точнее не социальная сеть, а коллективный блог с элементами социальной сети. Описание более новой версии примера описанного в этом раздедле можно найти на Швабрешвабр.
  • Часть 6. Оптимизация Друпал”. Этот раздел написал Александр Графов, он же axel. Друпал часто критикуют за низкую производительность. В этом разделе рассказано о приемах, позволяющих “разогнать” движок.

Вторая статья “Пример разработки модуля для Drupal

Третья статья “Темизация Друпал

  • Часть 1. Введение”. Во введении рассказано о шаблонных движках, которые могут быть использованы в Друпале, даны определения основных терминов, использованных в тексте (тема оформления, регион, блок), а также приведено несколько полезных ссылок.
  • Часть 2. Анатомия темы оформления”. Здесь дано подробное описание каждого из файлов-шаблонов, использующихся в темах оформления, а также рассказано о том, как определить отдельный шаблон для каждой страницы или группы страниц.
  • Часть 3. Forms API и темизация”. В этом разделе приводится пример разработки новой и изменения существующей формы с помощью Forms API Друпала, а также о изменении внешнего вида любого элемента формы в отдельности или формы целиком.
  • Часть 4. Темизация Views”. Небольшой раздел, рассказывающий о том, как изменить внещний вид данных, возвращаемых модулем Views.
Читать дальше ➠

Темизация Drupal. Часть 4. Темизация Views

Views — один из самых востребованных модулей для Drupal — позволяет создавать списки документов (представления, view), отфильтрованные по любому сложному алгоритму. На выходе модуль возвращает массив данных, который выводится в шаблоне, соответствующем выбранному администратором типу отображения (display) данных. Каждое представление может быть отображено в виде таблицы, маркированного списка, решетки (grid) и т. п. Чтобы переопределить используемый для отображения представления шаблон, нужно в свойствах представления в блоке Basic settings найти параметр Theme information и посмотреть в нем имена шаблонов, которые могут быть использованы модулем для отображения текущего представления. Затем нужно в подпапке theme модуля Views найти шаблон, соответствующий выбранному типу отображения (например, views-view-table.tpl.php для табличного варианта отображения или views-view-list.tpl.php для списка), скопировать его в папку с текущей темой оформления и присвоить ему одно из имен, перечисленных в Theme information. Теперь созданный шаблон можно настроить для своих нужд.

Читать дальше ➠

Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм

Прежде чем говорить об изменении внешнего вида форм, ознакомимся с основами Drupal Forms API — программного интерфейса, используемого для генерации форм. Применение Forms API несколько сложнее создания HTML-форм вручную, так как требует изучения логики его работы, однако его использование обязательно, поскольку Forms API решает ряд важных задач:

  • любой разработчик может добавить или удалить элементы в форме, созданной другим разработчиком, не меняя ее исходного кода;
  • любой разработчик может добавить дополнительные функции проверки и обработки введенных пользователем данных без изменения исходной формы;
  • формы, созданные с использованием Forms API, защищены от атак, связанных с отправкой пользователем модифицированной формы;
  • любой разработчик может изменить внешний вид формы, не изменяя ее исходного кода.

Каждая форма в Drupal представляет собой функцию, возвращающую ассоциативный массив. Этот массив должен содержать информацию обо всех элементах формы, функциях проверки (валидаторы, validators) и обработки (сабмиттеры, submitters) введенных данных. Данная функция должна быть расположена в файле модуля, о разработке модуля говорилось в предыдущей статье.

Читать дальше ➠

Темизация Drupal. Часть 2. Анатомия темы оформления Drupal

Как и в случае с модулем, разработка которого рассматривалась в предыдущей статье, тема оформления должна иметь уникальное имя, состоящее из строчных латинских букв, цифр и знаков подчеркивания, и это имя должно начинаться с буквы. Тема оформления — это несколько файлов, которые располагаются в папке sites/all/themes/имя_темы относительно корня Drupal.

PHPTemplate при сборке страницы берет информацию из пяти основных файлов: имя_темы.info, page.tpl.php, node.tpl.php, block.tpl.php, template.php. Если же включен модуль comment, для вывода комментариев используется шаблон comment.tpl.php.

Читать дальше ➠

Темизация Drupal. Часть 1

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

Однако все эти упреки несправедливы. Здесь можно процитировать старый анекдот: «Вы просто не умеете его готовить». На самом деле к Drupal при должном умении можно «прикрутить» дизайн и верстку любой сложности. Можно до неузнаваемости «темизировать», т. е. изменять внешний вид любого HTML-кода, создаваемого Drupal, — все стандартные формы, блоки, документы и списки. Просто для этого нужно понимать, как Drupal генерирует выходные данные (информация об этом была размещена в моей предыдущей статье), и уметь переопределять этот вывод. Примеров таких детально темизированных сайтов много, в одной из врезок вы можете найти ссылки на некоторые из них.

В этой статье я расскажу о трех этапах темизации, охватывающих практически 100% задач, связанных с изменением внешнего вида сайта: разработка общего шаблона для всех страниц сайта и «кастомных» шаблонов для избранных страниц; разработка шаблонов для разных типов документов и списков; изменение внешнего вида форм (поиск, авторизация и любые другие стандартные и создаваемые внешними модулями формы). Но прежде чем переходить к решению задач, познакомимся с основными используемыми терминами и структурой любой «темы оформления».

Читать дальше ➠

Разработка модуля для Drupal. Часть3. Cron и темизация

Регулярные процедуры

Чтобы Drupal периодически выполнял определенные действия, в планировщике задач операционной системы необходимо настроить запуск файла cron.php, который находится в корне каждого Drupal-сайта. При выполнении этого файла будет вызываться хук hook_cron, и в нашем модуле мы напишем его реализацию.

Читать дальше ➠

Разработка модуля для Drupal. Часть2

currencies.info

В .info-файлах модулей содержится служебная информация, без которой модуль не будет виден в системе. Начинаться любой .info-файл должен со строки

; $Id$

В файлах с PHP-кодом после открывающего тега <?php необходимо добавить строку

Читать дальше ➠