Làm thế nào tôi có thể bắt đầu ứng dụng của mình một cách thuận tiện hơn?


9

Tôi là người mới trong Ubuntu. Tôi có một ứng dụng mà tôi mở theo cách sau. Tôi gõ vào bảng điều khiển:

cd ~/MyDirectory
./myapp +some arguments

Làm cách nào tôi có thể tìm giải pháp, để tôi có thể khởi chạy ứng dụng của mình mà không cần gõ các lệnh này trong bảng điều khiển mỗi lần? Tôi đang nghĩ về một kịch bản, như một kịch bản bat hoặc .lnk trong windows.

Trong các câu hỏi tương tự khác, tôi đã không tìm thấy một giải pháp vì chỉ có một số đề cập và thảo luận về kịch bản. Tôi không tìm thấy làm thế nào tôi có thể sử dụng lệnh "cd" trong các câu hỏi khác và câu hỏi này không trùng lặp với những câu hỏi khác mà tôi đề xuất.


@steel ấn, không, tôi không tìm thấy giải pháp cho câu hỏi này. không có bất cứ điều gì về lệnh cd và chạy ứng dụng thông qua tập lệnh.
nick

# 1 Bạn có muốn giải pháp trở thành một biểu tượng bạn có thể nhấp vào màn hình của mình không, hoặc đây sẽ là thứ bạn cần / muốn chạy từ dấu nhắc lệnh? # 2 Bao lâu thì đối số sẽ thay đổi?
RonJohn

Cuộc trò chuyện (một cách an toàn trong trường hợp này) cho rằng có một máy tính để bàn. Rất thường xuyên trong thế giới kịch bản sẽ không có.
mckenzm

Câu trả lời:


21

Một kịch bản là quá mức cần thiết.

Sử dụng tệp .desktop như:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • Lưu nó dưới dạng some_app.desktop
  • Làm cho nó thực thi và nhấp đúp chuột

Lưu ý

Câu hỏi là nó có cần được chạy từ thư mục riêng của nó hay không. Nếu không, lệnh thậm chí có thể đơn giản hơn:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments

2
Chân thanh cảm ơn bạn. .desktoptập tin là đủ cho nhiệm vụ này.
nick

2
@allo Nếu OP yêu cầu một giải pháp, đó không phải là giải pháp tối ưu cho vấn đề của anh ta, nhưng anh ta không nhận ra một giải pháp tốt hơn tồn tại, bạn nên cung cấp cho anh ta giải pháp tốt hơn cho vấn đề của anh ta nếu bạn biết. Nếu bạn không thấy rằng bạn đang khá thiếu quan điểm về câu trả lời nên ở đây.
Jacob Vlijm

1
@dPlay Cảm ơn bạn đã chỉnh sửa. Chúng ta có thể phải đối phó với các đường dẫn có khoảng trắng :)
Jacob Vlijm

1
Bạn có thể muốn viết ./myapp …thay vì chỉ myapp …vì thư mục hiện tại ., theo mặc định, không phải là một phần của biến PATH.
PerlDuck

1
@allo Xin vui lòng thêm câu trả lời của riêng bạn nếu bạn nghĩ rằng những câu hỏi hiện tại là không đủ.
Fabby

13

Tạo một tệp có nội dung sau:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

Sau đó làm cho nó thực thi:

chmod u+x scriptname

Bây giờ bạn có thể gọi kịch bản này như thế này: /pathtoscript/scriptname

Bạn có thể kết hợp câu trả lời này với câu trả lời của v010dya và đặt tập lệnh này vào bất kỳ tập lệnh nào bintrong $ PATH, vì vậy cả hai phương thức gọi đều có thể: trong trình bao trong bất kỳ loại thư mục nào scriptnamehoặc sử dụng lối tắt trên màn hình được giải thích bên dưới. Chỉ cần thay đổi /pathtoscriptvị trí thực tế của kịch bản.

Tạo một lối tắt đến tập lệnh, đặt nó vào ~/.local/share/applications/và đặt tên như somename.desktop với nội dung sau:

[Desktop Entry]
Version=1.0
Name=Script
Comment=
Keywords=Script
Exec=/pathtoscript/scriptname
Terminal=false
X-MultipleArgs=true
Type=Application
Icon=preferences-system
Categories=GTK;Development;
StartupNotify=false

Sau đó, nó sẽ xuất hiện trong danh sách ứng dụng


1
Câu trả lời của bạn đang hoạt động, cảm ơn bạn. Nhưng thực sự xin lỗi, kịch bản quá khó, tôi không biết về nó. Và câu trả lời của tôi được cụ thể hóa trong kịch bản nhưng không chỉ là tìm ra cách giải quyết. Tôi sẽ +1 cho bạn.
nick

1

Mặc dù bạn đã tìm thấy một giải pháp mà bạn có thể nhấp đúp vào, nhưng có một giải pháp khiến cho việc chạy từ dòng lệnh trở nên tầm thường hơn:

Bước 1 - Viết kịch bản

Điều này đã được bao phủ bởi một câu trả lời của LeonidMew , tôi sẽ sao chép nó ở đây:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

và sau đó

chmod u+x scriptname

Bước 2 - Làm cho nó dễ thực hiện

Bạn cần tạo một thư mục ~/binvà thực hiện tìm kiếm bash cho các lệnh. Vì vậy, trong thiết bị đầu cuối, chúng tôi viết:

mkdir ~/bin
mv scriptname ~/bin
vim ~/.profile

Ở đây tôi đang làm mọi thứ trong terminal, tất nhiên bạn có thể tạo một thư mục dirtrong thư mục chính của bạn và cũng có thể di chuyển tập lệnh của bạn đến đó thông qua các công cụ đồ họa mà bạn cảm thấy thoải mái. Ngoài ra tôi đang sử dụng vim như một trình soạn thảo, nhưng nó hơi khó sử dụng, tôi sẽ khuyên bạn nên tìm hiểu, nhưng bạn chỉ có thể sử dụng một trình soạn thảo khác (thậm chí là đồ họa) để chỉnh sửa .profiletrong thư mục chính của bạn, lưu ý rằng tệp này được ẩn theo mặc định.

Bạn cần thêm phần sau vào phần cuối của tập tin đó

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Nếu bạn đang sử dụng vim, bạn nhấn iđể bắt đầu thêm văn bản, và sau đó Escđể kết thúc thêm. Sau đó, bạn nhập vào :wqđể viết tập tin và thoát. Hoặc, như tôi đã nói, sử dụng một trình soạn thảo đơn giản hơn.

Bước 3 - Thưởng thức

Bây giờ, sẽ không có vấn đề gì với thư mục bạn đang ở, bạn luôn có thể chỉ cần gõ scriptnamevà nhấn Enter. Bạn cũng có thể đặt các tập lệnh và ứng dụng khác mà bạn muốn có thể thực thi được ~/bin.


1
Bạn đã viết cách thoát vim, +1 Đùa thôi, câu trả lời hay. Giải pháp của bạn rất hữu ích. Vẫn có thể tạo tệp .desktop, để chạy tập lệnh từ danh sách ứng dụng hoặc menu (tùy thuộc vào DE). Sau khi vá .profile đăng xuất / đăng nhập là cần thiết. Ngoài ra nhà có thể được gắn với tùy chọn noexec, trong trường hợp này cần đặt tập lệnh vào / usr / local / bin / (sử dụng sudo).
LeonidMew
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.