Как мне набрать следующую строку в Терминале?


16

Я использую Ubuntu 12.10 и хочу запустить набор команд в терминале, и, как я вижу в инструкциях, каждая из этих команд начинается с новой строки. Я не знаю, как это сделать в терминале. Я не могу найти, какую клавишу нажать для возврата каретки на следующую строку.


4
Вы можете разделить команды, используя точку с запятой ";", как cd home; тест mkdir; ls -la
LnxSlck

9
@LnxSlck: Тем не менее, часто предпочтительнее разделять команды &&вместо ;. Таким образом, если одна из команд не будет выполнена, остальные команды не будут выполнены. Итак, используя ваш пример, если homeон не существует, вы не сможете случайно создать testкаталог в текущем каталоге.
Хаммар

Ответы:


16

Команды, которые вы видите в каждой строке, должны выполняться по одной.

Поэтому после ввода строки нажмите Enter для выполнения, затем выполните следующую команду.

Пример:

sudo apt-get update
sudo apt-get upgrade

Это две команды, которые должны быть выполнены одна за другой.

Выполнять сразу это будет похоже sudo apt-get update && sudo apt-get upgrade(есть и другие методы), но обычно это не требуется. Так что не волнуйся. Введите одну строку и нажмите Enter, это сделает свою работу.


Большое спасибо за ваш совет, хотелось бы, чтобы я знал это раньше !!! Тем не менее, мы живем и учимся :-)
Дебби Пул

4
@ user113090 Если Web-E ответил на ваш вопрос, не забудьте пометить его как принятый.
Дин

12

Поскольку Web-E объясняет самый прямой способ сделать то, что вы хотите, с помощью двух разных команд, я подумал, что покажу, что есть несколько способов выполнить несколько команд или продолжить команды на другой строке без немедленного их выполнения.

Продолжая длинные команды:

1) Самый распространенный способ создать одну длинную команду - это ввести свои команды, затем использовать обратную косую черту \, нажать return, а затем Bash предоставит вам другое приглашение вместо выполнения команды. Это вторичное приглашение называется PS2 и ожидает вашего ввода:

find /home/mike/Downloads -type f -iname '*.jpg' \
> 

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

Вы можете отменить эту дополнительную подсказку с помощью обычного Ctrl+ C.

2) Bash распознает некоторые команды, такие как циклы for (для i in ....), и приглашение появится немедленно; как если бы вы пропустили кавычку в команде:

apt-cache search 'libgimp*
> 

Несколько команд :

3) Как отмечает Lxnslck , вы можете разделять команды точкой с запятой:

which vlc; whereis vlc

/usr/bin/vlc
vlc: /usr/bin/vlc /etc/vlc /usr/lib/vlc /usr/bin/X11/vlc /usr/share/vlc /usr/share/man/man1/vlc.1.gz

4) Или вы можете использовать амперсанд &&для объединения двух команд:

./configure && make

4

Вы можете нажимать клавишу ВВОД после каждой строки, и если команда не завершена (например, команды mutiline, например, forциклы), терминал будет ждать, пока вы введете остальную часть команды. Если команда завершена, она будет выполнена, и вы введете следующую команду после, без проблем.

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


1

Когда это набор команд, которые вы ожидаете использовать более одного раза, вы должны поместить их в файл сценария bash . Например,

xrandr --newmode "1280x960_80.00" 139.25  1280 1368 1504 1728  960 963 967 1008 -hsync +vsync
xrandr --verbose --addmode VGA1 "1280x960_80.00"
xrandr --output HDMI1 --off --output LVDS1 --mode 1366x768 --pos 1280x512 --rotate normal --output DP1 --off --output VGA1 --mode "1280x960_80.00" --pos 0x0 --rotate normal
sleep 3
xfce4-panel -r

это то, что вы не хотели бы вводить когда-либо снова, но мне очень часто нужна именно эта последовательность команд. Таким образом, это происходит в файле с именем 1280x980-2head.sh, вы можете создать его с любым редактором по вашему выбору. Для того, чтобы сделать этот скрипт исполняемым , вы поставите линию #!/bin/bashперед всем (а притон ), и установить выполнения-разрешение: chmod +x 1280x980-2head.sh. Затем просто набираем ./128<tab>(автозаполнение) и <enter>выполняем все команды.


0

Вы можете поместить все в скобки; например:

(sudo add-apt-repository ppa:foo/bar
sudo apt-get update
sudo apt-get install my-package)

Команды будут выполняться одна за другой в под-оболочке.

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

sudo add-apt-repository ppa:foo/bar; sudo apt-get update; sudo apt-get install my-package

Вместо этого, если вы поместите «&&» между каждой командой, команда, которая следует за «&&», будет выполнена, только если предыдущая команда завершилась без ошибок, поэтому вам не нужно использовать ее для объединения команд; используйте вместо этого точку с запятой. И наоборот, если вы введете «||», следующая команда будет выполнена только в том случае, если первая команда завершится с ошибкой. Пример: (команда which проверяет, существует ли программа и не завершается ли с ошибкой)

which apt-get && echo "No error" || echo "Error"    # Will print "No error"
which jdhdsd && echo "No error" || echo "Error"  # Will print "Error"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.