Создание и редактирование текстовых файлов

Одним из наиболее мощных консольных текстовых редакторов в Linux является ViM (Vi iMproved – улучшенная версия редактора Vi). Для запуска редактора наберите “vim” в командной строке. Если в качестве параметра не было передано никакого имени файла, по умолчанию создается новый файл.

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

ViM может находиться в одном из двух основных режимов работы: в режиме редактирования текста и режиме ввода команд. Индикатором режима редактирования является надпись INSERT в левом нижнем углу. Данный режим является стандартным при редактировании и трудностей не вызывает. Режим ввода команд активируется нажатием клавиши Esc. Затем можно использовать основные команды управления файлом. Команда ViM обычно задается символом ‘:’, за которым следует обозначение команды и при необходимости ее параметры.

ViM насчитывает огромное количество команд, но сейчас укажем только команды выхода и сохранения файла (командам сохранения можно указывать имя файла в качестве параметра):

:q Выход из редактора, если файл не был модифицирован
:wq Выход из редактора с сохранением файла
:q! Выход из редактора без сохранения изменений
:w Сохранение изменений в файле без выхода из редактора

Компиляция и линковка программ

Предположим, вы уже написали тестовую программу при помощи редактора ViM. Процесс трансляции исходного кода в бинарный исполняемый файл состоит из двух фаз: компиляции и линковки. Обе эти операции выполняются с помощью компилятора gcc (для C++ используется компилятор g++). Пример компиляции исходного кода:

gcc –c somefile.o somefile.c

В процессе компиляции из файла somefile.c будет создан объектный код somefile.o. Если производится компиляция нескольких исходных кодов в один объектный файл, то исходные файлы перечисляются через пробел.

Теперь скомпилированные объектные коды можно транслировать в исполняемый формат при помощи gcc с ключом –o:

gcc –o somefile somefile.o

В результате получим исполняемый файл с именем somefile. Как и в предыдущем случае, можно указать список линкуемых объектных файлов.

Обратите внимание! Результирующий файл указан без расширения. В отличие от DOS/Windows, в Linux исполняемым является файл не со специфическим расширением (.exe), а с установленным соответствующим битом в правах доступа. В среде Linux-разработчиков принято, что исполняемые файлы, как правило, не имеют расширения. Это не означает, что все файлы без расширения – исполняемые. Многие конфигурационные файлы, к примеру, также не имеют расширения. Просто следует усвоить, что в Linux расширение файла не является существенным его атрибутом.

Важно отметить, что возможна также сокращенная форма трансляции:

gcc somefile.c

При этом будут выполнены фазы компиляции и линковки, и на выходе получим исполняемый файл с именем a.out. Это один из немногих случаев наличия расширения у исполняемых файлов. При кажущейся легкости и простоте использования данный способ крайне не рекомендуется. Подобный прием может быть применен на этапе первоначальной отладки приложения, однако считается дурным тоном в программировании.

Запуск исполняемых файлов

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

./somefile

Наши рекомендации