Lệnh mở cửa sổ terminal mới từ terminal hiện tại?


45

Tôi đã cài đặt xdotool bằng cách chạy sudo apt-get install xdotoolvà ném xdotool key ctrl+alt+tlệnh để mở cửa sổ terminal mới từ cửa sổ hiện tại. Nhưng nó không hoạt động.

Lệnh mở cửa sổ terminal mới từ terminal gnome hiện tại là gì?


1
ctrl + shift + n
wim

Câu trả lời:


66

Chỉ cần lệnh này sẽ làm:

gnome-terminal

Thông thường nếu bạn muốn một lệnh mở từ thiết bị đầu cuối và tách ra (để nó trở về dấu nhắc mà không phải đóng chương trình đã mở) , bạn phải sử dụng một cái gì đó như thế này:

gnome-terminal & disown

Tuy nhiên, thiết bị đầu cuối cha mẹ dường như phát hiện ra rằng cùng một lệnh đang được sử dụng, do đó bạn không cần phải làm điều đó và gnome-terminalsẽ đủ. Điều này cũng có thể xảy ra khi chạy xfce4-terminaltừ thiết bị đầu cuối của Xfce, konsoletừ KDE cũng như (dường như không làm việc khi chạy xtermtừ xterm(xem thêm xterm xterm) - Chạy konsoletừ các tác phẩm thiết bị đầu cuối Gnome / Unity & Xfce của cũng , nhưng đối với thiết bị đầu cuối của Xfce trong gnome terminal bạn cần xfce4-terminal & disown).

Để biết thêm truy cập gnome-terminaltrang hướng dẫn :

 gnome-terminal  [-e,  --command=STRING]   [-x, --execute ]  [--window-with-profile=PROFILENAME]  [--tab-with-profile=PRO‐
       FILENAME]    [--window-with-profile-internal-id=PROFILEID]    [--tab-with-profile-internal-id=PROFILEID]    [--role=ROLE]
       [--show-menubar]   [--hide-menubar]   [--geometry=GEOMETRY]   [--disable-factory]  [-t, --title=TITLE]  [--working-direc‐
       tory=DIRNAME]  [--usage]  [-?, --help]

1
Bạn có thể muốn chạy nó trong nền, như thế : gnome-terminal &. Nếu không, thiết bị đầu cuối hiện tại sẽ không thể sử dụng được, vì nó sẽ bận chạy cái kia - vì vậy bạn kết thúc chỉ với một thiết bị đầu cuối có thể sử dụng, có thể thiếu điểm.
Rafał Cieślak

1
Hấp dẫn. Bạn rõ ràng là đúng, tuy nhiên, tôi cũng không sai :) Tôi vừa kiểm tra chi tiết. Nếu tôi chạy gnome-terminal trong khi một phiên bản khác của nó đang chạy (nó có thể là phiên bản tôi đang sử dụng để khởi chạy lệnh này) - nó thực sự kết thúc ngay lập tức, vì thay vì chạy một phiên bản mới gnome-terminal, nó nói rằng hiện đang chạy một phiên bản mới để mở một phiên bản mới cửa sổ. Khó khăn. Nhưng nếu tôi chạy gnome-terminaltừ bất cứ thứ gì khác , và không có trường hợp nào khác gnome-terminalchạy, nó sẽ làm như tôi đã giải thích trong bình luận trước đó, chặn thiết bị đầu cuối được sử dụng để khởi chạy nó.
Rafał Cieślak

1
@ RafałCieślak - dù sao, konsoledường như không cần chút nào ... kỳ lạ. Tôi không biết tại sao câu hỏi / câu trả lời này lại phổ biến đến vậy :)
Wilf

2
Cảm ơn rất nhiều, nếu bạn muốn mở một thiết bị đầu cuối với cùng thư mục bạn có thể làm điều này,gnome-terminal .
kisanme 7/07/2015

1
Nếu bạn đang sử dụng Ubuntu MATE (ví dụ: 16 lần) thì đó làmate-terminal
Frank Nocke

8

Lệnh mở cửa sổ terminal mới từ terminal hiện tại,

xdotool key ctrl+shift+n

Để cài đặt xdotool,

sudo apt-get install xdotool

4
Ctrl + Shift + T sẽ mở một tab thiết bị đầu cuối mới.
GabrielF

2
Nó là một thiết bị đầu cuối mới ... nhưng trong một tab mới chứ không phải là cửa sổ mới.
GabrielF

1
Tôi không thấy bất kỳ lý do để sử dụng xdotool key ctrl+shift+ntrong khi sử dụng gnome-terminalbạn có nhiều tùy chọn khác; xem man gnome-terminaltheo nghĩa này
Radu Rădeanu

1
Ctrl + Shift + N sẽ mở một cửa sổ terminal mới.
Siddhartha

Vẫn nghĩ gọn gàng này :) có bất kỳ tương đương với Mir hoặc Wayland (đối với các triển khai không tương thích với công cụ máy chủ X)
Wilf

0

Kịch bản sau đây sẽ mở một tab mới trong cửa sổ gnome-terminal hiện tại và tùy chọn cung cấp cho tab đó một tiêu đề. Điều này hoạt động từ bất kỳ cửa sổ nào, bạn không cần phải ở trong cửa sổ gnome-terminal để chạy nó. Và, nếu không có gnome-terminal đang chạy, nó sẽ bắt đầu một. Nhắc nhở duy nhất là nếu bạn thay đổi phím nóng để mở tab mới, bạn có thể phải thay đổi dòng xdotool key ctrl+Tđể sử dụng phím nóng thay thế.

#!/bin/bash

DELAY=1
# get title we are going to set tab too, default to Terminal
title="Terminal"
if [ $# -eq 1 ]; then
    title="$1"
fi    

# get pid of running terminal server
TPID=$(ps -C gnome-terminal-server -o pid | tail -1 | sed -e's/\s//g')
if [ ${TPID} == "PID" ]; then
    # no terminal process running yet, so just start one
    gnome-terminal -t "$title" --tab
    exit 0
fi

# there is a terminal, get window id of the running terminal server
WID=$(wmctrl -lp | awk -v pid=$TPID '$3==pid{print $1;exit;}')
# get title of currently active tab
TTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
if [ "$TTITLE" == "\"Terminal\"" ]; then
    # so we don't go into an infinite loop later
    TTITLE="we had a terminal named terminal $$"
fi
# get focus on active terminal tab
xdotool windowfocus $WID
# use keyboard shortcut to open new tab
xdotool key ctrl+T

# see if we have created tab and are in terminal
NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
waited=0
while [ "$TTITLE" == "$NTITLE" ]; do
    # sleep for 1 second before we try again
    xdotool sleep 1
    NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
    if [ $waited == 0 ]; then
    echo "Waiting "
    waited=1
    fi
    echo -n "."
done    
if [ $waited == 1 ]; then
    echo ""
fi    

# active tab is the new one we created, wait DELAY seconds just to be sure we can type into it to set tab name
xdotool sleep $DELAY
xdotool type --clearmodifiers "termtitle $title"
xdotool key Return
# make tab the active window and raise it to top
wmctrl -i -a $WID
exit 0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.