manual:типы_файлов-2 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
manual:типы_файлов-2 [2010/05/29 12:40]
— (текущий)
Строка 1: Строка 1:
-====== Типы файлов в Ubuntu ====== 
  
-Начинающим пользователям Ubuntu зачастую нелегко привыкнуть к некоторой специфике обращения с файлами в этой системе. Однако на самом деле всё крайне просто и очень элегантно,​ в этой статье я постараюсь объяснить все тонкости,​ чтобы потом при использовании системы вы не удивлялись некоторым непонятным с первого взгляда вещам. 
- 
-===== Названия файлов и папок ===== 
- 
-Я уже упоминал,​ что в Linux все имена файлов являются регистрозависимыми,​ то есть вы спокойно можете создать в одном каталоге два файла с одинаковыми именами,​ но записанными в различных регистрах,​ например,​ Ubuntu.txt и ubuntu.txt. 
- 
-Кроме того, я так же говорил,​ что вы можете использовать в именах файлов **абсолютно** любые символы,​ которые пожелаете,​ кроме прямого слеша ''/''​((На самом деле ещё и кроме символа \0x00, для тех кто знает, что это такое.)),​ однако в силу некоторых причин я бы не рекомендовал использовать следующие символы:​ ''​\ < > *'',​ а также символы переноса строки и табуляции. Вы можете подписывать свои файлы китайскими иероглифами,​ рунами,​ греческими буквами и вообще чем угодно,​ если вам конечно будет удобно использовать такие имена((Правда есть мнение,​ что не стоит называть файлы с использованием нелатинских символов и пробела,​ потому как подобные имена плохо могут быть восприняты операционными системами от Microsoft. Действительно,​ версии Windows до Vista не умеют корректно работать с файлами,​ названными с использованием национальных символов,​ так же Windows не поддерживает в названиях файлов большинство типографических знаков и не знает про то, что оказывается можно писать в разном регистре. Ubuntu правда старается позаботится об этом, поэтому,​ например,​ при копировании файлов на флешку,​ которую можно использовать в Windows, Ubuntu автоматически заменит все плохие для Windows символы на знаки подчёркивания. Кроме того, русские имена файлов всё-таки отлично отображаются даже в старых русскоязычных версиях Windows. Но проблема тем не менее есть, поэтому решайте сами, я лично предпочитаю удобство организации файлов в Ubuntu редким накладкам в коммуникации с Windows.)). 
- 
-Ну и напоследок ещё раз напомню,​ что разделителем каталогов в пути к файлу в Linux всегда является символ ''/'',​ в отличие от Windows, в которой используется ''​\''​. 
- 
-===== Доступ к файлам ===== 
- 
-В [[пользователи_и_группы|предыдущей статье]] я уже рассказал про права доступа к файлам,​ поэтому лишь кратко напомню:​ в Linux можно с помощью механизма разграничения прав ограничить доступ к файлу на редактирование или же просто полностью запретить доступ к содержимому. Например,​ все системные конфигурационные файлы закрыты для редактирования обычному пользователю,​ если вы попытаетесь сохранить какие-нибудь изменения в такой файл, Ubuntu вам скажет,​ что у вас не хватает на это прав. Некоторые же файлы вы даже не сможете открыть и посмотреть их содержимое. Если вы до сих пор не знаете,​ как это обойти,​ внимательно прочитайте [[пользователи_и_группы|предыдущую статью]]. 
- 
-===== Содержимое и расширение файлов ===== 
- 
-Если вы пользовались раньше операционными системами Windows, то вы скорее всего привыкли к тому, что тип файла определяется его расширением (последняя часть имени файла после точки). Например,​ файл "​Голубой ледопад.mp3"​ - это музыка в формате mp3((Видимо песня Александра Гейнца и Сергея Данилова.)),​ а "​Урания.txt"​ - это текстовый файл((Надо полагать со стихотворениями Иосифа Александровича Бродского.)). На самом деле всё немного не так, расширение - это всего лишь часть имени файла, которое никак не зависит от собственно содержимого,​ и тип файла обычно определяется по-другому((По крайней мере в Linux.)). Например,​ перейдите в Ubuntu в какую-нибудь папку с mp3 файлами и переключитесь на режим отображения списком((Я [[файловый_менеджер|описывал]] основы управления файловым менеджером в одной из предыдущих статей.)). В колонке "​Тип"​ рядом с mp3 файлами вы увидите "​аудио MP3": 
- 
-{{ .:​типы_файлов:​mp3-files.png }} 
- 
-Теперь переименуйте любой файл, приписав ему вместо mp3 расширение ''??''​. 
- 
-{{ .:​типы_файлов:​mp3-to-unk.png }} 
- 
-Видите,​ тип файла не изменился. Если вы сейчас попробуете открыть такой файл, то он преспокойно откроется как mp3 в проигрывателе((Если у вас конечно установлены кодеки для воспроизведения mp3. В противном случае система сначала предложит вам их установить,​ но после установки всё же проиграет ваш файл.)). 
- 
-Конечно расширение нужно, мало того, 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-х прошлого столетия способ сохранения обычного текста,​ в частности,​ в текстовых файлах((Проблема вот в чём: технически в памяти компьютера хранятся биты, объединённые в байты, то есть наборы ноликов и единичек. Такие наборы представляют из себя числа в двоичной системе счисления. То есть компьютер умеет хранить только обычные числа. Для того, чтобы сохранять текст и иметь возможность потом его прочитать,​ необходима специальная таблица преобразования,​ в которой каждому символу соответствует свой номер. Такая таблица называется кодировкой. Исторически сложилось так, что на первых компьютерах из-за экономии памяти одному символу соответствовал один байт, соответственно,​ в кодировке могло быть всего 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 полагает,​ что весь текст представлен в стандартной международной кодировке,​ то есть в ''​utf-8''​. И если вы откроете в Ubuntu текстовый файл с русскими символами,​ созданный в Windows, то вполне можете увидеть непонятные символы.)). 
- 
-На самом деле большинство файлов откроется в стандартном текстовом редакторе Ubuntu без проблем((Поскольку по умолчанию в русскоязычной версии Ubuntu Gedit настроен таким образом,​ что он пытается автоматически подобрать одну из распространённых русскоязычных кодировок к файлу. Конечно,​ если в файле не русский текст, и сохранён такой файл в одной из устаревших кодировок,​ то Ubuntu автоматически открыть его не сможет.)),​ но всё же иногда попадаются файлы, которые отображаются "​кракозябрами"​. В этом случае необходимо немного помочь Gedit и указать кодировку файла вручную. Для этого закройте в редакторе вкладку с нечитаемым файлом,​ затем выберите в меню программы пункт "​Открыть",​ найдите свой файл и обратите внимание на поле "​Кодировка символов",​ находящееся внизу диалогового окна открытия. В этом поле необходимо указать нужную кодировку,​ после чего файл откроется уже в пригодном для чтения виде. Кстати,​ рекомендую такие файлы сразу сохранять в ''​utf-8'',​ дабы в дальнейшем не возникало с ними проблем. 
- 
-Существуют и более лёгкие способы работы с кодировками,​ например,​ плагин для Gedit, позволяющий менять кодировку у открытых файлов без необходимости их переоткрывания. Кроме того, существуют утилиты для автоматического перекодирования файлов в ''​utf8'',​ например,​ ''​enca''​. Можно также управлять механизмом автоопределения кодировки в Gedit, это делается через редактор конфигурации,​ про который я немного расскажу в одной из последних статей. 
- 
-Напоследок хочется сказать,​ что очень рекомендуется так или иначе перевести всю текстовую информацию на использование ''​utf8'',​ поскольку фактически только эта кодировка нормально распознаётся везде и всегда,​ а в будущем скорее всего только она и будет использоваться. 
- 
-===== Аудиофайлы ===== 
- 
-В случае с аудиофайлами так же существует проблема с кодировками,​ только проявляется она в тегах. К сожалению,​ некоторые популярные Windows-программы редактирования тегов так же до сих пор используют устаревшую кодировку. Некоторые плееры Ubuntu поддерживают указание кодировки воспроизводимых файлов,​ однако гораздо предпочтительней обработать всю вашу медиатеку специальными программами,​ которые автоматически приведут все теги в нормальный вид, дабы в дальнейшем не было проблем. Самой популярной программой такого рода является EasyTag, она доступна в стандартных репозиториях,​ так что почти сразу после прочтения следующей статьи вы сможете ей воспользоваться. 
- 
-Что же касается форматов,​ то Ubuntu поддерживает все существующие аудио-форматы,​ однако для воспроизведения некоторых требуются дополнительные кодеки. О том, как их поставить,​ я расскажу в одной из следующих статей. 
- 
-===== В качестве заключения ===== 
- 
-В этой статье я постарался подробно рассказать об основных особенностях в работе с файлами в Ubuntu. Надеюсь,​ вы смогли разобраться что к чему и уловить основные моменты. Напоследок хочется заметить,​ что Ubuntu без какого-либо дополнительного программного обеспечения поддерживает большинство распространённых форматов файлов,​ специфические файлы же скорей всего можно как минимум сконвертировать в один из стандартных форматов с помощью различных программ,​ в изобилии доступных в репозиториях Ubuntu. 
- 
-Чуть позже я расскажу как поставить пакет полной поддержки мультимедиа форматов,​ который не входит в Ubuntu по умолчанию из-за несовершенного законодательства некоторых стран, с которым,​ к сожалению,​ приходится считаться,​ но для этого необходимо рассмотреть следующую очень важную тему: 
- 
-  * [[программы_и_обновления|Управление программами и обновлениями]]