lsblk не указывает, является ли раздел диском подкачки на Arch 2020.02.01

  1. Что такое <?

    Это перенаправление ВВОДА команды на чтение ИЗ файла. Вы можете поставить его до или после команды:

    $ echo abcd > in
    $ cat in
    abcd
    $ cat <in
    abcd
    $ <in cat
    abcd
    

    Проще говоря, команда читает файл. Разница между cat inи cat <inзаключается в том, что <задает перенаправление стандартного ввода STDIN ()для процесса cat, в то время как в cat ininявляется аргументом, а Команда catдолжна что-то с этим сделать внутри. (Откройте его, затем прочитайте и т. д.)

  2. Что такое |?

    Это перенаправление на процесс. Он может следовать только команде:

    $ | cat in
    bash: syntax error near unexpected token `|'
    $ cat in | cat
    abcd
    $ cat in | cat |
    > 
    

    (...и ожидание ввода...)

  3. Что это делает:< /dev/urandom tr -dc 'a-zA-Z' | head -c 12?

    Разбить его на более мелкие части (команды с перенаправлениями):

    • < /dev/urandom tr -dc 'a-zA-Z'= tr -dc 'a-zA-Z'и< /dev/urandom

      Значение :сделайте перевод того, что вы прочитали из urandom.

    • |-перенаправление на процесс с использованием анонимного канала

    • head -c 12-это процесс, получающий перенаправление

    Вся фраза имеет смысл, не так ли?

  4. Что это:< /dev/urandom | tr -dc 'a-zA-Z' | head -c 12?

    Разбить -вниз:

    • < /dev/urandom-нет команды и перенаправление с/dev/urandom
    • |-перенаправление на процесс с использованием анонимного канала
    • tr -dc 'a-zA-Z'-процесс, получающий перенаправление
    • и так далее...

    Что здесь не так? В первом «предложении» нет команды.

  5. Что такое >?

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

    .
    $ >out echo abcd
    $ cat out
    abcd
    $ echo dcba >tuo
    $ cat tuo
    dcba
    
  6. Что это должно делать:gunzip < HP-Fax4-hpcups.ppd.gz | cat > ouT1?

    Анализ:

    • gunzip < HP-Fax4-hpcups.ppd.gz= перенаправить с HP-Fax4-hpcups.ppd.gzнаgunzip(разрешить gunzipпрочитать этот файл)
    • |-перенаправить вывод в процесс
    • cat > ouT1= cat— это процесс, который получает перенаправление, а затем его вывод перенаправляется в файлouT1

    Все в порядке. Все части имеют смысл.

  7. Что же это такое:gunzip < HP-Fax4-hpcups.ppd.gz cat > ouT1?

    Я не уверен на 100%, как это интерпретируется всеми заинтересованными сторонами, но давайте предположим. Ошибка такая:

    gzip: cat.gz: No such file or directory 
    

    Первое слово в этой ошибке — gzip, поэтому мы знаем, что gzip запущен. Также мы знаем (, по крайней мере, я знаю ), что перенаправления устанавливаются продавцом до того, как команда будет интерпретирована. Поэтому я анализирую это так:

      Оболочка
    • < HP-Fax4-hpcups.ppd.gz-устанавливает перенаправление INPUT процесса на HP-Fax4-hpcups.ppd.gz, т.е.выполняемая команда будет читать из этого файла
    • > ouT1-ВЫВОД команды должен быть перенаправлен НАouT1

    Пока все хорошо. На столе осталось вот это:gunzip cat. Стандартная интерпретация этого состоит в том, что gunzip— это команда, а cat— ее аргумент. Итак, теперь gunzipзапускает (с перенаправлениями IN и OUT, установленными ), и получает строку catв качестве первого аргумента. И почему-то выдает ошибку:

    gzip: cat.gz: No such file or directory
    

    Что это значит, опять? Он gzipговорит, что не может найти cat.gz. Он хочет что-то с ним сделать (, скорее всего, открыть его ), а такого файла или каталога нет. Таким образом, это должно быть вопросом его внутреннего состояния, почему он делает cat.gzиз cat, которое он получил в качестве аргумента. Простой эксперимент показывает, что он ожидает, что аргумент будет в формате gzip :

    .
    $ echo asdf > cat.gz
    $ gunzip < in  cat >  ouT1
    
    gzip: cat.gz: not in gzip format
    

    Файл inздесь представляет собой простой текстовый файл, отсюда и пустая строка, как я понимаю.

0
01.02.2020, 20:52
1 ответ

Оказывается, я забыл бежать:

swapon /dev/sda2
0
28.04.2021, 23:24

Теги

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