2013-02-17 23 views
6

Tôi tương đối mới đối với Linux và Unix. Với sự giúp đỡ của internet cuối cùng tôi đã tìm ra cách $PATH và bí danh trong tác phẩm .bashrc của tôi.

Nhưng tôi thực sự không thể tìm thấy bất kỳ điều gì mô tả thời điểm sử dụng.

Giả sử tôi đã cài đặt Python3.3 trong Thư viện/Khung và thực thi là /Library/Frameworks/Python.framework/Versions/3.3/bin/python3, nhưng tôi muốn thực thi python 3.3 bằng cách nhập python3 vào thiết bị đầu cuối của mình.

Khi tôi hiểu nó một cách chính xác, có (ít nhất) ba phương pháp để đạt được điều này:

1) tôi sửa đổi $ PATH trong .bashrc của tôi:

export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH} 

2) tôi đặt một bí danh ở .bashrc của tôi:

alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin 

3) sáng tạo một symbolic link (symlink):

ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin 

Bạn sẽ nói gì (từ kinh nghiệm của bạn) là cách "được khuyến nghị"?

+1

Tôi không nghĩ lệnh 'alias' và' ln -s' của bạn là chính xác. Bạn có thể muốn làm cho tất cả chúng đều sử dụng 'bin/python3' không chỉ'/bin' – FoolishSeth

+0

Và bạn cũng có thể thêm một 'hàm' vào' .bashrc' –

+0

cảm ơn, bạn nói đúng, chắc chắn là nó nên ... bin/python3' –

Trả lời

7

Đặt python3 trong đường dẫn của bạn là cách chính xác để gọi nó ở bất cứ đâu bạn có thể tìm thấy chính mình trong hệ thống tệp của mình. Một liên kết tượng trưng là cách tốt nhất để thay đổi lệnh đó thành python và giữ cho tập lệnh của bạn không phụ thuộc phiên bản (bạn có thể chạy tập lệnh phụ thuộc vào python sử dụng liên kết tượng trưng và tập lệnh cần python 3.0 đặc biệt sử dụng python3, mặc dù trên máy tính của bạn Họ là những điều tương tự). Các liên kết tượng trưng vẫn là các tệp trong hệ thống tệp của bạn, vì vậy chúng vẫn cần phải nằm trong đường dẫn của bạn.

Tôi chỉ thấy các bí danh được sử dụng khi bạn đang cố gắng tạo một loại hành vi khác với hành vi mặc định cho tiện ích dòng lệnh như bí danh cho ls bổ sung -a một cách âm thầm.

Các liên kết tượng trưng được lưu trữ trong hệ thống tệp, vì vậy khi chúng được tạo, chúng tồn tại cho tất cả người dùng khác đăng nhập, trong khi bí danh chỉ áp dụng cho người dùng đã đăng nhập đã xác định chúng. Họ cũng có thể có quyền tệp được áp dụng cho họ.

Đây là a fun article về những việc bạn có thể làm cho thiết bị đầu cuối của mình thông qua .bash_profile bao gồm một số bí danh tuyệt vời.

+0

Liên kết đến bài viết thú vị giờ đây phải là: http://digitalformula.net/articles/pimp-my-prompt-like-paul-irish/4/ (nhưng chỉnh sửa câu trả lời không hoạt động vì chỉnh sửa <6 ký tự). – user766353

+0

Rất tiếc, xin lỗi về điều đó. Đó là một bài viết tuyệt vời, vui mừng khi thấy liên kết hoạt động trở lại. –

0

Tôi khuyên bạn nên sử dụng bí danh sẽ làm cho các xung đột phát sinh dễ dàng hơn nếu bạn có các phiên bản Python khác nhau. Shell sẽ tra cứu biến PATH và bất cứ nơi nào nó khớp với thực thi Python, nó sẽ thực thi nó. Bí danh phải được đặt trong hồ sơ vỏ của bạn như .bash_profile.

+1

Tôi nghĩ rằng một liên kết biểu tượng trong 'PATH' là tốt hơn so với bí danh, bạn không cần nguồn hồ sơ bash của bạn khi ứng dụng mặc định thay đổi. –

4

Trước tiên, không có lý do gì để cài đặt Python trong thư mục /Library/Frameworks/. Đề xuất của tôi là (ít nhất là cho người mới bắt đầu), bạn không nên thêm các thư mục cấp cao nhất như số /Library của mình.Nếu bạn biên dịch nó từ mã nguồn, bạn nên có built it với một tiêu chuẩn ./configure (và nó có thể đi vào /usr/local/)

Tôi không biết rõ về biên dịch Python từ mã nguồn, nhưng hầu hết các mã nguồn Linux được theo mặc định ./configure -d để một tiền tố /usr/local/ nên nhị phân của họ đi vào /usr/local/bin/ mà thường là đã được mặc định trong PATH

một số bản phân phối Linux của bạn có một /etc/profile mà gián tiếp, nếu thư mục $HOME/bin/ tồn tại, thêm nó bên PATH của bạn; trong trường hợp đó chỉ cần thêm các tệp nhị phân và tập lệnh (hoặc các liên kết tượng trưng) có cách đơn giản nhất.

Lời khuyên chung của tôi là tránh việc có một số rất dài hoặc rất cụ thể PATH. Đặc biệt, việc thêm một thư mục bên trong PATH cho mỗi sản phẩm là lỗi của IMHO. Xem ví dụ số directory-variables section of GNU coding standards và giữ cho số PATH của bạn khá ngắn. Cá nhân tôi chỉ thêm các chương trình trong /usr/local/bin/ (toàn hệ thống) hoặc trong $HOME/bin/, có thể là liên kết tượng trưng (vì vậy tôi không thay đổi PATH vì nó đã chứa cả /usr/local/bin/$HOME/bin).

Bằng kinh nghiệm quá khứ có rất dài PATH là một cơn ác mộng, và chậm vỏ tương tác của bạn

+0

Cảm ơn bạn, đó là rất hữu ích, tôi sẽ cố gắng giữ cho con đường của tôi ngắn. Để cài đặt Python: Tôi không biết nhiều về Linux/Unix tại thời điểm này và chỉ cần tải xuống trình cài đặt MacOSX cho Python 3.3 từ trang web chính thức của python và đây là vị trí cài đặt mặc định. –

0

Cảm ơn tất cả các bạn cho lời giải thích của bạn.

Như tôi đã nói, tôi khá mới đối với Unix và Linux. Tôi vừa viết một bài báo về những điều đó (bí danh, symlink $ PATH) cho blog của tôi cho các "người mới" khác. Tôi thích viết về những điều đó, bởi vì họ thực sự quan tâm đến tôi, và tôi muốn chia sẻ kinh nghiệm của tôi - tôi hy vọng họ cũng có ích cho những người khác. Hơn nữa, nó giúp tôi làm sâu sắc thêm hiểu biết của mình nếu tôi phải giải thích mọi thứ - và đó cũng là một tài liệu tham khảo trong tương lai tốt!

Sẽ rất tuyệt nếu bạn có thể lướt qua bài báo rất nhanh, và nếu tôi gặp một số điều sai, tôi sẽ rất vui vì đề xuất!

http://scientific-ocean.com/2013/02/17/an-introduction-to-linuxunix-executables-path-aliases-and-symlinks/

Các vấn đề liên quan