Я не уверен, что XDG_VTNR вовлекает, но этот сценарий работы для меня, поместите строку в ~/.bashrc
(Я делаю auto-X на tty3),
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty3 ]]; then exec startx; fi
Также определите "не работу", делает она работает, если Вы запускаетесь startx
вручную? В противном случае исследуйте свой ~/.xinitrc сначала.
jobs
не реальная команда, а команда, которая встроена к оболочке, которую Вы используете:
martin@dogmeat:~$ type jobs
jobs is a shell builtin
Когда Вы попытаетесь выполнить его без оболочки, Вы получите сообщение об ошибке, потому что нет никакого двоичного названного исполняемого файла jobs
.
Это также не имеет страницы справочника, потому что это - просто встроенное. Заглянуть man builtins
поскольку Marco сказал, в man bash
или в странице справочника соответствующей оболочки, которую Вы используете, если Вы не используете bash
.
Править: для объяснения, что означает запущение программы без оболочки: когда процесс в Linux хочет запустить другой процесс (ветвление и должностное лицо), это может или перенести этот процесс в оболочку или запустить его непосредственно без оболочки. Например, в perl
можно использовать system
функционируйте для запуска нового процесса. Это хорошо работает с реальные программные файлы как echo
(Я загрузился warnings
модуль здесь также, таким образом, мы видим сообщения об ошибках):
martin@martin ~ % ll /bin/echo
-rwxr-xr-x 1 root root 31K Jan 17 2013 /bin/echo*
martin@martin ~ % perl -Mwarnings -e 'system "echo", "test"'
test
Но это не работает с оболочкой, встроенной как jobs
, потому что нет никакого двоичного файла jobs
:
martin@martin ~ % perl -Mwarnings -e 'system "jobs"'
Can't exec "jobs": No such file or directory at -e line 1.
Конечно, когда Вы уже работаете в интерактивной оболочке, Вы, вероятно, не споткнетесь эту проблему. Но это релевантно в некоторых других ситуациях, например, при использовании Gnome Alt+F2 выполненное диалоговое окно. Это не переносит Вашу команду в оболочку и поэтому реальные двоичные файлы, хорошо работает при попытке работать jobs
просто покажет сообщение об ошибке.
Из Вашего исходного сообщения об ошибке jobs : not found
Я предположил, что Вы находитесь так или иначе не в оболочке, потому что в оболочке jobs
должен, конечно, хорошо работать.
Я могу получить то сообщение об ошибке с:
$ ash -c $'Steve\rjobs\\ '
jobs : not found
ash
на самом деле выводы:
ash: 1: Steve\rjobs : not found
Но на терминале, этом \r
перемещает курсор в начало строки, и jobs: not found
перезаписи ash: 1: Steve
.
Кроме этого, Ваше сообщение об ошибке может предположить что, независимо от того, что попробовано выполниться jobs
команда не могла найти его.
Существует a jobs
встроенная команда во всех оболочках csh
(где это произошло), POSIX и fish
семейства. Это перечисляет задания, в настоящее время сохраняемые интерактивной оболочкой, таким образом, это не имеет никакого значения вне оболочки и реализовано как встроенная команда оболочки (см. данную документацию оболочки для соответствия jobs
документация или спецификация POSIX).
Существует часто нет jobs
управляйте как исполняемый файл (хотя POSIX действительно требует, чтобы было), и где там похож на Солярисе, он ничего не делает (как jobs
a ksh
напишите сценарий там, который называет ksh jobs
встроенный, это просто сообщает о заданиях (так ни один) этого нового ksh
оболочка, которая интерпретирует сценарий).
В тех системах, которые имеют нет jobs
команда в файловой системе, управляет той попыткой выполниться jobs
не вызывая оболочку для парсинга командной строки сообщил бы об ошибке:
$ perl -le 'exec "jobs" or die "jobs: $!"'
jobs: No such file or directory at -e line 1.
$ env jobs
env: jobs: No such file or directory
$ find . -prune -exec jobs \;
find: `jobs': No such file or directory
$ rc -c jobs
jobs not found
Те, которые действительно называют оболочку, успешно выполнились бы, но потому что они запустят новую оболочку, та оболочка не имела бы никакого задания для создания отчетов:
$ awk 'BEGIN {system("jobs")}'
$ expect -c 'system jobs'
$ perl -le 'exec "jobs || :" or die "jobs: $!"'
$ python -c 'import os; os.system("jobs")'
$
Какого возраста та книга? Оболочки Unix не всегда имели управление заданиями. Исходная Оболочка Bourne не сделала, и некоторое время это было характерно для этих 2 вариантов быть sh
(Граница, никакое управление заданиями) и csh
(управление заданиями). Ответ книги мог бы быть этим jobs
будет not found
когда Вы используете Оболочку Bourne.
Единственная оболочка я могу легко найти теперь без a jobs
команда posh
.
В zsh
можно работать disable jobs
во-первых, и затем jobs
будет not found
.
help jobs
если Вы находитесь на Bash. – Joseph R. 28.01.2014, 19:46help
, но с другой стороны, я используюzsh
и это не поддерживает его:/ – Martin von Wittich 28.01.2014, 19:55When you try to run it without a shell
? – crisron 28.01.2014, 20:11type -a jobs
. С оболочкой Bash можно получить доступ к отдельной справке команд с помощьюhelp
команда:help jobs
. – slm♦ 28.01.2014, 20:29