Set

Создание папки, имя которой устанавливается текущей датой

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

MD %SYSTEMDRIVE%\%date:~-10%

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

md %systemdrive%\%date:~0,2%_%date:~3,2%_%date:~6,4%

или

md %systemdrive%\%date:~6,4%_%date:~3,2%_%date:~0,2%

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

@echo off

for /F «tokens=1-4 usebackq delims=. » %%1 in (`date /t`) do set mydate=%%4.%%3.%%2

ren test.txt test%mydate%.txt

Это позволит изменить название документа с test.txt на test(гггг.мм.дд).txt

Создаем текстовый файл со списком файлов в командной строке

  • Откройте командную строку в необходимой папке.
  • Введите «dir > listmyfolder.txt» (без кавычек) и нажмите Enter. Весь список сохранится в файле «listmyfolder.txt».
  • Если вам необходимо так же сохранить файлы и из всех вложенных каталогов, то используйте команду «dir /s > listmyfolder.txt» (без кавычек)

Файл «listmyfolder.txt» будет создан в той же папке, в которой вы находитесь. Небольшой уточнение по поводу файла, вы можете называть его как вам будет угодно, задавать ему абсолютно любое расширение. Каких-то специальных ограничений нет, кроме тех, что требует система Windows к названиям файлов. Так же вы можете использовать полные пути, для сохранения списка в другом каталоге. Например, вы хотите сохранить файл на диске «F:» в каталоге «list». Для этого вам необходимо будет использовать такую команду «dir > F:\list\listmyfolder.txt» (без кавычек). Как видите ничего сложно нет.

Примечания

  • Использование команды set в консоли восстановления

    Команда set с другими параметрами доступна в консоли восстановления.

  • Использование специальных символов

    Символы <, >, |, &, ^ являются специальными символами командной оболочки,
    необходимо либо ставить перед ними управляющий символ (^), либо заключать в кавычки, при
    использовании символов в параметре строка (например,
    «строка_содержания&символ«). При заключении в кавычки
    строки, содержащей специальные символы, кавычки считаются частью значения переменной
    среды.

  • Использование переменных среды

    Переменные среды используются для управления работой некоторых пакетных файлов и программ
    и для управления работой Windows XP и подсистемы MS-DOS. Команда set часто
    используется в файле Autoexec.nt для установки переменных среды.

  • Вывод текущих установок среды

    Когда команда set вызвана без параметров, на экран будут выведены текущие
    установки. Обычно эти установки включают переменные COMSPEC и PATH, используемые для
    поиска программ на диске. Две другие переменные среды, используемые Windows  это
    PROMPT и DIRCMD.

  • Использование параметров

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

    Если в команде set указано только имя переменной и знак равенства (без значения),
    какое-либо значение больше не будет ставиться в соответствие переменной среды, что
    эквивалентно удалению переменной среды.

  • Использование /a

    В следующей таблице представлены операторы, поддерживающие параметр /a, в порядке
    убывания очередности.

    Оператор Выполнение оператора
    < > Группировка
    * / % + — Арифметические действия
    << >> Логический перенос
    & Поразрядное И
    ^ Поразрядное исключающее ИЛИ
    | Поразрядное ИЛИ
    = *= /= %= += -= &= ^= |= <<= >>= Назначение
    , Разделитель выражения

    При использовании логических операторов (&& ||) или оператора остатка от деления
    (%) заключайте выражение строки в кавычки. Любые нечисловые строки в выражении считаются
    именами переменной среды, чьи значения преобразованы в числа до обработки. Если указано
    имя переменной среды, которое не определено в текущем окружении, ей присваивается
    значение нуля, что позволяет выполнять арифметические операции со значениями переменной
    среды без использования % для получения значения.

    При выполнении команды set /a из командной строки вне командного сценария,
    выводится конечное значение выражения.

    Численные значения это десятичные числа, кроме чисел с префиксами 0x для
    шестнадцатеричных чисел и 0 для восьмеричных чисел. Таким образом, 0x12 тоже самое, что
    18 и 022. Восьмеричное представление требует аккуратности. Например, 08 и 09 недопустимы, потому
    что 8 и 9 не являются восьмеричными цифрами.

  • Использование /p

    Используется, когда не требуется включать командную строку.

  • Поддержка расширения переменной среды с задержкой

    Добавлена поддержка расширения переменной среды с задержкой. Эта поддержка отключена по
    умолчанию, можно включить или отключить ее с помощью команды cmd /v.

  • Работа с расширениями команды

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

  • Использование команды set в пакетных файлах

    При создании пакетных файлов, используйте команду set для создания переменных и
    использовании их в качестве числовых переменных от %0 до %9. Также можно
    использовать переменные от %0 до %9 как ввод для команды set.

  • Обращение к переменным команды set из пакетных программ

    При обращении к переменной из пакетной программы имя переменной должно быть заключено в
    знаки процентов (%). Например, если в пакетной программе создается переменная BAUD, с ней
    может быть связан заменяемый параметр путем использования имени %baud% в командной
    строке.

if exists

Another special case for the ‘if’ statement is the «if exists «, which is used to test for the existence of a file. Following is the general syntax of the statement.

If exist somefile.ext do_something

Following is an example of how the ‘if exists’ statement can be used.

&commat;echo off
if exist C:\set2.txt echo «File exists»
if exist C:\set3.txt (echo «File exists») else (echo «File does not exist»)

Let’s assume that there is a file called set2.txt in the C drive and that there is no file called set3.txt. Then, following will be the output of the above code.

«File exists»
«File does not exist»

batch_script_decision_making.htm

Examples

To set an environment variable named TEST^1, type:

The set command assigns everything that follows the equal sign (=) to the value of the variable. Therefore, if you type , you’ll get the following result, .

To set an environment variable named TEST&1, type:

To set an environment variable named INCLUDE so the string c:\directory is associated with it, type:

You can then use the string c:\directory in batch files by enclosing the name INCLUDE with percent signs (%). For example, you can use in a batch file to display the contents of the directory associated with the INCLUDE environment variable. After this command is processed, the string c:\directory replaces %include%.

To use the set command in a batch program to add a new directory to the PATH environment variable, type:

To display a list of all of the environment variables that begin with the letter P, type:

Системный дебаггинг

  • Дле веб-дебаггинга используйте curl и curl -I, или их альтернативу wget. Так же есть более современные альтернативы, типа httpie.

  • Чтобы получить информацию о диске/CPU/сети используйте iostat, netstat, top (или лучшую альтернативу htop) и особенно dstat. Хороший старт для того, чтобы понимать что происходит в системе.

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

  • Для того, чтобы следить за памятью научитесь понимать free и vmstat. В частности не забывайте, что кешированые значения (“cached” value) – это память, которую держит ядро и эти значения являются частью free.

  • Дебаггинг Джавы – совсем другая рыбка, но некоторые манипуляции над виртуальной машиной Оракла или любой другой позволит вам использовать делать kill -3 <pid> и трассировать сводки стека и хипа (включая детали работы сборщика мусора, которые бывают очень полезными), и их можно дампнуть в stderr или логи.

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

  • Для того, чтобы узнать почему диск полностью забит используйте ncdu, это сохраняет время по сравнению с тем же du -sh *.

  • Для того, чтобы узнать какой сокет или процесс использует интернет используйте iftop или nethogs.

  • ab, которая поставляется вместе в Апачем полезна для быстрой нетщательной проверки производительности веб-сервера. Для более серьезного лоад-тестинга используйте siege.

  • Для более серьезного дебаггинга сетей используйте wireshark, tshark, и ngrep.

  • Знайте про strace и ltrace. Эти команды могут быть полезны, если программа падает или висит и вы не знаете почему, или если вы хотите протестировать производительность программы. Не забывайте про возможность дебаггинга (-c) и возможностью прицепиться к процессу (-p).

  • Не забывайте про ldd для проверки системных библиотек.

  • Знайте как прицепиться к бегущему процессу через gdb и получить трассировку стека.

  • Используйте /proc. Иногда он невероятно полезен для дебага запущенных программ. Примеры: /proc/cpuinfo, /proc/xxx/cwd, /proc/xxx/exe, /proc/xxx/fd/, /proc/xxx/smaps.

  • Когда дебажете что-то, что сломалось в прошлом используйте sar – бывает очень полезно. Показывает историю CPU, памяти, сети и т.д.

  • Для анализа более глубоких систем и производительности посмотрите на stap (SystemTap), perf, и sysdig.

  • Узнайте какая у вас операционка через uname or uname -a (основная Unix-информация/информация о ядре) или lsb_release -a (информация о дистрибутиве).

  • Используйте dmesg когда что-то ведет себя совсем странно (например железо или драйвера).

Заметки

  • Если условие, заданное в команде if
    , выполняется, будет выполнена команда,
    следующая за условием. Если условие не выполняется, команда, заданная в операторе if
    ,
    пропускается, а управление переходит к команде оператора else
    , если она задана.
  • Когда программа завершается, она возвращает код завершения. С помощью параметра
    errorlevel
    коды завершения можно использовать в качестве условий.
  • Использование команды defined
    переменная

    При использовании команды defined
    переменная
    добавляются следующие три
    переменные: %errorlevel%
    , %cmdcmdline%
    и %cmdextversion%
    .

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

    goto answer%errorlevel%
    :answer0
    echo Код возврата программы равен 0
    :answer1
    echo Код возврата программы равен 1
    goto end
    :end
    echo Готово!

    Операторы сравнения оп_сравнения
    также можно использовать следующим образом:

    If %errorlevel% LEQ 1 goto okay

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

    %cmdextversion%
    замещается строковым представлением текущего значения
    cmdextversion
    , если только уже не существует переменная среды с именем
    CMDEXTVERSION. В этом случае будет использовано ее значение.

  • Использование оператора else

    Оператор else
    должен размещаться в той же строке, что и команда if
    . Пример:

    IF EXIST имя_файла. (del имя_файла.) ELSE (echo имя_файла. отсутствует.)

    del
    должна
    заканчиваться новой строкой:

    IF EXIST имя_файла. del имя_файла. ELSE echo имя_файла. отсутствует

    Приведенный ниже пример не будет работать, поскольку команда else
    должна
    находиться в той же строке, что и команда if
    :

    IF EXIST имя_файла. del имя_файла.
    ELSE echo имя_файла. отсутствует

    Если необходимо разместить всю инструкцию в одной строке, можно использовать следующую
    правильную форму исходной инструкции:

    IF EXIST имя_файла (del имя_файла) ELSE echo имя_файла отсутствует

Параметры

Параметр Описание
/all Вывод полной конфигурации TCP/IP для всех адаптеров. Без этого параметра команда ipconfig выводит только IP-адреса, маску подсети и основной шлюз для каждого адаптера. Адаптеры могут представлять собой физические интерфейсы, такие как установленные сетевые адаптеры, или логические интерфейсы, такие как подключения удаленного доступа.
/renew Обновление конфигурации DHCP для всех адаптеров (если адаптер не задан) или для заданного адаптера. Данный параметр доступен только на компьютерах с адаптерами, настроенными для автоматического получения IP-адресов. Чтобы указать адаптер, введите без параметров имя, выводимое командой ipconfig.
/release Отправка сообщения DHCPRELEASE серверу DHCP для освобождения текущей конфигурации DHCP и удаление конфигурации IP-адресов для всех адаптеров (если адаптер не задан) или для заданного адаптера. Этот адаптер отключает протокол TCP/IP для адаптеров, настроенных для автоматического получения IP-адресов. Чтобы указать адаптер, введите без параметров имя, выводимое командой ipconfig.
/flushdns Сброс и очистка содержимого кэша сопоставления имен DNS клиента. Во время устранения неполадок DNS эту процедуру используют для удаления из кэша записей отрицательных попыток сопоставления и других динамически добавляемых записей.
/displaydns Отображение содержимого кэша сопоставления имен DNS клиента, включающего записи, предварительно загруженные из локального файла Hosts, а также последние полученные записи ресурсов для запросов на сопоставление имен. Эта информация используется службой DNS клиента для быстрого сопоставления часто встречаемых имен без обращения к указанным в конфигурации DNS-серверам.
/registerdns Динамическая регистрация вручную имен DNS и IP-адресов, настроенных на компьютере. Этот параметр полезен при устранении неполадок в случае отказа в регистрации имени DNS или при выяснении причин неполадок динамического обновления между клиентом и DNS-сервером без перезагрузки клиента. Имена, зарегистрированные в DNS, определяются параметрами DNS в дополнительных свойствах протокола TCP/IP.
/showclassid адаптер Отображение кода класса DHCP для указанного адаптера. Чтобы просмотреть код класса DHCP для всех адаптеров, вместо параметра адаптер укажите звездочку (*). Данный параметр доступен только на компьютерах с адаптерами, настроенными для автоматического получения IP-адресов.
/setclassid адаптер Задание кода класса DHCP для указанного адаптера. Чтобы задать код класса DHCP для всех адаптеров, вместо параметра адаптер укажите звездочку (*). Данный параметр доступен только на компьютерах с адаптерами, настроенными для автоматического получения IP-адресов. Если код класса DHCP не задан, текущий код класса удаляется.
/? Отображение справки в командной строке.

Примечания

  • Команда ipconfig является эквивалентом для командной строки команды winipcfg, имеющейся в Windows Millennium Edition, Windows 98 и Windows 95. Хотя Windows XP не имеет графического эквивалента команде winipcfg, для просмотра и обновления IP-адреса можно воспользоваться окном «Сетевые подключения». Для этого откройте окно Сетевые подключения, щелкните правой кнопкой мыши сетевое подключение, выберите команду Состояние, а затем откройте вкладку Поддержка.
  • Данная команда доступна только на компьютерах с адаптерами, настроенными для автоматического получения IP-адресов. Это позволяет пользователям определять, какие значения конфигурации были получены с помощью DHCP, APIPA или другой конфигурации.
  • Если имя адаптер содержит пробелы, его следует заключать в кавычки (т. е. «имя_адаптера»).
  • В именах адаптеров, задаваемых для команды ipconfig, поддерживается использование подстановочного знака звездочки (*) для задания имен, начинающихся с указанной строки или содержащих указанную строку. Например, имя Подкл* будет включать все адаптеры, начинающиеся со строки «Подкл», а имя *сет* — все адаптера, содержащие строку «сет».
  • Эта команда доступна, только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).

Способы обхода процедуры проверки даты из файла BAT

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

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

set tempdate=%date:~-10%

date 01-01-04

start notepad.exe

date %tempdate%

Что именно делают прописанные строки? Прежде всего, производится сохранение текущей даты в системе. Для этого применяется особая переменная. Во второй строке происходит установка системной даты на новое значение. В данном случае, это 1 января 2004 года. Сразу после этого предполагается проведение вызова программы, отвечающей за проверку системной даты. Мы использовали блокнот, но в Вашем случае требуется предусмотреть подобный момент. Пока Блокнот является открытым, пакетный документ ожидает, а сама дата не предусматривает изменение обратно. После закрытия Блокнота происходит возврат системной даты из переменной.

Важно уделить внимание определенному моменту. Когда в пути до конкретного документа используются символы из кириллицы, рекомендуется применять текстовый редактор с поддержкой кодировки 866 (ОЕМ, русская) или аналогичного варианта. Когда это не предусматривается, происходит выдача ошибки и работа пакетного файла не осуществляется

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

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

set tempdate=%date:~-10%

date 01-01-04

start notepad.exe

date %tempdate%

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

Запуск командной строки с правами администратора

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

  • нажмите кнопку «Пуск» введите в поле поиска «командная строка» и щелкните правой кнопкой мыши по строчке «Командная строка» в результатах поиска и выберите в контекстном меню «Запуск от имени администратора» (все то же самое можно сделать с «cmd»);
  • нажмите «Пуск» ⇒ «Все программы» ⇒ «Стандартные» ⇒ щелкнуть правой кнопкой мыши по «Командная строка» и выбрать «Запуск от имени администратора»;
  • открыть в Проводнике папку C:\Windows\System32, щелкнуть по файлу cmd.exe правой кнопкой мыши и выбрать пункт «Запуск от имени администратора»;
  • сделать ярлык для запуска командной строки, щелкнуть по нему правой клавишей мыши и выбрать «Запуск от имени администратора»;
  • создать ярлык для командной строки и в его свойствах указать «Запускать от имени администратора», теперь командная строка будет сразу запускаться с нужными правами;
  • нажать комбинацию клавиш WIN + X (в Windows 8).

Каким способом пользоваться решать естественно вам, но в любом случае в названии открывшегося окна появится «Администратор».

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

Где находится командная строка?

Основной файл командной строки — консоль cmd.exe переводящий команды пользователя в понятный системе вид, находится в папке с установленной ОС по пути: :\WINDOWS\system32\cmd.exe

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

Данные методы запуска командный строки актуальны для всех версий, в том числе и тех, которые я рассматриваю на своем сайте — windows XP , 7 , 8

1) Пуск — Все программы — Стандартные — Командная строка

2) Пуск — Выполнить — вводим cmd.exe

3) сочетание клавиш Win + R — вводим cmd

4) Запуск из системной папки: :\WINDOWS\system32\cmd.exe

Для того, чтобы запустить командную строку от имени Администратора, подойдет 1 и 4 способ, нужно на ярлыке щёлкнуть ПКМ и выбрать в меню «Запуск от имени Администратора».

Команды / параметры / ключи командной строки .Узнать команды командной строки можно прям в ней же, набрав help и нажав клавишу Enter (после окончания ввода всех команд нужно использовать именно Enter (ВВОД) ).

Вдаваться слишком глубоко не буду, потому что для этого лучше писать отдельную статью. Приведу лишь небольшой пример использования командной строки.Допустим у меня на диске E находится папка 123 , а в ней текстовый файл test.txt .Вот теперь я хочу сделать этот файл скрытым, не заходя на этот диск и не «видя» этого файла с папкой. Команда, отвечающая за атрибут «Системный» — это attrib. И у неё существуют свои атрибуты (уже команды). Можете даже посмотреть на скрине выше, я там показывал именно её на примере.Из всех её атрибутов мне нужны только два — это его установка и сам атрибут. За это отвечают + и s.Итак, моя команда будет следующей: attrib +s e:/123/test.txt . Вот так будет выглядеть правильный результат:

Ой. Только заметил что вместо Скрытый я сделал его Системным, а ещё удивляюсь почему он не пропал в папке. Я специально не стал удалять скрины и редактировать статью для того, чтобы показать Вам как можно исправить такую оплошность (как я сделал). Тоже хорошая информация.

Ну и напоследок: Как редактировать текст в окне командной строки? Дело в том, что стандартные методы с помощью сочетаний клавиш Ctrl+C и Ctrl+V в командной строке не работают.Тут нужно пользоваться ПКМ — Правой Кнопкой Мыши.Для того, чтобы вставить текст в командную строку, просто кликаем ПКМ на любом месте командной строки, затем выбираем Вставить.

Для того, чтобы скопировать часть текста из командной строки можно воспользоваться одним из двух методов:1) ПКМ — Выделить всёВыделится весь текст, но можете выделить сразу какой Вам угодно, просто как обычно зажав ЛКМ 2) ПКМ — ПометитьПоявится мигающий курсор в начале строки, которым можно управлять «стрелочками» на клавиатуре. И при нажатой кнопке shift выделить текст, управляя так же «стрелками» на клавиатуре. Либо выделаем снова с помощью мыши.

при желании, можете изменить настройки командной строки, выбрав пункт в меню выше «Свойства»

Отправка сообщения непосредственно из файла BAT

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

net send name Message text

Здесь параметр name означает название некоторого устройства, куда будет отправлено сообщение. В качестве самого сообщения следует прописать информацию Message text

Важно учитывать применяемый алфавит. Когда осуществляется работа с кириллицей, нужно применять кодировку MS-DOS (866 кодовая страница) или любую аналогичную ей

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

В качестве примера подобной программы можно отметить FAR. Следует выполнить открытие пакетного документа через этот текстовый редактор за счет нажатия клавиши F4 или выбора соответствующего пункта. Указывается кодировка DOS – она исключает проблему невозможности распознания символов системой.

Процессинг файлов и информации

  • Для того, чтобы найти файл в текущей директории сделайте find. -iname ‘*something*’. Для того, чтобы искать файл по всей системе используйте locate something (но не забывайте, что updatedb мог еще не проиндексировать недавно созданные файлы).

  • Для основого поиска по содержимому файлов (более сложному, чем grep -r) используйте ag.

  • Для конвертации HTML в текст: lynx -dump -stdin

  • Для конвертации разных типов разметки (HTML, маркдаун и т.д.) попробуйте pandoc.

  • Если нужно работать с XML, есть старая но хорошая утилита – xmlstarlet.

  • Для работы с JSON используйте jq.

  • Для работы с Excel и CSV-файлами используйте csvkit (программа предоставляет команды in2csv, csvcut, csvjoin, csvgrep и т.д.)

  • Для работы с Amazon S3 удобно работать с s3cmd и s4cmd (последний работает быстрее). Для остальных сервисов Амазона используйте стандартный aws.

  • Знайте про sort и uniq, включая флаги -u и -d, смотрите примеры ниже. Еще гляньте на comm.

  • Знайте про cut, paste, и join для работы с текстовыми файлами. Многие люди используют cut забыв про join.

  • Знайте о wc: для подсчета переводов строк (-l), для символов – (-m), для слов – words (-w), для байтового подсчета – (-c).

  • Знайте про tee, для копирования в файл из stdin и stdout, что-то типа ls -al | tee file.txt.

  • Не забывайте, что Ваша локаль влияет на многие команды, включая порядки сортировки, сравнение и производительность. Многие дистрибутивы Linux автоматически выставляют LANG или любую другую переменную в подходящую для Вашего региона. Из-за этого результаты функций сортировки могут работать непредсказуемо. Рутины i18n могут значительно снизить производительность сортировок. В некоторых случаях можно полностью этого избегать (за исключением редких случаев), сортируя традиционно побайтово, для этого export LC_ALL=C

  • Знайте основы awk и sed для простых манипуляций с данными. Например, чтобы получить сумму всех чисел, которые находятся в третьей колонки текстового файла можно использовать awk ‘{ x += $3 } END { print x }’. Скорее всего, это раза в 3 быстрее и раза в 3 проще чем делать это в Питоне.

  • Чтобы заменить все нахождения подстроки в одном или нескольких файлах:

Для того, чтобы переименовать сразу много файлов по шаблону, используйте rename. Для сложных переименований может помочь repren:

Используйте shuf для того, чтобы перемешать строки или выбрать случайную строчку из файла.
Знайте флаги sortа. Для чисел используйте -n, для работы с человекочитаемыми числами используйте -h (например du -h). Знайте как работают ключи (-t и -k). В частности, не забывайте что вам нужно писать -k1,1 для того, чтобы отсортировать только первое поле; -k1 значит сортировка учитывая всю строчку. Так же стабильная сортировка может быть полезной (sort -s)

Например для того, чтобы отсортировать самое важное по второму полю, а второстепенное по первому можно использовать sort -k1,1 | sort -s -k2,2`.
Если вам когда-нибудь придется написать код таба в терминале, например для сортировки по табу с флагом -t, используйте шорткат ctrl-v или напишите $’\t’. Последнее лучше, потому что его можно скопировать.
Стандартные инструменты для патчинга исходников это diff и patch

Так же посмотрите на diffstat для просмотра статистики диффа. diff -r работает для по всей директории. Используйте diff -r tree1 tree2 | diffstat для полной сводки изменений.
Для бинарников используйте hd для простых hex-дампом и bvi для двоичного изменения бинарников.
strings (в связке grep или чем-то похожем) помогает найти строки в бинарниках.
Для того, чтобы посмотреть разницу в бинарниках (дельта кодирование) используйте xdelta3.
Для конвертирования кодировок используйте iconv. Для более сложных задач – uconv, он поддерживает некоторые сложные фичи Юникода. Например эта команда переводит строки из файла в нижний регистр и убирает ударения (кои бывают, например, в Испанском)

  • Для того, чтобы разбить файл на куски используйте split (разбивает на куски по размеру), или csplit (по шаблону или регулярному выражению)

  • Используйте zless, zmore, zcat, и zgrep для работы с сжатыми файлами.

Команда driverquery

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

Самые полезные параметры этой команды — /s, /si и /fo. Первый параметр позволяет указать имя или IP-адрес удаленного узла, драйверы которого нужно исследовать. Второй параметр показывает цифровую подпись драйверов. Третий позволяет указать формат отчета: /fo TABLE — таблица (по умолчанию), /fo LIST — список, /fo CSV — CSV-формат, который удобно будет просматривать в Excel или подобной программе. Пример:

Рис. 4. Команда driverquery | more

Syntax

Parameters

Parameter Description
Specifies the environment variable to set or modify.
Specifies the string to associate with the specified environment variable.
/p Sets the value of to a line of input entered by the user.
Specifies a message to prompt the user for input. This parameter must be used with the /p parameter.
/a Sets to a numerical expression that is evaluated.
Specifies a numerical expression.
/? Displays help at the command prompt.

Remarks

  • If command extensions are enabled (the default) and you run set with a value, it displays all of the variables that begin with that value.

  • The characters , , , , and are special command shell characters, and they must be preceded by the escape character () or enclosed in quotation marks when used in (for example, «StringContaining&Symbol»). If you use quotation marks to enclose a string that contains one of the special characters, the quotation marks are set as part of the environment variable value.

  • Use environment variables to control the behavior of some batch files and programs and to control the way Windows and the MS-DOS subsystem appears and works. The set command is often used in the Autoexec.nt file to set environment variables.

  • If you use the set command without any parameters, the current environment settings are displayed. These settings usually include the COMSPEC and PATH environment variables, which are used to help find programs on disk. Two other environment variables used by Windows are PROMPT and DIRCMD.

  • If you specify values for and , the specified value is added to the environment and is associated with that variable. If the variable already exists in the environment, the new string value replaces the old string value.

  • If you specify only a variable and an equal sign (without ) for the set command, the value associated with the variable is cleared (as if the variable is not there).

  • If you use the /a parameter, the following operators are supported, in descending order of precedence:

    Operator Operation performed
    Grouping
    Unary
    Arithmetic
    Arithmetic
    Logical shift
    Bitwise AND
    Bitwise exclusive OR
    Expression separator
  • If you use logical ( or ) or modulus (%) operators, enclose the expression string in quotation marks. Any non-numeric strings in the expression are considered environment variable names, and their values are converted to numbers before they are processed. If you specify an environment variable name that is not defined in the current environment, a value of zero is allotted, which allows you to perform arithmetic with environment variable values without using the % to retrieve a value.

  • If you run set /a from the command line outside of a command script, it displays the final value of the expression.

  • Numeric values are decimal numbers unless prefixed by 0× for hexadecimal numbers or 0 for octal numbers. Therefore, 0×12 is the same as 18, which is the same as 022.

  • Delayed environment variable expansion support is disabled by default, but you can enable or disable it by using cmd /v.

  • When creating batch files, you can use set to create variables, and then use them in the same way that you would use the numbered variables %0 through %9. You can also use the variables %0 through %9 as input for set.

  • If you call a variable value from a batch file, enclose the value with percent signs (%). For example, if your batch program creates an environment variable named BAUD, you can use the string associated with BAUD as a replaceable parameter by typing %baud% at the command prompt.

Команда FINDSTR

Findstr — поиск образцов текста в файлах с использованием регулярных выражений.

Формат команды:

findstr                     ИмяФайла ]

, где строки — текст, поиск которого производится в файле, заданном параметром ИмяФайла ИмяФайла — файл или несколько файлов для поиска

Ключи команды:

/b

Сравнивает шаблон с началом строки.

Сравнивает шаблон с концом строки.

/I

Использует заданную строку буквально.

/r

Использует строку поиска как регулярное выражение. Команда Findstr интерпретирует все метасимволы как регулярные выражения, если не используется ключ /I.

/s

Задает поиск файлов в текущем каталоге и его подкаталогах.

/i

Задает поиск без различия строчных и заглавных букв.

Печатает точно совпавшие строки.

/v

Печатает строки, не содержащие совпадений.

/n

Печатает в начале совпавшей строки ее номер.

/m

Печатает только имя файла при обнаружении совпадения.

/o

Печатает смещение перед выводом строки с совпадением.

/p

Пропускает файлы с непечатаемыми символами.

/offline

Обработка файлов с автономным атрибутом.

/f:файл

Читает список из заданного файла.

/с:строка

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

/g:файл

Получает строки поиска из заданного файла.

/d:Список каталогов

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

/а:Атрибут цвета

Задает атрибуты цвета двумя шестнадцатеричными цифрами.

Пример использования команды findstr:

Сначала создадим текстовый файл 1.txt, используя команду copy con:

Теперь найдем строки содержащие слово «Я». Для этого введем команду:

C:\>findstr "Я" 1.txt

Если нам необходимо найти целую строку или определенное словосочетание, то воспользуемся командой:

C:\>findstr /с:"обманываться рад" 1.txt

Для вывода на экран строк не содержащих совпадений воспользуемся командой:

C:\>findstr /v /с:"обманываться рад" 1.txt

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий