По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
При работе в командной строке довольно часто вам придется создавать или редактировать текстовые файлы. Два самых мощных и популярных редактора командной строки - это Vim и Emacs. У них обоих есть крутая кривая обучения, которая может быть пугающей для новых пользователей. Для тех, кому нужен простой редактор, есть nano. GNU nano - это простой в использовании текстовый редактор командной строки для операционных систем Unix и Linux. Он включает в себя все основные функции, которые вы ожидаете от обычного текстового редактора, такие как подсветка синтаксиса, несколько буферов, поиск и замена с поддержкой регулярных выражений, проверка орфографии, кодировка UTF-8 и многое другое. В этом руководстве объясняются основные принципы использования редактора nano, включая способы создания и открытия файла, редактирования файла, сохранения файла, поиска и замены текста, вырезания и вставки текста и многое другое. Установка nano Текстовый редактор Nano предустановлен на MacOS и большинстве дистрибутивов Linux. Чтобы проверить, установлен ли он в вашей системе, выполните следующие действия: nano --version Вывод будет выглядеть примерно так: GNU nano, version 2.9.3 (C) 1999-2011, 2013-2018 Free Software Foundation, Inc. (C) 2014-2018 the contributors to nano Email: nano@nano-editor.org Web: https://nano-editor.org/ Если в вашей системе не установлен nano, вы можете установить его с помощью менеджера пакетов вашего дистрибутива. Установка Nano в Ubuntu и Debian: sudo apt install nano Установка Nano в CentOS и Fedora: sudo yum install nano Открытие и создание файлов Чтобы открыть существующий файл или создать новый файл, введите nano, а затем имя файла: nano filename Откроется новое окно редактора, и вы сможете начать редактирование файла. Внизу окна находится список самых основных командных ярлыков, которые можно использовать с нано. Все команды имеют префикс ^ или M. Символ каретки (^) обозначает клавишу Ctrl. Например, команды ^ J означают одновременное нажатие клавиш Ctrl и J. Буква М обозначает клавишу Alt. Вы можете получить список всех команд, набрав Ctrl + g. Чтобы открыть файл, вы должны иметь права на чтение файла. Если вы хотите открыть файл с курсором на определенной строке и символом, используйте следующий синтаксис: nano +номер_строки,номер_символа filename Если вы не укажите номер символа то, курсор будет расположен на первом символе. Редактирование файлов В отличие от vi, nano является немодальным редактором, что означает, что вы можете начать печатать и редактировать текст сразу после открытия файла. Чтобы переместить курсор на определенную строку и номер символа, используйте команду Ctrl + _. Меню в нижней части экрана изменится. Введите число в поле «Enter line number, column number» и нажмите Enter. Поиск и замена Чтобы найти текст, нажмите Ctrl + w, введите поисковый запрос и нажмите Enter. Курсор переместится к первому совпадению. Чтобы перейти к следующему совпадению, нажмите Alt + w. Если вы хотите найти и заменить, нажмите Ctrl + . Введите условие поиска и текст, который нужно заменить. Редактор перейдет к первому совпадению и спросит вас, нужно ли его заменить. После нажатия Y или N он перейдет к следующему совпадению. Нажатие А заменит все совпадения. Копирование, вырезка и вставка Чтобы выделить текст, переместите курсор в начало текста и нажмите Alt + a. Это установит отметку выбора. Переместите курсор в конец текста, который вы хотите выделить, с помощью клавиш со стрелками. Выбранный текст будет выделен. Если вы хотите отменить выбор, нажмите Ctrl + 6. Скопируйте выделенный текст в буфер обмена с помощью команды Alt + 6. Ctrl + k обрежет выделенный текст. Если вы хотите вырезать целые строки, просто переместите курсор на линию и нажмите Ctrl + k. Вы можете вырезать несколько строк, нажав Ctrl + K несколько раз. Чтобы вставить текст, наведите курсор на то место, куда вы хотите поместить текст, и нажмите Ctrl + u. Сохранение и выход Чтобы сохранить внесенные изменения в файл, нажмите Ctrl + o. Если файл еще не существует, он будет создан после его сохранения. Для выхода из нано нажмите Ctrl + x. Если есть несохраненные изменения, вас спросят, хотите ли вы сохранить изменения. Чтобы сохранить файл, вы должны иметь права на запись в файл. Если вы создаете новый файл, вам необходимо иметь разрешение на запись в каталог, в котором он создан. Кастомизация nano Параметры, указанные в пользовательских файлах, имеют приоритет над глобальными параметрами. Полный список доступных опций для nanorc можно посмотреть тут Nano поставляется с правилами подсветки синтаксиса для большинства популярных типов файлов. В большинстве систем Linux файлы синтаксиса хранятся в каталоге /usr/share/nano и по умолчанию включены в файл конфигурации /etc/nanorc. include "/usr/share/nano/*.nanorc" Подсветка синтаксиса Самый простой вариант включить подсветку для нового типа файлов - это скопировать файл, содержащий правила подсветки синтаксиса, в каталог /usr/share/nano. Установите Nano в качестве текстового редактора по умолчанию По умолчанию в большинстве систем Linux текстовым редактором по умолчанию для таких команд, как visudo и crontab, является vi. Чтобы использовать nano в качестве текстового редактора по умолчанию, вам нужно изменить переменные окружения VISUAL и EDITOR. Пользователи Bash могут экспортировать переменные в файл ~/.bashrc: export VISUAL=nano export EDITOR="$VISUAL" Базовое использование Nano Ниже приведены основные шаги для начала работы с nano: В командной строке введите nano, а затем имя файла. Отредактируйте файл как требуется. Используйте команду Ctrl-x для сохранения и выхода из текстового редактора. Вывод В этой статье мы показали, как использовать текстовый редактор Gnu nano. Это популярный текстовый редактор среди пользователей Linux и имеет небольшую кривую обучения. Для получения дополнительной информации о Gnu Nano посетите официальную страницу документации nano.
img
CORS – это механизм браузера, который позволяет серверам указывать сторонние источники, которые имеют право запрашивать у них ресурсы. Этот механизм обеспечивает безопасность и не дает вредоносным сайтам красть данные, которые принадлежат другим источникам. CORS расшифровывается как Cross-Origin Resource Sharing, что переводится как «обмен ресурсами с запросом происхождения». В случае, когда для загрузки ресурса используется CORS, браузер отправляет предварительный HTTP-запрос  OPTIONS . Сервер должен ответить, указав все источники, с которыми он собирается взаимодействовать. Также он может определить дополнительные ограничения, например, указать HTTP-заголовки, которые могут быть отправлены.  Браузер проверяет текущий источник и исходящий запрос на соответствие спецификациям сервера. Если все проверки были пройдены успешно, то запрос одобряется. В противном случае запрос будет отклонен. Если это произойдет, вы увидите предупреждение в консоли.  Когда используется CORS Браузеры применяют CORS для запросов Ajax и Fetch. Этот механизм также используется для веб-шрифтов, текстур WebGL и отрисовки изображения холста с помощью  drawImage() . CORS также потребуется для любого правомерного запроса к стороннему источнику. CORS не применяется в том случае, если запрос рассматривается как «простой». Простой запрос должен начинаться с  GET ,  HEAD или  POST и иметь тип содержимого  text/plain ,  application/x-www-form-urlencoded или  multipart/form-data . Единственные заголовки простых запросов, которые допускаются, - это  Accept ,  Accept-Language ,  Content-Language и  Content-Type . Если запрос не соответствует всем критериям, которые мы перечислили выше, то современные браузеры запускают CORS. Важно понимать, что CORS – это технология для браузера, и вы не сможете использовать его при самостоятельной отправке запросов, например, с помощью утилиты  curl в своем терминале.  CORS не всегда отправляет предварительный запрос  OPTIONS . Предварительная проверка нужна и используется только тогда, когда запрос может вызвать «побочные эффекты» на сервере. Как правило, это относится ко всем методам запроса, кроме  GET .  Предположим, что есть запрос  POST к /api/users/create . Сервер всегда будет создавать нового пользователя, но при этом браузер может отказать в доступе к ответу на этот запрос, если для запроса был использован CORS. Есть шанс, что сервер может отклонить реальный запрос, если перед этим был отправлен запрос  OPTIONS . Это обеспечивает то, что учетная запись пользователя на самом деле не будет создаваться.  Управление CORS на стороне клиента Несмотря на то, что CORS является технологией для браузера, вы все равно не можете влиять на нее напрямую с помощью клиентского кода. Это гарантирует, что вредоносные скрипты не смогут обойти защиту CORS, чтобы загрузить данные со сторонних доменов.  CORS, как правило, незаметен, поэтому вы даже не будете знать о том, что он работает. Если в процессе CORS произойдет сбой, то ваш код JavaScript увидит обычную сетевую ошибку. Получить точную информацию о том, что пошло не так, невозможно, поскольку это может представлять риск нарушения безопасности. Все подробности записываются в консоль.  Единственный способ устранить сбои CORS – это убедиться, что ваш сервер отправляет корректные заголовки ответов. Теперь давайте посмотрим, как это делается.  Управление CORS на стороне сервера Для начала вам следует убедиться в том, что ваш сервер правильно обрабатывает запросы  OPTIONS . Возможно, вам придется создать новый маршрут обработки запросов в вашей веб-среде. В большинстве случаев вам придется принимать запросы  OPTIONS к каждой конечной точке, которая может получить CORS-запрос от браузера. Ответ не обязательно должен иметь тело, но он должен включать в себя определенные заголовки, которые сообщают браузеру, что делать дальше.  Начните с заголовка  Access-Control-Allow-Origin . Он укажет на сторонний источник, который имеет право взаимодействовать с вашей конечной точкой. Указать можно только один источник; но вы можете обрабатывать несколько источников, динамически устанавливая в качестве значения заголовка источник, из которого был отправлен запрос. Текущий источник можно найти в заголовке запроса  Origin . Access-Control-Allow-Origin принимает * в качестве специального подстановочного символа. Это позволит принимать запросы CORS из всех источников. Здесь следует быть осторожным, поскольку указание разрешенных источников обеспечивает контроль и не дает вредоносным скриптам запрашивать данные с вашего сервера.  Access-Control-Allow-Origin должен быть включен в ответ вашего сервера на реальный запрос и в ответ на запрос  OPTIONS . После того, как этот заголовок будет настроен, будет разрешен базовый обмен данными со сторонним клиентом браузера.  Указание CORS-заголовков  CORS-запросы, как правило, поддерживают только заголовки «простых» запросов, которые были перечислены выше. Если вы хотите использовать какой-то другой заголовок, например,  Authorization или настраиваемый заголовок, то вашему серверу необходимо будет явно разрешить его в ответе на предварительный запрос.  Установите заголовок  Access-Control-Allow-Headers . Его значение – это список названий заголовков через запятую, которые будут приняты с реальным запросом.  Access-Control-Allow-Headers: Authorization, X-Custom-Header Теперь браузер разрешит запросы с заголовками  Authorization или  X-Custom-Header . Браузер отправляет заголовок  Access-Control-Allow-Headers вместе с предварительным CORS-запросом. Он содержит список заголовков, которые будут отправлены с реальным запросом. Ваш серверный код может использовать эту информацию для того, чтобы понять, как нужно ответить на предварительный запрос.  Ограничение на определенные методы запроса Аналогично тому, как мы указываем заголовки запроса, так и конечные точки сервера могут определять, какие HTTP-методы из различных источников будут разрешены. Установите заголовок  Access-Control-Allow-Methods . Его значение – список названий методов через запятую.  Access-Control-Allow-Methods: GET, POST, DELETE Браузер отправляет заголовок  Access-Control-Request-Method с предварительным запросом. Таким образом сервер узнает HTTP-метод, который будет использоваться для выполнения окончательного запроса.  Cookie-файлы и учетные данные CORS-запросы, как правило, не отправляют cookie-файлы, так как в них может содержаться конфиденциальные учетные данные, которые идентифицируют отправителя. Если вам необходимо добавить cookie-файл к запросу на другой источник, то это нужно явно разрешить в клиентском коде: fetch("https://localhost/demo", {    mode: "cors",    credentials: "include" }); К тому же сервер должен установить заголовок ответа  Access-Control-Allow-Credentials: true , чтобы сообщить о том, что он соглашается на обмен cookie-файлами, которые содержат учетные данные.  Если вы используете заголовок  Access-Control-Allow-Credentials , то нельзя использовать подстановочный символ (*) в заголовке  Access-Control-Allow-Origin . Сервер должен явно указать источник для того, чтобы обезопасить конфиденциальность пользователя. Если вы будете использовать подстановочный символ, то браузер не выполнит запрос и вернет ошибку.  Предварительное кэширование Предварительные запросы  OPTIONS усиливают нагрузку на каждый запрос, который вы отправляете. При хорошем соединении задержка должна быть почти незаметной, и все же нерационально вызывать одну и ту же конечную точку раз за разом.  Вы можете указать браузеру кэшировать ответы на предварительные запросы. Для этого вам нужно установить заголовок  Access-Control-Max-Age . Значение этого заголовка – это время, выраженное в секундах. В течение этого времени браузер может хранить кэшированный ответ. Последующие запросы к той же конечной точке в течении заданного периода времени не будут сопровождаться предварительными запросами.  Заключение При первом знакомстве с технологией CORS она может сбивать с толку. Эта технология браузера, которая контролируется ответами сервера. Использование CORS неизбежно, но при этом оно может оказаться неуправляемым, если у вас нет доступа к серверному коду, с которым вы взаимодействуете.  Фактическая реализация CORS довольно проста. Убедитесь, что ваш API или CDN отправляет корректные заголовки ответов, в особенности это касается заголовка  Access-Control-Allow-Origin . Если с этим проблем нет, то у вас будет безопасная связь между источниками, которая поможет избежать вмешательства злоумышленников. 
img
В данной статье посмотрим и разберем, как создать простейшие ресурсы в облаке AWS (Amazon Web Services) с помощью замечательного инструмента IaaS, под названием Terraform. Для того, чтобы можно было повторить то, о чем пойдет речь в статье необходим действующий аккаунт AWS и рабочая машина (виртуальный сервер) с установленным Terraform, и текстовым редактором Atom + плагин для Terraform. Первоначальная настройка данных инструментов разбиралась в предыдущих статьях. Описание в статье пойдет под операционную систему CentOS. Вы можете для тренировки использовать на свой вкус любую. Для начала создадим папку под наш новый проект, можно непосредственно в домашней директории. sudo mkdir terraform Создадим первый файл нашего терраформ кода. Можно создать непосредственно в редакторе, через меню или в командной строке sudo touch myterr.tf. Принципиальной разницы, как будет создан файл нет. Если создали через командную строку открываем, как обычный файл в редакторе. Далее схема работы следующая: пишем код в файле, сохраняем, производим управляющие команды в командной строке для выполнения или проверки данного кода, уничтожения, модификации элементов или объектов в облаке. Как в начале статьи было сказано, нам необходим аккаунт AWS, чтобы терраформ взаимодействовал с облачной инфраструктурой, а более конкретно нам нужно создать пользователя и получить access key и secret key, для доступа к облаку. Это необходимо для аунтификации Terraform в AWS облаке. Заходим в AWS консоль и выбираем сервис IAM. Заходим во вкладку пользователи и создаем новую учетную запись. Вводим имя пользователя в пустое поле. Нужно поставить Programmatic Фccess. Далее нажимаем Создать пользователя и попадаем на закладку назначения прав. Тут необходимо присоеденить уже созданный по умолчанию в AWS набор прав администратора. Далее переходим к страничке назначения Tag, тут по желанию вашему, если хотите то можете добавить тэги. Нажимаем кнопку создать пользователя. Финальное окно будет выглядеть следующим образом. Получаем те данные, которые нам необходимы для Terraform. Очень важно - Secret key показывается только один раз! Теперь в принципе все готово для создания первого ресурса в AWS. Начинаем с объявления с каким облаком мы работаем. provider “aws” { } Тем самым мы обозначили с каким облачным провайдером мы будем работать. В данном коде в отличии от YAML, количество пробелов не важно. Далее прописываем access key и secret key. В каком регионе будут использоваться ресурсы. Регион мы укажем eu-central-1 – это ЦОД расположенный в Европе во Франфуркте. Старайтесь регион указывать, поближе к себе, чтобы до ресурсов была минимальная задержка прохождения пакетов. provider “aws” { access_key = “тут ключ доступа” secret key = “тут секретный ключ” region = “eu-central-1” } При нажатии Ctrl+S, мы сохраняем и видим, что плагин аккуратно выправляет для удобства написанный код. Теперь можно сделать первый ресурс. Например, инстанс в Амазон. Добавляем ниже: resource “aws_instance” “my_название” { ami = “” instance_type = “” } Для поднятия ресурса необходимо указать 2 минимальные вещи. Это ami – image id и instance_type. Теперь необходимо пойти в указанный регион, открыть EC2 и посмотреть ami интересующего инстанса. А тип возьмем t2.micro. Данный тип для новых аккаунтов на год бесплатный. Получаем код полностью готовый для развертывания первого инстанса. В принципе все готово для запуска первого инстанса. Код Terraform будет выглядеть следующим образом: provider “aws” { access_key = “тут ключ доступа” secret key = “тут секретный ключ” region = “eu-central-1” } resource “aws_instance” “TestUbuntu” { ami = “ami-0767046d1677be5a0” instance_type = “t2.micro” } Запускаем консоль и переходим в директорию, где находится у нас Terraform. Далее есть небольшой нюанс запуска, чтобы в коде не светить свои access_key и secret_key, эти данные можно убрать, экспортировав в переменные. Делается это следующим образом. С помощью команды export. export AWS_ACCESS_KEY_ID=ключ export AWS_SECRET_ACCESS_KEY=ключ И можно убирать эти 2 строчки из кода. Теперь запускаем Terraform. Первая команда, которую необходимо сделать это команда terraform init, данная команда пройдется по всем tf файлам, она увидит провайдера и скачает дополнительные файлы, необходимые для запуска в том числе и бинарники. Сам Terraform – это такая оболочка, которая подкачивает все, что ей необходимо. Следующая команда, которая понадобится это terraform plan, данная команда позволяет посмотреть, что Terraform будет делать. Т.е нечто вроде Whatif. Данная команда очень важна т.к в крупных проектах, позволяет заранее посмотреть, что будет если мы запустим файл терраформа. Вывод ее большой, кусочек представлен на картинке. Можно увидеть, что добавится. Достаточно удобно. Как мы видим, при команде на deploy, Terraform добавит в амазон 1 instance, т.е 1 виртуальную машину из указанного шаблона, указанного типа и размера. Непосредственно для deploy, необходимо ввести команду terraform apply, прочитать что Terraform будет делать и явным образом, командой yes подтвердить. После подтверждения видим следующую картину. Со стороны консоли. Со стороны амазона спустя полминуты. Как мы видим сервер создался и проходит инициализацию.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59