Руководство по Ubuntu для новичков

Это старая версия документа.


Типы файлов в Ubuntu

Начинающим пользователям Ubuntu зачастую нелегко привыкнуть к некоторой специфике обращения с файлами в этой системе. Однако на самом деле всё крайне просто и очень элегантно, в этой статье я постараюсь объяснить все тонкости, чтобы потом при использовании системы вы не удивлялись некоторым непонятным с первого взгляда вещам.

Названия файлов и папок

Я уже упоминал, что в Linux все имена файлов являются регистрозависимыми, то есть вы спокойно можете создать в одном каталоге два файла с одинаковыми именами, но записанными в различных регистрах, например, Ubuntu.txt и ubuntu.txt.

Кроме того, я так же говорил, что вы можете использовать в именах файлов абсолютно любые символы, которые пожелаете, кроме прямого слеша /1), однако в силу некоторых причин я бы не рекомендовал использовать следующие символы: \ < > *, а так же символы переноса строки и табуляции. Вы можете подписывать свои файлы китайскими иероглифами, рунами, греческими буквами и вообще чем угодно, если вам конечно будет удобно использовать такие имена2).

Ну и напоследок ещё раз напомню, что разделителем каталогов в пути к файлу в Linux всегда является символ /, в отличие от Windows, в которой используется \.

Доступ к файлам

В предыдущей статье я уже рассказал про права доступа к файлам, поэтому лишь кратко напомню: в Linux можно с помощью механизма разграничения прав ограничить доступ к файлу на редактирование или же просто полностью запретить доступ к содержимому. Например, все системные конфигурационные файлы закрыты для редактирования обычному пользователю, если вы попытаетесь сохранить какие-нибудь изменения в такой файл, Ubuntu вам скажет, что у вас не хватает на это прав. Некоторые же файлы вы даже не сможете открыть и посмотреть их содержимое. Если вы до сих пор не знаете, как это обойти, внимательно прочитайте предыдущую статью.

Содержимое и расширение файлов

Если вы пользовались раньше операционными системами Windows, то вы скорее всего привыкли к тому, что тип файла определяется его расширением (последняя часть имени файла после точки). Например, файл «Голубой ледопад.mp3» - это музыка в формате mp33), а «Урания.txt» - это текстовый файл4). На самом деле всё немного не так, расширение - это всего лишь часть имени файла, которое никак не зависит от собственно содержимого, и тип файла обычно определяется по-другому5). Например, перейдите в Ubuntu в какую-нибудь папку с mp3 файлами и переключитесь на режим отображения списком6). В колонке «Тип» рядом с mp3 файлами вы увидите «аудио MP3»:

Теперь переименуйте любой файл, приписав ему вместо mp3 расширение ??.

Видите, тип файла не изменился. Если вы сейчас попробуете открыть такой файл, то он преспокойно откроется как mp3 в проигрывателе7).

Конечно расширение нужно, мало того, Ubuntu полагается в первую очередь именно на него, то есть если вы переименуете mp3 файл, добавив к нему расширение txt, то Ubuntu будет считать такой файл текстовым. Однако то, что Ubuntu умеет смотреть не только на имя файла, спасает от многих проблем. Поэтому не удивляйтесь, когда встретите в Ubuntu файлы вообще без расширения, с которыми система преспокойно работает, ничего при этом не спрашивая.

Исполняемые файлы

В вопросах исполняемых файлов, то есть, если по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые файлы имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu исполняемым может быть даже текстовый файл. Сразу скажу, что exe - это программы для Windows и в Ubuntu они не работают без Wine (программы для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они работают далеко не всегда.

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

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

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

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

Вот так всё на самом деле просто и красиво, надеюсь, вы осознали основную логику и не будете путаться при работе с исполняемыми файлами в Ubuntu.

Текстовые файлы

Текстовые файлы в Ubuntu повсюду. Все настройки хранятся в виде текстовых файлов, исходные коды всех программ представляют из себя текстовые файлы, многие программы в Ubuntu являются на самом деле скриптами, то есть тоже текстовыми файлами. И естественно Ubuntu умеет работать с текстовыми файлами как угодно. И этой темы даже не пришлось бы касаться, если бы не одна проблема операционных систем Windows. Дело в том, что в Windows до сих пор кое-где ещё используется устаревший в 90-х прошлого столетия способ сохранения обычного текста, в частности, в текстовых файлах8).

Итак, что же делать, если при открытии текстового файла вы вместо ожидаемого текста видите непонятные «кракозябры»? Есть два пути - один универсальный, другой - для наиболее типичной ситуации. Начну со второго. Можно немного помочь текстовому редактору Ubuntu, указав ему, что чаще всего вы будете открывать кроме нормальных текстовых файлов9) ещё и стандартные файлы из Windows10). После этого в большинстве случаев вы не увидите никаких «кракозябр». Делается это с помощью редактора конфигурации рабочей среды GNOME, про который я буду рассказывать в одной из статей последней части руководства. Ничего сложного в этом нет, так что можете спокойно сначала прочитать про редактор конфигурации, а потом вернуться к дальнейшему изучению основ использования Ubuntu.

Однако описанный способ не позволит вам сделать так, чтобы Ubuntu одинаково хорошо открывала абсолютно все текстовые файлы. Поэтому теперь я расскажу про универсальное решение проблем с нечитаемым текстом. Собственно, необходимо всего лишь указать Ubuntu кодировку, в которой она должна прочитать файл. В стандартном текстовом редакторе Gedit это делается так:

  1. Сначала закройте вкладку с текстовым документом, который вы хотите открыть в другой кодировке:

  2. Теперь выберите в меню «Файл» пункт «Открыть…». Выберите нужный вам файл в появившемся диалоге, а в раскрывающемся списке «Кодировка символов», располагающимся внизу, выберите пункт «Кириллица (WINDOWS-1251)»:

  3. Нажмите кнопку «Открыть», файл должен открыться в нормальном виде11):

Сложно? Да, не просто. Существуют более лёгкие способы работы с кодировками, например, плагин для Gedit, позволяющий менять кодировку у открытых файлов без необходимости их повторного открытия. Кроме того, существуют утилиты для автоматического перекодирования файлов в utf8, например, enca.

Напоследок хочется сказать, что очень рекомендуется так или иначе перевести всю текстовую информацию на использование utf8, поскольку фактически только эта кодировка нормально распознаётся везде и всегда, а в будущем скорее всего только она и будет использоваться.

Аудиофайлы

В случае с аудиофайлами так же существует проблема с кодировками, только проявляется она в тегах. К сожалению, некоторые популярные Windows-программы редактирования тегов так же до сих пор используют устаревшую кодировку. Некоторые плееры Ubuntu поддерживают указание кодировки воспроизводимых файлов, однако гораздо предпочтительней обработать всю вашу медиатеку специальными программами, которые автоматически приведут все теги в нормальный вид, дабы в дальнейшем не было проблем. Самой популярной программой такого рода является EasyTag, она доступна в стандартных репозиториях, так что почти сразу после прочтения следующей статьи вы сможете её воспользоваться.

Что же касается форматов, то Ubuntu поддерживает все существующие аудио-форматы, однако для воспроизведения некоторых требуются дополнительные кодеки. О том, как их поставить, я расскажу в одной из следующих статей.

В качестве заключения

В этой статье я постарался подробно рассказать об основных особенностях в работе с файлами в Ubuntu. Надеюсь, вы смогли разобраться что к чему и уловить основные моменты. Напоследок хочется заметить, что Ubuntu без какого-либо дополнительного программного обеспечения поддерживает большинство распространённых форматов файлов, специфические файлы же скорей всего можно как минимум сконвертировать в один из стандартных форматов с помощью различных программ, в изобилии доступных в репозиториях Ubuntu.

Чуть позже я расскажу как поставить пакет полной поддержки мультимедиа форматов, который не входит в Ubuntu по умолчанию из-за несовершенного законодательства некоторых стран, с которым, к сожалению, приходится считаться, но для этого необходимо рассмотреть следующую очень важную тему:

1)
На самом деле ещё и кроме символа \0x00, для тех кто знает, что это такое.
2)
Правда есть мнение, что не стоит называть файлы с использованием нелатинских символов и пробела, потому как подобные имена плохо могут быть восприняты операционными системами от Microsoft. Действительно, версии Windows до Vista не умеют корректно работать с файлами, названными с использованием национальных символов, так же Windows не поддерживает в названиях файлов большинство типографических знаков и не знает про то, что оказывается можно писать в разном регистре. Ubuntu правда старается позаботится об этом, поэтому, например, при копировании файлов на флешку, которую можно использовать в Windows, Ubuntu автоматически заменит все плохие для Windows символы на знаки подчёркивания. Кроме того, русские имена файлов всё-таки отлично отображаются даже в старых русскоязычных версиях Windows. Но проблема тем не менее есть, поэтому решайте сами, я лично предпочитаю удобство организации файлов в Ubuntu редким накладкам в коммуникации с Windows.
3)
Видимо песня Александра Гейнца и Сергея Данилова.
4)
Надо полагать со стихотворениями Иосифа Александровича Бродского.
5)
По крайней мере в Linux.
6)
Я описывал основы управления файловым менеджером в одной из предыдущих статей.
7)
Если у вас конечно установлены кодеки для воспроизведения mp3. В противном случае система сначала предложит вам их установить, но после установки всё же проиграет ваш файл.
8)
Проблема вот в чём: технически в памяти компьютера хранятся биты, объединённые в байты, то есть наборы ноликов и единичек. Такие наборы представляют из себя числа в двоичной системе счисления. То есть компьютер умеет хранить только обычные числа. Для того, чтобы сохранять текст и иметь возможность потом его прочитать, необходима специальная таблица преобразования, в которой каждому символу соответствует свой номер. Такая таблица называется кодировкой. Исторически сложилось так, что на первых компьютерах из-за экономии памяти одному символу соответствовал один байт, соответственно, в кодировке могло быть всего 256 символов (т.к. в одном байте можно записать числа от 0 до 255). Естественно, 256 символов не хватит даже для записи некоторых национальных алфавитов, не говоря уже про все алфавиты мира. Поэтому для каждого национального алфавита была разработана своя кодировка (а иногда и не одна). Для русского языка три самые частоиспользуемые кодировки такого вида это стандартная cp1251 для Windows, KOI8R и старая cp866 для DOS. И всё бы хорошо, но по набору байтов, который должен представлять из себя текст, невозможно определить, в какой из национальных кодировок он представлен. Это создаёт гигантские проблемы при попытке общения людей из разных национальностей и делает практически невозможной интернализацию текстовых документов. Поэтому была разработана универсальная кодировка, названная Unicode (Юникод), которая содержит абсолютно все печатные символы Земли. Технически она реализована в нескольких вариантах, самым распространённым из которых является utf-8. Это кодировка имеет обратную совместимость с ASCII, старым международным 128-символьным стандартом, содержащим только английские буквы, арабские цифры и знаки препинания, поэтому документы только с ASCII символами прекрасно открываются как utf-8. Ubuntu везде и всегда естественно использует utf-8, это позволяет, в частности, использовать любые символы в именах файлов да и вообще что угодно называть как угодно. А вот некоторые программы для Windows, к сожалению, до сих пор не вылезли из анабиоза и зачастую используют национальные кодировки для сохранения текста. В случае русскоязычной версии Windows такой кодировкой является cp1251. Проблемы начинаются, когда документы из Windows приходится открывать в Ubuntu. Как я уже сказал, определить по набору байт, в какой из сотен кодировок он представлен, невозможно. Поэтому по умолчанию Ubuntu полагает, что весь текст представлен в стандартной международной кодировке, то есть в utf8. И если вы откроете в Ubuntu текстовый файл с русскими символами, созданный в Windows, то вполне можете увидеть непонятные символы.
9)
То есть сохранённых в кодировке utf-8.
10)
То есть с кодировкой cp-1251.
11)
Если вы так и не увидите нормального текста в открывшемся файле, то повторите пункты 1-3, выбирая другие кодировки из списка. Если у вас так и не получилось увидеть содержимое файла, значит он скорее всего содержит не совсем стандартный русский текст, попробуйте подобрать кодировку исходя из предполагаемого содержимого. Для этого вам возможно придётся добавить ещё кодировок в список, обратите внимание на пункт «Добавить или удалить…» в раскрывающемся списке выбора кодировки