Linux

1 — intro to terminal

Опубликовано

Делаем первые шаги в файловой структуре Linux используя оболочку терминала. Научимся создавать папки и копировать информацию из файлов.


Первые шаги в командной строке

Для взаимодействия с файловой средой компьютера мы будем использовать командный интерпретатор. Открыв терминал на линуксе вы откроете оболочку shell.

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

Оглядываемся

>> Знакомимся с системой.

Для того чтобы узнать в какой операционной системе мы находимся на данный момент, введите команду.

uname

Добавив флаг -v мы получим более развёрнутую информацию о текущей системе.

uname -v
Ubuntu

Ещё одна полезная команда, которая покажет вам, какое имя ваш компьютер имеет в сети

hostname

Но зачастую удобнее работать с цифровый ip-адрестом, чтобы узнать ip вашего компьютера в локальной сети используйте флаг -i вместе с командой hostname.

hostname -i

>> Про память

Файловая система в Linux имеет иерархическую структуру и она очень удобна в использовании. Всегда присутствует основной корень системы в котором располагаются следующие папки.

ПапкаХранит
/etcлокальные настройки программ
/homeкаталог пользователя
/binбазовые утилиты
/sbinсервисные утилиты
/usrобщая часть программ
/varизменяемые файлы (логи, очереди, базы, кэши)
/devспециальные файлы устройств ввода-вывода.
/libбиблиотеки

Специальные файлы(такие как из папки /dev) делятся на два типа

  1. Блочные (файлы диска)
  2. Символьные (файлы принтера, модема)

В файловой системе Linux абсолютно всё является файлом. Модем, папка, принтер — это всё файл.
Папка — представяет из себя файл со списком файлов.

МеткаТипОписание
Обычный файлОбычный пользовательский файл, например текстовый документ или исполняемая программа
bБлочное устройствоДрайвер(управляющая программа) носителя (диск)
cСимвольное устройствоДрайвер аппаратного устройства, предназначенного для передачи данных (модем, принтер)
dКаталог
lСсылкаМягкая или жёсткая

Каждое имя файа в системе ссылается на, так называемый, inode (индекс узел), который хранит в себе метаданные о файле.

Inode — индексный дескриптор. Специальная сущность размером 64байта в которой хранится мета информация о файле, такая как..

  • Права RWX
  • Ссылки на области данных
  • Размер
  • Владелец
  • Даты модификации
    • Ctime — Изменение метаданных
    • Atime — Изменение прав доступа
    • Mtime — Изменение содержимого

Место под i-node резервируется при создании файловой системы. Для xfs иноды создаются динамически. Эволюция файловой системы.

Для того чтобы получить информацию о доступной информации на диске достаточно ввести команду.

df

К недостатку вывода такой команды можно отнести не совсем читаемые результат. Его неудобно воспринимать, поскольку на экран выводится информация не в Gb или Tb, а в блоках, на которые поделена файлновая система. Чаще всего в Linux системах размер одного блока составляет 1Kb но встречаются и блоки другого размера, например, 512b.

Чтобы получить информацию в более читабельнов виде, используйте флаг -h (human readable)

df -h

Если вы хотите посмотреть выборку по i-node, поставьте флаг -i

df -i

Вывести inode какого-нибудь файла на экран

stat Music

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

free

>> Пора в путь

Команды, которые следует изучить в первую очередь.

ls - list files
pwd - print working directory
cd - change directory

Путешествуем по папкам системы.
В текущем каталоге создем папку «users»

mkdir users

в папке «users» создать текстовый файлы user1

nano user1

Впишите туда Ron. Сохраните и закройте файл. скопировать файл user1 в user2

cp user1 user2

Изменить содержимое файла user2

cat > user2
Harry

открыть файл user1, отредактировать его и сохранить в user3. Добавьте Malfoy.

nano user1

Вывести на экран сконкатенированное значение всех трех файлов

cat file1 file2 file3

Записать результат работы команды в файл

cat file1 file2 file3 > users

Сначала отсортировать данные, а затем записать

cat file1 file2 file3 | sort > users

Когда пользователь дает оболочке команду cat | sort, то оболочка создает канал и соединяет стандартный вывод первого процесса (cat) со входом второго канала, а стандартный ввод второго процесса (sort) с выходом первого. Чтобы создать канал, применяется системный вызов pipe, возвращающий два файловых дескриптора: один для чтения, другой для записи в него. Обычно после этого делается вызов fork, и родительский процесс закрывает дескриптор для чтения, а дочерний процесс — дескриптор для записи(или наоборот), чтобы один процесс мог писать в канал, а другой — читать из него.

Добавление информации в конец файла

date >> users

при перемещении файла users на уровень выше, мы получим конфликт имён, поскольку на уровне выше находится папка users.

Переименовать файл users в data.

mv users data

переместить data на уровень выше

mv data ..

переместиться на каталог выше и распечатать текущую директорию.

cd .. ; pwd

Попробовать удалить каталог users используя команду rmdir.

После того как не получилось, воспользоваться rm

rm -r users

Будьте предельно осторожны используя подобный синтаксис, поскольку никаких предупреждений о удалении система выводить не будет, а просто удалит все файлы и вложенные каталоги.

На первых этапах лучше используйте флаги -i -r -v вместе

rm -irv users

В таком случае система будет запрашивать разрешение на удаление(флаг -i), поcле чего будет выводить в терминал каждый удаляемый файл (флаг -v).

чтобы узнать все возможные параметры команд введите

command --help
или
man command
или
info command

введите команду history и вы увидите список введённых значений. Если вы хотите выполнить команду из истории нажмите Ctrl+r и начните набирать текст.

Задача

  • Соберите информацию о той среде в которой вы находитесь(тип системы, версия ядра, имя пользователя) и запишите её в файл.

— расширение

  • Запрашивайте у пользователя информацию, например, имя, и после производить запись в файл вместе с информацией о системе. В конце файла должна стоять отметка о времени, когда была создана запись. Новая запись не должна удалять предыдущие, а должна добавляться в файл. Между записями должна быть пустая строка.

Вам также может пригодиться

Добавить комментарий

Ваш адрес email не будет опубликован.