Ответы пользователя по тегу Командная строка
  • Как сделать динамичный текст в терминале python?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Печатай возврат каретки (\r) без перевода строки
    from time import sleep
    import sys
    
    for i in range(11):
        sys.stdout.write('\r')
        sys.stdout.write("[%-10s] %d%%" % ('='*i, 10*i))
        sys.stdout.flush()
        sleep(0.25)
    Ответ написан
    Комментировать
  • Как достать ссылки из текстового файла?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    while read; do
      echo $REPLY
    done<links.txt
    Ответ написан
    Комментировать
  • Как называются элементы CLI в NodeJS и какие их комбинации возможны?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    command line interface уже давно выработал очень простой стандарт.

    Есть команда (внутренняя команда оболочки или внешняя утилита, вроде nodejs)
    Есть аргументы к команде
    Аргументы логически делятся на опции и параметры.

    Опции обычно начинаются с дефиса или двух (в POSIX стандарте один дефис для коротких опций, вроде -h, -e, два дефиса для длинных опций, вроде --help, --environment)
    Некоторые опции могут требовать параметр (--environment prod), некоторые нет.

    Параметры - это сами данные - названия файлов, устройств, другие данные в виде текста

    По стандарту POSIX короткие опции, которые не требуют дополнительного параметра, могут объединяться под одним дефисом ( пример: rm -rf )

    Список конкретных опций и параметров у каждой утилиты свой. Не все утилиты строго следуют POSIX, поэтому могут быть варианты. Для этого читай документацию конкретной утилиты.
    Таким образом твой вопрос относится не к nodejs, а к общим стандартам работы в командной строке.

    Ну и еще в CLI есть перенаправления, это отдельная лекция.
    Ответ написан
    1 комментарий
  • Ошибка sed, почему?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Я думаю в профайле пользователя задается определенная локаль, которая позволяет работать нормально с кодировкой, а через crontab она не задается.
    Посмотрите еще раз ваш .profile, .bashrc и настройте такое же для крона.
    Ответ написан
    Комментировать
  • Как добавлять сертификаты .p12 на сервер Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-50-generic x86_64)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    Представьте, что вы впервые в жизни видите компьютер с мышкой.
    Как скопировать файл? Как догадаться что оказывается можно зайти в папку (что это?), как догадаться что для этого нужно навести курсор и нажать именно левую кнопку мышки да еще и два раза, да еще и быстро. Да еще и несколько раз, пока не зайдешь в нужную папку.
    Как догадаться, что нужный файлик нужно перетянуть мышкой (да еще и догадаться что именно левой кнопкой), да еще и куда тянуть? Как догадаться, что можно открыть на рабочем столе сразу ДВЕ папки?
    А еще ручки кривые, к мышке непривычные, в мелкие иконки попасть выходит не сразу, при нажатии кнопки мышка сама двигается, пока поймешь как скопировать файл, за это время успеешь пару файлов или папок куда-то переместить и даже нельзя посмотреть логи куда и что переместил.

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

    Также и с командной строкой - это не устаревший, а актуальный способ взаимодействия с компьютером, который активно используется при работе с удаленными серверами.
    Советы простые - берешь и осваиваешь работу команд cd, ls, cp, mv, cat
    пару часов должно быть достаточно, если потренироваться на какой-то виртуалке.
    Ответ написан
    Комментировать
  • Как запустить функцию в bash из командной строки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Просто выполнить функцию в командной строке.

    2. Добавить ее в .bashrc или в .profile, чтобы она загружалась при логине

    3. Выполнить ваш скрипт с функцией в текущей оболочке, она будет доступна после этого (
    $ source script_with_function.sh
    $ Autobak
    Ответ написан
    3 комментария
  • При запуске скрипта python в терминале выдает ошибку syntaxerror, как пофиксить?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Легко сказать. А представь, что там код из 100 строк, мне каждую строку редактировать?

    1. 100 строк можно за минуту просмотреть.

    2. Надо внимательнее читать ошибку, там для ленивых написано, что File "script1.py", line 1
    То есть и файл и номер строки.

    3.
    Мне нужно решение, а не костыли

    Синтаксическая ошибка это самое простое, что нужно исправить. Надо решение какое? чтобы телепаты догадались что у тебя в файле написано на line 1?
    Ты же файл не привел, только ошибку.

    Внимательно смотри свой код, читай документацию.
    Ответ написан
  • Как понять значение этой строки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    каждая команда после завершения возвращает код возврата.
    для if важно не сравнение чего-либо с чем-либо, а именно код возврата команды, который 0 - успех, не ноль - ошибка.
    поэтому if [ A == B ] - это не сравнение а выполнение команды[ ]
    так и тутif ping - это не сравнение, а выполнение команды pingи получение ее кода возврата

    > /dev/null 2> /dev/null
    > - перенаправление вывода stdout в нул
    2>перенаправление вывода stderr в нул
    Это чтобы на экран команда ничего не выводила - ни основной вывод ни ошибки

    p.s. посмотреть код возврата можно через переменную $?
    ping -c 1 google.com
    echo $?
    
    ping -c 1 google.com1
    echo $?
    Ответ написан
    1 комментарий
  • Как в данном случае работает утилита tr?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    tr просто заменяет из первого вторым по порядку.

    echo 'example123' | tr 'a-z1-9' '1-9A-Z'
    в данном случае раскрываем оба диапазона и получается abcdefghij... во втором будет 123456789ABC...

    следовательно a заменится на 1, а j на A
    а 0 в вашем диапазоне вообще не указан.
    Ответ написан
    Комментировать
  • Как настроить правильную дату в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Если ты про "date: extra operand", то убери пробел после + в команде date + "%m-%d-%y"
    Ответ написан
  • Как вывести список файлов директории, имя которых начинается на заданные символы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    пиши
    ls -d a*
    ls -d b*
    ls -d abc*
    Ответ написан
    Комментировать
  • Как вывести количество поддиректорий в директории?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Вот тебе решение, которое работает мгновенно, независимо от количества директорий:
    echo $(( $(stat -c '%h' /path/to/directory) -2 ))
    Ответ написан
    Комментировать
  • Как извлечь имя директории из переменной?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    1. почему перед тем как задавать вопрос, не попробовать? Это бы заняло гораздо меньше времени, чем задать вопрос.
    2. да, можно.
    Ответ написан
  • Какой командный процессор (shell) самый продвинутый и удобный в Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    bash или zsh
    И не нужно искать что-либо другое, тем более свистелки перделки.

    (в идеале чтобы показывались иконки для разных типов файлов перед названием) и как говорится чтобы всё магически "свистело и пердело".

    Тебе нужно понять, что в командной строке список файлов предоставляет не шелл, а какая-нибудь утилита, например ls, и shell тут вообще не причем.

    Работай в GUI, если не нравится командная строка. Командная строка обязана быть простой и легко автоматизируемой и легко дополняемой простыми скриптами - в этом ее смысл и собственно поэтому она и сейчас актуальна.

    А куча шеллов с перделками и свистелками было написано и выкинуто в мусор за неудобством и избыточностью.
    Ответ написан
    Комментировать
  • Разница между cmd/shell/bash/dash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    shell - это общее название оболочек операционной системы, которые глобально делятся на графические и текстовые
    cmd/powershell - командные оболочки в виндовс
    bash/dash/ksh/zsh - командные оболочки в линукс
    Ответ написан
    Комментировать
  • Как наблюдать за логами запущенной программы в консоль?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    1. Использовать nohup - тогда программа не только запустится в фоне, но и отвяжется от вашей консоли, а логи автоматом попадут в файл nohup.out
    nohup ./programma &

    2. Запускать программу в фоне с перенаправлением вывода
    ./programma >programma.log 2>programma_errors.log &


    3. Запускать программу в фоне с перенаправлением вывода и через nohup, тогда программа уйдет в фон, отвяжется от консоли, но вы можете указать конкретные имена файлов логов
    nohup ./programma >programma.log 2>programma_errors.log &


    4. Можно стандартный вывод и вывод ошибок в один и тот же файл кинуть:
    nohup ./programma >programma.log 2>&1 &
    Ответ написан
    Комментировать
  • Как изменить вывод grep?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    У grep нет таких опций, поэтому нужно обработать вывод grep чем-нибудь еще.
    Простенький пример вот:
    grep -r -l "something" | xargs stat --format="Name: %n Size: %B"


    Ну можно еще path и name конечно разделить, но это будет посложнее команда типа так:

    while read; do
      MYPATH="${REPLY%/*}"
      MYNAME="${REPLY##*/}"
      SIZE="$(stat --format='%s' ${REPLY})"
      [[ "${MYPATH}" == "${MYNAME}" ]] && MYPATH=""
    
      echo "Path: ${MYPATH}/ Name: ${NAME} Size: ${SIZE}"
    done<<<$(grep -r -l "alias")
    Ответ написан
    2 комментария
  • Что означает на Linux скрипте перед командой символ $?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Это просто строка приглашения.
    Он и означает что вы работаете под обычным пользователем, а # - под рутом. Это и есть его основное назначение, никаких дополнительных функций в этом символе нет.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    юзай xargs
    echo -n /etc/AlterPro/apps_{sys,map,ctrl,port}.conf | xargs -d" " -n1 -I NAME appman -f NAME standby unregister --sys-id 3
    Ответ написан
    1 комментарий
  • Можно ли убить все процессы с помощью терминала Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    можно
    командой kill
    Ответ написан
    2 комментария