Комментарии

Галерея

Опрос

Из каких стран идет больше всего спама, попыток взлома на ваши серверы?:

Консольные команды

Аватар пользователя maximum

Несколько основных команд Unix/Linux, которые можно использовать в скриптах:

bc - Калькулятор, который поддерживает действия с очень большими числами. Предназначен для выполнения любого типа вычислений в коммандной строке.

cal - Выводит на экран отформатированный календарь текущего месяца, или любого указанного месяца/года. Например, набрав "cal 9 1752", вы увидите календарь на сентябрь 2002 год. Этот месяц и год интересны тем, что именно тогда из календаря было удалено несколько дней, чтобы скомпенсировать ошибки, связанные с округлениями.

cat <имя файла> [<имя файла> ... ] - выводит содержимое всех файлов на экран. Командой cat <имя файла> <имя файла> ... <новый файл> можно соединить несколько файлов в один.

clear - очищает терминал.

date - выводит текущую дату и время.

du <каталог> - Сокращение от disk usage. Показывает, сколько занимает указанный каталог и его подкаталоги. du -s <каталог> печатает только результат.

df - Сокращение от disk free. Показывает, сколько свободного места осталось на всех разделах.

free - Отображает использование оперативной памяти и swapа. Раздел подкачки используется, как продолжение оперативной памяти, так что - если у вас достаточно RAM, то swap не используется вообще.

echo - Печатает в терминале сообщение. Например: echo "Hello World", или echo $[10*3+2]. echo -e позволяет интерпретацию выражений с обратным slashем, например, "a" - звуковой сигнал, "" - аналогично нажатию клавиши "backspace", или " " - переход на следующую строку. echo с параметром -n не переводит курсор на следующую строку после того, как сообщение напечатается.

expr - Производит рассчет математических выражений. Например, expr 2 + 2 * 2 выведет число 6.

file <имя файла> - Определяет тип данных, хранящихся в файле. Например, file back.jpg скажет вам, что back.jpg - это изображение в формате jpeg. file определяет огромное количество различных типов файлов, причем тип файла определяется на основе анализа содержимого этого файла, а не из его расширения. Например, если back.jpg переименовать в 1.htm, то команда file 1.htm все равно определит, что это JPG-файл.

less - Это GNU версия more с дополнительными возможностями. Позволяет просматривать файлы с прокруткой и поиском.

more - Позволяет просматривать длинные файлы с остановкой на каждой странице. Space - перейти на следующую страницу, q - выход.

soft <имя файла> - Сортирует данные, находящися в текстовом файле. Подробности - на man-странице.

strings <имя файла> - Выводит на экран содержимое файла, игнорируя все нечитаемые символы. Например, если у вас есть бинарный файл, который может содержать что-нибудь интересное, но при просмотре его через mc все совершенно нечитаемо - используйте команду strings.

split ... - Разделяет один файл на несколько. Например, если большой файл не помещается на дискету, можно разделить его на несколько дискет, а потом соединить. csplit позволяет разделять файла с учетом текста, который в них находится.

uname - Выводит название вашего Unixа (Linux, BSD, etc).

uniq <имя файла> - Выводит текстовый файл без повторяющихся строк (сначала файл должен быть отсортирован).

wc [-c] [-w] [-i] <имя файла> - Считает количество символов/байт, слов или строк в текстовом файле.

whoami - Показывает имя пользователя, под которым вы работаете.

Сжатие файлов.

Стандартная команда для сжатия файла - это gzip <имя файла>. Чтобы распаковать сжатый файл, используется gzip с параметром -d. В системе gzip используется постоянно, потому что многие файлы хранятся в запакованном виде, и распаковываются автоматически при обращении к ним. Для того, чтобы посмотреть запакованный файл, используются команды zcat и zless. Так же существует новый формат сжатия - bzip2, который сжимает файлы лучше, чем gzip. Но из-за того, что он намного медленнее, он не используется для системных файлов, которые постоянно запаковываются и распаковываются.

Gzip может сжать только один файл. Поэтому для того, чтобы поместить в архив несколько файлов или директорий, нужно сначала соединить все это в один файл с помощью команды tar. Например, tar -c -f <имя файла> <директория>. После этого полученный файл запаковывается с помощью gzip. (Отсюда и берется такое необычное двойное расширение, как tar.gz :).

Сейчас все эти функции встроены в команду gzip, которая может с различными опциями автоматически сжимать директории в один файл, использовать различные методы сжатия, etc.

Поиск файлов.

Команда find используется для поиска файлов. Если написать в консоли просто "find", то на экран будут выведены все файлы из текущей директории и ее поддиректорий. find -type d покажет только директории, а file -type f покажет только файлы. Но для настоящего поиска используется команда find -name <имя файла>. Например, find -name *.c найдет все файлы с расширением ".c", а find -name file.txt найдет все файлы с именем file.txt.
find -size [+|-]<размер> найдет файлы, которые больше указанного размера (+), или меньше (-), или которые занимают ровно столько, сколько указано (если число без знака).
find <директория> запустит find для поиска именно в этой директории (можно указывать несколько).

Существует еще множество опций для поиска, которые описаны в man-странице. Недостатком find является медленный поиск, поэтому существует альтернативная команда locate <имя файла>, которая ищет конкретный файл по уже созданной базе данных.

Так же часто бывает нужна возможность поиска в файлах какого-нибудь слова или фразы. Команда grep ищет текст в файлах и выводит только те строки, в которых был обнаружен этот самый текст. Примеры:
grep Linux *.txt - ищет во всех файлах с расширением txt слово "Linux".
grep -n <выражение> <имя файла> выводит номер строки, в которой было найдено выражение.
grep -<количество> <выражение> <имя файла> выводит <количество> строк перед и после той строки, в которой было найдено выражение.
grep -v <выражение> <имя файла> выведет только те строки, в которых не было найдено указанное выражение.
grep -i <выражение> <имя файла> проводит поиск, нечувствительный к регистру.
Так же grep поддерживает регулярные выражения, etc.

Копирование на дискеты, отформатированные под MS-DOS и Windows.

Существует специальный пакет под названием mtools специально для этой задачи. Он входит в большинство дистрибутивов Linux, и позволяет использовать любые команды DOS, поставив перед командой букву m. Например, с помощью команды mdir A: можно зайти на дискету, к которой можно обращаться с помощью привычного DOS-овского имени "A:", и производить любые операции с файлами, например, mcopy, mformat, и т.д. Полный список команд можно посмотреть командой info mtools.