Архив метки: Вопросы читателей

Можно ли запустить выполнение команд bash в фоновом режиме?

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

Завершите команду с помощью &

Если вы хотите поместить команду в фоновый режим, используйте & (амперсанд) в конце простой способ сделать это. Таким образом, вы можете выполнить команду в фоновом режиме и продолжать использовать свой терминал во время его работы. Однако у этого есть уловка. Использование &не отключает команду от вас; он просто отодвигает его на задний план. Это означает, что пока вы пытаетесь использовать терминал, все, что команда хочет отправить STDOUT или STDERR все еще будет напечатано, что может отвлекать.

COMMAND &

Когда сеанс терминала закрывается, команда завершается. Вы также можете убить команду jobs, выполнив команду, найдя номер выполняющейся команды и завершив ее с помощью killкоманды. Этот синтаксис выглядит следующим образом:

kill %1

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

& После команды, затем отклонить ее

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

Чтобы использовать этот метод, начните с добавления &.

COMMAND &

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

Просто введите disown в оболочку, и она сделает именно это. (И вы можете еще раз проверить это с помощью команды jobs.)

Теперь вы можете закрыть свой терминал и продолжить свой день. Он по-прежнему будет связывать вещи с STDOUT или STDERR, но как только вы выйдете и снова откроете свой терминал, вы ничего там не увидите. Вы можете снова найти команду с помощью команд top или ps и убить ее с помощью команды kill.

& После команды с /dev/null

Добавление & после команды переместит команду в фоновый режим, но в результате фоновая команда продолжит выводить сообщения в терминал по мере того, как вы его используете. Если вы хотите предотвратить это, подумайте о перенаправлении команды на /dev/null.

COMMAND &>/dev/null &

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

Nohup, с & и /dev/null

В отличие от предыдущих команд, использование nohup позволяет запускать команду в фоновом режиме и продолжать ее выполнение. Как? nohup обходит сигнал HUP (сигнал зависания), что позволяет запускать команды в фоновом режиме, даже когда терминал выключен. Объедините эту команду с перенаправлением на «/dev/null» (чтобы nohup не создавал файл nohup.out), и все перейдет в фон с помощью одной команды.

nohup COMMAND &>/dev/null &

Большинство терминальных программ в Linux сегодня имеют встроенные функции, позволяющие им работать в фоновом режиме без особых усилий. Наряду с этим современные системы инициализации (например, systemd) могут позволять пользователям запускать такие программы, как службы, при загрузке или в любое время.

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

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



2021-01-22T13:46:49
Вопросы читателей

Что такое переменные Bash и как их использовать?

Bash позволяет отображать целые строки текста в отдельные переменные, упрощая его использование и написание скриптов. Как они работают и как их использовать? Давайте выясним.

Что такое переменная?

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

Переменные в реальном времени

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

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

sitea = https://www.maketecheasier.com

После этого, если вы хотите посетить наш сайт с помощью Firefox, вы можете просто ввести:

firefox $sitea

Намного проще — и читабельнее. Переменная $sitea будет оставаться отображаться на сайте, пока вы не изменили его содержимое вручную или сеанс Bash закончился. И, конечно же, вы можете создать несколько переменных, таких , как siteb, sitec, и sited.

При настройке новых переменных вы можете использовать любые имена по своему усмотрению и хранить в них любые буквенно-цифровые строки. Однако имейте в виду, что они по умолчанию чувствительны к регистру. Таким образом, $sitea не будет таким же, как $SiteA. Также обратите внимание, что вы должны использовать кавычки при сохранении строк со специальными символами внутри них (включая пробелы).

Переменные в скриптах

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

Такой сценарий будет выглядеть примерно так:

#!/bin/bash 

username=Odysseas

echo $username

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

#!/bin/bash

username=Linus 

echo Привет, $username. Это простой сценарий, который я написал, который будет повторять ваше имя, то есть $username, часто как реальный пример того, как использовать переменные Bash. Я надеюсь, что это будет сделать это легче понять, как использовать переменные, чтобы улучшить свой рабочий процесс Баша, $username. В этом случае переменное имя пользователя сопоставляется с вашим именем. Всякий раз, когда Bash сталкивается с ним, он заменяет его на $username.

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

Постоянные переменные и псевдонимы Bash

Мы видели, как вы можете временно устанавливать переменные и как, для чего-то более постоянного, вы можете включать их в свои собственные скрипты. Но разве нельзя постоянно устанавливать переменные в Bash? Ответ — большое «да!» и вам нужно отредактировать только один файл: «~/.bashrc».

Откройте файл «~/.bashrc» в вашем любимом текстовом редакторе. Поскольку я предпочитаю нано, я сделал это с помощью:

nano ~/.bashrc

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

myname="Odysseas Kourafalos"

Сохраните файл и выйдите из редактора. Настройки будут применены не сразу. Введите в свой терминал следующее, чтобы оно вступило в силу:

source ~/.bashrc

Теперь вы можете использовать вновь установленную переменную в сеансе Bash:

echo $myname

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

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

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

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



2021-01-22T13:28:37
Вопросы читателей

Как установить приложение Signal Messaging на последнюю версию Ubuntu

Приложение для обмена сообщениями Signal — это новый продукт высокого качества для обмена сообщениями между людьми в Интернете с помощью веб-приложений и приложений для телефона для связи по всему миру. Он известен своей конфиденциальностью и использует специальные методы шифрования, чтобы все ваши сообщения оставались только вам. Это безопасное приложение, использующее протокол сквозного шифрования и не передающее данные другим приложениям. Вам может быть интересно, доступен он для Linux или нет? Ответ положительный! это многоплатформенное приложение, доступное также для мобильных телефонов и настольных компьютеров.

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

Установка приложения Signal Messaging в Ubuntu с помощью программного центра

Первый и беспроблемный способ установки приложения для обмена сообщениями — использование магазина программного обеспечения Ubuntu. Центр открытого программного обеспечения:

Щелкните значок поиска и введите «Signal Desktop»:

Он появится в списке, откройте его и нажмите кнопку установки:

После завершения загрузки и установки приложение Signal можно будет просмотреть в приложениях:

Откройте это:

Установка приложения Signal Messaging на Ubuntu с помощью оснастки

Второй подход — установка Signal через оснастку. Snap поддерживается многими дистрибутивами Linux, такими как Debian, Linux Mint, Elementary OS и т.д. Установка приложений через Snap проста, и они автоматически обновляются. Используйте указанную ниже команду для установки Signal для рабочего стола:

$ sudo snap install signal-desktop

Установка приложения Signal Messaging в Ubuntu с помощью APT

Третий способ — установка Signal с помощью APT. Во-первых, скопируйте следующую команду и вставьте в терминал, чтобы установить официальный ключ подписи программного обеспечения:

$ wget -O- https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -

Теперь, чтобы добавить официальный репозиторий:

$ echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list

Обновите список пакетов, используя:

$ sudo apt update

Теперь установите приложение Signal, используя:

$ sudo apt install signal-desktop

Удаление приложения Signal Messaging из Linux

Если приложение установлено в Ubuntu с помощью программного центра, затем откройте программный центр, снова щелкните вкладку «Установлено», найдите «Сигнал» и нажмите «Удалить»:

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

$ sudo snap remove signal-desktop

Если он установлен через «apt», используйте:

$ sudo apt remove signal-desktop

Заключение

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



2021-01-19T11:49:50
Вопросы читателей

Можно ли разрешить или запретить доступ по SSH определенному пользователю или группе?

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

В конфигурационном файле openSSH по умолчанию есть две директивы для разрешения и запрета доступа по SSH определенным пользователям или группе. Во-первых, давайте посмотрим, как разрешить или включить SSH-доступ для пользователя и группы. Обратите внимание, что все приведенные ниже команды должны запускаться от имени пользователя root или sudo.

1. Разрешить SSH-доступ пользователю или группе

Чтобы разрешить доступ по SSH для определенного пользователя, например sk, отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Нажмите «i», чтобы войти в режим вставки и добавить или изменить следующую строку:

AllowUsers sk

Замените «sk» своим именем пользователя. Обратите внимание на  отступы между «AllowUsers» и «sk». Вы должны использовать Tab вместо пробела. Значение — добавьте слово «AllowUsers» и нажмите клавишу Tab, а затем укажите имя пользователя.

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

AllowUsers user1 user2

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

AllowGroups root

Этот параметр позволит всем членам «корневой» группы подключаться к серверу Linux по ssh.

Нажмите клавишу ESC, чтобы выйти из режима вставки, и введите : wq, чтобы сохранить и выйти из файла конфигурации SSH. Перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

Теперь пользователю sk и всем членам «корневой» группы разрешено подключаться к вашему Linux-серверу по ssh. Остальные пользователи (кроме sk и членов группы «root») не имеют доступа к системе через ssh.

Чтобы проверить это, попробуйте подключиться к серверу Linux по ssh от имени любого из запрещенных пользователей:

$ ssh ostechnix@192.168.225.52

Вы получите следующее сообщение об ошибке:

ostechnix@192.168.225.52's password: 

Permission denied, please try again.

2. Запретить доступ по SSH пользователю или группе

Чтобы отключить или запретить доступ по SSH для пользователя или группы, вам необходимо добавить/изменить следующие директивы в файле sshd_config вашего удаленного сервера.

  • DenyUsers
  • DenyGroups

Чтобы запретить доступ по SSH конкретному пользователю с именем «sk», отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Добавьте/отредактируйте следующую строку в файле sshd_config.

DenyUsers sk

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

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

DenyUsers user1 user2

Аналогичным образом, чтобы запретить доступ по SSH для всей группы, например root , добавьте:

DenyGroups root

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

$ sudo systemctl restart sshd

Теперь попробуйте ssh на свой Linux-компьютер из заблокированной учетной записи пользователя, например sk:

$ ssh sk@192.168.225.52

Вы получите следующее сообщение:

sk@192.168.225.52's password: 

Permission denied, please try again.

sk@192.168.225.52's password:

3. Отключить вход в систему через SSH-root

Доступ с root-доступом по ssh считается плохой практикой с точки зрения безопасности . Поэтому настоятельно рекомендуется отключить вход в систему SSH Root для защиты вашей системы.

Чтобы отключить вход в систему root ssh, отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Найдите следующую строку, раскомментируйте ее и установите значение no .

PermitRootLogin no

Перезапустите службу SSH, чтобы изменения вступили в силу немедленно:

$ sudo systemctl restart sshd

Теперь вы знаете, как предоставлять и ограничивать доступ по SSH для определенных пользователей или групп в Linux. Вы также узнали, как запретить или отключить вход root по SSH в Linux. Это одна из рекомендуемых мер безопасности, которую должен применять каждый администратор Linux при настройке сервера Linux.



2021-01-18T17:58:00
Вопросы читателей

Каким образом я могу изменить переменные среды Windows 10?

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

Откройте окно переменных среды

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

Если вы хотите пропустить его чтение, один путь, который работает одинаково во всех версиях Windows, — это открыть окно «Выполнить» (Win + R), командную строку или PowerShell и выполнить команду: rundll32.exe sysdm.cpl,EditEnvironmentVariables.

Как редактировать переменную среды в Windows

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

Вам будет показано окно, в котором вы можете редактировать как имя, так и значение переменной. Внесите желаемые изменения и нажмите ОК . Затем еще раз нажмите OK в окне переменных среды .

Как редактировать переменную среды из командной строки

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

  • setx variable_name "value", если вы хотите создать переменную среды пользователя
  • setx variable_name "value" /m, если вы собираетесь создать системную переменную среды

Например, мы набрали setx TEST "C:digitalcitizen" и создали пользовательскую переменную TEST со значением C:digitalcitizen.

Если мы хотим изменить значение переменной среды, мы можем запустить ту же команду setx, но указать новое значение для переменной. Например, выполнение setx TEST "C:DC" изменяет значение переменной среды TEST на C:DC.

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

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

ПРИМЕЧАНИЕ. Вы можете получить список всех доступных переменных среды, выполнив команду set в командной строке (не setx и без каких-либо параметров). Однако, если вы только что создали или отредактировали переменную среды, необходимо закрыть и снова открыть командную строку, чтобы изменения отобразились.

Как редактировать переменную среды из PowerShell

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

  • [Environment]::SetEnvironmentVariable("variable_name","variable_value","User"), если вы хотите создать переменную среды пользователя.
  • [Environment]::SetEnvironmentVariable(“variable_name”,”variable_value”,”Machine”), если вы хотите создать системную переменную среды.

Например, мы набрали [Environment]::SetEnvironmentVariable(“TEST”,”digitalcitizen.life”,”User”), чтобы создать переменную пользовательской среды под названием TEST со значением digitalcitizen.life. Чтобы изменить значение переменной позже, мы можем запустить ту же команду с другим значением. Как и setx в командной строке, эта команда переписывает значение указанной переменной каждый раз, когда вы ее запускаете.

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

ПРИМЕЧАНИЕ. В PowerShell вы можете получить список всех переменных среды, выполнив команду Get-ChildItem Env:. Однако, если вы только что создали или отредактировали переменную среды, вам необходимо закрыть и снова открыть PowerShell, чтобы изменения отобразились.

Как очистить значение переменной среды в Windows (из командной строки)

Если вы хотите удалить значение переменной среды (сохранив ее имя), вы не можете сделать это с помощью мыши и клавиатуры из окна переменных среды . Если вы выберете переменную и нажмете «Изменить», вы можете удалить значение, но не можете нажать «ОК», так как эта кнопка становится серой. Поэтому вы не можете сохранить свои изменения.

Однако вы можете очистить значение переменной среды с помощью командной строки. Чтобы отменить установку переменной среды из командной строки , введите команду setx variable_name "". Например, мы набрали setx TEST "", и эта переменная среды теперь имела пустое значение.

Далее давайте посмотрим, как удалить переменную среды.

Как удалить переменную среды в Windows

Если вы больше не хотите использовать конкретную переменную среды, выберите ее в окне «Переменные среды». Затем нажмите Удалить. Windows не запрашивает подтверждения этого действия. Поэтому, если вы передумали, необходимо нажать Отмена, чтобы удаление не применялось. Если вы хотите, чтобы удаление продолжилось, нажмите ОК .

Как удалить переменную среды из командной строки

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

  • REG delete "HKCUEnvironment" /F /V "variable_name", если это переменная среды пользователя, или
  • REG delete "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /F /V "variable_name", если это системная переменная среды.

Например, мы набрали REG delete "HKCUEnvironment" /F /V "TEST", и наша переменная среды TEST исчезла из профиля пользователя.

Как удалить переменную среды из PowerShell

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

  • [Environment]::SetEnvironmentVariable("variable_name", $null ,"User"), если это переменная профиля пользователя, или
  • [Environment]::SetEnvironmentVariable("variable_name", $null ,"Machine"), если это общесистемная переменная.

Например, мы набрали [Environment]::SetEnvironmentVariable("TEST", $null ,"User"), и эта переменная среды исчезла из профиля пользователя.

Это оно!



2021-01-18T10:07:29
Вопросы читателей

Как быстро извлечь файлы .tar.gz в Windows 10

Файл в формате .tar.gz — это файл, созданный с помощью tar-архиватора на базе Unix, а затем сжатый с использованием сжатия gzip. Эти файлы часто называют «тарболами». Хотя вы можете найти их с двойным расширением (.tar.gz), расширение также можно сократить до .tgz или .gz.

Обычно файлы tar обычно используются пользователями Ubuntu (других дистрибутивов Linux) и macOS для архивирования и резервного копирования данных. Однако пользователи Windows 10 также могут столкнуться с этими файлами, что является причиной для извлечения их содержимого.

Хотя вы можете использовать сторонние приложения (такие как 7-Zip и PeaZip), эти приложения не всегда работают должным образом с архивами, созданными на другой платформе, и они медленно распаковывают большое количество файлов. Однако теперь Windows 10 включает встроенную поддержку файлов tar, и вы можете использовать командную строку для извлечения этих файлов. Или вы даже можете использовать подсистему Windows для Linux (WSL), которая включает встроенную поддержку Ubuntu , Fedora, SUSE и многих других дистрибутивов. Следовательно, вы также можете получить доступ ко многим инструментам Linux, включая tar, для быстрого извлечения содержимого из архивов tar.

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

Извлечение архивов .tar.gz, .tgz, .gz с помощью tar в Windows 10

Чтобы извлечь файлы .tar.gz, .tgz, .gz, а также .zip с помощью tar в Windows 10 , выполните следующие действия:

  1. Откройте Пуск в Windows 10.
  2. Найдите командную строку, щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».
  3. Введите следующую команду, чтобы использовать tar для извлечения файлов, и нажмите Enter:
    tar -xvzf C:PATHTOFILEFILE-NAME.tar.gz -C C:PATHTOFOLDEREXTRACTION

Совет: обязательно обновите синтаксис команды, включив в нее исходный и целевой пути. Кроме того, поскольку вы используете tar в Windows 10, вам не нужно указывать путь, как если бы вы работали в Linux. Вы можете использовать формат пути, используемый Windows.

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

Предполагается, что вы распаковываете архив, созданный в другой системе. Мы пропускаем некоторые аргументы, которые обычно необходимы для сохранения разрешений, которые в Windows 10 не нужны для доступа к файлам.

Извлечение архивов .tar.gz, .tgz, .gz с использованием tar в Linux в Windows 10

В Windows 10, чтобы использовать tar в Linux, вам необходимо установить подсистему Windows для Linux (WSL) и такой дистрибутив, как Ubuntu, из Microsoft Store.

Чтобы извлечь файл .tar.gz с помощью Linux в Windows 10, выполните следующие действия:

  1. Откройте Пуск.
  2. Найдите Ubuntu и щелкните верхний результат, чтобы открыть приложение.
  3. Введите следующую команду, чтобы извлечь содержимое файла .tar.gz, и нажмите Enter:
    sudo tar -xvzf /mnt/c/PATH/TO/TAR-FILE/Desktop/FILE-NAME.tar.gz -C /mnt/c/PATH/TO/DESTINATION/FOLDER

В приведенной выше команде мы вводим команду sudo для запуска приложения от имени администратора, tar для вызова приложения, а затем передаем ему некоторые аргументы, в том числе:

  • x — указывает tar, что вы хотите извлечь содержимое.
  • v — многословный. Это необязательный аргумент для отображения процесса извлечения. В противном случае вы будете видеть только мигающий курсор, пока процесс не будет завершен.
  • z — указывает tar распаковать содержимое файла .tar.gz с помощью gzip.
  • f — указывает tar имя файла, который вы собираетесь извлечь.

Затем вам нужно указать путь к архиву, который вы хотите распаковать. Вы заметите, что путь начинается с /mnt/c/, а не с «c:И» потому, что мы действительно работаем в мире Linux.

-C — (дефис и заглавная C) используется для указания tar менять папки. Когда вы выполняете команду, вы начинаете с исходной папки, а затем вам нужно указать папку назначения, которая является путем, который мы указали для завершения команды. Вы можете извлечь файлы в любую папку, но не забудьте начать путь с /mnt/path Windows.

Вы должны обращать внимание на прописные и строчные буквы при вводе команды Linux, поскольку рабочий стол — это не то же самое, что  рабочий стол .

В этом руководстве мы рассмотрим основные шаги для выполнения конкретной задачи. Если вы не являетесь пользователем Linux, о tar можно узнать гораздо больше. Вы можете узнать больше об этом инструменте в консоли Ubuntu, набрав tar --help.



2021-01-18T09:38:05
Вопросы читателей