эти термины часто идут вместе, так что люди используют один из терминов для обозначения коллекции. (т. е. это обычно очевидно из контекста, что они имеют в виду окно терминала с интерфейсом командной строки оболочки).
, чтобы он не попал к многословным, я просто хотел сказать в xterm в качестве подставки-в для xterm / GNOME в консоль / mrxvt / и т. д. / и т. д. Же для bash.
консольимеет несколько другие специальные значения, так что оставим это сейчас.
терминал: что-то, что обеспечивает взаимодействие человека с программами через двунаправленный поток символов ASCII / UTF8 в / других персонажей, обычно с vt100 или аналогичная обработка Escape-код. (Напр. клавишу backspace, удалить, стрелки и т. д. генерировать коды побег. Программы могут печатать побег коды для перемещения курсора по экрану терминала, переключение на жирный шрифт и/или цвет, четкие или прокрутка экрана и т. д.) В старые времена, часто это специализированное устройство с экраном и клавиатурой и последовательным портом. Теперь, это, как правило, программа таких как xterm.
есть файлы устройства, программы для чтения/записи из/в терминалы и виртуальные терминалы также имеют другую сторону работает как файл устройства. Это когда в xterm пишет вашего входа, так что баш может прочитать его.
каждый терминал, в том числе и виртуальные, обеспечивает основную линию редактирования, когда это в вареном (в отличии от сырой). Это обрабатывается код ядра. Это баш, который обеспечивает линию редактирования, что вы можете сделать с помощью клавиш со стрелками. (Попробуйте запустить [Ф1] и введите, если вы хотите, чтобы увидеть, что основное ядро-линии редактирования, как. Забой работает, и несколько других вещей, как в настройках действовать до его закрытия.)
, хотя существует много кода ядра за терминальных устройств, оно будет обозначаться как терминал обработки кода, а не сам терминал.
изменить: Жиль убедил меня, что ссылаясь на терминал как терминал правильного использования. Эмуляторы терминала, и интерактивные программы, которые запускаются подключен к терминалу, все зависит от семантики терминала реализуется на уровне ядра. (Большая часть этого поведения стандартизирована в posix, и то же самое через Линукс/*БСД/другие Unix.) Полноэкранный редактор текста зависит от поведения ОС Unix телетайп материалов, а также курсор-движение бежать-код обработки, и многих других функций, эмулятор терминала.
однако физические ВТ100 с экрана, клавиатуры и последовательного порта является экземпляром терминал. Она не требует ядра Unix на другой конец своего последовательного порта для полноты. Что-то совершенно другое, может быть отправить его Escape-коды и в текстовом, и получать то же от него. Это будет просто ВТ100, хотя, не терминала Unix. Эмулятор терминала плюс семантика Unix телетайп составляют полный пакет терминала Unix, что программа, Как баш нормально работает.
терминал - стиль пользовательского интерфейса, где вы что-то тип, затем нажмите клавишу Return, чтобы сделать что-то случится. Он также используется в качестве сокращения для командной строки оболочки, такие как bash или MS-DOS, но вы также можете сказать: “это инструмент командной строки” о чем-то вроде программы fdisk. Рассматривая только те программы, которые используют терминал для их пользовательского интерфейса, два основных семей командной строки и на весь экран текст (например, редактором, например VI или [F2]).
командной строки программы, которые обычно запускаются на клеммах почти всегда по-прежнему работать со своими входными и выходными перенаправлены на файлы, но терминал полноэкранные программы, такие как редакторы и почтовые клиенты, являются интерактивными, а не работать.
командный интерпретатор-это программа для запуска других программ. В контексте Unix, это часто означает, оболочка командной строки (т. е. Bourne оболочки или с оболочкой эквивалент). Оболочки Unix также можете прочитать их ввод из файлов, т. е. скрипты. Они полны языков программирования, переменные, циклы и условные операторы, и многие программы написаны на bash (или только [Ф3] оболочка posix функции для удобства перемещения). Это также легко можно написать быстрый [Ф4] в интерактивную оболочку.
если сложить все вместе, оболочки, такие как bash (или любой другой программы, которую вы начали, запустив командную строку) будет получать символы из [ф5] терминального устройства после того, как в xterm пишет свой вклад в его сторону псевдо-терминал. Если вы запустите [ф6], затем нажмите [ф7], код ядра телетайп будет действовать на [F8] и отправить на [F9], чтобы процесс переднего плана на этот терминал. (Обратите внимание на использование консоли в данном контексте означает Unix и телетайп, а не эмулятор терминала или что-то подключил к последовательному порту.) Это происходит потому, что оболочка ставит терминал в "вареных" режим перед началом любой программы, что означает, что акты ядра на некоторых контрольно-последовательностей. (Код tty по-прежнему не имеет ничего общего с обработкой ВТ100 Escape-кодов, несколько низкий-коды ASCII управления). Если вместо окна xterm, вы используете текстовый терминал консоли Linux, то ядро делает ВТ100 эмуляции, и регулировать все это. Linux может быть скомпилирован без виртуальной консоли текст поддержки терминала, но не без поддержки телетайпа.
оболочки иногда используется как синоним для терминала (KDE еще есть эмулятор терминал называется терминал).
как 0xSheepdog очков, он также имеет и другое значение: локально оборудования взаимодействие человека.
в контексте ядра, консоль имеет еще одно специфическое значение: это терминал, где написано загрузки сообщения. Это может быть последовательный порт. Обычно, конечно, это текстовой консоли реализуется на уровне ядра поверх драйверы для графических устройств и USB/PS2 и на клавишных. Если вы загрузить Linux с [ф10] в командной строке, вы получите сообщения ядра на экране и на последовательный порт.
Linux реализует виртуальных консолей ([F11], чтобы Н). Вы можете поменять что одно ваше физическое экрана/клавиатуры управление с помощью клавиш Ctrl+Альт+ФН. Типичные дистрибутивы Linux создать 6, и начать [ф12] на все из них, так что даже если Вы не можете или не хотите запустить Х11, вы можете войти в 6 раз и переключаться между командой, Man-страницы, и все остальное, без запуска программы, как экрана. Linux (ядро) включает в себя ВТ100-стиль эмулятор терминала, чтобы обеспечить интерфейс терминала через экран и клавиатуру на виртуальных консолей.
стандартный 6 виртуальных терминалов с логином запрашивает почему сочетание клавиш Ctrl+АЛТ+значок получает вас обратно к вашей сессии Х11: x-сервер берет следующую доступную виртуальную консоль. (X-сервер открывает [от f13] напрямую, а не получать ваши нажатия клавиш от [ф14], хотя.)
так что "поменять в текстовой консоли" означает нажатие значок+АЛТ+ФН и использовать этот терминал. Когда компьютеры были медленными и не так много оперативной памяти, некоторые люди проводили большую часть своего времени на текстовых консолях, так как они были быстры, можно установить красивый шрифт, и даже изменить размер терминала, чтобы иметь меньше персонажей, но более на экране одновременно. Alt+влево и Alt+вправо поменять в консоли prev или Next. (Х11 снимает для своей консоли, конечно, оставив только сочетание клавиш Ctrl+Альт+ФН комбо.)
так Н это только один из этих терминов, которые не имеют один четко определенный технический смысл. Он имеет пару разных. (В зависимости от того как вы относитесь собственно терминал и терминал плюс обработка телетайп, можно сказать, что терминал также имеет несколько значений.)
Ваша оболочка и программы, такие как sudo, будут обрабатывать команду как путь, если она содержит хотя бы один символ /. Поскольку . представляет любую директорию, в которой вы сейчас находитесь, ./truecrypt-7.2-setup-x86 называет файл truecrypt-7.2-setup-x86 в текущем каталоге. Если этот файл отсутствует или файл не может быть запущен, тогда вы получите сообщение об ошибке.
Когда команда не содержит косой черты, каталоги, перечисленные в pathname [ ! d2], как говорит Сергей Колодяжный. Текущий каталог не будет автоматически искать - и не рекомендуется помещать . в $PATH. Таким образом, вы случайно не запускаете те вещи, которые вы не ожидали запускать, потому что у вас было cd d к каталогу, который их содержит.
Написание ./ перед именем исполняемого файла в текущем каталоге Сергей Колодяжный говорит , чтобы запустить его, но на самом деле это не специальный синтаксис. Например, если вы испортили свой $PATH, и вам нужно было запустить команду наподобие ls, вы могли бы написать /bin/ls. В этом случае или вообще нет необходимости .; / всегда является текущим каталогом, а / - это только разделитель каталогов, первое, что нужно /, где-то в пути, означающем, что вы имеете в виду, что это путь.
чтобы убедиться, что файл, который вы назвали, действительно существует в текущем каталоге. (Если это так, то проверьте его разрешения, как объясняет Чарльз Грин, но если вы извлекли файл из архива, то он не уже будет иметь исполняемые разрешения, если он предназначен для запуска.) [ ! d10]
Ваша оболочка и программы, такие как sudo, будут обрабатывать команду как путь, если она содержит хотя бы один символ /. Поскольку . представляет любую директорию, в которой вы сейчас находитесь, ./truecrypt-7.2-setup-x86 называет файл truecrypt-7.2-setup-x86 в текущем каталоге. Если этот файл отсутствует или файл не может быть запущен, тогда вы получите сообщение об ошибке.
Когда команда не содержит косой черты, каталоги, перечисленные в pathname [ ! d2], как говорит Сергей Колодяжный. Текущий каталог не будет автоматически искать - и не рекомендуется помещать . в $PATH. Таким образом, вы случайно не запускаете те вещи, которые вы не ожидали запускать, потому что у вас было cd d к каталогу, который их содержит. Написание ./ перед именем исполняемого файла в текущем каталоге
чтобы убедиться, что файл, который вы назвали, действительно существует в текущем каталоге. (Если это так, то проверьте его разрешения, как объясняет Чарльз Грин, но если вы извлекли файл из архива, то он не уже будет иметь исполняемые разрешения, если он предназначен для запуска.) [ ! d10]
Ваша оболочка и программы, такие как sudo, будут обрабатывать команду как путь, если она содержит хотя бы один символ /. Поскольку . представляет любую директорию, в которой вы сейчас находитесь, ./truecrypt-7.2-setup-x86 называет файл truecrypt-7.2-setup-x86 в текущем каталоге. Если этот файл отсутствует или файл не может быть запущен, тогда вы получите сообщение об ошибке.
Когда команда не содержит косой черты, каталоги, перечисленные в pathname [ ! d2], как говорит Сергей Колодяжный. Текущий каталог не будет автоматически искать - и не рекомендуется помещать . в $PATH. Таким образом, вы случайно не запускаете те вещи, которые вы не ожидали запускать, потому что у вас было cd d к каталогу, который их содержит. Написание ./ перед именем исполняемого файла в текущем каталоге
чтобы убедиться, что файл, который вы назвали, действительно существует в текущем каталоге. (Если это так, то проверьте его разрешения, как объясняет Чарльз Грин, но если вы извлекли файл из архива, то он не уже будет иметь исполняемые разрешения, если он предназначен для запуска.) [ ! d10]
.. / часть команды говорит: «Посмотрите в текущем каталоге и выполните команду« truecrypt-7.2-setup-x86 »отсюда». Вам необходимо запустить эту команду из каталога, в котором вы распаковали файл.
Это можно протестировать: в том же окне терминала, где вы пытаетесь выполнить команду, введите команду ls -l true* - если файл присутствующий в текущем рабочем каталоге, будет отображаться листинг, показывающий файл (и пучок дополнительной информации).
Как заметила Zanna в комментариях, у вашего файла могут не быть разрешения на выполнение - это может легко фиксироваться. В качестве тестового примера в моем каталоге показано
chick@dad:~/test$ ls -l
total 4
-rw-r--r-- 1 chick chick 788 Oct 27 06:15 rFullBack
chick@dad:~/test$
, а файл «rFullBack» перечисляет «-rw-» в качестве моего разрешения для чтения и записи файла. Я могу выполнить команду chmod +x rFullBack, а список каталогов изменится на
chick@dad:~/test$ ls -l
total 4
-rwxr-xr-x 1 chick chick 788 Oct 27 06:15 rFullBack
chick@dad:~/test$
Там мои разрешения теперь «-rwx», указывая, что я могу выполнить файл.
Короче говоря, если файл существует в вашем каталоге
, запустите команду
chmod +x ./truecrypt-7.2-setup-x86
, а затем команду
sudo ./truecrypt-7.2-setup-x86
Нет, это не команда. Как работают оболочки, когда вы вводите строку текста, первое слово будет обрабатываться как команда, и если команда не является одной из встроенных оболочек, оболочка будет смотреть на все местоположения, перечисленные в PATH переменная среды.
Что произойдет, если команда, которую вы хотите запустить, находится в том же каталоге, который вы сейчас находите, но этот каталог отсутствует в списке каталогов PATH? Вот тогда вам нужно использовать ./. Это точно так же, как и /bin/bash - вы сообщаете оболочке, где находится ваша желаемая команда, полный путь к ней. И в случае с ./ вы говорите, чтобы оболочка «смотри в этом каталоге». Итак, важно то, что вы должны находиться в том же каталоге, где находится файл.
Конечно, чтобы фактически запустить исполняемый файл, он должен иметь установленный бит бит, поэтому вам нужно будет chmod +x ./my_file.
Итак, важные шаги:
cd, где вы сохранили файл; если он находится в ~/Downloads, затем cd ~/Downloads Выполнить chmod +x ./truecrypt-7.2-setup-x86, это говорит: «Сделать файл truecrypt-7.2-setup-x86, который находится в этом исполняемом каталоге» И теперь сделайте sudo ./truecrypt-7.2-setup-x86Обратите внимание, что использование ./ не является случайным поведением, но на самом деле является стандартом, определенным стандартом Portable Operating System Interface (aka POSIX), в частности, см. раздел «Поиск и выполнение команд».
$ # my script is in ~/Downloads folder
$ stat -c "%n" /home/xieerqi/Downloads/my_script.sh
/home/xieerqi/Downloads/my_script.sh
$ # if I run sudo ./my_script.sh, we get an error
$ sudo ./my_script.sh
[sudo] password for xieerqi:
sudo: ./my_script.sh: command not found
$ # of course the command not found because file is not in ./, not in this dir
$ # this is not sudo's problem
$ # but sudo does indeed show the same error even if you're in same directory
$ cd ./Downloads/
$ sudo ./my_script.sh
[sudo] password for xieerqi:
sudo: ./my_script.sh: command not found
ПРИМЕЧАНИЕ: сообщение об ошибке, данное sudo, очевидно, вводит в заблуждение, поэтому это нужно иметь в виду; однако, пожалуйста, обратите внимание, что это не ядро вопроса, который задает ОП.
В руководстве bash 4.3 «РАЗРЕШЕНИЕ КОМАНДЫ»:
Если имя не является ни функцией оболочки, ни встроенным, а не содержит нити, bash ищет каждый элемент PATH для каталога, содержащего исполняемый файл с этим именем.Из Стандарт портативного интерфейса операционной системы (aka POSIX) :
Если имя не является ни функцией оболочки, ни встроенным, и не содержит slashes, bash ищет каждый элемент PATH для каталога, содержащего исполняемый файл с этим именем.
Нет, это не команда. Как работают оболочки, когда вы вводите строку текста, первое слово будет обрабатываться как команда, и если команда не является одной из встроенных оболочек, оболочка будет смотреть на все местоположения, перечисленные в PATH переменная среды.
Что произойдет, если команда, которую вы хотите запустить, находится в том же каталоге, который вы сейчас находите, но этот каталог отсутствует в списке каталогов PATH? Вот тогда вам нужно использовать ./. Это точно так же, как и /bin/bash - вы сообщаете оболочке, где находится ваша желаемая команда, полный путь к ней. И в случае с ./ вы говорите, чтобы оболочка «смотри в этом каталоге». Итак, важно то, что вы должны находиться в том же каталоге, где находится файл.
Конечно, чтобы фактически запустить исполняемый файл, он должен иметь установленный бит бит, поэтому вам нужно будет chmod +x ./my_file.
Итак, важные шаги:
cd, где вы сохранили файл; если он находится в ~/Downloads, затем cd ~/Downloads Выполнить chmod +x ./truecrypt-7.2-setup-x86, это говорит: «Сделать файл truecrypt-7.2-setup-x86, который находится в этом исполняемом каталоге» И теперь сделайте sudo ./truecrypt-7.2-setup-x86Обратите внимание, что использование ./ не является случайным поведением, но на самом деле является стандартом, определенным стандартом Portable Operating System Interface (aka POSIX), в частности, см. раздел «Поиск и выполнение команд».
$ # my script is in ~/Downloads folder
$ stat -c "%n" /home/xieerqi/Downloads/my_script.sh
/home/xieerqi/Downloads/my_script.sh
$ # if I run sudo ./my_script.sh, we get an error
$ sudo ./my_script.sh
[sudo] password for xieerqi:
sudo: ./my_script.sh: command not found
$ # of course the command not found because file is not in ./, not in this dir
$ # this is not sudo's problem
$ # but sudo does indeed show the same error even if you're in same directory
$ cd ./Downloads/
$ sudo ./my_script.sh
[sudo] password for xieerqi:
sudo: ./my_script.sh: command not found
ПРИМЕЧАНИЕ: сообщение об ошибке, данное sudo, очевидно, вводит в заблуждение, поэтому это нужно иметь в виду; однако, пожалуйста, обратите внимание, что это не ядро вопроса, который задает ОП.
В руководстве bash 4.3 «РАЗРЕШЕНИЕ КОМАНДЫ»:
Если имя не является ни функцией оболочки, ни встроенным, а не содержит нити, bash ищет каждый элемент PATH для каталога, содержащего исполняемый файл с этим именем.Из Стандарт портативного интерфейса операционной системы (aka POSIX) :
Если имя не является ни функцией оболочки, ни встроенным, и не содержит slashes, bash ищет каждый элемент PATH для каталога, содержащего исполняемый файл с этим именем.
.. / часть команды говорит: «Посмотрите в текущем каталоге и выполните команду« truecrypt-7.2-setup-x86 »отсюда». Вам необходимо запустить эту команду из каталога, в котором вы распаковали файл.
Это можно протестировать: в том же окне терминала, где вы пытаетесь выполнить команду, введите команду ls -l true* - если файл присутствующий в текущем рабочем каталоге, будет отображаться листинг, показывающий файл (и пучок дополнительной информации).
Как заметила Zanna в комментариях, у вашего файла могут не быть разрешения на выполнение - это может легко фиксироваться. В качестве тестового примера в моем каталоге показано
chick@dad:~/test$ ls -l
total 4
-rw-r--r-- 1 chick chick 788 Oct 27 06:15 rFullBack
chick@dad:~/test$
, а файл «rFullBack» перечисляет «-rw-» в качестве моего разрешения для чтения и записи файла. Я могу выполнить команду chmod +x rFullBack, а список каталогов изменится на
chick@dad:~/test$ ls -l
total 4
-rwxr-xr-x 1 chick chick 788 Oct 27 06:15 rFullBack
chick@dad:~/test$
Там мои разрешения теперь «-rwx», указывая, что я могу выполнить файл.
Короче говоря, если файл существует в вашем каталоге
, запустите команду
chmod +x ./truecrypt-7.2-setup-x86
, а затем команду
sudo ./truecrypt-7.2-setup-x86
Нет, это не команда. Как работают оболочки, когда вы вводите строку текста, первое слово будет обрабатываться как команда, и если команда не является одной из встроенных оболочек, оболочка будет смотреть на все местоположения, перечисленные в PATH переменная среды.
Что произойдет, если команда, которую вы хотите запустить, находится в том же каталоге, который вы сейчас находите, но этот каталог отсутствует в списке каталогов PATH? Вот тогда вам нужно использовать ./. Это точно так же, как и /bin/bash - вы сообщаете оболочке, где находится ваша желаемая команда, полный путь к ней. И в случае с ./ вы говорите, чтобы оболочка «смотри в этом каталоге». Итак, важно то, что вы должны находиться в том же каталоге, где находится файл.
Конечно, чтобы фактически запустить исполняемый файл, он должен иметь установленный бит бит, поэтому вам нужно будет chmod +x ./my_file.
Итак, важные шаги:
cd, где вы сохранили файл; если он находится в ~/Downloads, затем cd ~/Downloads Выполнить chmod +x ./truecrypt-7.2-setup-x86, это говорит: «Сделать файл truecrypt-7.2-setup-x86, который находится в этом исполняемом каталоге» И теперь сделайте sudo ./truecrypt-7.2-setup-x86Обратите внимание, что использование ./ не является случайным поведением, но на самом деле является стандартом, определенным стандартом Portable Operating System Interface (aka POSIX), в частности, см. раздел «Поиск и выполнение команд».
$ # my script is in ~/Downloads folder
$ stat -c "%n" /home/xieerqi/Downloads/my_script.sh
/home/xieerqi/Downloads/my_script.sh
$ # if I run sudo ./my_script.sh, we get an error
$ sudo ./my_script.sh
[sudo] password for xieerqi:
sudo: ./my_script.sh: command not found
$ # of course the command not found because file is not in ./, not in this dir
$ # this is not sudo's problem
$ # but sudo does indeed show the same error even if you're in same directory
$ cd ./Downloads/
$ sudo ./my_script.sh
[sudo] password for xieerqi:
sudo: ./my_script.sh: command not found
ПРИМЕЧАНИЕ: сообщение об ошибке, данное sudo, очевидно, вводит в заблуждение, поэтому это нужно иметь в виду; однако, пожалуйста, обратите внимание, что это не ядро вопроса, который задает ОП.
В руководстве bash 4.3 «РАЗРЕШЕНИЕ КОМАНДЫ»:
Если имя не является ни функцией оболочки, ни встроенным, а не содержит нити, bash ищет каждый элемент PATH для каталога, содержащего исполняемый файл с этим именем.Из Стандарт портативного интерфейса операционной системы (aka POSIX) :
Если имя не является ни функцией оболочки, ни встроенным, и не содержит slashes, bash ищет каждый элемент PATH для каталога, содержащего исполняемый файл с этим именем.
.. / часть команды говорит: «Посмотрите в текущем каталоге и выполните команду« truecrypt-7.2-setup-x86 »отсюда». Вам необходимо запустить эту команду из каталога, в котором вы распаковали файл.
Это можно протестировать: в том же окне терминала, где вы пытаетесь выполнить команду, введите команду ls -l true* - если файл присутствующий в текущем рабочем каталоге, будет отображаться листинг, показывающий файл (и пучок дополнительной информации).
Как заметила Zanna в комментариях, у вашего файла могут не быть разрешения на выполнение - это может легко фиксироваться. В качестве тестового примера в моем каталоге показано
chick@dad:~/test$ ls -l
total 4
-rw-r--r-- 1 chick chick 788 Oct 27 06:15 rFullBack
chick@dad:~/test$
, а файл «rFullBack» перечисляет «-rw-» в качестве моего разрешения для чтения и записи файла. Я могу выполнить команду chmod +x rFullBack, а список каталогов изменится на
chick@dad:~/test$ ls -l
total 4
-rwxr-xr-x 1 chick chick 788 Oct 27 06:15 rFullBack
chick@dad:~/test$
Там мои разрешения теперь «-rwx», указывая, что я могу выполнить файл.
Короче говоря, если файл существует в вашем каталоге
, запустите команду
chmod +x ./truecrypt-7.2-setup-x86
, а затем команду
sudo ./truecrypt-7.2-setup-x86