По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье обзорно рассмотрим, какие программные оболочки бывают их виды и основные консольные команды. Самых распространенных оболочек не много: The Bourne Shell - /bin/sh The Bourne again shell - /bin/bash The Korne shell - /bin/ksh The C shell - /bin/csh Tom’s C shell - /bin/tcsh Наиболее признанной и распространенной оболочкой является bash. Поэтому в дальнейшем и в данной статье мы будем рассматривать именно ее. Посмотрим несколько основных команд: cat вывод содержимого файла в консоль; cd переход в каталог; ls вывод содержимого каталога; echo вывод текста в консоль; touch - обновление времени редактирования файла, а так же данная команда позволяет нам создать новый файл; file справка по файлу; whatis справка по названию; history вывод истории команд; env вывод переменных среды; pwd текущий каталог; export задание переменной; unset - отключение переменной; Для начала можно посмотреть, какая оболочка используется в текущий момент. В большинстве случаев это будет оболочка bash, которая является самой популярной оболочкой и самой используемой. При помощи данной оболочки мы взаимодействуем с операционной системой. Это не просто командная строка, но, а также целая программируемая среда. Со своими сценариями, переменными, со своим синтаксисом, т.е все эти оболочки ведут себя по-разному. Увидеть какую оболочку использует наш конкретный дистрибутив мы можем, посмотрев файл /etc/passwd/ На картинке видно много пользователей, можно увидеть, что пользователь Jenkins использует оболочку /bin/bash/. Это нормальная ситуация для Ubuntu т. к. в данной операционной системе данная оболочка используется по умолчанию. Если нам необходимо мы можем посмотреть глобальные настройки данной оболочки, которые располагаются /etc/profile. В данном файле много настроек, но необходимо знать языки программирования для того, чтобы редактировать файл. Единственное, что интересует в рамках данной стати это PS1 строчки, которые показывают, как должна выглядеть строка-приглашение. Если мы посмотрим, строка приглашение выглядит имя пользователя, тильда, смотря где мы находимся перечисляет нам. Мы можем настроить, каждую новую строчку так, чтобы не показывал имя пользователя, показывал полный путь, относительный путь и еще много чего, хоть пусть туда время выводит. Это уже такая детальная настройка внешнего вида оболочки bash. Если мы перейдем в домашнюю директорию пользователя, то там мы можем найти файл .profile с локальными настройками командной оболочки. Файл в линуксе который начинается с точки, является скрытым. Посмотреть такие файлы можно командой ls a. Ну и посмотрим, что у данного файла есть внутри cat .profile Мы опять видим некий сценарий и ссылку на некий файл ~/.bashrc. В котором уже находятся настройки внешнего вида этой оболочки. Мы так же его можем посмотреть cat .bashrc. Здесь уже более понятные и расширенные настройки, например, сколько хранится история команд, каким шрифтом выделять что-то. Например, мы можем сделать, так чтобы оболочка выделяла путь к файлу определенным цветом, имя пользователя другим цветом и т.д. все это делается в данном файле. Синтаксис в данной статье мы не разбираем. Соответственно можно непосредственно в редакторе редактировать файл, а можно посылать команды, которые будут вносить изменения в данные файлы. Вернемся к вопросу базовых команд. Команда echo выводит информацию в консоль. Синтаксис просто набираем: echo hello и получим в консоли hello. Т.е. командная оболочка, распознает первое слова как команду, а второе как аргумент данной команды. Если нам необходимо вывести в консоль несколько слов подряд, то их необходимо взять в кавычки. Можно выполнить две команды одна за другой, например, echo hello; ls. В данном случае сначала напечатается слово hello, а затем выведется список файлов. Мы можем создать свою команду, привязать команду к какому-нибудь псевдониму внутри оболочки т.е. создать такие ссылки и привязать действующую команду с новой. И новая команда уже будет вызывать команду echo. Для примера возьмем команду storm. При попытке ввода оболочка не понимает и начинает искать команду или исполняемый пакет. Но мы можем создать такой файлик, который будет что-то делать. Есть такая команда cat, она используется для вывода текста из файла на экран. Но она может действовать и в обратную сторону с экрана текст передавать в файл, для этого необходимо изменить направление передачи, например, cat> storm. И теперь все, что мы введем будет внесено в файл storm, опять же для примера echo и случайный набор букв. Затем нажимаем ctrl+c и прерываем ввод. Если мы посмотрим, что сохранилось в файлике storm то мы увидим, все то, что ввели в консоль. Далее сделаем файл storm исполняемым chmod +x storm. Можно видеть, что теперь при просмотре списка файлов командой ls данный файл подсвечивается зеленым, согласно настройкам программной оболочки. Если мы попробуем теперь выполнить команду, которую мы придумали, то опять ничего не выйдет, потому, что у нас оболочка по-умолчанию ищет исполняемые файлы, которые мы пишем, как команды по определенному пути. А все эти пути можно посмотреть в переменных среды. Переменные среды это определённые переменные, которые могут показать определенные настройки текущей операционной системы. Мы данные настройки можем посмотреть командой env. В выводе команды мы можем найти вот такую строчку PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games Здесь указан путь, по которому будут искаться переменные. Соответственно мы так же можем увидеть и другие настройки его среды, язык, его домашнюю папку и т.д. так как у нас по указанному выше пути ищутся исполняемые файлы мы не можем взять и запустить команду не пойми откуда. Но мы можем ее запустить, используя полный путь к исполняемому файлу. Чтобы посмотреть, где мы находимся, можно воспользоваться командой pwd, она покажет путь. В моем случае /root. У нас получится /root/storm Запустился. Следовательно, команда вывела тот текст, который мы изначально туда поместили. Вот это у нас получается полный путь к файлу /root/storm. Введем еще раз команду ls a. Мы видим скрытые файлы начинающиеся с "." , а так же еще два символа "." и ".." . Первый символ точки - это просто текущая папка. Т.е. если сделать cd . , то мы останемся в текущей директории. А если cd .. то это означает подняться на уровень выше по иерархии каталогов в файловой системе. Можно обнаружить, что при нахождении в домашней папке /root, под пользователем root, мы видим значок домашней папке ~. Это происходит потому, что в переменных для данного пользователя данная папка прописана, как домашняя. Теперь с учетом выше сказанного можно запустить нашу команду более кратко ./storm Это называется путь из текущей папки, где "." указывает на текущую папку. Таким образом мы можем запускать файлы. Еще раз вернемся к переменным среды. Например, мы можем добавить переменную ABC = 123, т.е. мы задали символьной последовательности ABC значение 123. Пока это не переменная, мы просто задали слову число. Чтобы это превратить в переменную есть команда export. Воспользуемся export ABC. И мы видим, что наша переменная добавилась. Теперь можно с данной переменной работать, например, можно ее указывать в качестве аргумента какой-либо команды. Например, echo $ABC, здесь "$" указывает, что мы обращаемся к переменной. В результате появится на экране 123. Мы можем отменить данную переменную, командой unset ABC. Снова смотрим перечень переменных env и видим, что переменная ABC исчезла. Можем поработать с другой переменной среды PATH. Например написать "PATH=$PATH:." , т.е. к текущему значению $PATH мы через двоеточие, как это показано в выводе команды env добавляем текущую папку в виде точки. Это означает, что у меня теперь будут запускаться файлы из той директории, которая обозначена точкой. Директорию, в которой находимся можно посмотреть pwd. Групповые символы: Создадим несколько файлов с помощью команды touch. Если мы хотим вывести файлы, которые заканчиваются на txt, мы вводим ls *.txt. Т.е. значок звездочки заменяет любое количество символов. Возможен, например, еще такой вариант команды, мы получим аналогичный результат ls *.t* Есть значок вопросительного знака, который заменяет только один символ. Работает по аналогии выше. Можно запросить информацию о диапазоне. Например, ls [1-4].txt, результатом вывода данной команды будет 4 файла. Все эти символы можно комбинировать. Мы можем создать некую последовательность. Например, touch {6,7,8}.txt соответственно созданы 3 файла, 6.txt, 7.txt, 8.txt. Символов достаточно много, но вот эти самые основные. Справочные команды Команда uname показывает какая операционная система. Ну я думаю и так, всем понятно, что Linux. Если ввести с ключиком a, то мы получим более информативный вариант Linux jenkins 5.4.0-45-generic #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux. Плюс дополнительные параметры, версия, издание и другое. Команда File на примере нашего файла storm. Мы можем увидеть, что данный файл - это обычный текст. Есть еще справочная похожая команда whatis запрос. Команда history - показывает историю ввода команд. Чтобы повторить, какую-нибудь команду можно двигать стрелочкой вверх на клавиатуре, а также можно перебирать стрелочкой вниз. Когда мы используем данный функционал, мы как раз двигаемся по истории команд. Еще полезный функционал, если написать пару символов и нажать дважды кнопку табуляции, то операционная система постарается дописать команду или файл, или выдаст возможные варианты, если вариантов нет просто допишется название файла или команды. И самая, пожалуй, важная команда это команда man, она позволяет открывать мануалы по той или иной команде.
img
Что такое DOM? DOM (Document Object Model) – это объектная модель документа. Это интерфейс между JavaScript и веб-браузером.  С помощью DOM вы можете написать код JavaScript для создания, изменения или удаления элементов HTML, установки стилей, классов и атрибутов, а также для принятия событий и реагирования на них. Дерево DOM формируется из HTML-документа, и с ним уже можно будет взаимодействовать. DOM – это очень сложный API, у которого есть методы и свойства для взаимодействия с деревом DOM. Как работает DOM – за кадром DOM продуманно организован. Родительский элемент называется EventTarget. Приведенная ниже диаграмма поможет вам лучше понять, как это работает: EventTarget – это интерфейс, реализуемый объектами, которые могут принимать события и у которых могут быть обработчики этих событий. Иными словами, любой источник событий реализует три метода, которые связаны с этим интерфейсом. Самыми распространенными генераторами событий являются Element и его дочерние элементы, Document и Window. Другие объекты также могут выступать в качестве источников событий.  Объект Window - это окно браузера. Все глобальные объекты, функции и переменные JavaScript автоматически становятся частью объекта Window. Глобальные переменные – это свойства Window. Глобальные функции – это методы Window. И даже Document (DOM HTML) является свойством Window. window.document.getElementById("header"); // Both are same document.getElementById("header"); В модели дом DOM есть узлы., и все части документа, такие как элементы, атрибуты, текст и т.д., организованы в виде иерархической древовидной структуры, которая состоит из родителей и потомков. Все эти части документа называются узлами (Node). Node на приведенной выше диаграмме представлен как объект JavaScript. В основном мы работаем с document, у которого есть такие распространенные методы, как document.queryselector(), document.getElementBy Id() и т.д. Теперь давайте посмотрим на document.  Как выбирать, создавать и удалять элементы с помощью DOM С помощью DOM мы можем выбирать, удалять и создавать элементы в JavaScript. Как выбирать элементы  Существует несколько способов выбрать HTML-элементы (HTML Elements) в JavaScript. Здесь мы рассмотрим следующие методы:  document.getElementById(); document.getElementByClassName(); document.getElementByTagName(); document.querySelector(); document.querySelectorAll(); Как использовать метод document.getElementById() Метод getElementById() возвращает элемент, идентификатор которого соответствует переданной строке. Идентификаторы элементов HTML должны быть уникальными, поэтому это самый быстрый способ выбрать элемент с идентификатором.  Пример: const ele = document.getElementById("IDName"); console.log(ele); // This will log the whole HTML element Как использовать метод document.getElementByClassName() Метод document.getElementByClassName() возвращает HTMLCollection элементов, которые соответствуют имени переданного класса. Можно искать сразу несколько имен классов, передав их через пробел. Тогда этот метод вернет «живую» HTMLCollection. Что такое «живая» HTMLCollection? Это означает, что как только мы получим HTMLCollection для какого-то имени класса, и если мы добавим элемент с тем же именем класса, то HTMLCollection автоматически обновится.  Пример: const ele = document.getElementByClassName("ClassName"); console.log(ele); // Logs Live HTMLCollection Как использовать метод document.getElementByTagName() Метод document.getElementByTagName() возвращает HTMLCollection элементов, которые соответствуют переданному имени тега. Его можно вызывать для любого элемента HTML. Метод вернет «живую» HTMLCollection. Пример: const paragraph = document.getElementByTagName("p"); const heading = document.getElementByTagName("h1"); console.log(paragraph); // p element HTMLCollection console.log(heading); // h1 element HTMLCollection   Как использовать метод document.querySelector() Метод document.querySelector() возвращает первый элемент, который соответствует переданному селектору. Здесь мы можем передать имя класса, идентификатор и имя тега. Давайте посмотрим на пример ниже: const id = document.querySelector("#idname"); // using id const classname = document.querySelector(".classname"); // using class const tag = document.querySelector("p"); // using tagname Правила выбора: если вы выбираете по имени класса, то используйте (.) в начале. Например, (“.classname”). если вы выбираете по идентификатору, то используйте (#) в начале. Например, (“#id”). если вы выбираете по имени тега, то просто введите тег. Например,  (“p”).  Как использовать метод document.querySelectorAll() Метод document.querySelectorAll() - это расширение метода querySelector. Этот метод возвращает все элементы, которые соответсвуют переданному селектору. Он возвращает «неживую» коллекцию Nodelist.  Пример: const ele = document.querySelectorAll("p"); console.log(ele); // return nodelist collection of p tag   ПРИМЕЧАНИЕ : HTMLCollection – это «живая» коллекция, а коллекция Nodelist – статическая.    Как создавать элементы Вы можете создавать HTML-элементы в JavaScript и динамически добавлять их в HTML. Вы можете создать любой элемент HTML с помощью метода document.createElement(), просто передав имя тега в скобках.    После того, как элемент будет создан, вы сможете добавить к нему имя класса, атрибуты и текст.    Вот пример: const ele = document.createElement("a"); ele.innerText = "Click Me"; ele.classList.add("text-left"); ele.setAttribute("href", "www.google.com"); // update to existing element in HTML document.querySelector(".links").prepend(ele); document.querySelector(".links").append(ele); document.querySelector(".links").befor(ele); document.querySelector(".links").after(ele); // Simalar to below anchor tag // Click Me   В приведенном выше примере мы создали тег привязки (anchor) в JavaScript и добавили атрибуты и имя класса к этому тегу. Там же у нас есть четыре метода для того, чтобы обновить созданный элемент в HTML. prepend(): вставляет данные поверх своего первого дочернего элемента. append(): вставляем данные или содержимое внутрь элемента по последнему индексу. before(): вставляет данные перед выбранным элементом. after(): помещает элемент после указанного элемента. Или можно сказать, что он вставляет данные за пределами элемента (делая это содержимое элементом того же уровня) в набор подходящих элементов. Как удалять элементы Мы знаем, как создавать элементы на JavaScript и помещать их в HTML. Но, что если нам нужно удалить элементы в HTML? Это довольно просто! Нам достаточно воспользоваться методом remove() для нужного элемента.  Вот пример: const ele = document.querySelector("p"); // This will remove ele when clicked on ele.addEventListner('click', function(){ ele.remove(); })   Как управлять CSS из JavaScript Мы знаем, как управлять HTML из JavaScript. А теперь мы узнаем, как управлять CSS из JavaScript. Это может помочь вам динамически менять стиль ваших веб-страниц.  Например, если вы нажимаете на элемент, то его фоновый цвет должен поменяться. Это реально сделать, управляя CSS из JavaScript.    Вот пример синтаксиса: const ele = document.querySelector("desired element"); ele.style.propertyName = value; // E.g - ele.style.color = red;   Когда вы меняете свойства CSS с помощью JavaScript, помните, что всякий раз, когда в CSS печатается «-», в JavaScript там будет стоять заглавная буква. Например, в CSS вы бы написали background-color, а в JavaScript – backgroundColor (с большой буквы C).    Вот пример: const ele = document.querySelector("div"); ele.style.backgroundColor = "red"; Предположим, что вы написали код CSS для своего проекта и хотите добавить классы с помощью JavaScript. Это можно сделать с помощью classList в JavaScript.    Вот еще один пример: const ele = document.querySelector(".link"); ele.classList.add("bg-red"); // add class bg-red to existing class list ele.classList.remove("pb-4");// remove class bg-red from existing class list ele.classList.toggle("bg-green"); // toggle class bg-red to existing class list which means if it already exists then it will be removed, if it doesn't exist it will be added. classList добавляет, удаляет или переключает классы относительно какого-то элемента. Это чем-то похоже на обновление существующих классов.    В отличие от element.className, он удаляет все существующие классы и добавляет указанный класс.  И еще один пример: const ele = document.querySelector(".link"); ele.classList.add("bg-red"); // add class bg-red to existing class list ele.classList.remove("pb-4");// remove class bg-red from existing class list ele.className = "p-10"; // Now this will remove all existing classes and add only "p-10 class to element."   Как использовать обработчики событий Событие (Event) – это изменение состояния объекта. Обработка событий (Event Handling) – процесс реагирования на события.  События происходит всякий раз, когда пользователь щелкает кнопкой мыши, наводит курсор на элемент, нажимает клавишу и т.д. Поэтому, когда происходит событие, и вы хотите выполнить какое-то действие, то вы используете обработчики событий, чтобы это действие произошло.  Мы используем обработчики событий для того, чтобы выполнить определенный код, когда это конкретное событие происходит. В JavaScript есть несколько обработчиков событий, однако процесс их добавления к элементам одинаков.  Вот синтаксис: const ele = document.querySelector("a"); ele.addEventListner("event", function(){ // callback function }); Вот некоторые события, которые вы можете использовать: click mouseover mouseout keypress keydown А вот пример использования события «click» (нажатия на кнопку мыши): const ele = document.querySelector("a"); ele.addEventListner("click", function(){ ele.style.backgroundColor = "pink"; }); Распространение событий: всплывание событий и перехват событий Распространение событий определяет то, в каком порядке элементы будут получать события. Существует два способа обработки порядка распространения событий в DOM: всплывание событий и перехват событий.  Что такое всплывание событий? Когда в каком-то компоненте происходит событие, то он сначала на нем запускается обработчик событий, только потом на его родительском компоненте, а затем уже и на всех остальных компонентах, которых называют предками.  По умолчанию все обработчики событий перемещаются именно в этом порядке - от события центрального компонента к событию компонента, который находится от него дальше всех.    Что такое перехват событий? Этот способ – противоположность предыдущему. Обработчик событий запускается сначала на родительском компоненте, а уже потом на том компоненте, на котором он фактически и должен был сработать.  Проще говоря, это означает, что событие сначала перехватывается самым удаленным элементом, а затем распространяется на внутренние элементы. Также этот способ называют «просачиванием вниз».    Давайте попробуем запустить следующий пример:                Example           
           
    Этот код выдаст нам следующее: Теперь давайте внимательно изучим приведенный выше пример. Я добавил получатель событий к тегу nav и тегу anchor. Когда вы нажимаете на nav, то цвет фона меняется на зеленый. Когда вы нажимаете на тег anchor, то цвет фона меняется на розовый.  Но когда вы нажимаете на тег anchor, то цвет фона меняется как у nav, так и у anchor. Это происходит из-за всплывания событий.    Вот что происходит, когда вы нажимаете только на элемент nav:       А вот что происходит, когда вы нажимаете только на элемент anchor: Для того, чтобы остановить распространение событий, мы можем воспользоваться методом stoppropagation() на получателе событий, из-за которого и происходит распространение события. В таком случае в приведенном выше примере получатель событий элемента nav не сработает.                   Example           
           
    Как перемещаться по модели DOM «Хороший разработчик JavaScript должен знать, как перемещаться по модели DOM. Перемещаться по модели DOM значит выбирать один элемент из другого,» - Зелл Лью. Теперь посмотрим, почему лучше обойти модель DOM, чем использовать метод document.querySelector(), и как это выполнить на профессиональном уровне.  Есть три способа обхода модели DOM: Снизу-вверх Сверху-вниз Продольный Как обойти модель DOM снизу-вверх Существует два метода, которые помогут вам перемещаться по модели DOM снизу-вверх: parentElement closest parentElement – это свойство, которое выбирает родительский элемент, например: const ele = document.querySelector("a"); console.log(ele.parentElement); //
parentElement отлично подходит для того, чтобы выбрать элемент, который находится на один уровень выше. Но closest позволяет найти элемент, который может быть на несколько уровней выше текущего. closest позволяет вам выбрать ближайший элемент-предок, который соответствует селектору.  Вот пример с использованием closest:
   

This is sample

   

This is heading

   

This heading 2

const ele = document.querySelector(".heading"); console.log(ele.closest(".demo")); // This is heading В приведенном выше фрагменте кода мы пытаемся получить ближайший элемент к .heading, который имеет класс .demo. Как обойти модель DOM сверху-вниз Мы можем перемещаться вниз, используя метод селектора children. При таком подходе вы можете выбрать прямого потомка нужного элемента.   Вот пример:
   Link-1    Link-2    Link-3    Link-4
const ele = document.querySelector("div"); const child = ele.children; console.log(child); // gives HTMLCollection // 4 element inside div Как обойти модель DOM продольно Это очень интересный вопрос, как же мы можем продольно обойти DOM. В основном мы можем использовать лишь два метода: previousElementSibling nextElementSibling С помощью метода previousElementSibling мы можем выбрать предшествующие элементы в HTML:
   Link-1    

Heading

const ele = document.querySelector("h1"); console.log(ele.previousElementSibling); // Link-1 А с помощью метода nextElementSibling мы можем выбрать последующие элементы в HTML:
   Link-1    

Heading

const ele = document.querySelector("a"); console.log(ele.nextElementSibling); //

Heading

img
Хэй! Поговорим про WinSCP. Это тонкий клиент под Windows, который предназначен SFTP (SSH File Transfer Protocol), FTP и SCP подключения к нужным хостам. Если говорить кратко, то этот софт предназначен для безопасного копирования файлов между сервером, к которому вы подключены и вашим компьютерам. Это очень удобно, когда вы подключаетесь к Linux машине и хотите скачать оттуда какие - либо файлы. Согласитесь, сделать это через консоль (CLI) будет очень трудно. Давайте посмотрим, как скачать WinSCP и выполнить установку и дальнейшее подключение. Матчасть! SCP происходит от английского secure copy - это тулза и по совместительству протокол копирования. Нужна для безопасного и удаленного копирования файлов. Безопасно, потому, что в качестве транспорта SCP использует протокол SSH. Скачать WinSCP Первым делом нужно загрузить ПО. Кликайте на ссылку ниже, чтобы скачать WinSCP: Скачать WinSCP Как только вкладка откроется, внизу вы найдете зеленую кнопку с надписью в формате "Download WinSCP 5.17.7 (10.6 MB)". Сразу после этого начнется загрузка. Установка WinSCP Кликаем на инсталлятор. В первом меню нажимаем "Принять" (прочтите лицензионное соглашение): Рекомендуемой установки вам хватит более чем. Нажимаем "Далее" Стиль интерфейса юзера. Выбирайте "Коммандер" и нажмите "Далее": Финальный экран. Нажимайте "Установить": По окончанию установки оставьте флажок "Запустить WinSCP": Запуск и работа в WinSCP Мы скачали и установили утилиту WinSCP, а теперь запустим и покажем, как подключиться к серверу. Пусть по легенде у нас будет машина с CentOS, с которой нам нужно вытянуть определенные файлы. Открываем консоль WinSCP и указываем: Протокол передачи: SFTP Имя хоста: 192.168.0.13 Порт: 22 Имя пользователя: root Пароль: ваш_пароль И нажимаем "Войти". Подключаемся и готово - теперь из правой рабочей области (зоны сервера) вы можете переключаться по каталогам в удобной графической форме и просто перетаскивать нужный файл как с сервера, так и на сервер.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59