По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Edge computing (дословно можно перевести как "граничные вычисления") - это сетевая философия, основанная на том, что вычисления должны совершаться как можно ближе к источнику сырых данных. Цель сего действа в сильном сокращении задержек и ширины канала связи. Если говорить проще, то edge computing - это когда меньше всякой всячины вычисляется к облаке или ЦОДе, и больше вычисляется непосредственно на месте - то есть на локальном ПК, IoT устройстве или на граничном сервере. Таким образом сокращается необходимость поддерживать в требуемом состоянии дорогостоящие каналы связи (представьте себе, что для вычислений отправляете очень объемную информацию - к примеру, видео высокой четкости) Что такое граница сети? Для устройств, подключенных к сети Интернет, границей будет точка, где это устройства непосредственно подключается к Интернету. Конечно, определение экстремально размытое; к примеру, компьютер пользователя или процессор внутри IoT камеры могут быть теми самыми точками, однако, сетевой маршрутизатор также вполне попадает под это определение. Но важно одно: граница будет гораздо ближе к устройству (с географической точки зрения), нежели к облачным серверам. Приведем пример edge computing-а Представим себе некое здание, в котором понаставили десятки IoT камер очень высокого разрешения. Эти камеры относительно безмозглые, т.к они просто отдают сырой видеосигнал на облако. Облако, в свою очередь, пропускает весь этот сырой видео трафик через приложение, которое умеет определять движение, чтобы хранить только максимально полезную информацию. Представьте себе требованию к Интернет-каналу в таком случае: ежесекундно передаются мегабайты информации, и к тому же получается высокая нагрузка на облачные сервера, которые занимаются вычислениями - они обязаны обрабатывать все эти огромные объемы информации. А теперь представьте себе, что сервер, определяющий движение был помещен на границу сети (той самой, в которой находится наше воображаемое здание). Что если каждая камера будет использовать свои собственные вычислительные мощности для запуска там приложения, которое будет определять движение? Очевидно, тогда в облако будет уходить только "полезный" трафик. Кроме того, на облачные сервера ляжет только задача по хранению важной информации, что де-факто означает возможность этого облака поддерживать связь с гораздо большим количеством камер без перегрузки. Вот примерно так и выглядит пример edge computing. Преимущества концепции edge computing Как видно в примере выше, данный концепт позволяет минимизировать загрузку Интернет-канала и нагрузку на вычислительные мощности облака. Полоса пропускания и вычислительные мощности, к сожалению, конечны и стоят реальных денег. С каждым зданием и офисом, которые будут оборудованы "умными" камерами, принтерами, термостатами и даже тостерами, аналитики предсказывают, что к 2025 году в мире будет установлено 75 миллиардов IoT устройств. Чтобы все эти устройства корректно работали, большой процент вычислений должен быть перенесен на edge-и. Следующее преимущество - это снижение задержки. Каждый раз, когда устройство пытается подключиться к какому-нибудь удаленному серверу, появляется задержка. Гипертрофированный пример: когда двое коллег в одном офисе чатятся в аське, они могут почувствовать сильную задержку, так как каждое сообщение "улетает" во внешний мир, подключается к некому очень удаленному серверу и также возвращается обратно в эту сеть. Если бы весь этот процесс происходил на границе сети, то эта задержка могла бы быть значительно снижена. Также, когда пользователи используют тонны веб-приложений, которые постоянно подключаются к внешним серверам, они могут чувствовать эти самые задержки. Длительность задержек будет зависеть от того, какова их полоса пропускания и где находятся сервера, но этих задержек можно легко избежать. Правильно, если воткнуть все эти сервера на границу этой сети. Если подытожить, то общие плюсы этого концепта таковы: Снижение задержек Снижение затрат путем использования более дешевых каналов связи Снижение затрат путем уменьшения нагрузки на удаленные вычислительные ресурсы Минусы данного подхода На мой взгляд, есть два основных минуса: первый - это сильное увеличение сложности устройств и повышенный риск компрометации этих устройств - по сути, даже банальный термостат становится полноценным компьютером, который, как мы все знаем, может быть легко подвергнут взлому. Кроме того, из-за увеличения сложности устройств и повышения их вычислительной мощности серьезно возрастает их стоимость. Однако очевидно, что технологии шагают семимильными шагами - компьютер 30 лет назад был в тысячи раз слабее современного смартфона, а стоили они гораздо дороже.
img
Почитать лекцию №19 про Connection-oriented protocols и Connectionless протоколы можно тут. Протоколы передачи данных часто бывают многоуровневыми, причем нижние уровни предоставляют услуги по одному переходу, средний набор уровней предоставляет услуги от конца до конца между двумя устройствами и, возможно, набор уровней предоставляет услуги от конца до конца между двумя приложениями или двумя экземплярами одного приложения. Рисунок 1 иллюстрирует это. Каждый набор протоколов показан как пара протоколов, потому что, как показано в модели рекурсивной архитектуры Интернета (RINA), рассмотренной в предыдущих лекциях, транспортные протоколы обычно входят в пары, причем каждый протокол в паре выполняет определенные функции. В этой серии лекций будут рассмотрены физические протоколы и протоколы передачи данных, как показано на рисунке 1. В частности, в этой лекции будут рассмотрены два широко используемых протокола для передачи данных "точка-точка" в сетях: Ethernet и WiFi (802.11). Ethernet Многие из ранних механизмов, разработанных для того, чтобы позволить нескольким компьютерам совместно использовать один провод, были основаны на проектах, заимствованных из более ориентированных на телефонные технологии. Как правило, они фокусировались на передаче токенов и других более детерминированных схемах для обеспечения того, чтобы два устройства не пытались использовать одну общую электрическую среду одновременно. Ethernet, изобретенный в начале 1970-х Bob Metcalf (который в то время работал в Xerox), разрешал перекрывающиеся разговоры другим способом-с помощью очень простого набора правил для предотвращения большинства перекрывающихся передач, а затем разрешал любые перекрывающиеся передачи путем обнаружения и обратного отсчета. Первоначальное внимание любого протокола, который взаимодействует с физической средой, будет сосредоточено на мультиплексировании, поскольку до решения этой первой проблемы можно решить лишь несколько других проблем. Поэтому эта лекция будет начинаться с описания мультиплексирующих компонентов Ethernet, а затем рассмотрены другие аспекты работы. Мультиплексирование Чтобы понять проблему мультиплексирования, с которой столкнулся Ethernet, когда он был впервые изобретен, рассмотрим следующую проблему: в сети с общим носителем вся общая среда представляет собой единую электрическую цепь (или провод). Когда один хост передает пакет, каждый другой хост в сети получает сигнал. Это очень похоже на беседу, проводимую на открытом воздухе- звук, передаваемый через общую среду (воздух), слышен каждому слушателю. Нет никакого физического способа ограничить набор слушателей во время процесса передачи. CSMA/CD В результате система, получившая название множественного доступа с контролем несущей и обнаружением коллизий (CSMA/CD), работает с использованием набора шагов: Хост слушает среду, чтобы увидеть, есть ли какие-либо существующие передачи; это часть процесса со стороны оператора связи. Узнав, что другой передачи нет, хост начнет сериализацию (передача битов сериями) битов кадра в сеть. Эта часть проста - просто слушать перед передачей. Конечно, передачи двух (или более) хостов могут конфликтовать, как показано на рисунке 2. На рисунке 2: В момент времени 1 (T1) A начинает передачу кадра на совместно используемый носитель. Для прохождения сигнала от одного конца провода к другому требуется некоторое время - это называется задержкой распространения. В момент времени 2 (T2) C прослушивает сигнал на проводе и, не обнаружив его, начинает передачу кадра на совместно используемый носитель. В этот момент уже произошла коллизия, поскольку оба A и C передают кадр в один и тот же момент, но ни один из них еще не обнаружил коллизию. В момент времени 3 (T3) два сигнала фактически сталкиваются в проводе, в результате чего они оба деформируются и, следовательно, не читаются. Столкновение можно обнаружить в точке А в тот момент, когда сигнал от С достигает точки А, прослушав свой собственный сигнал, передаваемый по проводу. Когда сигнал от С достигнет А, А получит искаженный сигнал, вызванный комбинацией этих двух сигналов (результат столкновения). Это часть обнаружением столкновений (участок СD) работы локальные сети CSMA/CD. Что должен сделать хост при обнаружении столкновения? В оригинальном конструкции Ethernet хост будет посылать сигнал блокировки достаточно долго, чтобы заставить любой другой хост, подключенный к проводу, обнаружить конфликт и прекратить передачу. Длина сигнала блокировки изначально была установлена таким образом, чтобы сигнал блокировки потреблял, по крайней мере, время, необходимое для передачи кадра максимального размера по проводу по всей длине провода. Почему именно столько времени? Если при определении времени передачи сигнала помехи использовался более короткий, чем максимальный кадр, то хост со старыми интерфейсами (которые не могут посылать и принимать одновременно) может фактически пропустить весь сигнал помехи при передаче одного большого кадра, что делает сигнал помехи неэффективным. Важно дать хозяевам, подключенным на самом конце проводов, достаточно времени, чтобы получить сигнал помехи, чтобы они почувствовали столкновение и предприняли следующие шаги. Как только сигнал помехи получен, каждый хост, подключенный к проводу, установит таймер обратного отсчета, так что каждый из них будет ждать некоторое случайное количество времени, прежде чем пытаться передать снова. Поскольку эти таймеры установлены на случайное число, когда два хоста с кадрами, ожидающими передачи, пытаются выполнить свою следующую передачу, столкновение не должно повториться. Если каждый хост, подключенный к одному проводу, получает один и тот же сигнал примерно в одно и то же время (учитывая задержку распространения по проводу), как любой конкретный хост может знать, должен ли он на самом деле получать определенный кадр (или, скорее, копировать информацию внутри кадра из провода в локальную память)? Это работа Media Access Control (MAC). Каждому физическому интерфейсу назначается (как минимум) один MAC-адрес. Каждый кадр Ethernet содержит MAC-адрес источника и назначения; кадр форматируется таким образом, что MAC-адрес назначения принимается раньше любых данных. После того, как весь MAC-адрес назначения получен, хост может решить, следует ли ему продолжать прием пакета или нет. Если адрес назначения совпадает с адресом интерфейса, хост продолжает копировать информацию с провода в память. Если адрес назначения не совпадает с адресом локального интерфейса, хост просто прекращает прием пакета. А как насчет дубликатов MAC-адресов? Если несколько хостов, подключенных к одному и тому же носителю, имеют один и тот же физический адрес, каждый из них будет получать и потенциально обрабатывать одни и те же кадры. Существуют способы обнаружения повторяющихся MAC-адресов, но они реализуются как часть межслойного обнаружения, а не самого Ethernet; MAC-адреса будут правильно назначены системным администратором, если они назначены вручную. MAC-адреса назначаются производителем устройства, поэтому дублирование MAC-адресов исключено, независимо от того, сколько хостов подключено друг к другу. (Поскольку MAC-адреса обычно перезаписываются на каждом маршрутизаторе, они должны быть уникальными только в сегменте или широковещательном домене. В то время как многие старые системы стремились обеспечить уникальность каждого сегмента или широковещательного домена, это обычно должно быть обеспечено с помощью ручной конфигурации, и поэтому в значительной степени было отказано в пользу попытки предоставить каждому устройству глобальный уникальный MAC-адрес, "вшитый" в чипсете Ethernet при создании.) Первое решение трудно реализовать в большинстве крупномасштабных сетей- ручная настройка MAC-адресов крайне редка в реальном мире вплоть до ее отсутствия. Второй вариант, по существу, означает, что MAC-адреса должны быть назначены отдельным устройствам, чтобы ни одно из двух устройств в мире не имело одного и того же MAC-адреса. Как такое возможно? Путем назначения MAC-адресов из центрального хранилища, управляемого через организацию стандартов. Рисунок 3 иллюстрирует это. Рис. 3 Формат адреса MAC-48/EUI-48 MAC-адрес разбит на две части: уникальный идентификатор организации (OUI) и идентификатор сетевого интерфейса. Идентификатор сетевомого интерфейса присваивается заводом-изготовителем микросхем для Ethernet. Компаниям, производящим чипсеты Ethernet, в свою очередь, присваиваются уникальный идентификатор организации Институтом инженеров электротехники и электроники (Institute of Electrical and Electronic Engineers -IEEE). До тех пор, пока организация (или производитель) назначает адреса чипсету с его OUI в первых трех октетах MAC-адреса и не назначает никаким двум устройствам один и тот же идентификатор сетевого интерфейса в последних трех октетах MAC-адреса, никакие два MAC-адреса не должны быть одинаковыми для любого набора микросхем Ethernet. Два бита в пространстве OUI выделяются, чтобы сигнализировать, был ли MAC-адрес назначен локально (что означает, что назначенный производителем MAC-адрес был переопределен конфигурацией устройства), и предназначен ли MAC-адрес в качестве одного из следующих: Unicast адрес, означает, что он описывает один интерфейс Multicast-адрес, означает, что он описывает группу получателей MAC-адрес состоит из 48 бит- при удалении двух битов пространство MAC-адресов составляет 46 бит, что означает, что оно может описывать 246-или 70,368,744,177,664- адресуемых интерфейсов. Поскольку этого (потенциально) недостаточно, чтобы учесть быстрое количество новых адресуемых устройств, таких как Bluetooth-гарнитуры и датчики, длина MAC-адреса была увеличена до 64 бит для создания MAC-адреса EUI-64, который построен таким же образом, как и более короткий 48-битный MAC-адрес. Эти адреса могут поддерживать 262-или 4,611,686,018,427,387,904-адресуемые интерфейсы. Конец эпохи CSMA / CD Модель развертывания Ethernet с разделяемой средой в значительной степени (хотя и не полностью!) заменена в большинстве сетей. Вместо общей среды большинство развертываний Ethernet теперь коммутируются, что означает, что одна электрическая цепь или один провод разбивается на несколько цепей путем подключения каждого устройства к порту на коммутаторе. Рисунок 4 демонстрирует это. На рисунке 4 каждое устройство подключено к разному набору проводов, каждый из которых оканчивается одним коммутатором. Если сетевые интерфейсы на трех хостах (A, B и C) и сетевые интерфейсы коммутатора могут отправлять или получать в любой момент времени вместо того, чтобы делать и то, и другое, A может отправлять, пока коммутатор тоже отправляет. В этом случае процесс CSMA / CD все равно должен соблюдаться для предотвращения коллизий, даже в сетях, где только два передатчика подключены к одному проводу. Такой режим работы называется полудуплексом. Однако, если наборы микросхем Ethernet могут одновременно прослушивать и передавать данные для обнаружения коллизий, эту ситуацию можно изменить. Самый простой способ справиться с этим - разместить сигналы приема и передачи на разных физических проводах в наборе проводов, используемых в кабеле Ethernet. Использование разных проводов означает, что передачи от двух подключенных систем не могут конфликтовать, поэтому набор микросхем может передавать и принимать одновременно. Чтобы включить этот режим работы, называемый полнодуплексным, витая пара Ethernet передает сигнал в одном направлении по одной паре проводов, а сигнал в противоположном направлении - по другому набору проводов. В этом случае CSMA / CD больше не нужен (коммутатор должен узнать, какое устройство (хост) подключено к каждому порту, чтобы эта схема работала). Контроль ошибок CSMA/CD предназначен для предотвращения одного вида обнаруживаемой ошибки в Ethernet: когда коллизии приводят к искажению кадра. Однако в сигнал могут входить и другие виды ошибок, как и в любой другой электрической или оптической системе. Например, в кабельной системе с витой парой, если скрученные провода слишком сильно "разматываются" при установке коннектора, один провод может передавать свой сигнал другому проводу через магнитные поля, вызывая перекрестные помехи. Когда сигнал проходит по проводу, он может достигать другого конца провода и отражаться обратно по всей длине провода. Как Ethernet контролирует эти ошибки? Оригинальный стандарт Ethernet включал в себя 32-битную циклическую проверку избыточности (Cyclic Redundancy Check-CRC) в каждом кадре, которая позволяет обнаруживать большой массив ошибок при передаче. Однако на более высоких скоростях и на оптических (а не электрических) транспортных механизмах CRC не обнаруживает достаточно ошибок, чтобы повлиять на работу протокола. Чтобы обеспечить лучший контроль ошибок, более поздние (и более быстрые) стандарты Ethernet включили более надежные механизмы контроля ошибок. Например, Gigabit Ethernet определяет схему кодирования 8B10B, предназначенную для обеспечения правильной синхронизации часов отправителя и получателя; эта схема также обнаруживает некоторые битовые ошибки. Ten-Gigabit Ethernet часто реализуется аппаратно с помощью Reed-Solomon code Error Correction (EC) и системы кодирования 16B18B, которая обеспечивает прямое исправление ошибок (FEC) и синхронизацию часов с 18% -ными издержками. Схема кодирования 8B10B пытается обеспечить наличие примерно одинакового количества битов 0 и 1 в потоке данных, что позволяет эффективно использовать лазер и обеспечивает встроенную в сигнал тактовую синхронизацию. Схема работает путем кодирования 8 бит данных (8B) в 10 передаваемых битов по проводу (10B), что означает около 25% накладных расходов на каждый передаваемый символ. Ошибки четности одного бита могут быть обнаружены и исправлены, потому что приемник знает, сколько "0" и "1" должно быть получено. Маршалинг данных Ethernet передает данные пакетами и кадрами: пакет состоит из преамбулы, кадра и любой конечной информации. Фрейм содержит заголовок, который состоит из полей фиксированной длины и переносимых данных. На рисунке 5 показан пакет Ethernet. На рисунке 5 преамбула содержит маркер начала кадра, информацию, которую приемник может использовать для синхронизации своих часов для синхронизации с входящим пакетом, и другую информацию. Адрес назначения записывается сразу после преамбулы, поэтому получатель может быстро решить, копировать этот пакет в память или нет. Адреса, тип протокола и передаваемые данные являются частью кадра. Наконец, любая информация FEC и другие трейлеры добавляются в кадр, чтобы составить последний раздел (ы) пакета. Поле type представляет особый интерес, поскольку оно предоставляет информацию для следующего уровня-протокола, предоставляющего информацию, переносимую в поле data - для идентификации протокола. Эта информация непрозрачна для Ethernet-чипсет Ethernet не знает, как интерпретировать эту информацию (только где она находится) и как ее переносить. Без этого поля не было бы последовательного способа для передачи переносимых данных в правильный протокол верхнего уровня, или, скорее, для правильного мультиплексирования нескольких протоколов верхнего уровня в кадры Ethernet, а затем правильного демультиплексирования. Управление потоком В исходной CSMA / CD реализации Ethernet сама совместно используемая среда предоставляла своего рода базовый механизм управления потоком. Предполагая, что никакие два хоста не могут передавать одновременно, и информация, передаваемая по какому-то протоколу верхнего уровня, должна быть подтверждена или отвечена, по крайней мере, время от времени, передатчик должен периодически делать перерыв, чтобы получить любое подтверждение или ответ. Иногда возникают ситуации, когда эта довольно грубая форма регулирования потока не работает- спецификация Ethernet предполагает, что некоторый протокол более высокого уровня будет контролировать поток информации, чтобы предотвратить сбои в этом случае. В коммутируемом полнодуплексном Ethernet нет CSMA/CD, так как нет общей среды. Два хоста, подключенные к паре каналов передачи, могут отправлять данные так быстро, как позволяют каналы связи. Фактически это может привести к ситуации, когда хост получает больше данных, чем может обработать. Чтобы решить эту проблему, для Ethernet был разработан фрейм паузы. Когда получатель отправляет фрейм паузы, отправитель должен прекратить отправку трафика в течение определенного периода времени. Фреймы паузы массово не применяются. Важно Многие протоколы не содержат все четыре функции, описанных как часть модели рекурсивной архитектуры Интернета (RINA): контроль ошибок, управление потоком, транспортировка и мультиплексирование. Даже среди тех протоколов, которые реализуют все четыре функции, все четыре не всегда используются. Обычно в этой ситуации разработчик протокола и/или сети передает функцию на более низкий или более высокий уровень в стеке. В некоторых случаях это работает, но вы всегда должны быть осторожны, предполагая, что это будет работать без ошибок. Например, существует разница между hop-by-hop шифрованием и end-to-end шифрованием. End-to-end передача хороша для приложений и протоколов, которые выполняют шифрование, но на самом деле не каждое приложение шифрует передаваемые данные. В этих случаях hop-by-hop шифрование может быть полезно для менее безопасных соединений, таких как беспроводные соединения.
img
Как системный администратор, вполне вероятно, что вы написали несколько сценариев Bash для автоматизации вашей работы. Например, вы можете запускать сценарии Bash для резервного копирования вашей работы или для регистрации некоторых событий, происходящих на вашем сервере. Скрипты Bash, как и скрипты, написанные на других языках программирования, могут запускаться различными способами. В этой статье мы расскажем о всех способах запуска скрипта Bash в Linux. Подготовка Прежде чем вы сможете запустить ваш скрипт, вам нужно, чтобы ваш скрипт был исполняемым. Чтобы сделать исполняемый скрипт в Linux, используйте команду chmod и присвойте файлу права execute. Вы можете использовать двоичную или символическую запись, чтобы сделать ее исполняемой. $ chmod u+x script $ chmod 744 script Если вы не являетесь владельцем файла, вам необходимо убедиться, что вы принадлежите к правильной группе или что права доступа предоставлены «другой» группе в вашей системе. В некоторых дистрибутивах ваш файл будет выделен другим цветом, когда он исполняемый. Теперь, когда ваш файл исполняемый, давайте посмотрим, как можно легко запустить скрипт Bash. Запустить Bash скрипт из пути к скрипту Чтобы запустить Bash скрипт в Linux, просто укажите полный путь к скрипту и укажите аргументы, которые могут потребоваться для запуска Bash скрипта. $ /path/to/script <arg1> <arg2> ... <argn> В качестве примера, скажем, у вас есть Bash-скрипт, расположенный в вашем домашнем каталоге. Чтобы выполнить этот скрипт, вы можете указать полный путь к скрипту, который вы хотите запустить. # Абсолютный путь $ /home/user/script # Абсолютный путь с аргументами $ /home/user/script "john" "jack" "jim" Кроме того, вы можете указать относительный путь к скрипту Bash, который вы хотите запустить. # Относительный путь $ ./script # Относительный путь с аргументами $ ./script "john" "jack" "jim" Таким образом вы узнали, как легко запустить Bash-скрипт в своей системе. Запустить Bash скрипт, используя bash Чтобы запустить скрипт Bash в вашей системе, вы должны использовать команду bash и указать имя скрипта, который вы хотите выполнить, с необязательными аргументами. $ bash <script> Кроме того, вы можете использовать sh, если в вашем дистрибутиве установлена утилита sh. В качестве примера, скажем, вы хотите запустить скрипт Bash с именем script. Чтобы выполнить его с помощью утилиты bash, вы должны выполнить следующую команду $ bash script This is the output from your script! Выполнить скрипт Bash, используя sh, zsh, dash В зависимости от вашего дистрибутива, в вашей системе могут быть установлены другие утилиты оболочки. Bash - интерпретатор оболочки, установленный по умолчанию, но вы можете захотеть выполнить ваш скрипт с использованием других интерпретаторов. Чтобы проверить, установлен ли интерпретатор оболочки в вашей системе, используйте команду which и укажите нужный интерпретатор. $ which sh /usr/bin/sh $ which dash /usr/bin/dash Когда вы определили интерпретатор оболочки, который хотите использовать, просто вызовите его, чтобы легко запустить скрипт. Запуск скрипта Bash из любого места В некоторых случаях вы можете запускать скрипты Bash, где бы вы ни находились в вашей системе. Чтобы запустить скрипт Bash из любой точки вашей системы, вам нужно добавить свой скрипт в переменную среды PATH. $ export PATH="<path_to_script>:$PATH" Благодаря тому, что путь к скрипту добавлен в PATH, вы можете вызывать его там, где хотите в своей системе. $ script This is the output from script! Кроме того, вы можете изменить переменную среды PATH в вашем файле .bashrc и использовать команду source для обновления вашей текущей среды Bash. $ sudo nano ~/.bashrc export PATH="<path_to_script>:$PATH" Выйдите из файла и используйте команду source для файла bashrc для внесения изменений. $ source ~/.bashrc $ echo $PATH /home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games Отлично! Теперь ваш скрипт может быть запущен из любой точки вашей системы. Запуск Bash скриптов из графического интерфейса Последний способ выполнения Bash скриптов - это использование графического интерфейса, в данном случае интерфейса GNOME. Чтобы запустить ваши скрипты с использованием GNOME, вы должны установить в проводнике Ask what to do для исполняемых файлов. Закройте это окно и дважды щелкните файл скрипта, который вы хотите выполнить. При двойном щелчке вам предлагаются различные варианты: вы можете выбрать запуск скрипта (в терминале или нет) или просто отобразить содержимое файла. В этом случае мы заинтересованы в запуске этого скрипта в терминале, поэтому нажмите на эту опцию. Успех! Ваш скрипт был успешно выполнен Заключение Из этого руководства вы узнали, как легко запускать Bash скрипты в своей системе, указав путь к скрипту или интерпретаторы, доступные на вашем хосте. Вы узнали, что можете сделать это еще проще, добавив путь к скрипту в переменную среды PATH или используя существующие функции в пользовательском интерфейсе GNOME.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59