Это еще одна инструкция для самых начинающих. В операционной системе довольно часто приходится редактировать файлы. Например, вам может понадобится создать какую-нибудь заметку с действиями, командами или другой информацией, но чаще всего приходится редактировать конфигурационные файлы для внесения различных настроек в систему.
Да, для многого придуман графический интерфейс, и уже почти все можно сделать в нем, но ручной способ все еще остается мощным и очень гибким путем настройки системы. В этой статье мы рассмотрим как редактировать файлы в Ubuntu. Мы будем рассматривать именно этот дистрибутив, потому что он самый популярный среди начинающих.
Новичкам намного проще редактирование файлов ubuntu в графическом интерфейсе и для этого в этой системе по умолчанию поставляется программа Gedit. Это очень простой, но достаточно функциональный текстовый редактор, который позволяет делать все что нужно.
Функция создания файлов интегрирована в Nautilus, поэтому вы можете просто выбрать пункт создать, а затем пустой файл чтобы получить новый файл в своем домашнем каталоге.
Открыть файл тоже можно с помощью проводника, текстовый редактор Gedit по умолчанию назначен для работы с текстовыми файлами, поэтому достаточно выполнить двойной клик по нужному файлу.
Также вы можете запустить Gedit через терминал. Для этого откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, и выполните:
gedit /путь/к/папке/с_файлом/файл
Но проблемы появляются, если вы попытаетесь открыть с помощью Nautilus конфигурационный файл, расположенный выше вашей домашней папки, он принадлежит пользователю root и только он может его редактировать. Поэтому открыть такой файл прямо из файлового менеджера не получится. Он откроется, но сохранить вы его не сможете.
Обычно права установлены таким образом, что открыть то вы его сможете, а вот сохранить изменения уже нет. Запустите терминал и выполните:
gksu gedit /путь/к/папке/с_файлом/файл
После этого программа запросит пароль и запустит текстовый редактор от имени администратора. Дальше вы сможете успешно выполнить редактирование файлов в Ubutnu и сохранить изменения в файле.
Есть еще одной обходной способ, вы можете, добавить пункт открыть от имени администратора в контекстное меню Nautilus. Для этого нужно выполнить несколько команд в терминале. Сначала обновите списки пакетов из репозиториев:
sudo apt update
Установите пакет nautilus-admin:
sudo apt install -y nautilus-admin
Затем выполните такую команду чтобы полностью закрыть Nautilus:
nautilus -q
Теперь загрузите Nautilus, и в меню появится пункт Редактировать как администратор:
После нажатия на этот пункт система запросит пароль и вы получите возможность работать с файлом от имени администратора. Но не все любят запускать графические программы, более опытным пользователям нравится выполнять редактирование файла в терминале Ubuntu через терминал, именно такой способ работы с файлами используется везде у нас на сайте. Дальше мы рассмотрим с помощью каких программ это можно сделать.
Редактирование файлов в Ubuntu через терминал
Очень часто среди опытных пользователей принято работать с текстовыми файлами через терминал, для этого применяются две программы. Одна из них более простая и рассчитана на новичков — nano, а вторая более сложная, но очень эффективная — vim. Для редактирования файла с помощью nano используйте соответствующую команду:
nano /путь/к/файлу/имя_файла
Если файл нужно открыть от имени администратора:
sudo nano /путь/к/файлу/имя_файла
Редактор nano очень прост, для перемещения по файлу используйте кнопки со стрелками, после того, как закончите редактировать файл ubuntu, нажмите чтобы сохранить Ctrl+O, а для выхода Ctrl+X. Еще поддерживается поиск и замена, но все на очень примитивном уровне, и этого явно недостаточно для того чтобы работать эффективно.
Другой редактор ориентирован на профессионалов — это редактор vim. Он очень гибкий, может работать в двух режимах — командном и обычном режиме набора текста. Чтобы открыть с помощью него файл выполните:
vi /путь/к/файлу/имя_файла
Или для редактирования файла с правами суперпользователя:
sudo vi /путь/к/файлу/имя_файла
В командном режиме вы можете выполнять поиск, быстро перемещаться по строкам и символам с помощью клавиш набора, а также много других действий. Мы подробно рассматривали как работать с vim в отдельной статье.
Выводы
В этой небольшой статье мы рассмотрели как редактировать файлы в терминале Ubuntu, а также как это более удобно выполнять через графический интерфейс. Это довольно простая задача, для нас — уже опытных пользователей, но для новичков она может показаться совсем непростой. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов.
Создание файлов и просмотр их в каталоге
Все примеры я буду показывать на Debian 11, так как на Ubuntu 22.04 все выполняется аналогично. Вообще в Linux работа в терминале на любых системах практически одинакова. Поэтому создание, редактирование и чтение файлов можно продемонстрировать на любой системе.
Для создания текстового файла служит команда touch:
alex@deb:~$ touch file.txt
С помощью команды ls можно посмотреть какие файлы есть в каталоге:
alex@deb:~$ ls file.txt
Для команды ls есть дополнительные опции:
- -l — показывает информацию по каждому файлу;
- -h — показывает размер файла в удобном для человека виде (байты, килобайты, мегабайты и т.д.). Эту опцию можно использовать только вместе в -l.
Опции можно писать слитно (ls -lh) или раздельно (ls -l -h). Вот пример:
alex@deb:~$ ls -lh итого 0 -rw-r--r-- 1 alex alex 0 ноя 26 16:15 file.txt
Команда touch не только создает файл, но если этот файл уже есть, то обновляет время доступа и модификации данного файла:
alex@deb:~$ touch file.txt alex@deb:~$ ls -lh итого 0 -rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt
Как вы могли заметить вначале время последнего изменения файла было 16:15, а после выполнения команды touch оно изменилось на 16:17. На самом деле команда touch не изменила файл, она лишь прикоснулась к файлу и тем самым изменила его время доступа. Кстати, с английского touch переводится как прикасаться.
Давайте теперь разберём вывод команды ls -lh:
Тип файла | Права | | Кол-во ссылок | | | Владелец | | | | Группа | | | | | Размер | | | | | | Дата и время последнего касания или изменения | | | | | | | Имя файла | | | | | | | | - rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt
Пока что вам нужно запомнить что таким образом можно посмотреть размер файла и дату его изменения, с остальным разберемся позже. И ещё запомните 2 типа файлов:
- знак тире “-“ – это обычный файл;
- символ “d” – это каталог;
- есть и другие типы файлов, но пока их рассматривать не будем.
Редактирование файлов
Отредактировать текстовый файл можно с помощью текстового редактора “nano”:
alex@deb:~$ nano file.txt
После выполнения этой команды у Вас откроется текстовый редактор:
Для того чтобы сохранить этот файл нужно нажать комбинацию клавиш “Ctrl+o“.
А чтобы закончить редактирование и закрыть этот файл нужно нажать “Ctrl+x“. При этом у вас спросят, хотите ли вы сохранить этот файл и если да, то нужно ввести “y” и нажать клавишу “Enter“. Таким образом необязательно использовать комбинацию “Ctrl+o” перед закрытием файла.
Внизу я выделил подсказки текстового редактора Nano, в подсказках символ “^” – это клавиша Ctrl.
Если с помощью nano открыть несуществующий файл, то файл будет создан как только вы его сохраните. Поэтому выполнять touch перед nano не обязательно.
Чтение файлов
Команды cat и tac
Давайте теперь научимся читать текстовые файлы. Чаще всего для этого используется команда cat:
alex@deb:~$ cat file.txt И тут мы можем вводить текст, какой только пожелаем.
У команды cat есть опция -n, которая выводит номера строк:
alex@deb:~$ cat -n file.txt 1 И тут мы можем 2 вводить текст, 3 какой только пожелаем.
Для команды cat есть команда перевёртыш, это команда tac. Она выводит текст задом наперед:
alex@deb:~$ tac file.txt какой только пожелаем. вводить текст, И тут мы можем
Команда grep
Если Вам нужно что-то найти в тексте, то для этого используйте команду grep. Например, мы ищем строку в которой встречается слово “какой”:
alex@deb:~$ grep какой file.txt какой только пожелаем.
Команда less
Если текст длинный то вместо cat лучше использовать команду less:
alex@deb:~$ less /etc/ssh/sshd_config
Используя less мы можем кнопками вверх / вниз перемещаться по тексту:
Если нажать кнопу «/», то откроется строка, куда можно ввести фразу для поиска в этом файле. Давайте, например, найдём строку со словом “Port”:
При поиске удобно использовать кнопку “n” для дальнейшего поиска введенной фразы, и комбинацию “Shift+n” для поиска в обратном направлении (к началу файла). Для выхода из программы используйте клавишу”q“.
Команды tail и head
Если Вам нужно посмотреть последние строки файла используйте команду “tail“:
alex@deb:~$ tail /etc/ssh/sshd_config # override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server
А если нужно посмотреть первые строки файла то команду “head“:
alex@deb:~$ head /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the
Эти две команды выводят 10 последних (tail) или 10 первых (head) строк файла. И у этих команд есть параметр -n, с помощью которого можно указать сколько строк выводить, например выведем по 3 строки:
alex@deb:~$ tail -n 3 /etc/ssh/sshd_config # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server alex@deb:~$ head -n 3 /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See
А ещё команда tail позволяет выводить изменяющиеся файлы, например логи. Для этого используется опция -f. Чтобы закончить наблюдение за файлом, нужно нажать комбинацию Ctrl+c.
Сводка
Имя статьи
Linux. Работа с текстовыми файлами
Описание
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов
Файлы конфигурации содержат информацию, необходимую для управления работой программы. Пользователи Linux, особенно администраторы Linux, должны знать, как редактировать файлы конфигурации для обслуживания сервера или рабочего стола Ubuntu. Файлы конфигурации в Ubuntu хранятся в подкаталогах папки /etc в виде текстовых файлов и могут быть отредактированы с помощью текстовых редакторов. Некоторые примеры конфигурационных файлов — /etc/hosts, host.conf, hosts. resolv.conf, /etc/networks, syslog.conf и т.д. в операционных системах на базе Linux.
Чтобы внести изменения в конфигурацию, необходимо открыть файл с помощью текстового редактора и отредактировать его. В этой статье я описываю несколько способов редактирования конфигурационных файлов в Ubuntu.
- Использование редактора Gedit
- Использование редактора Nano
- Использование редактора Vim
- Использование редактора Gvim
- Использование редактора Emacs
Теперь давайте рассмотрим эти текстовые редакторы. Используя эти редакторы, вы можете легко редактировать файлы в терминале.
Содержание
- Использование редактора Gedit
- Использование редактора Nano
- Использование редактора Vim
- Использование редактора Gvim
- Использование редактора Emacs
Использование редактора Gedit
Gedit — это текстовый редактор по умолчанию в среде рабочего стола Gnome. Он поддерживает вкладки, поэтому вы можете открывать различные файлы в нескольких вкладках. Это более простой и удобный текстовый редактор по сравнению с другими доступными текстовыми редакторами.
Чтобы отредактировать файл конфигурации в текстовом редакторе, запустите Terminal, нажав комбинацию клавиш Ctrl+Alt+T. Затем введите следующую команду как sudo:
sudo gedit /path/to/filename
Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите пароль sudo.
Пример: редактирование файла /etc/resolv.conf
sudo gedit /etc/resolv.conf
Он похож на редактор Блокнот в операционной системе Windows. Как только откроется окно редактора, вы можете начать набирать текст или редактировать его, не входя ни в какой режим. Как только вы закончите редактирование, нажмите Ctrl+S, чтобы сохранить файл.
Использование редактора Nano
Nano — это самый простой и самый мощный встроенный редактор во многих дистрибутивах Linux. Вам не нужно изучать редактор Nano перед его использованием, а также не нужно запоминать команды. Они отображаются внизу и могут быть вызваны клавишей Ctrl. Например, чтобы сохранить файл, нажмите Ctrl+O.
Чтобы отредактировать любой файл конфигурации, просто откройте окно терминала, нажав комбинацию клавиш Ctrl+Alt+T. Перейдите в каталог, где находится файл. Затем введите nano, за которым следует имя файла, который вы хотите отредактировать.
sudo nano /path/to/filename
Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите sudo password.
Теперь вы можете редактировать и вносить изменения в конфигурационный файл с помощью редактора nano.
После завершения редактирования нажмите Ctrl+O для сохранения и Ctrl+X для выхода из редактора.
Использование редактора Vim
Редактор Vim или Vi также поставляется предустановленным в большинстве дистрибутивов Linux. Он не имеет видимых подсказок или элементов управления, что может быть немного сложнее для новичков. Однако, как только вы освоите его, он станет более быстрым и мощным инструментом для редактирования. Используя Vim, вы можете редактировать и просматривать несколько файлов за один сеанс.
Чтобы открыть файл в редакторе Vim, откройте окно терминала, нажав комбинацию клавиш Ctrl+Alt+T. Затем введите vi как sudo, за которым следует имя файла и путь к нему, например:
sudo vi /path/to/filename
Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите sudo password.
Затем отредактируйте файл с помощью редактора Vim. Обратите внимание, что при открытии редактора вы переходите в командный режим. Вот несколько шагов для редактирования файла в редакторе Vim:
- Чтобы отредактировать файл, нажмите I на клавиатуре, чтобы войти в режим вставки, здесь вы можете редактировать так же, как в обычном редакторе.
- После завершения редактирования выйдите из этого режима, нажав Esc. Это вернет вас в обычный режим.
- Чтобы сохранить файл, введите :w в командном режиме.
- Чтобы выйти из редактора, введите :q в командном режиме.
- Чтобы совместить эти действия, введите :wq для сохранения и выхода одновременно.
Использование редактора Gvim
Gvim — это редактор Vim с графическим интерфейсом пользователя. Чтобы установить Gvim, запустите Terminal, нажав Ctrl+Alt+T. Затем введите следующую команду в Terminal, чтобы начать установку.
sudo apt-get install vim-gnome
После завершения установки вы можете открыть и отредактировать любой файл конфигурации. Введите следующую команду с правами sudo в Терминале, чтобы открыть любой файл конфигурации в Gvim:
sudo gvim /path/to/filename
Нажмите I, чтобы войти в режим вставки, в котором вы можете редактировать файл.
В редакторе Gvim вы можете выполнять различные функции с помощью панели инструментов, как в любом обычном GUI-приложении, например, сохранение файла, отмена, повтор, поиск ключевого слова и т.д.
Использование редактора Emacs
Emacs также является текстовым редактором, но он не является встроенным редактором. Вы должны вручную установить его с помощью Терминала Ubuntu. В нем очень много функций, включая встроенный веб-браузер, калькулятор, календарь, Терминал и т.д.
Чтобы установить редактор Emacs, запустите Terminal, нажав комбинацию клавиш Ctrl+Alt+T. Введите следующую команду в Терминале как sudo:
После установки вы сможете открывать и редактировать в нем любые файлы конфигурации.
Чтобы открыть файл конфигурации с помощью редактора emacs, введите emacs, затем имя файла и путь к нему в следующем синтаксисе:
sudo emacs /path/to/filename
Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите пароль sudo.
Итак, это были некоторые простые редакторы, которые вы можете использовать для простого и безопасного редактирования файлов конфигурации в вашей операционной системе
Содержание
Практически все настройки практически всех приложений в Ubuntu, включая системные компоненты, хранятся в виде обычных текстовых файлов различного формата, называемых конфигурационными файлами или просто «конфигами». Это очень удобно, поскольку позволяет просто читать и менять их не только из конкретного приложения. Нормальные программы обычно содержат встроенный редактор параметров, основные настройки системы так же можно легко изменить с помощью графических утилит, доступных из меню «Система». Однако некоторые операции требуют редактирования системных файлов конфигурации, к которым нет доступа из графического окружения.
Редактирование конфигурационных файлов
Большинство конфигурационных файлов, которые приходится редактировать вручную, к тому же доступны для изменения только пользователю с привилегиями root. Если вам неоходимо отредактировать подобный файл, то вы можете поступить несколькими способами:
-
Самый простой путь: вызвать диалог запуска программ (по умолчанию — Alt+F2) и запустить обычный текстовый редактор с правами суперпользователя командой:
gksu gedit /путь/до/файла
Пользователи Kubuntu должны подставить вместо
gedit
текстовый редактор KDEkate
. У вас попросят ввести ваш пароль и, если вы являетесь администратором компьютера, откроется для редактирования нужный файл.
-
То же самое можно сделать из терминала, запустив редактор командой
sudo gedit /путь/до/файла
В этом случае вместо графического окна с запросом пароля у вас появится запрос непосредственно в терминале.
При введении пароля в терминале на экране ничего не отображается, ни звёздочек, ни чёрточек, ни каких-либо других символов, это нормально и так и должно быть, просто вводите пароль и нажимайте Enter
-
Ну и наконец можно отредактировать текстовый файл непосредственно из терминала, не открывая графических приложений вообще. Существует масса текстовых редакторов для терминала, самыми популярными в среде линуксойдов являются
vi
иemacs
, однако ни первым, ни вторым новичку пользовать в принципе нереально, поэтому лучше всего использовать простой в освоении редакторnano
, доступный по умолчанию в любой версии Ubuntu. Для открытия текстового файла с правами суперпользователя вnano
просто наберите в терминалеsudo nano /путь/до/файла
Если для доступа к конфигурационному файлу требуются права администратора, то, скорее всего, в нём содержаться какие-то важные системные настройки. Будьте предельно внимательны при редактировании таких файлов, ошибка может привести к неработоспособности всей системы. Если всё же случилось так, что вы записали в конфиг что-то не то, то не отчаивайтесь: всегда можно загрузиться с LiveCD и исправить любой файл.
Для редактирование некоторых конфигурационных файлов права администратора не требуются и поэтому являются излишними, в этом случае достаточно просто убрать sudo
или gksu
из начала команды и всё делать так же, как уже описано.
Критические системные файлы
Существует несколько критических конфигурационных файлов, от содержимого которых зависит в системе очень многое, классическим примером является файл /etc/sudoers
. Для редактирования конкретно этого файла существует специально адаптированная версия редактора vi
, которую можно вызвать командой
sudo visudo
Будьте предельно внимательны при изменении подобных файлов, неправильная информация в /etc/sudoers
может крайне просто привести к невозможности выполнить что-либо в системе.
Пользователи Linux обычно редактируют файлы конфигурации с помощью терминальных инструментов, таких как nano и vim. Если вы хотите отредактировать файл графически — даже системный — текстовый редактор gedit сделает это безболезненно и легко.
Файлы, файлы везде
Часто повторяемая фраза относительно Linux и других операционных систем на базе Unix, таких как macOS, звучит так: «все является файлом».
Хотя это не совсем точно, текстовые файлы часто используются для системных журналов и конфигурации. Вы можете прочитать эти файлы, чтобы узнать больше о внутренней работе вашей операционной системы, и вы можете редактировать их, чтобы изменить ее поведение.
Текстовым редактором GNOME по умолчанию является gedit, поэтому вы должны найти его в любой системе с рабочим столом GNOME. Сюда входят Ubuntu, Fedora, Debian, CentOS и Red Hat. Это удобный инструмент для редактирования файлов, когда все, что вам нужно, — это редактор, достаточный для выполнения работы, без необходимости изучения некоторых мощных редакторов, таких как vim.
Чтобы запустить gedit из командной строки, введите gedit и нажмите Enter.
Скоро появится текстовый редактор gedit.
Это лаконичное и чистое окно приложения. Вы можете продолжать печатать все, над чем работаете, не отвлекаясь.
Конечно, вы также можете запустить gedit из меню приложений на рабочем столе Linux. Его часто называют «Текстовый редактор». Просто поищите в меню приложений «gedit».
Запуск gedit в качестве фоновой задачи
Окно терминала будет ждать закрытия gedit, прежде чем вернет вас в командную строку. Если вы хотите использовать окно терминала, когда gedit все еще открыт, запустите gedit с этой командой. Это откроет gedit как фоновую задачу. Вы сразу же получаете приглашение командной строки и можете продолжать использовать окно терминала, даже когда gedit запущен.
Введите gedit, пробел, амперсанд & и нажмите Enter — вот так:
gedit &
Открытие существующего файла
Чтобы открыть существующий текстовый файл, нажмите кнопку «Открыть» на панели инструментов gedit. Вы также можете нажать Ctrl + O, чтобы открыть файл.
Это открывает меню недавних файлов. Если вы хотите повторно открыть один из перечисленных файлов, щелкните имя файла. Если вы хотите открыть другой файл, нажмите кнопку «Другие документы…» в нижней части меню.
Это открывает стандартный диалог открытия файла. Вы можете использовать это, чтобы перейти к файлу, который хотите отредактировать.
Нажмите зеленую кнопку «Открыть», когда вы выделите файл, который хотите отредактировать.
Открытие файла из командной строки
Вы можете попросить gedit открыть файл сразу после его запуска, указав имя файла в командной строке. Это заставляет gedit загружать файл, чтобы он был готов к редактированию, как только появится gedit.
gedit ana.c
Функция выделения синтаксиса в gedit позволяет особенно удобно редактировать файлы исходного кода программы и сценарии оболочки.
Подсветка синтаксиса окрашивает слова в исходном файле, чтобы переменные, зарезервированные слова, комментарии, параметры и многое другое можно было легко идентифицировать.
Имя редактируемого файла отображается на панели инструментов. Если вы изменили файл, рядом с именем файла появится звездочка *.
Это позволяет узнать, что в содержимое файла были внесены изменения. Он действует как напоминание о том, что если вы хотите сохранить изменения, вам необходимо сохранить файл.
Сохранение изменений в файл
Чтобы сохранить изменения, нажмите кнопку «Сохранить» на панели инструментов. Вы также можете нажать Ctrl + S, чтобы сохранить файл.
Чтобы сохранить файл под другим именем или в другом месте, нажмите кнопку меню на панели инструментов, а затем выберите в меню «Сохранить как».
Откроется стандартный диалог сохранения файла. Вы можете перейти в каталог, в котором хотите сохранить файл, и указать имя для файла. Нажмите зеленую кнопку «Сохранить», чтобы сохранить файл.
Редактирование системных файлов
Чтобы отредактировать системный файл, вам обычно нужно использовать sudo, потому что владельцем файла, скорее всего, будет root. Чтобы быть точным, вы сможете открыть системный файл, даже если вы не используете sudo, но вы не сможете сохранить какие-либо изменения обратно в файл, если не использовали sudo.
sudo gedit /etc/samba/smb.conf
Предупреждение: не редактируйте системные файлы, если вы точно не знаете, что ваши изменения сделают с вашей системой. Если вы испортите не тот системный файл, то после перезагрузки вы можете потерять доступ к своему компьютеру.
Эта команда открывает gedit и загружает файл конфигурации samba для редактирования.
Репликация владения и разрешений на новый файл
Осторожный способ редактирования системных файлов — и, следовательно, заслуживающий похвалы способ редактирования системных файлов — это скопировать файл, а затем отредактировать его. Когда вы закончите редактировать новый файл, вы можете скопировать его обратно поверх исходного файла. Если вы напутаете редактируя скопированный файл, это не повредит. Удалите его и начните заново.
Когда вы копируете файл, владелец файла может измениться, а права доступа к файловому режиму могут быть изменены. Перед копированием новой версии поверх исходного файла необходимо убедиться, что они точно такие же в вашем новом файле, как и в исходном файле. Вот как вы можете это сделать.
Допустим, мы хотим отредактировать файл fstab.
Чтобы убедиться, что у нас есть изменение владельца файла и разрешения режима, мы создадим новый файл, а затем скопируем существующий файл поверх него. Этот шаг предназначен исключительно для демонстрационных целей, чтобы убедиться, что новый файл не имеет тех же разрешений режима и владельца, что и исходный файл. Вам не нужно этого делать, когда вы редактируете свои собственные файлы.
touch new_fstab
Мы можем использовать ls, чтобы проверить атрибуты файла и посмотреть, какие у него права доступа к файловому режиму и кто является владельцем файла.
ls -l new_fstab
Владелец файла — dave, права доступа к файловому режиму — чтение и запись для владельца файла и доступ только для чтения для группы и других пользователей.
Теперь мы скопируем файл / etc / fstab поверх только что созданного файла. Затем мы проверим атрибуты файла, чтобы увидеть, не изменились ли они.
sudo cp /etc/fstab new_fstab
ls -l new_fstab
Fstab был скопирован поверх файла new_fstab. Атрибуты файла new_fstab не изменились. Давайте проверим атрибуты исходного файла fstab.
ls -l /etc/fstab
Как мы видим, владельцем является root, а права доступа к файловому режиму разные. Разрешения группы — чтение и запись. Разрешения группы для new_fstab доступны только для чтения. Нам нужно будет исправить эти два атрибута, прежде чем мы скопируем файл обратно.
Сначала мы запустим gedit и отредактируем файл new_fstab, чтобы внести необходимые изменения.
gedit new_fstab
После того, как мы отредактировали файл и сохранили наши изменения, нам нужно вернуть права собственности на файл и права доступа к файловому режиму такими, какими они должны быть.
Мы можем сделать это с помощью параметра –reference команд chmod и chown.
Параметр –reference принимает имя файла в качестве параметра. Это заставляет chmod и chown брать из этого файла права доступа к файловому режиму и значения владения файлом и копировать их в целевой файл. Затем мы можем использовать ls для проверки правильности установки атрибутов отредактированного файла, прежде чем копировать их обратно в исходный файл.
sudo chmod --reference=/etc/fstab new_fstab
sudo chown --reference=/etc/fstab new_fstab
ls -l new_fstab
Теперь права доступа к файлам и права собственности верны. Мы можем скопировать new_fstab поверх существующего fstab, и наши изменения будут внесены.
Поскольку это изменения в файле fstab, они вступят в силу при следующей перезагрузке компьютера или сразу же, если команда монтирования была использована следующим образом:
sudo mount -a
Будьте осторожны
Мой девиз — осторожность, и я не боюсь повторять предупреждения. Если вы совершенно не уверены в том, как ваши изменения в системном файле повлияют на поведение вашего компьютера, не вносите изменений.
Когда вам действительно нужно отредактировать текстовый файл, независимо от того, является он системным файлом или нет, вы обнаружите, что gedit — это быстрый и простой редактор, который не утомляет вас слишком большим количеством параметров, но при этом имеет достаточно возможностей, чтобы вы могли работа сделана.