Полезные команды в *nix

Xakep, номер #038, стр. 038-038-1


Упрости свою работу в Линуксе!

Нагорский Артем aka Cordex (cordex@xakep.ru)

Как часто мы, работая в Линуксе, забываем или не относимся серьезно к командам, которые реально способны убыстрить и кое-где упростить нашу жизнь. Я считаю, что необходимый набор таких команд должен знать каждый пользователь Линукса, а уж тем более читатель Х :). Вот о них-то мы и поговорим в этой статье.

Меняем владельца

Согласись, прикольно, а иногда и просто необходимо поменять владельца какого-нибудь файла. Эта возможность доступна на всех версиях твоего любимого Линукса. Синтаксис команды таков:

chown ownername filelist

где ownername - имя перца, на которого пишется завещание :), а filelist - список файлов. Естественно, это нужно проводить в статусе root'а. Вторая аналогичная команда:

chgrp groupname filelist

Этой командой изменяется не имя, а группа владения. Кстати, если ты захочешь применить на файле обе эти команды, убедись, что ты сначала выполнил команду с изменением группы владения (chgrp). Ведь с файлом, принадлежащим другому, ты ничего не сможешь сделать, конечно, если ты не рут.

Считаем и анализируем

Хочешь узнать, сколько раз юзеры логинились в систему или сколько раз она была перезапущена? Конечно, можно написать скрипт на Си, который бы выдавал тебе всю нужную инфу. Но можно поступить проще, воспользовавшись командой who со следующими ключами:

-b - Показывает время, когда в последний раз была запущена Ось.

-q - Показывает число залогиненных юзеров в данный момент.

-u - Показывает полный список залогиненных юзверей.

-t - Показывает время, когда в последний раз были изменены системные часы.

Между прочим, ты в курсе, где лежит список залогиненных юзверей в твоей системе? Нет? А я вот в курсе :). Но и с тобой поделюсь: вся эта инфа лежит в /etc/utmp. Поэтому, если хочешь написать свой скрипт на Си для команды who, о котором я говорил вначале, то ты знаешь, куда залезть за файлом.

Неудаляемые файлы

Очень легко можно создать неудаляемые с шелла файлы. Для этого нужно, во-первых, создать файл, использующий Си-программу или скриптовый файл, а во-вторых, использовать в качестве названия файла символы, которые не могут быть напечатаны с шелла. Примером может служить такая комбинация символов, как Ctrl-h. Так как это комбинация delete, то становится очевидным, что с шелла такой файлик не удалишь :). Для бестолковых приведу пример скрипта, который создаст файл с неймом Ctrl-h. Он должен быть набит в чем-нибудь типа vi-editor'а:

echo'' > 'a^h'

Небольшое пояснение. Чтобы напечатать это в vi, нужно вбить следующее:

Ctrl v //создаст следующий ascii-символ, который не будет интерпретироваться.

Ctrl h

Так, теперь поменяй доступ на файл и сделай его исполняемым. Создаться файл, который будет выглядеть по названию похожим на a, но неудаляемый из шелла! :). Хотя это, конечно, не значит, что его нельзя вовсе удалить: не шеллом единым рулит Линукс.

Смотрим процессы

Тоже очень неплохая и полезная команда, позволяющая просмотреть все процессы, протекающие на твоем компе. Да не просто показывает одни процессы, но и терминал или программу, управляющую тем или иным процессом. Команда эта - ps. Если же ее запустить с ключом -a - то можно просмотреть аналогичную инфу о процессах, протекающих у юзверях в твоей системе :). От себя отмечу, что, несмотря на свою простоту, команда позволяет сэкономить иногда значительные системные ресурсы, когда ты уберешь все ненужные тебе в данный момент приложения.

Содержание  Вперед на стр. 038-038-2