Tôi muốn biết liệu có cách nào để chạy tập lệnh chương trình / shell mà không cần nhập đường dẫn đầy đủ không:
/opt/idea/bin/idea.sh
Tôi muốn biết liệu có cách nào để chạy tập lệnh chương trình / shell mà không cần nhập đường dẫn đầy đủ không:
/opt/idea/bin/idea.sh
Câu trả lời:
Bạn chỉ có thể tạo symlink . Tạo nó trong /usr/local/bin
. Tất cả bạn cần là để chạy lệnh:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
Sau đó, bạn nên thực hiện file
:
chmod +x /full/path/to/your/file
Bây giờ bạn sẽ có thể chạy name_of_new_command
bất cứ lúc nào trong thiết bị đầu cuối của bạn.
Lưu ý rằng đây là giải pháp tốt chỉ dành cho sử dụng Linux tại nhà.
/usr/local/bin
đó trỏ đến tập lệnh trong thư mục nhà riêng, chẳng hạn như /home/jack/myscript.sh
, chỉ người dùng jack
thường mới có thể thực thi nó. Liên kết tượng trưng sẽ hiển thị cho những người dùng khác, nhưng không hiển thị tệp mà nó trỏ đến. Trên một hệ thống người dùng đơn lẻ, điều này có thể không quan trọng, nhưng vẫn là "thực hành tốt" để đặt các tập lệnh (hoặc liên kết đến tập lệnh) mà tất cả người dùng có thể đọc /usr/local/bin
và các tập lệnh riêng, tự tạo (hoặc liên kết đến tập lệnh) của một người dùng trong ~/bin
thư mục của họ .
Bạn có thể thêm /opt/idea/bin
vào PATH
biến của mình :
PATH=/opt/idea/bin:"$PATH"
Sau này, bạn có thể chạy nó với đơn giản idea.sh
.
Bạn có thể muốn thêm dòng này trong ~/.bashrc
tập tin của bạn .
idea
, bạn sẽ phải tạo một liên kết hoặc bí danh với tên đó chỉ vào idea.sh
tập lệnh.
idea.sh
kịch bản không phải là kịch bản như vậy, trên thực tế di chuyển nó ra ngoài dir cài đặt của nó là hoàn toàn không được hỗ trợ. Các quy tắc đóng gói Debian không áp dụng ở đây.
Bạn có thể tạo một chức năng trong ~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
Hoặc bạn có thể tạo một alias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
Trong cả hai trường hợp, bạn có thể chạy nó bằng cách gọi:
$ some-name
Nếu tệp không phụ thuộc vào nơi nó đang chạy, hãy xem xét thêm nó vào ~/bin
:
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
, nếu nó tồn tại, được thêm vào $PATH
tự động của bạn . Sau đó, bạn gọi trực tiếp file
:
$ file
(Mặc dù lựa chọn tên không tốt, hãy xem xét việc gọi nó là một cái gì đó ít chung chung hơn.)
file
vào của bạn ~/bin
, đó là điều tôi thường làm (đối với các tập lệnh dài hơn). Tôi thậm chí có thể đặt cái đó lên hàng đầu :) Bí danh rất tốt cho các phím tắt cho các lệnh với các tham số nhất định, ví dụ : alias l='ls -CF'
. Mặc dù tôi đã thấy nhiều công dụng tuyệt vời hơn của bí danh . Tôi không có xu hướng khai báo các hàm trong ~/.bashrc
(Tôi thích có tất cả các tập lệnh của mình được sắp xếp trong các tệp riêng biệt ~/bin
). Mặc dù tất cả điều này chỉ là vấn đề của hương vị, tôi đoán vậy :)
cd
, bởi vì tập lệnh có thể phụ thuộc vào thư mục làm việc. :) Nếu không, vâng, tôi có xu hướng đặt các tập tin vào ~/bin
bản thân mình.
Bạn có thể tạo launcher bằng cách sử dụng lệnh sau:
gnome-desktop-item-edit --create-new <path-where-to-save>
. Tôi sẽ mở cửa sổ này.
Đặt tên cho nó bất cứ điều gì bạn thích và trong hộp lệnh gõ sau
sh -c '/opt/idea/bin/idea.sh'
và lưu nó
Bây giờ bạn có thể chạy tệp đó bằng trình khởi chạy mới được tạo
HOẶC LÀ
Bạn có thể tạo tệp .desktop với nội dung sau
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
Bây giờ lưu nó với .desktop
phần mở rộng trên bất kỳ nơi nào.
Làm cho nó thực thi được bằng lệnh này chmod a+x <your-desktop-file>
Bây giờ bấm đúp chuột để mở nó.
Chúng ta có thể định nghĩa một hàm và thêm một phím nóng bằng cách sử dụng bind
lệnh để gọi hàm đó. Mở ~/.bashrc
tệp và thêm các dòng này vào nó:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
Bây giờ khi bạn nhấn F12, chương trình của bạn sẽ khởi chạy.
Lưu ý: Cách nhanh chóng để xác định mã thoát:
Mở thiết bị đầu cuối của bạn và nhấn Ctrl+ V. Bây giờ nhấn phím tắt yêu thích của bạn. Mã thoát chính xác sẽ xuất hiện. Chỉ cần đảm bảo thay thế ^[
bằng \e
trước khi thêm phím tắt vào, ví dụ thay thế ^[[24~
bằng \e[24~
.
Chúng tôi cũng có thể chạy /opt/idea/bin/idea.sh
tệp trực tiếp bằng cách sử dụngbash_aliases
Mở ~/.bashrc
tệp bằng cách chạy,
gedit ~/.bashrc
Xóa các dòng #
trước và lưu nó, để các dòng sẽ như thế nào,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Bây giờ mở ~/.bash_aliases
tập tin,
gedit ~/.bash_aliases
Thêm các dòng dưới đây trong tập tin đó và lưu nó,
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
Cuối cùng là nguồn ~/.bashrc
tập tin,
source ~/.bashrc
Bây giờ bạn có thể chạy /opt/idea/bin/idea.sh
tệp trực tiếp bằng cách,
idea
Ngoài các câu trả lời hay khác, hãy xem xét liên kết tượng trưng ~/.local/bin
và thêm thư mục này vào PATH của bạn ( .bashrc
ví dụ từ bên trong bạn ). Phương pháp này không yêu cầu quyền đặc biệt ( /usr/local/bin
ví dụ, không giống như symlinking ). Bằng cách này, bạn có thể có một cấu trúc thư mục tiêu chuẩn mà không làm ngập $ HOME của bạn. Đọc thêm về điều này trên các câu hỏi https://unix.stackexchange.com/ này :
Hoặc đơn giản là bạn có thể sử dụng
nano ~/.bashrc
và thêm
PATH=/full/path/to/file:"$PATH"
vào cuối của nó, sau đó lưu và thoát. Sau đó, bạn có thể chỉ cần gõ tên tệp.
Tôi đã làm theo tất cả các câu trả lời ở đây và những nơi khác và rất ít người không đề cập đến việc bạn có thể cần phải ĐĂNG NHẬP để lệnh cuối cùng hoạt động.
Chỉ để tóm tắt, đặc biệt là cho Xubfox , nhưng đối với các biến thể Debian / Ubuntu khác, tôi cũng đã viết các hướng dẫn đơn giản này.
(trong các hướng dẫn sau đây, chúng tôi sử dụng thư mục ~ / bin , vì đó tự động là nơi mà các HĐH này tìm kiếm các lệnh. Xem tại đây :
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)