Отключите все предупреждения для пользователя (shell_exec) [duplicate]

Я использую карту NVIDIA только для выполнения CUDA и узнаю этот подход:

Все время я использую карту intel, и это подтверждается командой lspci | grep -E "VGA|3D":

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)
[d2 ] В соответствующей строке для карты NVIDIA вы должны видеть, что (rev ff) означает, что она выключена.

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

sudo prime-select nvidia
sudo prime-switch

После этой команды lspci | grep -E "VGA|3D" report:

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

Обратите внимание на (rev a2), а не (rev ff) в соответствующей строке. Теперь карта готова к вычислению.

После вычислений я использую обратные действия:

sudo prime-select intel
sudo prime-switch

И lspci | grep -E "VGA|3D" сообщает:

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)
153
задан 15 November 2017 в 17:27

8 ответов

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

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

> file перенаправляет stdout на file 1> file перенаправляет stdout в файл 2> file перенаправляет stderr в файл &> file перенаправляет stdout и stderr в файл

/dev/null - это нулевое устройство, которое требует любого ввода, который вы хотите, и выбрасывает его. Он может использоваться для подавления любого выхода.

202
ответ дан 18 July 2018 в 05:36

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

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

> file перенаправляет stdout на file 1> file перенаправляет stdout в файл 2> file перенаправляет stderr в файл &> file перенаправляет stdout и stderr в файл

/dev/null - это нулевое устройство, которое требует любого ввода, который вы хотите, и выбрасывает его. Он может использоваться для подавления любого выхода.

204
ответ дан 24 July 2018 в 18:22

Короче говоря, он перенаправляет stderr (fd 2) в черное отверстие (отбрасывает вывод команды).

Еще один распространенный случай использования

command > /dev/null 2>&1 &

запустить команду в фоновом режиме, отменить stdout и stderr

command >> /path/to/log 2>&1 &

запустить команду и перенаправить stdout и stderr в файл журнала

15
ответ дан 18 July 2018 в 05:36

/dev/null рассматривается как черная дыра в Linux / Unix, поэтому вы можете поместить это в это, но в конце вы не сможете вернуть это из /dev/null.

Так далее 2> означает, что вы перенаправляете [т.е. >] stderr [т.е. 2] в черную дыру [т.е. /dev/null]

Ваша команда:

grep -i 'abc' content 2>/dev/null

Помните, не пытайтесь положить конец другой косой чертой, подобной этой, - 2>/dev/null/

5
ответ дан 18 July 2018 в 05:36

Эта команда grep имеет неправильный синтаксис. Она должна быть чем-то вроде

grep -ri content /support/security/bulletins/ 2> /dev/null

, а 2> / dev / null означает перенаправление всех ошибок, создаваемых этой командой, на / dev / null, что отбрасывает их и не отображает их на экране (или где в настоящий момент указывается стандартный дескриптор файла ошибки). / dev / null - это файл, который, когда вы записываете данные, никуда не годится.

-3
ответ дан 18 July 2018 в 05:36

Короче говоря, он перенаправляет stderr (fd 2) в черное отверстие (отбрасывает вывод команды).

Еще один распространенный случай использования

command > /dev/null 2>&1 &

запустить команду в фоновом режиме, отменить stdout и stderr

command >> /path/to/log 2>&1 &

запустить команду и перенаправить stdout и stderr в файл журнала

16
ответ дан 24 July 2018 в 18:22
  • 1
    Есть ли веская причина использовать > /dev/null 2>&1 вместо &> /dev/null? – Craig McQueen 30 November 2015 в 10:43
  • 2
    @CraigMcQueen &> является новым в Bash 4, первый - это просто традиционный способ, я просто привык к нему (легко запомнить). – Terry Wang 30 November 2015 в 16:24

/dev/null рассматривается как черная дыра в Linux / Unix, поэтому вы можете поместить это в это, но в конце вы не сможете вернуть это из /dev/null.

Так далее 2> означает, что вы перенаправляете [т.е. >] stderr [т.е. 2] в черную дыру [т.е. /dev/null]

Ваша команда:

grep -i 'abc' content 2>/dev/null

Помните, не пытайтесь положить конец другой косой чертой, подобной этой, - 2>/dev/null/

5
ответ дан 24 July 2018 в 18:22

Эта команда grep имеет неправильный синтаксис. Она должна быть чем-то вроде

grep -ri content /support/security/bulletins/ 2> /dev/null

, а 2> / dev / null означает перенаправление всех ошибок, создаваемых этой командой, на / dev / null, что отбрасывает их и не отображает их на экране (или где в настоящий момент указывается стандартный дескриптор файла ошибки). / dev / null - это файл, который, когда вы записываете данные, никуда не годится.

-3
ответ дан 24 July 2018 в 18:22
  • 1
    Нет ничего плохого, если вы используете 2>/dev/null. Эти 2 являются эквивалентами: > file и >file. И почему grep -ri? – Radu Rădeanu 26 September 2013 в 14:02
  • 2
    Кстати, он также может искать строку /support/security/bulletins/ в файле с именем content =). – Alaa Ali 26 September 2013 в 14:06
  • 3
    @ RaduRădeanu неправильный синтаксис не на 2 & gt; но он, вероятно, изменил аргументы grep, так как иначе grep вряд ли приведет к большому количеству ошибок, за исключением того, что не сможет открыть файл с именем «content». – sivann 27 September 2013 в 17:24
  • 4
    @sivann Это плохое предположение. Итак, где неправильный синтаксис? OP ничего не говорит об этом ... Он просто хотел знать, что это значит 2>/dev/null – Radu Rădeanu 27 September 2013 в 20:02
  • 5
    Вероятно, ОП изменил вопрос. Этот ответ, похоже, относится к другому вопросу. – sivann 26 September 2016 в 18:27

Другие вопросы по тегам:

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