Список установленных сертификатов в alpine

Короче говоря, printf %100sнапечатает 100 пробелов, а tr " " "="преобразует эти пробелы в знаки равенства, фактически напечатав 100 знаков равенства.

Разрушение:


printf— это оболочка, встроенная в -. Обычно она принимает два или более аргумента, первый из которых является «строкой формата», а остальные будут использоваться для заполнения заполнителей в этой строке формата. Как только этот шаблон будет полностью заполнен, он распечатает результат. Если осталось больше аргументов, он начнет сначала, заполнив дополнительные аргументы и распечатав результирующую строку.

Строка формата, используемая для printf, принимает спецификации формата, которые начинаются с %и заканчиваются одной буквой, поэтому %dозначает целое число (с использованием десятичной системы счисления, поэтому "d" ), %fозначает число с плавающей запятой -, а %sозначает строку символов. Символы, отличные от букв после %, являются модификаторами спецификации формата, и, в частности, числа используются для указания требуемой длины поля на выходе. Таким образом, %100sотформатирует строку так, чтобы она содержала не менее 100 символов, дополнит ее пробелами и сохранит правильное выравнивание (, другими словами, добавит пробелы в начале строки.)

Если передать дополнительный аргумент, он будет использовать его для этого поля %s, поэтому, например, printf %100s abcбудет печатать 97 пробелов (, чтобы получить общее количество 100, учитывая 3 в "abc" ), за которыми следует фактической строкой "abc". Но если аргумент не указан, то спецификация формата заполняется пустым или нулевым аргументом (, который является пустой строкой для %s, это будет 0 для %dи т. д. )То же самое как если бы была передана пустая строка, например printf %100s ''. Конечным результатом является то, что печатается только заполнение из 100 символов.

Таким образом, если сложить все вместе, printf %100sбудет напечатано 100 пробелов.


Теперь tr— это инструмент для перевода символов из ввода в вывод. Он принимает два аргумента, SET1 и SET2, каждый из которых является набором символов, а затем переводит первый символ SET1 в первый символ SET2, второй символ SET1 во второй символ SET2 и так далее. trсчитывает ввод из стандартного ввода и записывает его обратно в стандартный вывод (, поэтому он очень полезен в конвейерах, подобных приведенному выше.)trвсегда переводит все вхождения этого символа в заданную строку.

Например, tr aeiou 12345будет переводить гласные в нижнем регистре в числа от 1 до 5 в указанном порядке, поэтому слово «queueing» будет переведено, например, в «q52523ng». Вы также можете передать ему диапазоны символов, например tr a-z A-Z, чтобы превратить любую строчную букву в соответствующую прописную.

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


Собрав все вместе, выведите 100 пробелов, затем переведите каждый из них в знаки равенства.

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

1
04.03.2021, 13:23
1 ответ

/etc/ssl/certs/ca-certificates.crt— это длинный текстовый файл с объединенными сертификатами, каждый в формате PEM. Чтобы просмотреть детали каждого из них, вам нужно что-то вроде:

openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt | openssl pkcs7 -print_certs -noout

При этом создается временный файл PKCS #7 со всеми сертификатами в файле, а затем печатаются только поля темы и издателя. Если вам нужны все подробности, добавьте -textко второй команде.

3
18.03.2021, 22:27

Теги

Похожие вопросы