Установка веб-инструмента GitLab на Linux Ubuntu Server

Рассмотрим процесс установки и настройки веб-инструмента жизненного цикла DevOps на Linux Ubuntu Server на примере версий 18.04 и 20.04. За основу взята официальная инструкция с сайта GitLab. В нашей инструкции приведен пример установки как платной. так и бесплатной версий программы.







Подготовка сервера




В качестве предварительный настроек, мы обновим список пакетов в репозиториях, настроим правильное время и откроем порты в брандмауэре.




1. Обновление списков пакетов




Выполняем команду:




apt-get update




При желании обновить установленные пакеты, также можно выполнить:




apt-get upgrade




2. Время




Установим часовой пояс:




timedatectl set-timezone Europe/Moscow




* данная команда задаст настройки для московского времени. Все файлы с временными зонами находятся в каталоге /usr/share/zoneinfo.




Для автоматической синхронизации времени ставим пакет:




apt-get install chrony




И разрешаем автозапуск сервиса:




systemctl enable chrony




3. Настройка брандмауэра




По умолчанию, в Ubuntu брандмауэр настроен на то, чтобы принимать любые пакеты. Но если у нас он настроен на блокировку, нужно добавить порты 80 и 443.




iptables -A INPUT -p tcp --dport 80 -j ACCEPT




iptables -A INPUT -p tcp --dport 443 -j ACCEPT 




И чтобы сохранить правила, устанавливаем iptables-persistent:




apt-get install iptables-persistent




… и выполняем команду: 




netfilter-persistent save




Установка GitLab




Установку выполним в два шага — установка необходимых компонентов и, собственно, установка GitLab.




1. Необходимые компоненты




apt-get install curl openssh-server ca-certificates




Для отправки уведомлений, установим также postfix:




apt-get install postfix




При запросе типа конфигурации, выбираем Internet Site (если уведомления должны отправляться наружу) или Local only (уведомления в пределах сервера):







* при получении других запросов во время установки postfix можно ответить по умолчанию, нажимая Enter.




2. Установка GitLab




Установим репозиторий.




а) для платной версии:




curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash




б) для бесплатной:




curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash




После установки репозитория, устанавливаем сам GitLab.




а) платную версию:




apt-get install gitlab-ee




б) бесплатную:




apt-get install gitlab-ce




Если установка прошла успешно, мы должны увидеть:




It looks like GitLab has not been configured yet; skipping the upgrade script.
       *.                  *.

      ***                 ***

     *****               *****

    .******             *******

    ********            ********

   ,,,,,,,,,***********,,,,,,,,,

  ,,,,,,,,,,,*********,,,,,,,,,,,

  .,,,,,,,,,,,*******,,,,,,,,,,,,

      ,,,,,,,,,*****,,,,,,,,,.

         ,,,,,,,****,,,,,,

            .,,,***,,,,

                ,*,.

  



     _______ __  __          __

    / ____(_) /_/ /   ____ _/ /_

   / / __/ / __/ /   / __ `/ __ 

  / /_/ / / /_/ /___/ /_/ / /_/ /

  ____/_/__/_____/__,_/_.___/

  
Thank you for installing GitLab!




3. Конфигурируем веб-адрес




Для запуска и корректной работы портала мы должны задать external_url. Для этого открываем файл:




vi /etc/gitlab/gitlab.rb




Нам нужно только изменить параметр external_url:




external_url 'http://gitlab.dmosk.ru'




* данная настройка говорит, что наш веб-инструмент будет отвечать на запросы, которые пришли на узел gitlab.dmosk.ru — это значит, что данное имя должно быть зарегистрирована в DNS или прописано в локальный файл hosts.




Выполняем конфигурирование:




gitlab-ctl reconfigure




Данная операция займет какое-то время.




Вход в веб-интерфейс




Открываем браузер и вводим наш адрес, который мы указали в настройках в опции external_url — в данном примере, http://gitlab.dmosk.ru. Мы должны увидеть страницу авторизации, на которой нас запросят сменить пароль для администратора. Вводим его дважды:







После система попросит ввести логин и пароль — вводим логин root и пароль, который только-что придумали.




Настройка GitLab




Приведем некоторые примеры настроек, которые могут оказаться полезными.




Русский интерфейс




По умолчанию, портал устанавливается с интерфейсом на английском. Для смены языка, кликаем по иконке в правом верхнем углу и выбираем Settings:







В меню слева нажимаем по Preferences:







В подразделе Localization выбираем нужный нам язык и первый день недели:







Сохранияем настройки и перезапускаем страницу для применения нового языка.




Создание репозитория и подключение к нему




Попробуем создать проект и подключиться к нему из Linux. Также для теста мы создадим файл и закинем его в наш репозиторий.




В веб-интерфейсе GitLab создаем новый проект:







Задаем имя проекта, оставляем или редактируем URL, выбираем уровень доступа. После кликаем по кнопке Создать проект:







* в данном примере мы создаем проект с названием Test, url до него будет http://gitlab.dmosk.ru/root/test. Уровень доступа мы задаем «Приватный» — доступ к репозиторию будет только у авторизованного пользователя.




Для примера попробуем подключиться с компьютера Linux к нашему репозиторию и закинуть на него тестовый файл.




Для начала установим git на компьютер с Linux:




а) Если используем CentOS / Red Hat:




yum install git-core




б) Если используем Ubuntu / Debian:




apt-get install git




Создаем папку для тестового проекта:




mkdir -p /projects/test




Переходим в нее:




cd /projects/test




Создаем репозиторий:




git init




Создаем файл:




vi testfile.txt




Добавляем в него все файлы (то есть, наш единственный файл):




git add .




Делаем коммит:




git commit -m "Очередное изменение проекта" -a




Подключаемся к созданному репозиторию:




git remote add origin http://gitlab.dmosk.ru/root/test.git




Заливаем в него закоммиченный файл:




git push origin master




Переходим на веб-страницу нашего проекта — мы должны увидеть наш файл:







Настройка SSL




В данном примере мы сконфигурируем наш сервер для возможности работы по https и получения сертификата от Let’s Encrypt. Все настройки выполняются в конфигурационном файле:




vi /etc/gitlab/gitlab.rb




Меняем настройку:




external_url 'http://gitlab.dmosk.ru'




* где gitlab.dmosk.ru — url для нашего портала, который мы задали при первом конфигурировании.




на:




external_url 'https://gitlab.dmosk.ru'




* мы просто добавили s к http.




Также настраиваем получение сертификата от Let’s Encrypt:




letsencrypt['enable'] = true




И задаем опции для автоматического обновления сертификата:




letsencrypt['auto_renew'] = true

letsencrypt['auto_renew_hour'] = "22"

letsencrypt['auto_renew_minute'] = "50"

letsencrypt['auto_renew_day_of_month'] = "*/7"




* где:




  • auto_renew — разрешает автоматическое обновление.
  • auto_renew_hour — время в часах, когда нужно запускать задание на обновление сертификата.
  • auto_renew_minute — время в минутах, когда нужно запускать задание на обновление сертификата.
  • auto_renew_day_of_month — день месяца. В данном примере, раз в 7 дней.




Применяем новую конфигурацию:




gitlab-ctl reconfigure




В процессе переконфигурирования мы можем получить ошибку получения сертификата. Пробуем запустить команду:




gitlab-ctl renew-le-certs




Сброс пароля root




 Если мы забыли пароль для пользователя root, можно его сбросить через командную строку.




Подключаемся к консоли управления gitlab с помощью команды:




gitlab-rails console -e production




Создаем переменную, которая будет вести на ссылку с учетной записью root (идентификатор 1):




user = User.where(id: 1).first




Задаем пароль для пользователя root дважды:




user.password = 'password123'

user.password_confirmation = 'password123'




где password123 — созданный для пользователя root новый пароль.




Созраняем изменения для пользователя:




user.save!




Готово.




Источник: https://www.dmosk.ru/miniinstruktions.php?mini=gitlab-ubuntu



2021-06-15T22:56:12
Software

Как запустить Java из командной строки в Linux

Java — популярная в мире платформа для разработки программного обеспечения, которую разрабатывает Джеймс Гослинг. Он разработан для поддержки нескольких платформ, таких как Linux, macOS и Windows. Мобильные и настольные приложения также могут быть разработаны с использованием языка Java.

Язык Java — один из самых популярных объектно-ориентированных языков программирования высокого уровня. Он имеет простой синтаксис и легко понятен новичкам, так как он очень безопасен и экономичен в использовании. Java — это программное обеспечение, не зависящее от платформы, и оно также предоставляет средство автоматической сборки мусора.

 

Как запустить Java из командной строки

Чтобы запустить java-программу в Linux, нам нужно проверить, доступен ли Java Development Kit (JDK) в системе и его версию.

Чтобы подтвердить это, введите следующую команду:

$ javac -version

 

( Инструмент командной строки Javac используется для компиляции программ Java)

Инструмент командной строки Javac недоступен в моей системе. У нас есть несколько команд для его загрузки, как указано на изображении выше.

Давайте воспользуемся командой default-jdk, чтобы получить это:

$ sudo apt install default-jdk

 

Чтобы проверить установку javac , введите:

$ javac -version

 

Теперь напишите программу на Java в текстовом файле и сохраните ее с расширением .java .

Предположим, я создал файл с именем « testing.java » и написал в нем простую программу:

testing.java



class testing {

public static void main(String args[]) {

System. out. println("Привет! Добро пожаловать в блог AndreyEx");

}

}

(Имейте в виду, что имя вашего класса должно совпадать с именем файла)

Скомпилируйте файл testing.java на терминале с помощью команды javac :

$ javac testing.java

 

Теперь запустите программу Java, вызвав ее имя класса в терминале:

$ java testing

 

Заключение

Java — это язык высокого уровня современной эпохи, поддерживаемый Java Development Kit (JDK). JDK — это пакет, который помогает запускать java и используется для разработки пакетов программного обеспечения.

Язык Java имеет простой синтаксис, который легко освоить новичкам, и это один из наиболее используемых объектно-ориентированных языков программирования.

В этой статье мы видели, как устанавливать и запускать Java-приложения на терминале.



2021-06-15T22:53:13
Java

Программирование сокетов Python

Программирование сокетов — это метод, позволяющий двум узлам в сети взаимодействовать друг с другом. Один сокет (узел) читает с определенного порта по IP-адресу. Между тем, первое с ним связано. Клиент подключается к серверу, и сервер создает сокет аудитора. Это настоящие основы онлайн-серфинга.

Проще говоря, сервер действительно существует, а также клиент. Интеграция пакета сокетов и создание базового сокета — это первые шаги в программировании сокетов. На момент написания этой статьи мы использовали систему Ubuntu 20.04 Linux. Вот несколько примеров программирования сокетов в Python.

 

Пример 01: подключение Socket к Google

В нашем первом примере будет использоваться сокет для подключения к Google. Поэтому перейдите в область приложения и найдите «terminal» в строке поиска, чтобы открыть. Если вам трудно открыть, просто нажмите клавишу «Ctrl + Alt + T», и терминал откроется.

Теперь после открытия терминала нам нужно создать новый файл с поддержкой Python, чтобы добавить в него скрипт Python для программирования сокетов. Следовательно, мы создали файл « test.py » с помощью следующей команды touch:

$ touch test.py

 

Давайте перейдем к домашнему каталогу нашей системы, чтобы открыть только что созданный файл. После того, как вы открыли файл, добавьте в него приведенный ниже скрипт python для подключения сокета к Google. Сначала мы добавили поддержку Python в этот файл. Затем мы импортировали в нее системную библиотеку «sys» и библиотеку «socket». После этого мы использовали оператор try для создания сокета. В 5-й строке мы создали объект для класса сокета, который используется для создания сокета с потоком. Если созданный сокет завершится, он выведет сообщение об успешном завершении. В противном случае будет выполнен оператор except, показывающий сообщение об ошибке создания сокета.

После этого мы создали переменную «port», чтобы присвоить ей значение «80». Другой оператор try использовался для получения IP-адреса хоста, с которым мы подключаем наш сокет, например Google, в нашем случае. Оператор try получает IP-адрес через функцию класса сокета «gethostbyname». Если получение IP-адреса прошло успешно, управление будет передано оператору печати, расположенному за пределами тела try-except, и сообщение об успешном завершении будет отображаться на терминале. С другой стороны, если получение IP-адреса окажется неудачным, он напечатает сообщение об ошибке и завершит процесс. Сохраните файл и оставьте его, чтобы перейти к терминалу.

test.

#!/usr/bin/python3

import socket

import sys

try:

s = socket.socket(socket.AF_INET, socket. SOCK_STREAM) 

print("Сокет успешно создан")

except socket.error as err:

print("создание сокета не удалось с ошибкой %s" %(err))

port = 80

try:

host_ip = socket.gethostbyname('www.google.com')

except socket.gaierror:

print("произошла ошибка при разрешении хоста")

sys.exit()

s.connect((host_ip, port))

print("Сокет успешно подключился к Google")

Давайте запустим этот файл через поддержку python3 в оболочке, как показано ниже. Вы можете видеть, что сокет был успешно подключен к Google, поскольку отображаются сообщения об успешном завершении.

$ python3 test.py

Пример 02: Простое соединение сервер-клиент

Давайте рассмотрим еще один простой пример соединения сервера и клиента друг с другом через программирование сокетов. Давайте сначала создадим новый файл « Server.py » с расширением python в вашем домашнем каталоге с помощью представленной ниже команды.

$ touch Server.py

 

Откройте файл и вставьте в него приведенный ниже код. Этот код сначала импортирует библиотеку сокетов, а затем создает сокет с помощью объекта « s », за которым следует сообщение об успешном завершении. Затем мы упомянули переменную « порт », чтобы добавить номер порта и связать этот номер порта с нашим объектом сокета « s », за которым следует сообщение об успешном связывании. Мы перевели наш сокет в режим прослушивания методом listen . Затем мы создали вечный цикл while, чтобы установить соединение с клиентом с помощью метода accept (), пока мы не прервем его или не произойдет какая-либо ошибка.

Переменная « addr » представляет адрес клиента. Мы объявили переменную « var » с некоторым сообщением для отправки клиенту. Но перед этим мы должны закодировать байтовые символы. Следовательно, мы использовали для этого метод encode (). Мы использовали метод send (), чтобы отправить сообщение клиенту и закрыть соединение. Сохраните файл и нажмите крестик, чтобы выйти из него.

*Server.py

#!/usr/bin/python3

import sockets = socket. socket()

print("Сокет успешно создан")

port = 12345

s.bind(('', port))

print("гнездо, привязанное к %s" %(port))

s. listen(5)

print("сокет слушает")

while True:

c.addr = s.accept()

print('Получил связь от", addr )

var = "Спасибо за подключение"

new = var.encode("ascii")

c.send(new)

c.close()




Проверьте, правильно ли работает и активен наш сервер. Для этого вы запустите файл «Server.py» в терминале командной оболочки следующим образом:

$ python3 Server.py

 

Он успешно создал сокет и правильно его слушает. Теперь, чтобы проверить, работает он или нет, нам нужно подключить его к другому хосту. Следовательно, мы собираемся использовать для этого «telnet».

Откройте другое окно терминала и напишите в нем запрос ниже. Вы увидите, что он подключится к телнету, одновременно показывая вам сообщение «Спасибо за подключение». Это означает, что наш сервер исправен.

$ telnet localhost 12345

 

Вернитесь к серверному терминалу. Вы можете видеть, что это показывает, что ваш сервер получил соединение с какого-то IP-адреса.

Создадим еще один файл для программирования сокетов на стороне клиента, например Client.py, следующим образом:

$ touch Client.py

 

Быстро откройте файл из домашнего каталога и напишите в нем приведенный ниже код без каких-либо различий. Мы импортировали библиотеку сокетов и создали сокет с помощью метода «socket». Порт был упомянут в переменной «порт», и соединение было установлено через объект «s» и метод «connect с указанным портом». Метод recv использовался для получения данных с сервера и их печати с последующим закрытием соединения.

*Client.py

#!/usr/bin/python3

import sockets = socket.socket()

port = 12345

s.connect(('127.0.0.1', port))

print(s.recv(1024))

s.close()




Давайте сначала создадим серверный сокет, и он откроет режим прослушивания сервера следующим образом:

$ python Sevrer.py

 

Теперь запустите файл Client.py, используя запрос ниже. Вы можете видеть, что он выведет сообщение с хоста сервера «Спасибо за подключение».

$ python3 Client.py

 

Вернемся к серверной части. Вы можете видеть, что это показывает, что сервер имеет соединение от клиента.

 

Заключение:

В этой статье мы завершили все важные и необходимые аспекты программирования сокетов. Примеры содержат соединение сокета с Google и другими клиентами.



2021-06-15T12:06:17
Python

Как настроить быстрый доступ в Windows 10

Все хотят быстро освоить операционную систему. В Windows 10 Microsoft предоставила панель быстрой навигации, а также специальную панель инструментов. Вы можете найти эти элементы быстрого действия в проводнике.

В этом разделе мы продемонстрируем, как настроить эти элементы, которые позволят вам выполнять задачи одним нажатием кнопки, что ранее занимало много времени и усилий. Прежде чем мы начнем, давайте объясним панель быстрого доступа и панель инструментов.

Панель быстрого доступа и панель инструментов в Windows 10

Большинство пользователей Windows 10 наверняка знакомы с панелью быстрого доступа. Проводник по умолчанию открывает этот раздел. Кроме того, он также отображается на панели навигации в левой части проводника. Панель навигации быстрого доступа можно увидеть здесь.

Панель навигации проводника Windows позволяет пользователям закреплять папки и другие параметры для быстрого доступа в любом месте проводника. Кроме того, в этом разделе отображаются часто посещаемые папки, а также недавно использованные файлы и папки.

Панель быстрого доступа находится в верхней части проводника, под лентой меню. Подобно панели, эта панель инструментов также может быть настроена для включения параметров для быстрой настройки, таких как создание новой папки или изменение типа представления.

Здесь мы обсудим, как настроить панель быстрого доступа, а затем мы также обсудим, как настроить панель инструментов.

Как настроить панель навигации быстрого доступа в Windows 10

Первое, что нужно понять, это то, что панель быстрого доступа не может использоваться для закрепления команд. Это можно сделать только на панели инструментов. Однако панель можно использовать для быстрого доступа к папкам одним щелчком мыши. Давайте продолжим смотреть, как решать различные задачи при настройке панели быстрого доступа.

Закрепить папку на панели быстрого доступа

Чтобы закрепить папку на панели быстрого доступа, просто щелкните правой кнопкой мыши папку, которую вы хотите закрепить, и выберите «Закрепить в быстром доступе» в контекстном меню.

Кроме того, вы также можете перетащить папку прямо в панель навигации слева и предоставить доступ к папке вручную. Прикрепленные папки — это те, перед которыми отображается значок булавки.

Удалить папку из панели быстрого доступа

Вы также можете легко удалить папку из панели быстрого доступа. Чтобы удалить папку, щелкните правой кнопкой мыши ярлык на панели, которую вы хотите удалить, и выберите Открепить из быстрого доступа в контекстном меню.

Отображать только закрепленные папки на панели быстрого доступа

В дополнение к отображению часто используемых папок на панели быстрого доступа также отображаются папки, к которым осуществлялся последний доступ. Если вы хотите, чтобы отображались только закрепленные папки, вы должны сделать следующее:

Нажмите «Просмотр» на ленте меню, а затем нажмите «Параметры».

В окне «Параметры папки» на вкладке «Общие» снимите флажки рядом с «Показывать недавно использованные файлы в быстром доступе» и «Показывать часто используемые папки в быстром доступе». По завершении нажмите «Применить» и «ОК».

Теперь вы больше не будете видеть случайные папки в разделе быстрого доступа, а только закрепленные папки.

Как настроить панель быстрого доступа в Windows 10

С помощью панели инструментов вверху вы можете напрямую связывать с ней команды ленты. Сюда входят такие параметры, как быстрое изменение типа представления проводника, создание новой папки или подключение сетевого диска. Продолжайте читать, чтобы узнать, как настроить панель быстрого доступа.

Добавить команду на панель быстрого доступа

Чтобы добавить параметр или команду на панель быстрого доступа в верхней части проводника, просто щелкните правой кнопкой мыши команду, которую вы хотите добавить, а затем выберите « Добавить на панель быстрого доступа» в контекстном меню. вот пример:

Меню «Сортировать по» теперь можно увидеть как раскрывающееся меню на панели быстрого доступа, к которому можно получить доступ из любого места в проводнике.

Это может работать с любыми командами ленты. Он также включает команды, которые находятся в раскрывающемся меню.

Удалить команду с панели быстрого доступа

Вы также можете удалить команду с панели инструментов. Для этого щелкните правой кнопкой мыши ярлык, который вы хотите удалить с панели инструментов быстрого доступа, и выберите « Удаленный с панели быстрого доступа» в контекстном меню.

Переместить панель быстрого доступа

Вы также можете переместить панель быстрого доступа в более удобное место, которое вам больше подходит. Однако есть только 2 варианта его размещения:

  1. Над лентой заголовка
  2. Под лентой заголовка

Вы можете выбрать этот параметр, щелкнув правой кнопкой мыши пустое место на панели инструментов быстрого доступа, а затем щелкнув Показать панель инструментов быстрого доступа над / под лентой в контекстном меню.

Панель быстрого доступа к резервному копированию

У каждого человека есть свои предпочтительные конфигурации. Эти настройки могут быть потеряны в мгновение ока, когда что-то пойдет не так. Поэтому люди, как правило, имеют резервные копии и точки восстановления, которые они могут использовать, если что-то пойдет не так. Точно так же вы также можете сделать резервную копию настроек панели быстрого доступа на всякий случай.

Для резервного копирования кнопок панели инструментов требуется доступ к системным реестрам. Мы рекомендуем вам создать точку восстановления системы, прежде чем продолжить, чтобы вы могли вернуться к точке восстановления в случае, если что-то пойдет не так.

Запустите редактор реестра, введя regedit в Run, затем вставьте следующее в адресную строку вверху для быстрой навигации:

ComputerHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerRibbon

Теперь щелкните правой кнопкой мыши клавишу « Лента» и выберите « Экспорт» в контекстном меню.

Во всплывающем окне введите имя и место для сохранения файла .REG, а затем сохраните его.

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

Сбросить панель быстрого доступа

Если вы думаете, что создали беспорядок с панелью быстрого доступа, вместо того, чтобы удалять по одному элементу за раз, вы можете сбросить все за один раз, а затем начать заново.

Для сброса панели инструментов требуется изменение системного реестра. Поэтому мы рекомендуем вам создать точку восстановления, прежде чем продолжить, поскольку неправильные манипуляции могут стать фатальными для операционной системы.

Откройте редактор реестра, введя regedit в поле «Выполнить», а затем вставьте следующую строку в адресную строку вверху для быстрой навигации.

ComputerHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerRibbon

Оттуда щелкните правой кнопкой мыши DWORD «Qatitems» на правой панели и выберите «Удалить» в контекстном меню, чтобы удалить запись.

Теперь закройте редактор реестра и перезагрузите компьютер. Когда вы вернетесь, вы обнаружите, что на панели быстрого доступа в проводнике присутствуют только кнопки по умолчанию.

Кроме того, вы также можете вставить следующее в текстовый файл, чтобы создать файл .REG и запустить его. Эта команда автоматически удалит системный реестр Qatitems .

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerRibbon]

"QatItems"=-

При вставке в текстовый файл сохраните файл под любым именем и добавьте к нему суффикс «.reg», чтобы создать файл реестра.

Теперь просто запустите файл .REG и перезагрузите компьютер, чтобы сбросить панель инструментов.

Заключительные слова

Панель навигации быстрого доступа и панель инструментов могут быть очень полезны для людей, которые используют мышь больше, чем клавиатуру. Это дает вам доступ одним щелчком мыши к папкам и определенным командам ленты.

Мы также хотели бы добавить, что удаление панели быстрого доступа с панели навигации в левой части проводника — это то, чего хотят некоторые пользователи Windows 10. Однако мы обнаружили, что это часто приводит к повреждению процесса explorer.exe. Поэтому мы не рекомендуем вам пробовать и выполнять это в данный момент.

https://www.youtube.com/watch?v=IfqSccFVT8w



2021-06-15T09:56:10
Вопросы читателей

Как удалить папку с подпапками с помощью командной строки в Windows 10

Вы можете удалить папку с вложенными папками и файлами с помощью команд, но вам нужно знать правильный инструмент, который будет выполнять эту работу. В Windows 10 , когда вам нужно удалить файл или папку с помощью командного терминала, первое, что приходит на ум, — это команда del, но вы быстро обнаружите, что удалить папки и подпапки не получится, потому что инструмент не работает. предназначен только для работы с файлами.

Если вы хотите удалить папки с содержимым, инструмент командной строки будет зависеть от используемого вами терминала. Если вы используете командную строку, rmdir (удалить каталог) — это инструмент, который вы хотите использовать. С другой стороны, если вы используете PowerShell, вы хотите использовать именно этот командлет Remove-Item.

В этом руководстве вы узнаете два разных способа быстрого удаления папок с подпапками с помощью командной строки и PowerShell.

Удалите папки с подпапками с помощью командной строки

Чтобы удалить папку с подпапками с помощью командной строки, выполните следующие действия:

Откройте Пуск в Windows 10.

Найдите командную строку , щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».

Введите следующую команду, чтобы удалить пустую папку, и нажмите Enter :

rmdir ПУТЬКИМЯ-ПАПКИ

В команде замените PATHTOFOLDER-NAME на путь к папке и имя папки, которую вы хотите удалить.

В этом примере удаляется папка «files»:

rmdir C:files

Введите следующую команду, чтобы удалить папку и подпапки с содержимым, и нажмите Enter:

rmdir /s PATHTOFOLDER-NAME

В этом примере удаляются папка, подпапки и файлы «files»:

rmdir /s C:files

Введите следующую команду, чтобы удалить папку с содержимым рекурсивно без запроса подтверждения, и нажмите Enter.

rmdir /s /q PATHTOFOLDER-NAME

В этом примере удаляются папка, подпапки и файлы «files» без запроса подтверждения:

rmdir /s /q C:files

После того, как вы выполните эти шаги, папка и ее содержимое будут удалены из Windows 10.

Параметр /s удаляет папку и ее содержимое в приведенной выше команде, но запрашивает у пользователя подтверждение. Параметр /q игнорирует приглашение и рекурсивно удаляет папку.

Удалите папки с подпапками с помощью PowerShell

Чтобы рекурсивно удалить всю папку с помощью команды PowerShell, выполните следующие действия:

Откройте Пуск.

Найдите PowerShell, щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».

Введите следующую команду, чтобы удалить пустую папку, и нажмите Enter :

Remove-Item PATHTOFOLDER-NAME

В команде замените PATHTOFOLDER-NAME на путь к папке и имя папки, которую вы хотите удалить.

В этом примере удаляется папка «files»:

Remove-Item -Recurse -Force PATHTOFOLDER-NAME

Введите следующую команду, чтобы удалить пустую папку, и нажмите Enter :

Remove-Item -Recurse -Force C:files

В этом примере удаляется папка «files»:

Remove-Item -Recurse -Force C:files

После того, как вы выполните эти шаги, папка, подпапки и файлы будут удалены с компьютера с запросом или без него, в зависимости от используемой вами команды.

Эта опция -Recurse сообщает команде, что вы хотите удалить папку и ее содержимое без подтверждения. Опция -Force не требуется, но он позволяет удалить из специальных предметов, в том числе только для чтения или скрытых файлов.



2021-06-15T09:40:47
Вопросы читателей

Как использовать модуль Counter в Python

В этой статье объясняется, как использовать модуль «Counter», который по умолчанию поставляется с языком программирования Python. Все примеры кода в этой статье протестированы на Python версии 3.9.5 в Ubuntu 21.04.

 

О модуле счетчика

Модуль Counter, как следует из названия, может использоваться для подсчета элементов итерируемого или хешируемого объекта в Python. Counter сохраняет каждый элемент итерируемого объекта (например, объект списка Python) как ключ словаря Python. Поскольку словари в Python допускают только уникальные ключи, повторения нет. Соответствующие значения для ключей этих словарей — это количество или количество раз, когда элемент появляется в итерируемом объекте.

 

Основное использование и синтаксис

Чтобы понять базовое использование и синтаксис класса Counter, взгляните на пример кода ниже:

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (counts)

Первый оператор импортирует модуль Counter, чтобы в коде можно было использовать класс Counter. Затем определяется новый объект списка Python с некоторыми данными. Затем создается новый экземпляр объекта Counter путем передачи «list1» в качестве аргумента. Последний оператор печатает вывод объекта «counts».

После выполнения приведенного выше примера кода вы должны получить следующий результат:

Counter({'d': 4, 'b': 3, 'a': 2, 'e': 2, 'c': 1})

Обратите внимание, что выходные данные возвращают объект типа Counter, а не словарь Python. Хотя он ведет себя как словарь Python с одним незначительным отличием, которое объясняется ниже.

 

Объект счетчика ведет себя как объект словаря Python

Словарь в Python — это объект, который хранит элементы в парах «ключ: значение». Ниже приведен пример словаря Python:

dict1 = {"a" : 1, "b" : 2}

Часть перед символом «:» (двоеточие) называется «ключом», а часть после символа двоеточия называется «значением». Вы можете получить доступ к значению любого ключа в словаре Python, используя следующий синтаксис:

dict1 = {"a" : 1, "b" : 2}

print (dict1["a"])

Вам просто нужно указать имя ключа в квадратных скобках «[]». Если ключ не существует в словаре, выдается ошибка KeyError.

Выходные данные приведенного выше примера Counter показывают, что при создании нового экземпляра класса Counter возвращается новый объект типа Counter. Этот объект типа Counter представляет собой не что иное, как словарь Python, за исключением того, что он не генерирует ошибку «KeyError», когда значение ключа отсутствует. Вместо этого он присваивает ему значение «0» (ноль). Вы также можете получить доступ к значениям элементов в объекте Counter, указав имена ключей в квадратных скобках, как и в объекте словаря. Взгляните на пример кода ниже:

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (counts["f"])



dict1 = {"a" : 1, "b" : 2}

print (dict1["c"])

После выполнения приведенного выше примера кода вы должны получить следующий результат:

0

Traceback (most recent call last):

File "main.py", line 11, in

print (dict1["c"])

KeyError: 'c'

Как вы можете видеть в выходных данных, когда вы обращаетесь к ключу, которого нет в объекте Counter, возвращается «0» (ноль). С другой стороны, объект словаря Python выдает ошибку «KeyError» при отсутствии ключа.

 

Создание объекта счетчика вручную

Может быть случай, когда вы захотите вручную определить объект Counter вместо анализа итерации, такой как список Python. Чтобы создать объект счетчика, вы можете использовать следующий синтаксис:

from collections import Counter



counter1 = Counter(a=4, b=3)

counter2 = Counter({"a" : 4, "b" : 3})

print (counter1)

print (counter2)

Вы можете использовать синтаксис стиля аргумента, показанный в первом операторе, или использовать синтаксис стиля словаря Python, показанный во втором операторе, для создания новых экземпляров объекта Counter. Оба метода имеют одинаковый эффект и дают одинаковый результат.

После выполнения приведенного выше примера кода вы должны получить следующий результат:

Counter({'a': 4, 'b': 3})

Counter({'a': 4, 'b': 3})

Получение наиболее распространенных элементов из объекта счетчика

Вы можете использовать метод most_common для сортировки элементов и их количества в порядке убывания от объекта типа Counter. Взгляните на пример кода ниже:

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (counts.most_common())

Вывод возвращает список кортежей, а не объект словаря Counter или Python.

Вы также можете получить только несколько самых верхних элементов, указав число в методе most_common в качестве аргумента.

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (counts.most_common(2))

После выполнения приведенного выше примера кода вы должны получить следующий результат:

[('d', 4), ('b', 3)]

Другие полезные методы счетчика

Вы можете получить доступ ко всем ключам и значениям объекта Counter, используя методы «keys» и «values» соответственно.

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (counts.keys())

print (counts.values())

После выполнения приведенного выше примера кода вы должны получить следующий результат:

dict_keys(['a', 'b', 'c', 'd', 'e'])

dict_values([2, 3, 1, 4, 2])

Эти методы создают итерируемые объекты, чтобы вы могли их перебирать.

Вы можете получить как ключи, так и значения, используя метод «items».

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (counts.items())

После выполнения приведенного выше примера кода вы должны получить следующий результат:

dict_items([('a', 2), ('b', 3), ('c', 1), ('d', 4), ('e', 2)])

Вы также можете просмотреть результат, полученный методом «item».

Вы можете преобразовать объект Counter в словарь Python с помощью функции «dict».

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

print (dict(counts))

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{'a': 2, 'b': 3, 'c': 1, 'd': 4, 'e': 2}

Цикл по ключам и значениям объекта счетчика

Вы можете легко просмотреть пары ключ-значение объекта Counter, используя метод «items», описанный выше. Взгляните на пример кода ниже:

from collections import Counter



list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e"]

counts = Counter(list1)

for key, value in counts.items():

print (key, value)


 

В коде к переменной пары ключей можно получить доступ с помощью переменных «ключ» и «значение» соответственно в цикле «for».

После выполнения приведенного выше примера кода вы должны получить следующий результат:

a 2

b 3

c 1

d 4

e 2

Заключение

Встроенный в Python модуль «Счетчик» обеспечивает быстрый и эффективный способ подсчета количества элементов, хранящихся в объекте итеративного типа. Вы можете использовать метод «most_common» для получения самых верхних пар с наибольшим счетчиком, указав желаемое число в качестве аргумента.



2021-06-12T22:53:03
Python