Tôi có thể tự thực hiện các lệnh của mình không?


12

Tôi đã tự hỏi liệu tôi có thể tự tạo các lệnh của mình như thể nếu tôi nhập "nhạc" vào dòng lệnh, vlc của tôi sẽ mở ra và bắt đầu phát danh sách phát của tôi. Điều vlc chỉ là một ví dụ nhưng câu hỏi vẫn còn.

Tôi có thể tự thực hiện các lệnh của mình không? Nếu có, làm thế nào?


Bạn có thể tạo kịch bản, nếu đó là những gì bạn muốn?
Alvar

Câu trả lời:


19

Có - tạo một tệp có tên âm nhạc và đặt phần sau vào trong đó:

#!/bin/bash
echo "Hello world"

Tiếp theo, gõ chmod +x music- điều này làm cho tập tin thực thi. Bây giờ bạn có thể gõ ./musicđể chạy tập lệnh này.

Nên nhập echo $PATHvà sao chép tập lệnh vào một trong những thư mục đó. Tôi sẽ đề nghị tạo $HOME/binvà thêm nó vào PATH của bạn thông qua ~/.bash_profilehoặc ~/.profile. Điều này có thể được thực hiện bằng cách thêm (vào một trong các tệp đó) : export PATH="$HOME/bin:$PATH". Sau đó, bạn sẽ cần phải chạy source .bash_profile(giả sử bạn đặt nó trong tệp đó) để tải lại.

Một cách khác là thêm lệnh bạn muốn chạy dưới dạng bí danh bash. Bạn có thể làm điều này bằng cách thêm các mục sau vào một tệp có tên .bash_aliasestrong thư mục chính của bạn:

alias music='vlc --some-option --foo'

Chạy source ~/.bash_aliaseshoặc đăng xuất và đăng nhập và nó sẽ hoạt động :-)


3

Cách tốt nhất để làm điều này là sửa đổi (hoặc tạo) một tệp được gọi .bash_aliasestrong thư mục nhà của bạn.

Cú pháp khá đơn giản:

alias install='sudo apt-get -y install'

Với lệnh này, nếu bạn gõ installvào terminal, thay vào đó, nó sẽ được hiểu là

sudo apt-get -y install

Tuy nhiên, các lệnh này sẽ không hoạt động ở bất cứ đâu ngoài thiết bị đầu cuối.


1

Bất kỳ tập tin thực thi trong một thư mục trong đường dẫn của bạn có thể là một "lệnh". Nó có thể là một kịch bản như được đề xuất trong các câu trả lời khác, nhưng nó cũng có thể là một chương trình được biên dịch theo bất kỳ ngôn ngữ được hỗ trợ nào bạn biết.

Các bí danh cũng sẽ hoạt động, nhưng bị giới hạn bởi vì chúng là "một lớp", do đó, làm bất cứ điều gì phức tạp với chúng sẽ nhanh chóng tạo ra mã rất khó đọc. Ngoài ra, vì chúng thực thi trong cùng phạm vi biến như trình bao bạn nhập chúng vào, chúng có thể dễ dàng có các tác dụng phụ ngoài ý muốn như để bạn trong thư mục khác hoặc để lại các biến được xác định chỉ cần cho tác vụ mà bí danh thực hiện. (Tất nhiên, đôi khi bạn có thể muốn sử dụng bí danh chính xác vì nó có tác dụng phụ mong muốn.)

Nếu bạn đặt các lệnh mới của bạn trong một thư mục trong đường dẫn của bạn, chúng có thể được tìm thấy bởi shell và được thực thi. Nơi phổ biến nhất để đặt chúng là trong $ HOME / thùng. Nếu thư mục này tồn tại, nó thường sẽ được tự động thêm vào đường dẫn của bạn.

Hai điều cần lưu ý khi thiết lập điều này là: 1) Thông thường tốt nhất là sử dụng tên duy nhất cho các lệnh không khớp với bất kỳ lệnh nào đã được xác định trên hệ thống của bạn. Có rất nhiều tranh luận về vấn đề này, nhưng điểm chính là các lệnh quen thuộc sẽ không có kết quả bất ngờ nếu có ai đó đang sử dụng hệ thống của bạn và việc làm quen với một lệnh chung làm điều gì đó đặc biệt có thể khiến bạn gặp rắc rối khi bạn làm việc trên hệ thống khác nơi mà nó không được định nghĩa theo cách đó.

2) Bạn có thể thêm $ HOME / thùng vào đầu hoặc cuối đường dẫn của bạn (hoặc bất kỳ nơi nào ở giữa, nhưng điều đó thường không được thực hiện).

Thêm nó vào phía trước đường dẫn của bạn là lựa chọn thuận tiện nhất vì phiên bản lệnh của bạn sẽ luôn là lệnh thực thi và nó sẽ được tìm thấy nhanh hơn. Đây cũng là một lỗ hổng bảo mật vì bất kỳ ai có thể có quyền ghi vào $ HOME / bin của bạn (dễ dàng hơn nhiều so với truy cập root) đều có thể thay thế các lệnh phổ biến bằng mã độc tiềm ẩn rất dễ dàng. Ngoài ra, nếu bạn cần yêu cầu trợ giúp từ một người không biết hệ thống của bạn, thì họ có khả năng bị vấp phải bởi hành vi đặc biệt của các lệnh tùy chỉnh của bạn trừ khi bạn dành nhiều nỗ lực để giải thích mọi thứ trên đầu trang hỏi câu hỏi của bạn

Thêm nó vào cuối câu lệnh đường dẫn của bạn sẽ an toàn hơn một chút vì bất kỳ lệnh nào có cùng tên với lệnh của bạn đã được tìm thấy trước và chạy thay thế - và mọi thứ khác dựa trên lệnh đó hoạt động như mong đợi vẫn sẽ hoạt động .

Để tránh tất cả những điều này (với chi phí gõ thêm một chút), bạn cũng có thể đặt lệnh của mình vào một thư mục không nằm trong đường dẫn của bạn để nó gần như không bao giờ được chạy vô tình vì bạn phải nhập tên đường dẫn đầy đủ vào chạy nó

Giống như hầu hết mọi thứ trong Linux, có nhiều cách để tạo và sử dụng các lệnh mới và mỗi cách đều có những ưu điểm và hạn chế riêng.

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.