Làm cách nào để chạy các lệnh tự động trên gnome-terminal sau khi đăng nhập?


11

Sau mỗi lần đăng nhập, có một số lệnh nhất định mà tôi chạy trên các tab cụ thể của gnome-terminal. Đây là một quá trình tẻ nhạt, vì vậy điều này có thể được thực hiện tự động?

Câu trả lời:


5

Vâng, đó là một cách. Bạn cần nói với gnome-terminal để khởi chạy các tab với một số cấu hình nhất định; các cấu hình này phải được thiết lập để bắt đầu trình bao với các lệnh bạn muốn.

Đầu tiên, bạn cần tạo một kịch bản (hoặc biểu tượng trình khởi chạy) sẽ bắt đầu gnome-terminal --tab-with-profile=Dev. "Dev" là tên của một hồ sơ bạn sẽ tạo, vì vậy hãy thay thế nó bằng bất cứ thứ gì bạn muốn. Ngoài ra, bạn có thể chỉ định bao nhiêu --tab-with-profiles tùy thích: nó sẽ mở một tab cho mỗi.

Bây giờ, bạn cần hồ sơ bạn vừa tham khảo. Điều này được tạo ra bằng cách mở gnome-terminalvà tìm Edit->Profiles...trong menu. Tạo một hồ sơ mới và đặt cho nó tên bạn đã chỉ định trong bước trước. Tiếp theo, bạn cần thiết lập tùy chọn của nó. Đánh dấu hồ sơ vừa tạo và nhấp vào nút Chỉnh sửa. Khi hộp thoại Tùy chọn Cấu hình được bật, hãy kích hoạt tab "Tiêu đề và Lệnh", chọn "Chạy lệnh tùy chỉnh ..." và trong hộp văn bản được liên kết, đặt sh -c "ENV=$HOME/.dev_profile sh". Tất nhiên, bạn có thể đặt ENV theo bất kỳ đường dẫn nào bạn muốn, miễn là bạn nhất quán trong bước tiếp theo. Điều này bắt đầu sh và sh sẽ thực thi bất kỳ lệnh nào trong$HOME/.dev_profile

Tiếp theo, bạn cần tạo tập tin hồ sơ shell đó. Vì vậy, hãy chỉnh sửa $ HOME / .dev_profile (hoặc bất kỳ tệp nào bạn đã chỉ định trong bước trước). Đặt bất cứ lệnh nào bạn muốn trong đó; chúng sẽ được thực thi khi shell được bắt đầu. Đối xử với điều này giống như bạn sẽ .bashrc - điều này sẽ thay thế nó. Tùy thuộc vào cách .bashrc của bạn được thiết lập, bạn có thể muốn source $HOME/.bashrctrong hồ sơ để sao chép tất cả các chức năng từ hồ sơ sh bình thường của bạn.


3
Nhân tiện, tôi rất muốn giới thiệu tmux hoặc GNU Screen thay thế. Chúng là bộ ghép kênh đầu cuối dễ cài đặt hơn cho loại điều này và bạn có thể sử dụng chúng qua kết nối ssh. Nhược điểm duy nhất là chúng không có tab để bạn nhấp vào, nhưng bạn có thể nhận danh sách menu các cửa sổ hoặc phiên mà bạn có thể điều hướng lên xuống thông qua và chuyển sang một. Họ cũng có các tùy chọn ưa thích khác như màn hình chia nhỏ, màn hình hoạt động / không hoạt động và khả năng giữ phiên mở mà không có thiết bị đầu cuối kèm theo.
Shawn J. Goff

1
Màn hình có lợi thế, nhưng nó cũng có nhược điểm. Một là việc cuộn trở lại đầu ra quá khứ khó hơn so với hầu hết các trình giả lập thiết bị đầu cuối X. Một điều nữa là bạn không thể dễ dàng có hai cửa sổ từ cùng một phiên màn hình được hiển thị cùng một lúc (đây không phải là vấn đề nếu bạn sử dụng các phiên màn hình riêng biệt, nhưng sau đó bạn cần chuyển đổi giữa chúng, các tab hoặc trình giả lập thiết bị đầu cuối riêng biệt làm cho dễ dàng hơn).
Gilles 'SO- ngừng trở nên xấu xa'

@Giles: Hoặc Màn hình dễ cuộn hơn: nó phụ thuộc vào cách bạn muốn làm việc. Tôi không chắc ý của bạn về hai cửa sổ - Tôi làm điều đó mọi lúc: ^ a S ^ a <tab> ^ ac
Shawn J. Goff

2
vâng, điều đó đơn giản hơn nhiều so với nhấp đúp vào thanh tab
Falmarri

2
@Falmarri: thực sự là như vậy. Tôi chạm chuột không thường xuyên đến mức cảm biến quang tự tắt nên tôi phải vẫy nó khoảng 1,5 giây trước khi tôi có thể nhấp vào bất cứ thứ gì. (Không đề cập đến nó có nghĩa là di chuyển bàn tay của tôi ra khỏi bàn phím và phải tìm lại vị trí nhà trên bàn phím.)
Shawn J. Goff

7

Bạn có thể bắt đầu nhiều lệnh trên cùng một dòng lệnh gnome-terminal bằng cách chỉ định --tab-with-profiletùy chọn nhiều lần, theo sau mỗi lần bằng một -elệnh chỉ định lệnh nào sẽ chạy trong tab đó. Bạn cũng có thể sử dụng --window-with-profileđể có nhiều cửa sổ. Ví dụ, lệnh sau bắt đầu hai cửa sổ với hai tab mỗi cái; cửa sổ đầu tiên chạy bash trong mỗi tab, đặt biến môi trường TABthành 1 hoặc 2; cửa sổ thứ hai chạy htoptrong một tab và iotoptrong tab khác. Yêu shcầu rõ ràng , với trích dẫn chính xác, là cần thiết cho một số lý do.

gnome-terminal --tab-with-profile="Default" -e 'sh -c '\''export TAB=1; exec bash'\' \
               --tab-with-profile="Default" -e 'sh -c '\''export TAB=2; exec bash'\' \
               --window-with-profile="Default" -e 'htop' \
               --tab-with-profile="Default" -e 'iotop'

Nếu bạn muốn một lệnh chạy khi bạn đăng nhập, hãy đặt nó vào tập lệnh shell (ví dụ: ~/bin/my_gnome_login_commandsvà đăng ký nó trong Hệ thống / Tùy chọn / Ứng dụng khởi động, trong ứng dụng Gnome. Hoặc, tạo một tệp ~/.config/autostart/my_commands.desktopcó chứa

[Desktop Entry]
Type=Application
Exec=/home/tshepang/bin/my_gnome_login_commands
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

(Bạn phải sử dụng đường dẫn đầy đủ đến thư mục chính của mình trên Exec=dòng, bạn không thể sử dụng ~.)

(Câu trả lời này đã được thử nghiệm với Gnome 2.30 trên Ubuntu 10.04. Vì Gnome đôi khi phá vỡ tính tương thích, nó có thể hoặc không thể áp dụng cho các phiên bản khác.)


0

Tôi đang thấy ở đây rất nhiều thứ. Có lẽ bạn không cần bất cứ điều gì về điều này.

Đây là các bước tôi đã làm trong Oracle 5.9 Linux của mình:

  1. Tạo biểu tượng gnome-terminal trong Desktop của bạn.
  2. Mở gnome-terminal của bạn.
  3. Chuyển đến Chỉnh sửa -> Cấu hình.
  4. Chọn hồ sơ mặc định của bạn và nhấp vào Chỉnh sửa.
  5. Đi vào tab "Tiêu đề và Lệnh".
  6. Chọn tùy chọn "Chạy lệnh như vỏ đăng nhập".
  7. Bấm vào nút Đóng.

Nó làm việc cho tôi. Tất nhiên, trong trường hợp của tôi, tôi chỉ muốn chạy .profile để thiết lập môi trường đầu cuối của mình.

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.