ターミナルの次の行に入力するにはどうすればよいですか?


16

私はUbuntu 12.10を使用していますが、ターミナルで一連のコマンドを実行したいのですが、指示に表示されている内容から、これらのコマンドはそれぞれ新しい行で始まります。ターミナルでこれを行う方法がわかりません。次の行に復帰するために押すキーが見つかりません。


4
cd home;のようにセミコロン「;」を使用してコマンドを区切ることができます。mkdirテスト。ls -la
LnxSlck

9
@LnxSlck:ただし、多くの場合、コマンドをの&&代わりにで区切る方が望ましいです;。これにより、コマンドの1つが失敗した場合、残りのコマンドは実行されません。したがって、例を使用して、home存在しない場合、誤っtestて現在のディレクトリにディレクトリを作成することはありません。
ハンマー

回答:


16

各行に表示されるコマンドは、1つずつ実行されます。

したがって、行を入力したら、Enterキーを押して実行し、次のコマンドを実行します。

例:

sudo apt-get update
sudo apt-get upgrade

これらは、1つずつ実行される2つのコマンドです。

一度に実行するのはsudo apt-get update && sudo apt-get upgrade(他のメソッドもあります)のようになりますが、これらは一般的に必要ありません。心配しないでください。1行を入力してEnterキーを押すと、作業が実行されます。


アドバイスありがとうございました、これを早く知っていたらよかった!!! それでも、私たちは生きて学びます:
デビープール

4
@ user113090 Web-Eが質問に答えた場合、彼の答えを受け入れられた答えとしてマークすることを忘れないでください。
ディーン

12

Web-Eは、次の2つの異なるコマンドで欲しいものを行うための最も直接的な方法を説明し、私は複数のコマンドを実行するか、すぐにそれらを実行せずに、別の行にコマンドを続けるために、いくつかの方法があることを示しているだろうと思っていました。

継続する長いコマンド:

1)1つの長いコマンドを作成する最も一般的な方法は、コマンドを入力し、バックスラッシュを使用して\Returnキーを押すと、Bashがコマンドを実行する代わりに別のプロンプトを表示することです。このセカンダリプロンプトはPS2と呼ばれ、入力を待機します。

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

コマンド全体が理にかなっていると思う限り、バックスラッシュを追加し続け、必要な限りReturnキーを押し続けることができます。

この2次プロンプトは、通常のCtrl+ でキャンセルできますC

2)Bashはforループ(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)または、アンパサンド&&を使用して2つのコマンドを結合できます。

./configure && make

4

各行の後にENTERキーを押すことができ、コマンドが終了していない場合(forたとえば、ループなどのmutilineコマンド)、ターミナルはコマンドの残りの入力を待機します。コマンドが終了すると、コマンドが実行され、問題なく次のコマンドを入力します。

チュートリアルからコマンドをコピーする場合、コマンドのグループ全体をコピーして、ターミナルに直接貼り付けると機能します。


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、すべての行の先頭に行(shebang)を入れて、実行許可を設定します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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.