Что означает, когда я ввожу команду, а терминал ничего не делает? [закрыто]

Я новичок в Linux (я использую Ubuntu). Я изучаю новые команды для терминала и даже следую некоторым руководствам/форумам о том, как делать вещи. Иногда я набираю команду, и терминал делает новую строку, а затем сидит с мигающим курсором после последней команды, которую я набрал.

Иногда я думаю, что компьютер просто думает и ему нужно время, чтобы что-то сделать (хотя было бы неплохо иметь какую-то индикацию прогресса в выполнении поставленной задачи). Иногда терминал продвигается, позволяя мне ввести новую команду, а иногда я жду несколько минут, прежде чем нажать ctrl+c, чтобы остановить то, что он делал.

Было бы неплохо знать, с чем я имею дело, чтобы я мог лучше понять, должен ли я ждать или просто теряю время.

0
задан 7 July 2014 в 04:14

2 ответа

Я заключил бы в кавычки Eric S. Raymond Искусство Программирования Unix:

Правило Тишины: Когда программа не имеет ничего удивляющего для высказывания, она ничего не должна говорить.

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

Этот “silence является правилом golden”, развитым первоначально, потому что Unix предшествует видеодисплеям. На медленных терминалах печати 1969 каждая строка ненужного вывода была серьезным дренажом на времени пользователя. Того ограничения не стало, но превосходные причины краткости остаются.

я думаю, что краткость программ Unix является центральной функцией стиля. Когда вывод Вашей программы становится чьим-либо входом, должно быть легко выбрать необходимые биты. И для людей это - необходимость человеческих факторов — важная информация, не должен быть смешан в с многословием о внутреннем поведении программы. Если вся отображенная информация важна, важную информацию легко найти.

- Ken Arnold

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

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

8
ответ дан 7 July 2014 в 04:14

Существуют некоторые команды, которые ничего не печатают на стандартном ни выводе ошибок.

, Но они устанавливают код возврата соответственно. К коду возврата любой команды можно получить доступ $? переменная сразу после выполнения команды. Если это 0, то команда работала успешно. Если это - значение, больше, чем 0, то ошибка произошла.

Это очень удобно при использовании этих команд в сценарии, поскольку просто необходимо сделать что-то вроде этого:

command && echo "Returned an OK status" || echo "Returned an non-OK status"

Или, когда больше мер должно быть принято основа на возвращенном состоянии:

command
if [ $? == 0 ]; then
   # code to be executed when the command was executed successfully
else
   # code to be executed when the command was not executed successfully
fi

В других случаях, это - путь, используемый командой, чтобы сказать, что что-то включено или нет, как эти selinuxenabled команда, которые возвращаются 0, если SE (Расширенная безопасность) Linux активируется, 1, если это не.

4
ответ дан 7 July 2014 в 04:14

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

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