Tôi có cần một bản phân phối Linux để tìm hiểu dòng lệnh hay OS X là đủ?


12

Tôi sẽ học cách sử dụng dòng lệnh. Cụ thể, tôi sẽ sử dụng cuốn sách: "Dòng lệnh Linux: Giới thiệu hoàn chỉnh" . Bây giờ, tôi có phải sử dụng bản phân phối Linux để xem qua cuốn sách hay OS X là đủ?

Nếu tôi cần một bản phân phối Linux, thì việc sử dụng nó thông qua VM là đủ hay tôi cần phải cài đặt nó một cách tự nhiên?


8
Lý do duy nhất bạn cần cài đặt HĐH trên phần cứng vật lý và không phải VM sẽ là về hiệu năng. Nếu bạn chỉ đang cố gắng học các quy trình cơ bản thì đó sẽ không phải là vấn đề. Có lẽ nên chạy một cái gì đó như Arch trong VM.
Bratchley


4
Dòng lệnh chỉ là một liên kết giữa bạn và hệ thống. Cú pháp shell Bash có thể giống nhau, nhưng khi bạn cần xử lý các phần cụ thể của hệ thống, sẽ có sự khác biệt. Ví dụ, OS X doesnt có /prochệ thống tập tin, ổ đĩa USB có xu hướng xuất hiện trong /Volumeskhông /media/usernamenhư trên Ubuntu. CentOS có dhclient.conftập tin khác nhau .
Vân

4
Bản sao chéo được đề xuất rõ ràng là một câu hỏi khác nhau , về hiệu suất ảo hóa trên MacBook. Câu hỏi không được đăng chéo.
Michael Homer

2
@Utku Tôi nghĩ những gì có thể giúp đỡ để tách một vài khái niệm: sử dụng một dòng lệnh và hệ điều hành bạn sử dụng nó. Nếu bạn muốn biết một dòng lệnh của mình, OS X sẽ hoạt động, cũng như Linux, BSD hoặc thậm chí Windows với một số nỗ lực. Nếu bạn muốn tìm hiểu UNIX hoặc Linux, dòng lệnh chỉ là một phần nhỏ trong đó - đó chỉ là giao diện mà bạn sẽ tương tác với HĐH. Tôi nghĩ rằng làm rõ những gì bạn sẽ làm cũng sẽ giúp bạn dễ học hơn :)
rickcnagy

Câu trả lời:


33

Tôi rất khuyên bạn nên chạy Linux trong máy ảo. Tất cả các phần mềm đều có sẵn để tải xuống miễn phí và không có sự khác biệt thực tế nào giữa việc chạy trong VM và chạy nguyên bản cho mục đích học dòng lệnh.

Hơn nữa, dòng lệnh Linux chủ yếu bao gồm bash + GNU coreutils , rất khác so với BSD Unix (và OS X là một công cụ thành công của BSD Unix). Có một sự khác biệt rất lớn về sở thích trong việc viết các đối số trong BSD Unix và GNU Linux. Bạn có thể tự cắn mình ngay cả khi không phải là người mới với các tùy chọn khác nhau cho các tiện ích tiêu chuẩn như pstarnếu bạn làm việc trên cả hai hệ thống.

Sử dụng OS X khi sách của bạn là Linux cụ thể sẽ thường xuyên đưa ra những điểm không nhất quán và khác biệt sẽ xuất hiện hời hợt khi bạn có nhiều kinh nghiệm hơn, nhưng sẽ đơn giản là khó hiểu khi bạn học. Giữ mọi thứ dễ dàng cho chính mình.

Điều này cũng sẽ cho phép bạn thử nghiệm mà không phải lo lắng về việc phá vỡ máy của bạn bằng cách xóa hoặc thay đổi bất kỳ tệp quan trọng nào.

Và cuối cùng, mặc dù chắc chắn không kém phần quan trọng, nó sẽ cho phép bạn thiết lập kết nối SSH với VM từ Terminal OS X của bạn, để bạn có thể quen với việc sử dụng các khóa SSH và ý tưởng rằng nó không khác biệt gì cho dù máy chủ Linux của bạn là một máy nguyên gốc, một máy ảo cục bộ hoặc đang chạy trên AWS hoặc Digital Ocean: tất cả đều hoạt động như nhau!


Nhân tiện, tôi cũng sẽ có cấu trúc thư mục tương tự trong VM so với Linux nguyên gốc chứ?
Utku

3
Đúng. Đối với mục đích của bạn, nó chính xác giống như cài đặt gốc.
seumasmac

Đây là câu trả lời an toàn nhất nhưng tùy thuộc vào cuốn sách mà tôi cho rằng phần giới thiệu về cuốn sách dòng lệnh sẽ không hiển thị nhiều (nếu có) về sự khác biệt. Sau khi nhìn lướt qua hướng dẫn, điều duy nhất mắc kẹt với tôi sẽ là lời giải thích về cấu trúc thư mục.
vui mừng

1
@Utku Nếu / dev / sda hoặc / dev / hda được đề cập trong cuốn sách và bạn không thể tìm thấy nó trong bản cài đặt của mình, hãy thử tìm / dev / vda. Đây là sự khác biệt duy nhất có thể tôi có thể nghĩ đến, nó sẽ quan trọng với bạn.
Kimmax

1
Bạn thậm chí không phải sử dụng VM, sử dụng CD trực tiếp cũng có thể nếu bạn không muốn chiếm nhiều dung lượng trên HD. Nó cũng có thể được khởi động từ ổ đĩa flash và việc tạo ổ đĩa flash CD / boot có thể mất rất ít thời gian.
Chris Cirefice

18

OS X là đủ để tìm hiểu dòng lệnh vì nó là một UNIX được chứng nhận và phù hợp với POSIX. Nếu bạn đang xem cuốn sách dòng lệnh cụ thể của Linux, bạn phải nhớ rằng các công cụ người dùng trong OS X có nguồn gốc từ BSD trong khi các công cụ trên Linux là GNU và có một số khác biệt tinh tế (và không quá tinh tế) giữa chúng.

Nếu bạn muốn tìm hiểu với các công cụ GNU, bạn có thể cài đặt vùng người dùng GNU thông qua macports hoặc homebrew hoặc có thể thực hiện cài đặt Linux đầy đủ trong VM.


Vì vậy, tôi đoán rằng không có cuốn sách "chung chung" trên dòng lệnh? Một cuốn sách sẽ sử dụng các công cụ GNU hoặc BSD. Có đúng không?
Utku

1
Nếu bạn có một cuốn sách trên vỏ (ví dụ bash), nó sẽ phù hợp với bất kỳ hệ thống nào chạy nó. Nó thay đổi khi bạn bắt đầu sử dụng các tính năng của hệ điều hành hoặc các công cụ cụ thể bên ngoài vỏ.
teppic

1
@teppic Nhưng làm thế nào hữu ích là một vỏ chỉ bằng cách riêng của mình ? AFAIK, một cái vỏ tự nó là vô dụng vì nó không có lệnh nào để thực thi. Ngay cả các lệnh cơ bản nhất như lsphải là từ GNU hoặc BSD (vui lòng sửa nếu tôi sai). Vì vậy, tôi nghĩ rằng điều này có nghĩa là tôi cần chọn một chuỗi công cụ (hoặc môi trường) và bắt đầu học dòng lệnh ở đó. Có đúng không?
Utku

@Utku các lệnh giống nhau (đối với hầu hết các phần) nhưng các tùy chọn và đầu ra có thể khác nhau (thường là do GNU triển khai nhiều phần mở rộng). Thật dễ dàng để chuyển qua lại giữa các công cụ BSD và GNU.
casey

@casey Vì vậy, tôi có thể bắt đầu với cuốn sách về OS X. Sau đó, nếu tôi gặp phải hành vi không được mô tả như trong sách, tôi có thể thử nó trên Linux hoặc chỉ xem biến thể BSD của cùng một lệnh?
Utku

9

Một số câu trả lời tốt cho đến nay, nhưng một lý do nữa để tránh xa các công cụ dòng lệnh OS X mặc định là chúng là các phiên bản rất cũ. Ví dụ: OS X greplà từ năm 2004 và bashtừ năm 2007! Các lý do là Apple từ chối công cụ tàu cấp phép theo GPL3.

Nếu bạn không muốn cài đặt Linux đúng cách, bạn có thể cài đặt thủ công các phiên bản mới nhất (có thể thông qua một số hệ thống cổng như MacPorts, Fink hoặc Homebrew).


3

Sự khác biệt đầu tiên:

ls * -lah

Hoạt động trên linux, thất bại trên mac (tham số phải đến trước). Sử dụng máy ảo hoặc lấy sách cho mac os. Bạn nên học cái bạn sẽ sử dụng nhiều hơn sau đó và sau đó là sự khác biệt.


3
Bạn nên nói rằng nó ls * -lahhoạt động trên Linux theo cách nó hoạt động trên Linux và nó hoạt động trên OS X theo cách nó hoạt động trên OS X. Cách nó hoạt động trên OS X là đúng theo POSIX (12. Các quy ước về tiện ích / 12.2 Nguyên tắc cú pháp tiện ích / Hướng dẫn 9) : tất cả các tùy chọn nên đi trước toán hạng trên dòng lệnh. Như được mô tả trong getopt (3) : Khắc Nếu Thay đổi biến môi trường POSIXLY_CORRECT được đặt, sau đó quá trình xử lý tùy chọn dừng lại ngay khi gặp phải đối số không tham gia.
G-Man nói 'Phục hồi Monica'

3

Cách tốt nhất để học unix là có công việc thực sự để làm với nó. Tôi muốn nói rằng đáng để gặp phải sự khác biệt giữa các ví dụ dành riêng cho Linux trong sách của bạn và các phiên bản Mac của các công cụ tiêu chuẩn, chỉ để có thể làm việc với các tệp và dữ liệu của riêng bạn trong môi trường làm việc bình thường (OS X).

Gặp phải sự khác biệt cũng sẽ là một kinh nghiệm học tập có giá trị, ngay cả khi đôi khi nó làm nản lòng.

Có một máy ảo Linux để thực hành với (đặc biệt đối với các lệnh nguy hiểm tiềm tàng) cũng hữu ích nhưng không có gì vượt qua được việc sử dụng trong thế giới thực cho việc học.

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.