На прошлой неделе мы начали нашу серию практических занятий по Linux, чтобы создать структурированную серию статей, которые информируют и знакомят читателя с тем, что такое Linux, как он работает, и в то же время гарантируют, что они испачкают руки, попробовав команды терминала.
Как упоминалось в первой части серии, каждую неделю вся серия будет логическим развитием. Это означает, что эта часть будет иметь смысл только в том случае, если вы либо прошли первую часть и испробовали все команды, либо если у вас есть базовые знания о Linux и можете обойти это. Если вы не знакомы с этими концепциями, убедитесь, что вы прочтите первую часть, а затем вы можете сразу же приступить к делу.
В публикации этой недели мы будем опираться на то, что мы рассмотрели в предыдущем сообщении, и расскажем, как можно делать более сложные вещи. Если у вас возникли вопросы, например, как редактировать файлы в Linux? Как просмотреть процесс в Linux и т. Д., Этот пост ответит на эти вопросы. Так что, не теряя больше времени, перейдем сразу к командам.
Мы разделим команды на разделы, чтобы имело смысл просматривать их одну за другой.
Что вы узнаете
- Обработка файлов
- Соответствие шаблону
- Процесс: просмотр и убийство
- Редактирование текстовых файлов
Хорошо, теперь, когда у нас есть базовая структура, давайте рассмотрим их один за другим.
В предыдущем посте вы узнали, как создавать файлы в Linux и как их удалять. Давайте начнем с этого и сначала посмотрим, как просматривать содержимое файла.
кошка Команда
Чтобы просмотреть содержимое файла, мы используем команду cat. Учебное определение этой команды таково: команда -cat последовательно считывает файл и выводит результат на стандартный вывод. Проще говоря, это означает, что файл выводит содержимое файла построчно.
Давайте воспользуемся примером, чтобы увидеть, как работает команда cat, не так ли?
Вот синтаксис:
кошка FILENAME
Заменить ИМЯ ФАЙЛА с одним из ваших. Как вы можете видеть ниже, команда просто распечатала содержимое файлов ghost.txt в построчном формате:

Теперь, когда мы знаем, как просматривать содержимое файла, давайте узнаем, как на самом деле добавлять содержимое в файл прямо из терминала, без использования каких-либо редакторов (не волнуйтесь, это произойдет очень скоро).
Операторы перенаправления в Linux
Один из способов добавления (перезаписать или добавить) содержимое файла осуществляется с помощью одного из операторов перенаправления. Проще говоря, операторы перенаправления позволяют пользователям управлять вводом и выводом команды.
Вот более интересный пример того, что пролетело у вас в голове. Помните, что делала команда echo? Он распечатал строку на терминал. Строка была результатом команды echo. Используя один из операторов перенаправления, вы можете использовать этот вывод и записать его в файл.
Хватит разговоров, давайте на примере посмотрим, как работает оператор перенаправления.
Вот синтаксис оператора перенаправления:
команда redirection_operator файл
Здесь команда - это команда терминала, которая выводит строку, а файл - это фактический файл, который будет принимать этот вывод. Доступно несколько операторов перенаправления, но давайте ограничимся записью в файлы.
Для этого мы можем использовать один из двух операторов перенаправления, т. Е. > и >>
На следующем снимке экрана вы можете увидеть, как это работает. Я показал в терминале, что файл изначально пуст, с помощью команды cat, затем добавил содержимое в файл с помощью команды echo и, наконец, распечатал содержимое с помощью команды cat.
Цена на > Оператор работает в режиме перезаписи. Это означает, что если вы используете > оператор для записи содержимого в файл, его предыдущее содержимое будет перезаписано. Это показано на скриншоте ниже. Как видите, предыдущее содержимое было заменено новым.

Возникает очевидный вопрос: а что, если вы не хотите заменять существующий контент? Что ж, есть версия оператора перенаправления, которая делает именно это.
Чтобы добавить в файл, вместо использования> мы используем >>
Вот синтаксис:
команда >> имя файла
И вы можете увидеть пример использования на скриншоте ниже, к которому был добавлен контент. Довольно аккуратно, правда? Согласитесь, он не предлагает такой же гибкости, как текстовый редактор, но для небольших случаев использования он выполняет свою работу довольно хорошо.

Хорошо, идем дальше!
Теперь, когда мы знаем, как добавлять содержимое в файл и как его просматривать, как насчет того, чтобы научиться находить файлы в файловой системе?
найти команду
Для поиска файлов внутри вашей файловой системы мы используем команду find. Команда делает в основном то, что утверждает. Он находит заданное имя файла или шаблон регулярного выражения.
Базовый синтаксис для того же будет следующим:
найти выражение-имя пути
Как всегда, замените заполнители своими собственными значениями.
Цена на путь сообщает команде find, в каком каталоге искать данный файл. В имя Опция определяет шаблон, по которому нужно сопоставить поиск.
Давайте посмотрим, как работает команда find на примере использования.

Как показано ниже в образце выходных данных, команда ищет любой .exe файлы в моей файловой системе и выводит их на консоль. Теперь, когда у нас есть некоторые из более сложных команд манипуляции, давайте сделаем еще один шаг.
Теперь мы посмотрим, как мы можем искать что-то в файле.
Команда grep
grep означает Глобальное регулярное выражение и хотя мы рассмотрим это в следующей публикации, основное объяснение того, что это означает, заключается в том, что это всего лишь шаблон, который grep использует для проверки строк, чтобы найти совпадение. Не волнуйтесь, если это не имеет особого смысла. Мы подробно рассмотрим это в части 3.
Хорошо, давайте протестируем grep. Вот синтаксис нашего теста:
grep -i "строка для соответствия" filename.extension
Цена на - i option укажет grep игнорировать регистр, поэтому «HO», «ho» и «hO» будут считаться одинаковыми. Строка для сопоставления указывается в кавычках, за которыми следует имя файла.

Хорошо, давайте посмотрим, как работает команда grep в демонстрации. Как видно выше, в моем примере показано использование grep как в режиме с учетом регистра, так и в режиме без учета регистра.
Здесь стоит отметить, что существует n различных комбинаций для команды и несколько дополнительных опций. То, что я делаю здесь, дает вам общий вариант использования, который будет работать для большинства простых случаев, но если вы хотите сделать все возможное, вы определенно можете попросить человека по команде выяснить все доступные параметры для использования с команда.
Затем давайте посмотрим, как мы можем на самом деле сравнивать 2 разных файла построчно.
Команда diff
Чтобы увидеть, чем отличаются 2 файла (понятно?), Мы используем команду diff. Лучше увидеть это в действии, чтобы понять, как это работает на самом деле, так что давайте приступим.
Вот синтаксис команды diff:
diff файл1 файл2
А вот пример использования команды diff Linux:

На первый взгляд это может не иметь полного смысла, поэтому давайте разберем вывод.
Первая строка вывода diff будет содержать:
- номера строк, соответствующие первому файлу
- буква (a для добавления, c для изменения или d для удаления)
- номера строк, соответствующие второму файлу.
В нашем выводе выше «1,3c1» означает: «Строки с 1 по 3 в первом файле необходимо изменить, чтобы они соответствовали строкам 1 во втором файле». Затем он сообщает нам, что это за строки в каждом файле:
- Строки, которым предшествует <- это строки из первого файла
- Строки, которым предшествует> - это строки из второго файла.
Двигаясь дальше, мы посмотрим, как мы можем узнать о повторяющихся строках в данном файле.
команда uniq
Команда uniq используется для поиска повторяющихся строк вместе с их количеством и другими подобными деталями. Если вы его используете, он говорит, что он используется для фильтрации или сообщения о повторяющихся строках в файле. Как и почти все команды, команда uniq также имеет ряд дополнительных опций.
Но для краткости и для уверенности, что вы выучите большее количество команд вместо того, чтобы изучать слишком много об одной команде, мы просто нарисуем минимальный пример, и вы можете копнуть больше, используя команду man.
Хорошо, вот синтаксис команды uniq:
uniq -options имя_файла
Теперь давайте посмотрим на образец, чтобы узнать, как работает команда uniq в Linux.

Давайте быстро разберем образец. В -c опция указывает команде uniq распечатать считать вместе с выводом, и следующая опция - это имя файла который предоставляется uniq.
Как вы можете видеть в приведенном выше примере, он распечатал количество повторяющихся строк, которое в нашем случае было 2.
Это должно сделать это для всех команд, которые вам нужно знать, чтобы убедиться, что вы можете работать с файлами, но есть одна очень важная часть, которую мы не рассмотрели до сих пор, и она касается прав доступа.
В реальном мире вы не хотите, чтобы все ваши файлы имели глобальный доступ для чтения и записи, что означает, что любой может просто пройти и внести в файл изменения. Некоторые файлы необходимо защитить от взлома. Вот тут-то и появляется контроль доступа, и Linux и Unix на удивление хорошо справляются с этим с помощью следующей команды.
Команда chmod
Команда chmod обозначает режим изменения и в основном позволяет вам изменить способ доступа к файлу и того, кто может получить к нему доступ.
Синтаксис chmod довольно прост и выглядит так:
chmod -options permissions имя_файла
Хотя параметры и имя файла не нуждаются в уточнении, Разрешения часть действительно нуждается в некотором объяснении.
Права доступа к файлам в Linux вращаются вокруг 3 прицелы, пользователь, группа, и другие. Разрешения по очереди бывают 3-х типов читать, записывать, и выполнять. Это означает, что каждая область имеет 3 разрешения, что в сумме составляет 3 набора областей с 3 разрешениями в каждой.
Имея это в виду, вот пример использования, чтобы показать вам, как работает chmod:
chmod u = rwx, g = rx, o = r filename.txt
Ссылка на u стенды для пользователь, g для группы и o для всех пользователей., И = знак используется для назначения разрешения читать (г), писать (ш), и выполнить (х) к каждой области. Запятая разделяет каждое присвоение.

Существует сокращение для назначения разрешений, использующее восьмеричную нотацию. В восьмеричной системе счисления:
- 4 означает чтение
- 2 означает запись
- 1 означает выполнить
- 0 означает отсутствие разрешения
Итак, согласно приведенным выше обозначениям число 7 предоставит разрешение на чтение, запись и выполнение (4 + 2 + 1). Вы можете смешивать и сопоставлять их соответственно, и вот пример использования восьмеричной записи:
chmod 755 starwars.txt

В этом примере файл starwars содержит:
- права на чтение, запись и выполнение для пользователя.
- прочтите и выполните для группы.
- казнить других.
Хорошо! мы приближаемся к концу части сообщения, посвященной обработке файлов. Эта последняя команда позволит вам заархивировать файл / сжать файл. Архивирование файла может пригодиться, когда вы хотите переместить кучу файлов между системами, стараясь при этом не повредить их.
команда tar
Команда tar обозначает ленточный архив и позволяет создавать, манипулировать и извлекать заархивированные файлы.
Вот основной синтаксис команды, чтобы увидеть, как она работает:
tar -options filename1 filename1…. имя_файлаN
Давайте посмотрим на пример использования с несколькими вариантами. Настоятельно рекомендуется поэкспериментировать с образцом, а затем изучить его самостоятельно, чтобы найти более интересные варианты использования.
tar -c -f сжатый.zip ghost.txt starwars.txt

Давайте разберемся с этим. В -c и -f Команды - лишь некоторые из многих, но вот что они делают. В -c опция сообщает команде создать новый архив и -f используется, чтобы укажите имя файла для архива, который в данном случае является сжатым .zip, команда tar может создавать архивы в .zip, .tar, .rar и другие форматы, поэтому убедитесь, что вы выбрали тот, который соответствует вашим потребностям
Теперь, когда вы знаете, как сжимать файлы, давайте посмотрим, как их извлекать. Мы используем -x и -f параметры в команде tar для извлечения файла, -x опция сообщает tar извлечь файл и -f используется, чтобы укажите имя файла как показано в примере ниже:

Хорошо, мы наконец-то прошли часть публикации, посвященную обработке файлов. Ура! Вы проделали огромную работу, зайдя так далеко. Поговорим сейчас о процессах.
В терминологии Linux процесс - это программа, выполняемая в данный момент и выполняющая определенную задачу. Процессы динамичны и постоянно меняются, когда пользователь переключается между приложениями.
Цена на Документация по Linux очень подробно рассказывает о процессах, и я рекомендую вам прочитать, как только вы закончите с этим постом.
Теперь, когда мы знаем, что такое процесс, давайте посмотрим, как их рассматривать.
Команда ps
Команда ps позволяет нам увидеть, какие процессы в настоящее время выполняются на машине. Он поставляется с множеством опций, но вот минимальное использование, которое показывает все процессы, запущенные в настоящее время как root.
Синтаксис следующий
ps -опция
В нашем случае мы будем использовать -u вариант, который покажет процессы, запущенные как root.

Теперь, когда вы знаете, как просматривать процессы, как насчет того, чтобы научиться их уничтожать?
команда kill
Команда kill используется для уничтожения или завершения данного процесса без выхода из системы или перезагрузки компьютера. Стоит отметить, что команда kill на самом деле не уничтожает процесс, она только посылает сигнал процессу, и этот сигнал сообщает процессу, что нужно сделать. По умолчанию, когда сигнал не указан, сигнал 15 под названием СИГТЕРМ отправляется процессу, и если это не удается, более сильный сигнал 9 СИГКИЛЛ отправляется процессу, однако для большинства обычных случаев использования все, что вам нужно указать, чтобы убить процесс, - это PID.
Вот синтаксис команды kill:
kill [сигнал или параметры] PID
А вот демо:

Будьте очень осторожны, убивая процесс. Завершение критического для системы процесса может привести к ненормальному поведению вашего компьютера. Однако, если вам все же удается это сделать, обязательно перезагрузите систему один раз, чтобы восстановить ее нормальное выполнение.
Хорошо, теперь, когда мы рассмотрели некоторые аспекты команд терминала, давайте поговорим о простом способе внесения изменений / добавления содержимого в файл. Все мы пользуемся текстовыми редакторами, такими как Visual Studio Code или Atom, но поскольку цель этой серии - сделать так, чтобы вам было удобно и удобно работать с терминалом, почему бы не изучить базовый редактор в самом терминале?
нано команда
Nano (поверьте мне) означает Nано ГОДЭто редактор, и это бесплатный, легкий редактор с открытым исходным кодом, который позволяет редактировать файлы в терминале. Это собственный текстовый редактор, такой как среда, с обычными командами, с которыми вы знакомы.
Чтобы вызвать nano / открыть файл в nano, введите команду в следующем синтаксисе:
nano ИМЯ ФАЙЛА
Если файл существует, nano откроет его, а если нет, создаст новый файл с этим именем и откроет его. Редактор сам по себе довольно минимален и, в отличие от своего старшего (и ненавистного) брата Vim / Vi, он не сводит вас с ума от заведомо сложных команд. Для навигации по файлу вы используете обычные клавиши со стрелками. Чтобы удалить контент, вы по-прежнему используете клавишу удаления / возврата, а для обработки буфера обмена вы используете знакомые Ctrl + C, Ctrl + V и т. Д.

Редактор отображает наиболее часто используемые операции, такие как выход из редактора, в нижней половине экрана. Перед выходом с помощью Ctrl + X вам будет предложено сохранить внесенные вами изменения. Конечно, Vim существует дольше, но, по моему личному мнению, это не более чем переход в культуру хиппи. Максимум, что вы можете получить от профессии Vim, - это похвастаться, и на этом все заканчивается. Нет абсолютно никаких причин, по которым можно тратить свое драгоценное время на изучение того, как использовать Vim. При этом мы наконец-то подошли к концу части 2.
Команды Linux для промежуточных пользователей: резюме
Во второй части серии практических занятий по Linux мы построили фундамент, заложенный нами. Часть 1. Мы начали обрабатывать файлы и манипулировать ими. Мы также узнали совершенно новую концепцию, называемую процессами, и способы их уничтожения. И мы завершили эту часть обзором текстового редактора Nano. На этой неделе все. Пока мы не вернемся на следующей неделе с частью 3, убедитесь, что у вас достаточно времени, чтобы поиграть с командой, описанной в этом посте. Не будьте ошеломлены количеством команд, нужно много времени, чтобы эти вещи стали мышечной памятью. Пока это не произойдет, ваш лучший друг - практический опыт.
Манас Чаудхари
Спасибо за эту серию статей о Linux. Я прошел через это полностью и нашел это действительно полезным. Особенно видео. Иногда бывает сложно следить за статьей, поэтому я скачал видео и изучил его. Теперь я чувствую, что знаю Linux достаточно, чтобы начать что-то с ним делать. Спасибо, что эти посты мне очень помогли.