По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Model-View-Controller - популярный шаблон программирования, где логика приложения делится на три различных компонента. В этой статье расскажем о роли компонентов архитектуры MVC, начнем с короткой истории, а далее покажем, как её можно использовать в приложении. История паттерна Model View Controller Модель MVC была впервые представлена в 1979 году учёным Трюгве Миккьелем Хейердалом Реенскаугом. Он хотел придумать решение, как разбить сложное пользовательское приложение на более мелкие управляемые компоненты. Шаблон MVC был впервые использован в языке программирования Small Talk. Изначально шаблоне хотели назвать «Model-View-Editor», но затем оно было изменено на «Model-View-Controller». В 1980-х и начале 90-х годов шаблон MVC использовался главным образом в настольных приложениях. Но к концу 1990-х годов она стала довольно популярной в разработке веб-приложений. В современных веб-приложениях шаблон MVC является популярным архитектурным дизайном для организации кода. Ниже приведен список нескольких популярных веб-фреймворков, использующих шаблон MVC: Ruby on Rails ASP.NET MVC Laravel Angular Какие три компонента включает в себя MVC? Шаблон программирования MVC состоит их трёх следующих компонентов: Model – отвечает за логику данных, лежащую в основе приложения View – это видимая часть приложения, то с чем взаимодействует пользователь Controller – работает как мозг приложения и обеспечивает связь между моделью и видом Как шаблон MVC работает в веб-приложении? Чтобы лучше понять, как работает шаблон MVC, лучше всего показать его в демонстрационном приложении. Это приложение стека MERN (MongoDB, Express, React, Node) своего рода помощник менеджера офиса и отображает таблицу недавно нанятых тренеров средней школы. Он также показывает, какие тренеры не сдали тесты на туберкулез, не прошли вакцинацию от Covid, не заполнили резюме и не прошли проверку. Менеджер может отправлять напоминания по электронной почте тем тренерам, у которых отсутствуют документы. Компонент Model Модель отвечает за логику данных нашего приложения. Мы используем MongoDB для базы данных тренеров. Для начала определяем свойства, которые будут применены к каждому тренеру в базе данных. У каждого тренера есть свойства name, email, program, application, backgroundCheck, tbTest и covidTest. const coachSchema = new Schema({ name: { type: String, trim: true, maxLength: 32, required: true }, email: { type: String, trim: true, maxLength: 32, required: true, unique: true }, program: { type: String, trim: true, maxLength: 32, required: true }, application: { type: Boolean, required: true }, backgroundCheck: { type: Boolean, required: true }, tbTest: { type: Boolean, required: true }, covidTest: { type: Boolean, required: true } }, { timestamps: true }) type: Boolean представляет значение true или false для свойств приложения, backgroundCheck, tbTest и covidTest. Если у тренера одно из этих четырех свойств, помечены как false, это означает, что они не завершили процесс найма. Создаем семь записей для нашей базы данных тренеров, и эта информация хранится в MongoDB Atlas. Ниже приведен пример одной из записей базы данных. Компонент "контроллер"" будет взаимодействовать с базой данных и получать необходимую информацию для отправки компоненту представление. Компонент View Компонент View (вид, представление или вью) отвечает за все визуальные аспекты приложения. Для отображения данных пользователю мы использовали React. При первой загрузке приложения на экране отображается приветственное сообщение. При нажатии кнопки «View Dashboard» происходит переход к таблице тренеров и списку отсутствующих документов. Компонент Вид не взаимодействует напрямую с базой данных, поскольку это делает наш контроллер. Контроллер предоставляет эту информацию компоненту представление, чтобы ее можно было отобразить на странице. Вот как выглядит код, когда представление выполняет вызов выборки (fetch) для получения данных от контроллера: await fetch('https://mvc-project-backend.herokuapp.com/coaches') Затем мы используем метод map(), чтобы пройтись по списку тренеров и отобразить их имена, адреса электронной почты и программу в виде таблицы. coachData.map(data => ( <tr key={data._id}> <td>{data.name}</td> <td>{data.email}</td> <td>{data.program}</td> </tr> )) Для отображения раздела отсутствующих документов мы отправляем запрос к бэкнэду и получием список тренеров, которые не заполнили анкету, не сдали тесты на туберкулез, не привиты от Covid и не прошли проверки. Для отображения имен для каждой категории снова используется метод map(). Если нажать кнопку «Send reminder email», эта информация будет отправлена React-ом на бэкэнд. Контролер отвечает за отправку сообщения электронной почты и обмен информацией с компонентом представление о том, отправилось ли сообщение. На основе информации, которую он получает от контроллера, во View отображается сообщение об успехе или сообщение об отказе. Компонент Controller Контроллер взаимодействует с компонентами «Модель» и «Представление» и выполняет все логические операции для нашего приложения. Этот раздел кода был построен в Node.JS и Express. Контролер получает полный список тренеров из «Модели» и отправит эту информацию в «Представление». Контролер также отвечает за фильтрацию через «Модель» и предоставление списка тренеров, которые не сдали необходимые документы. Все эти данные отправляются в «Представление», чтобы их можно было отобразить пользователю. Что касается функциональности электронной почты, то «Контролер» перед отправкой проверяет валидность адреса электронной почты. Для отправки электронных писем использована Nodemailer: transporter.sendMail(mailOptions, (err) => { if (err) { console.log(`Applications: There was an error sending the message: ${err}`) res.json({ status: 'Email failure' }) } else { console.log(`Applications Success: Email was sent`) res.json({ status: "Email sent" }); } }) Если сообщение электронной почты успешно отправлено, пользователь получает уведомление, и сообщение электронной почты отображается в почте демонстрационной учетной записи. Если при отправке сообщения возникает ошибка, то «Контроллер» посылает эту информацию в «Вид», чтобы пользователю отобразилось уведомление об ошибке. Заключение А в заключение повторим пройденное: Model-View-Controller - популярный шаблон программирования, используемый для разделения логики приложения на три различных компонента. Хотя шаблон MVC первоначально использовался в настольных приложениях, в конце 1990-х он стал популярным в разработке веб-приложений. Модель отвечает за логику данных, лежащую в основе приложения. Представление - это то, что пользователь видит в приложении и взаимодействует с ним. Контроллер действует как мозг приложения и взаимодействует с моделью и представлением. Веб-инфраструктуры, использующие шаблон MVC - это Ruby on Rails, ASP.NET MVC, Laravel и Angular.
img
Беспроводные точки доступа могут быть настроены для работы в не инфраструктурных режимах, когда обычный BSS не может обеспечить необходимую функциональность. Далее рассмотрим наиболее распространенные топологии. Кстати, почитайте статью где мы сравниваем проводные и беспроводные сети Ретранслятор (repeater) Обычно каждая точка доступа в беспроводной сети имеет проводное соединение с DS (системой распределения) или коммутируемой инфраструктурой. Чтобы расширить зону покрытия беспроводной сети за пределы области действия обычной точки доступа (AP), можно добавить дополнительные точки доступа. Иногда бывают ситуации, когда невозможно выполнить проводное подключение к новой точке доступа, поскольку расстояние слишком велико для поддержки Ethernet-связи. В этом случае можно добавить дополнительную точку доступа, настроенную в режиме ретранслятора. Беспроводной ретранслятор принимает сигнал, ретранслирует его в новой области ячейки, окружающей ретранслятор. Размещается ретранслятор на таком расстоянии от точки доступа, чтобы он все еще находился в пределах досягаемости как точки доступа, так и удаленного клиента, как показано на рисунке 1. На рисунке показано увеличение диапазона точки доступа. Точка доступа соединена с коммутатором третьего уровня посредством кабеля. Диапазон точки доступа формирует базовый набор услуг (BSS). Клиент А подключен к точке доступа по беспроводной сети и находится в BSS. Ретранслятор помещается на удалении от точки доступа, но в пределах ее видимости так, чтобы он мог соединиться с удаленным клиентом B. Ретранслятор соединен с точкой доступа и клиентом B по беспроводной сети. Если ретранслятор имеет один передатчик и приемник, он должен работать на том же канале, что и точка доступа. Это связано с тем, что сигнал точки доступа будет принят и ретранслирован повторителем для того, чтобы быть снова принятым точкой доступа. Ретранслятор в двое уменьшает эффективную пропускную способность, потому что канал будет занят в два раза дольше, чем раньше. В качестве средства защиты некоторые ретрансляторы могут использовать два передатчика и приемника, чтобы изолировать исходные и повторные сигналы на разных каналах. Одна пара передатчика и приемника предназначена для сигналов в ячейке точки доступа, в то время как другая пара предназначена для сигналов в собственной ячейке ретранслятора. Мост рабочей группы (Workgroup) Предположим, есть устройство, которое поддерживает проводную связь Ethernet, но не может работать в беспроводной сети. Например, некоторые мобильные медицинские устройства могут быть сконструированы только с проводным подключением. Хоть при наличии проводного подключения устройства к сети Ethernet, беспроводное соединение было бы гораздо более практичным. Для подключения проводного сетевого адаптера устройства к беспроводной сети используется мост рабочей группы (WGB). Вместо того, чтобы обеспечить BSS для беспроводного обслуживания, WGB становится беспроводным клиентом BSS. Фактически WGB выступает в качестве внешнего адаптера беспроводной сети для устройства, которое не имеет такового. На рисунке 2, точка доступа обеспечивает BSS, где клиент А - это обычный беспроводной клиент, а клиент Б связан с точкой доступа через WGB. На рисунке показано подключение проводного устройства через мост рабочей группы (WGB). Точка доступа соединена с коммутатором третьего уровня через кабель. Диапазон точки доступа формирует базовый набор услуг (BSS). Клиент А подключен к точке доступа по беспроводной связи. Клиент B в пределах BSS соединен с мостом рабочей группы, через кабель. Мост рабочей группы подключен к точке доступа по "воздуху". WGB бывают двух типов: Универсальный мост рабочей группы (uWGB-Universal WORKGROUP BRIDGE): только одно проводное устройство может быть соединено с беспроводной сетью; Мост рабочей группы (WGB): проприетарный режим Cisco, который позволяет соединять несколько проводных устройств в беспроводную сеть Открытый мост Точка доступа может быть настроена в качестве моста для формирования единой беспроводной линии связи от одной локальной сети к другой на большом расстоянии. Данный тип подключения используется для связи между зданиями или между городами. Если необходимо соединить две локальные сети, то можно использовать мостовую связь "точка-точка". На каждом конце беспроводной линии связи должна одна точка доступа, настроенная в режиме моста. Специальные антенны обычно используются с мостами для фокусировки их сигналов в одном направлении к антенне точки доступа. Это позволяет максимально увеличить расстояние между звеньями, как показано на рисунке 3. На рисунке показан открытый мост "точка-точка". Два здания расположены на значительном расстоянии друг от друга. Сеть A соединена с мостом, который в свою очередь соединен с антенной на здании, через кабель. Сеть B соединена с другим мостом, который в свою очередь соединен с другой антенной в другом здании, так же через кабель. Между этими двумя зданиями настроена беспроводная связь, и сигналы фокусируются с помощью антенн. Иногда сети нескольких подразделений компании должны быть объединены. Мостовая связь "точка-множественное подключение" (point-to-multipoint) позволяет соединять головной (центральный) офис с удаленными офисами. Мост головного офиса соединен с всенаправленной антенной, так что его сигнал передается одинаково во всех направлениях. Это позволяет передавать данные в удаленные офисы одновременно. Мосты на каждом из других участков могут быть соединены с направленной антенной, смотрящей на головной офис. На рисунке показано подключение point-to-multipoint. На рисунке показан открытый мост (outdoor bridge) типа "point-to-multipoint". Показанная сеть состоит из трех зданий, расположенных линейным образом на равном расстоянии. Первый и третий корпуса содержат специальные антенны, которые фокусируют сигнал друг на друга. Второе здание в центре содержит всенаправленную антенну. Сеть А, Сеть B, Головной офис все эти сети соединены через мосты, каждая в своем здании. Ячеистая сеть Чтобы обеспечить беспроводное покрытие на очень большой площади, не всегда практично использовать провода Ethernet к каждой точке доступа, которая будет необходима. Вместо этого можно использовать несколько точек доступа, настроенных в режиме ячейки. В ячеистой топологии беспроводной трафик передается от точки доступа к точке доступа с помощью другого беспроводного канала. Точки доступа ячеистой топологии используют два радиоканала-один канал используется в одном диапазоне частот, а другой -в другом диапазоне. Каждая точка доступа ячеистой топологии обычно поддерживает BSS на одном канале, с которым могут связываться беспроводные клиенты. Затем клиентский трафик обычно соединяется через мост от точки доступа к точке доступа по другим каналам. На границе ячеистой сети обратный трафик соединяется с инфраструктурой проводной локальной сетью. На рисунке 5 показана типичная ячеистая сеть. С Cisco APs можно построить ячеистую сеть в помещении или на улице. Ячеистая сеть использует свой собственный протокол динамической маршрутизации, чтобы определить наилучший путь для обратного трафика, который будет проходить через сеть AP.
img
Если вы новичок в Linux или даже "опытный" боец - без разницы. Ниже приведены все самые важные команды, которые должен знать, каждый кто работает в этой системе. Эти команды также работают в командной строке MacOS. Основные команды терминала Linux Linux включает в себя большое количество команд, но мы выбрали 37 наиболее важных для представления здесь. Изучите эти команды, и вы почувствуете себя намного комфортнее при работе в командной строке Linux. Приведенный ниже список представлен в алфавитном порядке. Позиция команды в списке не отражает ее полезности или простоты. Подробную информацию об использовании команды можно посмотреть см. в встроенном справочнике. Команда man, - сокращение от manual, - которая запустит справочник, тоже рассматривает в нашем руководстве. 1. alias Команда alias позволяет задать собственное название команде или нескольким командам. Затем при запуске указанного имени выполняется команда или несколько команд, указанных в alias. alias cls=clear Данная команда создает псевдоним, называемый cls, который ссылается на команду clear. При вводе cls экран будет очищен так же, как если бы вы ввели clear. Указанный псевдоним экономит очень мало нажатий, но, если вы часто переходите между командной строкой Windows и Linux, вы можете ввести команду Windows cls на компьютере Linux, который не понимает данную команду. Ну что же, теперь поймет. Псевдонимы могут быть гораздо более сложными, чем этот пример. Вот псевдоним pf (для процесса поиска), который немного сложнее. Обратите внимание на использование кавычек вокруг последовательности команд. Это необходимо, если в последовательности команд есть пробелы. Этот псевдоним использует команду ps для перечисления выполняемых процессов, а затем передает их команде grep. Команда grep выполняет поиск записей среди выходных данных ps, которые соответствуют параметру командной строки $1. alias pf="ps -e | grep $1" Итак, если нужно найти PID процесса shutter или вообще проверить, запущен ли данный процесс, то можно использовать данный псевдоним как указано ниже: pf shutter Следует отметить, что псевдонимы удаляются при закрытии окна терминала, в котором они были созданы. Чтобы сохранить псевдонимы нужно добавить их в файл .bash_aliases в домашней директории. 2. cat Команда cat (сокращение от concatenate) выводит содержимое файла в окно терминала. Это намного быстрее чем открывать файл в редакторе, а также исключает случайное изменение файла. Чтобы просмотреть содержимое файла .bash_log_out, нужно запустить следующую команду находясь в домашней папке. cat .bash_logout Если длина файла превышает количество строк в окне терминала, текст будет проноситься слишком быстро для чтения. Чтобы управлять количеством выводимых строк, вывод команды cat можно передать команде less. С помощью этой команды можно прокрутить файл вперед и назад с помощью клавиш вверх и вниз, клавиш PgUp и PgDn, а также клавиш Home и End. Введите q, чтобы выйти из less. cat .bashrc | less 3. cd Команда cd меняет текущую директорию на указанную в качестве параметра. Другими словами, данная команда помогает перемещаться по файловой системе. Чтобы перейти в каталог, который находится в текущей директории, достаточно ввести команду cd и название папки, куда нужно переместиться. cd work Чтобы перейти в любой другой каталог файловой системы следует указать полный путь к нужной директории, который должен начинаться на /. cd /usr/local/bin Чтобы быстро переместиться к домашней директории используйте символ тильда "~" в качестве названия каталога. cd ~ Еще один трюк: чтобы перейти в родительскую директорию или же на каталог выше, в качестве названия каталога достаточно набрать две точки "..". cd .. Представьте, что вы находитесь в каком-то каталоге. В родительском каталоге же есть несколько других папок. Чтобы сэкономить время можно сразу набрать .. и название каталога, в который нужно перейти: cd ../games 4. chmod Команда chmod позволяет управлять правами на файлы или папки. Эти права включают в себя право на чтение, запись и запуск. Если вывести список папок и файлов командой ls с ключом -l, то можно увидеть что-то подобное: -rwxrwxrwx Первый символ это "-", и означает файл, если бы было "d" - означало бы директорию. Дальше идет строка из трех групп, каждая из которых состоит из трех букв. Слева направо: первые три означают права владельца на файл, следующие три - права группы, а последняя группа - права других. А буквы же означают: r - read (чтение), w - write (запись), x - execute (выполнение). Если вместо буквы дефис "-", то у соответствующего объектов нет права, которое заменено на "-". Другой способ задать права - это заменить буквы тремя цифрами. Левая цифра означает права владельца, средняя - группы, правая - других. А значения цифр перечислены ниже: 0: No permission - Нет прав; 1: Execute permission - право на выполнение; 2: Write permission - право на запись; 3: Write and execute permissions - право на запись и выполнение; 4: Read permission - право на чтение; 5: Read and execute permissions - право на чтение и выполнение; 6: Read and write permissions - право на чтение и запись; 7: Read, write and execute permissions - право на чтение, запись и выполнение. Рассмотрим файл example.txt. Как видим во всех трех группах указаны буквы. Это означает, что все имеют все права на этот файл. Чтобы задать пользователю все права (цифра 7), группе право на чтение и запись (цифра 6), а остальным - чтение и выполнение (цифра 5), нужно ввести следующую команду: chmod 765 example.txt 5. chown Данная команда позволяет менять владельца файла и группу, владеющую файлом. Просматривая наш файл example.txt, в описании файла можем увидеть dave dave. Первый из них указывает на имя владельца файла, который в данном случае является пользователем dave. Вторая запись показывает, что название группы владельца также дэйв. Каждый пользователь имеет группу по умолчанию, которая создается при создании пользователя. Этот пользователь является единственным членом этой группы. Это показывает, что файл не является общим для других групп пользователей. Для изменения владельца или группы файла, или обоих сразу можно использовать функцию chown. Необходимо указать имя владельца и группу, разделенные символом ":". Команду нужно запускать в привилегированном режиме, используя sudo. Чтобы сохранить в качестве владельца файла dave, а mary установить в качестве владельца группы, используйте следующую команду: sudo chown dave:mary example.txt Чтобы изменить и владельца, и группу файла, нужно выполнить следующую команду: sudo chown mary:mary example.txt 6. curl Команда curl позволяет получать информацию или файла с указанного url или адреса в интернете. Данная команда может не быть предустановлена. Чтобы установить данный пакет в системе Ubuntu и других системах семейства Debian введите команду apt-get. Для других дистрибутивов нужно использовать соответствующий менеджер пакетов. sudo apt-get install curl Предположим, что требуется скачать один файл из репозитория GitHub. Официально поддерживаемого пути для этого нет. Вы вынуждены клонировать весь репозиторий. Однако с помощью curl мы можем получить нужный файл. Эта команда извлекает файл для нас. Обратите внимание, что для сохранения файла необходимо указать его имя с помощью ключа -o (output). Если этого не сделать, содержимое файла просто отобразиться в окне терминала, но не сохранится на компьютере. curl https://raw.githubusercontent.com/torvalds/linux/master/kernel/events/core.c -o core.c Если не хотите, чтобы выводилась информация о загрузке, команду нужно запустить с ключом -s (silent). curl -s https://raw.githubusercontent.com/torvalds/linux/master/kernel/events/core.c -o core.c 7. df Команда df показывает размер, используемое и доступное место на подключенных файловых системах компьютера. Двумя наиболее полезными опциями являются опции -h (human readable) и -x (исключить). Первый параметр позволяет отображать размеры в Мб или Гб, а не в байтах. Опция исключения позволяет указать df не выводить указанные файловые системы. Например, squashfs, вымышленная файловая система, которая создается при установке приложения с помощью команды snap. df -h -x squashfs 8. diff Команда diff сравнивает содержимое двух файлов и выводит отличия между ними. Данная команда имеет много опция, позволяющих регулировать отображением согласно вашим нуждам. Ключ -y (side by side) позволяет выводить отличающиеся строки напротив друг друга. Параметр -w указывает максимальную длину строк, чтобы избежать переводы строк. Команда -suppress-common-lines предотвращает отображение совпадающих строк, позволяя сфокусировать внимание только на отличиях. diff -y -W 70 alpha1.txt alpha2.txt --suppress-common-lines 9. echo Команда echo выводит строку в окно терминала. echo A string of text С помощью этой команды можно выводить значения переменных сред, таких как $USER, $HOME, $PATH. В данных переменных храниться имя пользователя, название домашнего каталога и путь, по которому система ищет вводимые пользователем команды. echo $USER echo $HOME echo $PATH В скриптах данная команда используется для отображения хода выполнения или результата выполнения скрипта. 10. exit Команда exit инициирует выход из окна терминала, выход из скрипта или отключение SSH соединения. exit 11. find С помощью команды find можно вести поиск файлов по системе. Для этого команде нужно передать место, откуда начинать поиск и название искомого файла. В данном примере "." означает текущий каталог, а параметр -name указывает команде искать файлы, название которых соответствует шаблону. Можно также использовать маски, где * означает любой символ любое количество раз, а ? означает один любой символ. В данном примере мы будем искать файл, в название которого включено слово "*ones*". Это могут быть bones, stones, lonesome. find . -name *ones* Как мы видим, команда вывела список совпадений, среди которых также папка Ramones. Мы можем ограничить поиск только среди файлов. Для этого команде find нужно передать ключ -type со значением f, что означает файл. find . -type f -name *ones* Если нужно чтобы поиск велся независимо от регистра, то нужно передать ключ -iname. find . -iname *wild* 12. finger Команда finger предоставляет короткий дамп информации о пользователе, включая время последнего входа пользователя в систему, домашний каталог пользователя и полное имя учетной записи пользователя. 13. free Команда free предоставляет сводку использования памяти на компьютере. Это выполняется как для основной оперативной памяти (RAM), так и для swap памяти. Для обеспечения вывода данных в удобном для понимания виде используется параметр -h (человек). Без этой опции цифры представлены в байтах. free -h 14. grep Утилита grep выполняет поиск строк, соответствующих переданному шаблону. Когда мы рассматривали команду alias, мы использовали grep для поиска среди вывода другой программы - ps. Команда grep также может искать среди содержимого файлов. Здесь мы ищем слово "train" во всех текстовых файлах текущего каталога. grep train *.txt На выводе мы получим название всех файлов, содержащих слово train, а также строку, где искомое слово подсвечено. Более подробно обо всех возможностях данной утилиты можно узнать в руководстве man, а также в нашем материале про команду grep. 15. Groups Данная команда позволяет узнать членом каких групп является указанный пользователь groups dave groups mary 16. gzip Данная команда сжимает файлы. По умолчания, она удаляет исходный файл, оставляя только сжатую версию. Чтобы сохранить оба файла используйте ключ -k. gzip -k core.c 17. head Команда head выводит первые 10 строк файла. Если требуется просмотреть меньшее или большее количество строк, используйте параметр -n (number). В этом примере head запускается со значением по умолчанию. Затем мы повторяем команду, запрашивая только пять строк. head -core.c head -n 5 core.c 18. history Команда history содержит список ранее введенных в командной строке команд. Можно повторить любую команду из истории, введя восклицательный знак "!" и номер команды из списка. !188 Два восклицательных знака повторно выполнят предыдущую команду. 19. kill Команда kill позволяет завершить процесс из командной строки. Для этого необходимо указать идентификатор процесса (PID), который нужно завершить. Не рекомендуется принудительно завершать процессы. Для этого нужно иметь вескую причину. В этом примере мы сделаем вид, что программа shutter заблокирована. Чтобы узнать PID процесса shutter выполним команду: ps -e | grep shutter Получив таким образом идентификатор процесса можно перейти к завершение данного процесса. kill 1692 20. less Команда less позволяет просматривать файлы без открытия в редактора. Его быстрее запускать, а также нет возможности случайно изменить файл. С less можно прокрутить файл вперед и назад с помощью клавиш вверх и вниз, клавиш PgUp и PgDn и клавиш Home и End. Нажмите клавишу "Q", чтобы выйти из режима "less". Чтобы просмотреть файл командой less, введите следующую команду less core.c Команде less также можно передать вывод других команд. Чтобы просмотреть весь список файлов жесткого диска командой less нужно выполнить следующую команду: ls -R / | less "/" позволяет вести поиск вниз по файлу, а "?" - вверх. 21. ls Команда ls, пожалуй, самая первая команда, с которой имеют дело, начиная пользоваться системой Linux. Она показывает список файлов и папок в указанной директории. По умолчанию, данная команда выводит содержимое текущей директории. Она имеет очень много полезных опций, с которыми настоятельно рекомендует познакомиться в его руководстве. Ниже рассмотрены некоторые из них. Вывод содержимого текущей директории ls Вывод списка файлов и каталогов в текущей директории с подробной информацией. ls -l Для вывода списка в удобочитаемом варианте используется ключ -h. ls -lh Для вывода всех файлов и папок, включая скрытые используется следующая команда: ls -lha 22. man Команда man запускает руководство по конкретной команде. Так как данная команда использует команду less для вывода, то можно воспользоваться возможностями данной команды для поиска. Например, просмотрим руководство по команде chown man chown Для прокрутки используйте клавиши вверх и вниз, PgUp и PgDn. Для выходя из руководства нажмите q. 23. mkdir Данная команде позволяет создавать новый файл в системе. Команде mkdir нужно передать название нового файла. Если же файл нужно создать за пределами текущей папки, то нужно указать и путь к месту, где нужно создать её. Чтобы создать две новые папки с названиями invoices и quotes введите: mkdir invoices mkdir quotes Чтобы создать папку 2020 внутри папки invoices введите: mkdir invoices/2109 Если нужно создать папку, но нет родительской папки для неё, то можно использовать параметр -p (parents) для автоматического создания всех родительских папок. На примере ниже мы создаем папку 2020 в папке yearly, которая находится внутри папки quotes. Но директория yearly еще не создана, но мы указываем команде mkdir попутно создать все нужные папки. mkdir -p quotes/yearly/2019 24. mv Эта команда позволяет перемещать файлы и папки из каталога в каталог, также используется для переименования файлов. Для перемещения файла необходимо указать mv, текущий путь к файлу и путь к пункту назначения. В этом примере мы перемещаем файл apache.pdf из каталога "~/Document/Ukulele" и помещаем его в текущий каталог, обозначенный символом точка ".". mv ~/Documents/Ukulele/Apache.pdf Чтобы переименовать файл, "переместите" его в файл с новым именем. mv Apache.pdf The_Shadows_Apache.pdf Для перемещения файла с новым названием используйте следующую команду: mv ~/Documents/Ukulele/Apache.pdf ./The_Shadows_Apache.pdf 25. passwd Данная команда позволяет устанавливать или менять пароль пользователя. Чтобы поменять свой пароль просто введите passwd. Также можно менять пароль другого пользователя, но для этого команда должна быть запущена с повышенными правами. При этом система попросит два раза ввести новый пароль. sudo passwd mary 26. ping Эта команда, наверное, известна всем, кто пользуется компьютером. Ну почти всем. Она позволяет проверить доступность удаленного хоста, чаще всего используется для выявления неполадок в сети. Для использования этой команды достаточно передать IP адрес или название хоста. ping 192.168.4.18 В системе Linux данная команда выполняется бесконечно. Завершить выполнение команды можно комбинацией клавиш Ctrl+C. Теперь поясним вывод команды: Устройство с IP адресом 192.168.4.18 отвечает на наши запросы и посылает пакеты размером 64 байт Номера пакетов ICMP позволяет определить не потерялся ли пакет в пути TTL означает время жизни пакета. При каждом проходе через очередной маршрутизатор TTL уменьшается на одну единицу. Если TTL достигнет нуля пакет сбрасывается. Данный механизм предотвращает петли в сети. Значение time показывает время за которое запрос прошел путь от хоста инициатора до адресата и обратно. Чем меньшее значение, тем лучше. Чтобы послать конкретное число запросов используется ключ -c ping -c 5 192.168.4.18 А параметр -a позволяет услышать ответы на запросы ping. ping -a 192.168.4.18 27. ps Данная команда выводит список процессов, запущенных в системе. Если запустить её без параметров, то она отобразить процессы запущенные в данной сессии. ps Чтобы отобразить процессы, запущенные конкретным пользователем, используется ключ -u с именем пользователя в качестве значения. Список может быть длинным, поэтому целесообразно передать вывод команде less. ps -u dave | less Чтобы увидеть все процессы запустите команду с ключом -e. ps -e | less 28. pwd Данная команда выводит полный путь к текущей папке. Другими словами показывает директорию в которой находится пользователь в данное время. pwd 29. shutdown Эта команда позволяет перезагрузить машину или вовсе завершить работу системы. Если запустить команду без параметров, то она через минуту она завершить работу системы. Чтобы завершить работы системы немедленно используется параметр now shutdown now Также можно запланировать завершение работы системы и послать уведомление всем пользователям. Для планирования нужно передать команде время завершения работы. Можно указать как в минутах с текущего момента, например, +90, так и точное время. Далее идет текст уведомления для пользователей. shutdown 23:00 Shutdown tonight at 23:00, save your work and log out before then! Чтобы отменить завершение работы нужно ввести команду: shutdown -c 30. ssh Команда ssh используется для подключения к удаленной Linux машине и входа в свой аккаунт. Для подключения нужно ввести имя пользователя и IP или имя хоста. В данном примере пользователь mary выполняет вход в машину с адресом 192.168.4.23. После установки соединения система просит пользователя ввести пароль. ssh mary@192.168.4.23 Затем она выполняет команду w чтобы узнать вывести список пользователей, которые тоже работает в данной системе. Перед ее именем можно увидеть pts/1 - это означает виртуальный терминал, то есть терминал не подключенный к машине напрямую. Чтобы завершить сессию она вводит команду exit. w exit 31. sudo Команда sudo требуется при выполнении действий, требующих прав пользователя root или суперпользователя, таких как изменение пароля другого пользователя. sudo passwd mary 32. tail Команда tail выводит последние 10 строк файла. Если требуется просмотреть меньшее или большее количество строк, используется параметр -n (number). В этом примере tail запущен со значением по умолчанию. Затем мы повторяем команду, запрашивая только пять строк. tail core.c tail -n 5 core.c 33. tar С помощью команды tar можно создать архивный файл (также называемый tarball), который может содержать множество других файлов. Это значительно упрощает распространение файлов. Её также можно использовать для извлечения файлов из архива. Обычно команде tar указывается, что надо сжать файлы при архивации. Но если не требуется сжатие, архивный файл создается без сжатия. Для создания архивного файла необходимо указать утилите tar, какие файлы следует включить в архивный файл, а также название архивного файла. На примере ниже мы заархивируем все файлы, которые находятся в папке Ukulele. Для этого нужно передать команде tar опцию -c (create) и -v (verbose). Ключ verbose визуализирует процесс архивации, показывая какой файл в текущий момент архивируется. Затем передается ключ -f за которым следует название архива. В нашем случае он называется songs.tar. tar -cvf songs.tar Ukulele/ По мере их добавления файлов в архив они отображаются в окне терминала. Существует два способа сообщить tar о необходимости сжатия архивного файла. Первый - с опцией -z (gzip). Это позволяет tar использовать утилиту gzip для сжатия архива после его создания. Обычно в этом случае к названию архива добавляется еще ".gz". Это позволяет знать, какие команды нужно передать tar для правильного извлечения файлов. tar -cvzf songs.tar.gz Ukulele/ В данном случае процесс архивации занимает больше времени, так как приходится еще и сжимать файлы. Чтобы создать архив при этом сжать файлы так, чтобы итоговый объем архива был меньше используется ключ -j (bzip). tar -cvjf songs.tar.bz2 Ukulele/ Как и в случае с gzip, процесс архивации займет заметно больше времени. Если нужно заархивировать большое число файлов, целесообразно использовать либо ключ -z, либо ключ -j. Следует отметить, чтоб при первом варианте получите приемлемое сжатие с разумно скоростью, а второй вариант займет больше времени, но размер окажется намного меньше, как и видно на скриншоте ниже. Для извлечения файлов из архива команде нужно передать те же ключи, с тем лишь отличием, что вместо -c используется -x (extract). tar -xvf songs.tar Для извлечения файлов из gzip или bzip архива к параметрам добавляется ключ -z или -j соответственно. tar -xvzf songs.tar.gz tar -xvjf songs.tar.bz2 34. top Команда top в реальном времени отображение данные о состоянии системы. В верхней части экрана отображается сводка. В первой строке отображается время и продолжительность работы компьютера, количество пользователей, вошедших в систему, а также среднее значение нагрузки за последние одну, пять и пятнадцать минут. Во второй строке показано количество задач и их состояния: запущенные, остановленные, в режиме ожидания и зависшие (зомби). Зомби процессы в Linux это дочерний процесс многопоточного приложения, которое было уничтожено или неожиданно завершено, оставив после себя повисший процесс. В третьей строке отображается информация о ЦП: us - это время ЦП, затрачиваемое на выполнение процессов для пользователей в "пользовательском пространстве"; sy - это время ЦП, затрачиваемое на выполнение системных процессов "пространства ядра";; ni - это время ЦП, затраченное на выполнение процессов с заданным вручную значением; id - время простоя ЦП; wa - это время, затрачиваемое процессором на ожидание завершения операций ввода-вывода.; hi - время ЦП, потраченное на обслуживание аппаратных прерываний; si - время ЦП, потраченное на обслуживание прерываний программного обеспечения; st - потерянное из-за работы виртуальных машин ("украденное время"). В четвертой строке отображается общий объем физической памяти, а также количество свободной, используемой и буферизованной или кэшированной памяти. В пятой строке отображается общий объем файла подкачки, а также количество свободной, используемой и доступной памяти (с учетом памяти, которая, как ожидается, может быть восстановлена из кэш-памяти). Чтобы отображать информацию в более понятном для человека виде нужно нажать клавишу E. Названия же столбцов означают следующее: PID - идентификатор процесса; USER - имя пользователя запустившего процесс; PR - приоритет процесса; NI - приоритет присвоенный командой nice; VIRT - виртуальная память, которую использует процесс; RES - физическая память, занятая процессом; SHR - общий объем распределенной памяти; S - текущий статус процесса. Об этом чуть ниже; %CPU - процент используемого времени ЦП; %MEM - процент ОЗУ используемого процессом; TIME+ - продолжительность работы процесса; COMMAND - название команды запустившего процесс. Статус процесса может быть одним из следующих: D - непрерываемый сон; R - запущен; S - в режиме ожидания; T - остановлен; Z - зависшие процессы. 35. uname Данная команда предоставляет различную информацию о системе, на которой работаете. Для этого используются соответствующие ключи. -a - отображает всю информацию; -s - отображает тип ядра; -r - отображает версию ядра; -v - отображает версию системы. 36. w Данная команда показывает список пользователей, залогинившихся в в систему. 37. whoami Эта команда показывает под каким именем сейчас пользователь работает в системе. whoami Итоги Вот и весь набор базовых инструментов. Обучение Linux - это все равно, что учиться чему-либо еще. Вам понадобится какая-то практика, прежде чем привыкнуть к этим командам. Но когда уже станете на "ты" с этими утилитами, начнется путь к мастерству.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59