Khi nào học phiên bản dòng lệnh của một công cụ lập trình? [đóng cửa]


12

Hầu như mọi công cụ lập trình đều có phiên bản dòng lệnh; nhiều trong số đó cũng có phiên bản gui. Phải mất rất nhiều thời gian và nỗ lực ghi nhớ để tìm hiểu các lệnh khác nhau và các tùy chọn / chuyển đổi khác nhau của phiên bản dòng lệnh.

Vì vậy, tôi có một vài câu hỏi (không nhất thiết phải loại trừ lẫn nhau):

1) Khi nào bạn sẽ bận tâm đến việc học / ghi nhớ các lệnh trong phiên bản dòng lệnh của một công cụ cũng có trong phiên bản gui?

2) Tôi nên học phiên bản dòng lệnh nào? .... trình biên dịch? hệ thống kiểm soát phiên bản? Vân vân


Nếu công cụ mà bạn đang sử dụng cung cấp giao diện dòng lệnh, nhưng không có tài liệu phù hợp cho nó, thì tôi sẽ thận trọng khi sử dụng công cụ đó. Nếu có, thì RTFM. Điều đó không khó lắm, và nếu đến thời điểm đó, hãy đặt câu hỏi trên StackOverflow.com Nếu bạn cần tìm ra cách làm một cái gì đó từ dòng lệnh, tôi có niềm tin rằng bạn có thể. Nếu bạn không chắc chắn liệu bạn có cần phải tìm ra điều gì không, thì có lẽ bạn không biết. Cuộc sống đầy những điều thú vị bên ngoài công việc, nếu chỉ có đủ thời gian ...
Công việc

Câu trả lời:


21

Tôi có thể thấy hai lý do tại sao bạn nên tìm hiểu các tùy chọn dòng lệnh của chương trình:

  1. Khi bạn cần tự động hóa chương trình theo một cách nào đó - xây dựng tập lệnh, xử lý hàng loạt, v.v.

  2. Khi bạn cần tối ưu hóa hành vi của chương trình - giảm dung lượng bộ nhớ, v.v.

Bạn nên học công cụ nào - điều đó hoàn toàn phụ thuộc vào những gì bạn muốn làm tiếp theo.


1
Bạn luôn muốn có thể viết kịch bản một chương trình để có thể tự động hóa chương trình đó ...

1
@ Thorbjørn - đó không phải là những gì tôi nói sao? Hay tôi đã không rõ ràng?
ChrisF

3
Đúng. Tôi chỉ nhấn mạnh phần tự động hóa - không hiểu rằng lên trước sẽ gây đau đớn sau này khi cố gắng điều chỉnh các phương pháp hiện tại thành một cái gì đó có thể viết được.

9

Rất nhiều câu trả lời hay. Tôi thêm một quan điểm bổ sung.

Bạn thay thế GUI bằng các công cụ dòng lệnh, khi bạn muốn đưa con người ra khỏi phương trình / quy trình. Một số lý do và / hoặc lợi ích để làm điều này:

  • Bạn thoát khỏi lỗi của con người (khi lặp lại lệnh)
  • Tuyệt vời cho tất cả các loại tự động hóa, ví dụ như triển khai, xây dựng hoặc chạy thử nghiệm với các đầu vào ngẫu nhiên.
  • Bạn có thể thực sự là một người sử dụng năng lượng . Nó cung cấp cho bạn một tùy chọn leo lên các bậc thang của lập trình meta. Bạn không phải tự thực hiện mọi hành động (nhấp vào GUI), bạn có thể dễ dàng viết kịch bản!
  • Bạn có thể xâu chuỗi các công cụ lại với nhau (nghĩ các ống Unix).
  • Làm cho máy tính làm việc - bạn không mở rộng quy mô, máy tính làm được!

Khi nào nên làm điều đó? Khi bạn tìm thấy lặp lại chính mình.

Tất nhiên là có địa điểm và thời gian cho GUI. Nhưng nếu bạn thực sự muốn khai thác sức mạnh của máy tính và lướt sóng của Định luật Moore, bạn cần học kịch bản các nhiệm vụ của mình.

Chỉnh sửa : Phần thưởng thêm. Bạn có thể mặc chiếc áo phông này :)


7

Mỏ là:

1) Để trở nên năng suất hơn . Đối với tôi, nó nhanh hơn để làm mọi thứ trong một vỏ hơn là chỉ nhấp. Tôi đang nói về việc sử dụng một công cụ, không thiết lập một dịch vụ / công cụ / v.v., bởi vì đôi khi nhanh hơn để có một trình hướng dẫn và chỉ cần nhấp vào Next Next Next, mặc dù các trình hướng dẫn đó cũng tồn tại trong các phiên bản dòng lệnh :)

2) Để sử dụng phiên bản dòng lệnh trong các ứng dụng của bạn. Ví dụ: giả sử bạn muốn chuyển đổi PDF thành tệp văn bản . Nếu bạn sử dụng phiên bản GUI, nó sẽ ổn thôi. Nhưng nếu nó cũng cung cấp giao diện dòng lệnh, nơi bạn có thể làm một cái gì đó như : ./pdf2text input.pdf output.txt, thì nếu bạn cần phát triển một ứng dụng đọc văn bản từ PDF, bạn có thể dễ dàng sử dụng nó, mà không cần sử dụng bất kỳ API nào, hoặc thực hiện một số điều chỉnh .. .

3) Để tìm hiểu những điều chung của một ứng dụng. Ví dụ: nếu bạn đã cài đặt diff trên Windows và giao diện người dùng để so sánh hai tệp. Thật hoàn hảo. Nhưng nếu bạn cần sử dụng nó trên Linux thì sao? Bạn có thể tìm thấy cùng một giao diện người dùng cho Linux, nhưng nếu nó không tồn tại thì sao? Bạn sẽ phải học lại cách sử dụng nó trên Linux, cài đặt một giao diện người dùng mới và làm quen với nó. Nếu bạn đã học cách sử dụng phiên bản dòng lệnh, bạn sẽ không cần đến nó;)

Khoảng 3) ... một số người gặp nhiều rắc rối khi làm việc với Git trên Windows. Họ nói rằng không có giao diện tốt nào trên Windows, nhưng nếu bạn chỉ học cách sử dụng dòng lệnh, bạn sẽ không gặp vấn đề gì. Nó hoạt động theo cùng một cách. Tất nhiên, vấn đề là đôi khi mọi người sợ dòng lệnh ;)

Tôi đề nghị bạn học các phiên bản dòng lệnh của:

  • Trình biên dịch như gcc
  • Trình gỡ lỗi như gdb
  • Git ;)
  • và rất nhiều công cụ trong GNU / Linux mà bạn có thể làm việc trên Windows như egrep , awk , find , ...

Yeahhhh +1 cho git: D Mặc dù diff là ví dụ tôi sẽ không sử dụng lệnh thực sự cho; Tôi thích vimdiff (mặc dù tôi đoán về mặt kỹ thuật đó là thiết bị đầu cuối quá bất cứ điều gì)
thay thế

@mathepic bạn đúng, nhưng vimdiffcũng là một công cụ dòng lệnh, phải không?
Oscar Mederos

Đồng thời ncurses của nó (tôi nghĩ, không chắc chắn) vì vậy tôi làm cho một sự khác biệt nhỏ.
thay thế

vâng, nhưng tôi cũng đang dùng chúng làm công cụ dòng lệnh :)
Oscar Mederos

@mathepic: Câu trả lời cho mối quan tâm của bạn:gvimdiff
Lie Ryan

3

Tại sao bạn cần phải cam kết cú pháp tham số vào bộ nhớ? Đó là lý do tại sao mantồn tại và --help( /?nếu bạn đang ở vùng đất winblowz).

Tôi thấy tôi có thể tra cứu các tùy chọn cho bất cứ thứ gì trong vòng một phút. Mục tiêu là để nhớ những gì các lệnh làm , vì vậy bạn biết những gì cần tìm!


1

Về mặt thực tế, vấn đề là liệu công cụ gui có thiếu tính năng hay không, nếu nó nhanh hơn từ dòng lệnh.

Tuy nhiên, lợi ích phụ của việc sử dụng một dòng lệnh là bạn sẽ có nhiều khả năng đọc tài liệu hơn và tìm hiểu điều gì đang thực sự xảy ra. Đặc biệt với ví dụ về kiểm soát phiên bản của bạn, thực hiện điều này từ dòng lệnh sẽ dạy cho bạn khá nhiều.


1
  • Trình biên dịch: Sẽ cần thiết cho các bản dựng tự động
  • Tạo hoặc hệ thống xây dựng của bạn: xây dựng tự động bắt lỗi
  • Kiểm soát phiên bản: Tôi nghĩ vậy, nhưng nó là ít quan trọng nhất trong ba. Nhưng sau đó tôi có thể thực hiện các thao tác dòng lệnh khác, ví dụ grep thông qua các thông báo thay đổi.

Nhưng bạn không cần phải ghi nhớ các tùy chọn cho trình biên dịch hoặc thực hiện; một khi chúng được thiết lập cho dự án, bạn không phải thay đổi chúng thường xuyên.


1

Những lợi ích của việc học một công cụ dòng lệnh, tôi cảm thấy, vượt xa những lợi ích của việc sử dụng GUI. Đã có nhiều lần GUI mất các tính năng, tuy nhiên, sẽ không công bằng khi nói rằng đây luôn là trường hợp (ví dụ: nhìn vào cmake trên Windows - không có lý do gì để sử dụng dòng lệnh ngoài các trường hợp thông thường).

Theo như ghi nhớ, không cần phải nhớ rằng lệnh của chương trình được đặt lần đầu tiên bạn sử dụng nó. Chỉ cần đánh dấu hướng dẫn sử dụng (nếu bạn sử dụng hướng dẫn trực tuyến nếu không sử dụng "man" trên * nix) và nếu bạn cần một chức năng cụ thể (mà bạn chưa ghi nhớ), chỉ cần tham khảo hướng dẫn. Ghi nhớ về những điều này nên đến một cách tự nhiên bằng cách sử dụng. Chẳng hạn, tôi thường xuyên chạy "tar" và "gzip" từ dòng lệnh, nhưng tôi sẽ phải tham khảo hướng dẫn để hoàn thành các nhiệm vụ mà tôi thường không làm.

Trên tất cả, nếu bạn đang vận chuyển một sản phẩm hoặc gửi một số loại mã nguồn hoặc nói cách khác cho một nhà phát triển đồng nghiệp, việc bao gồm một bộ lệnh sẽ dễ dàng hơn nhiều so với việc viết các hướng dẫn chi tiết về cách sử dụng GUI. Nếu nhà phát triển không hiểu các tùy chọn dòng lệnh bạn đã sử dụng, họ có thể chỉ cần tìm kiếm chúng. Để giải thích GUI cho ai đó không phải lúc nào cũng là giải pháp di động nhất.

Trân trọng,
Dennis M.


0

Mọi thứ, do đó bạn không phụ thuộc vào X11 / Windows để phát triển. Thật tuyệt khi có thể phát triển hoàn toàn từ một thiết bị đầu cuối.


Tôi đồng ý với bạn;)
Oscar Mederos

0

Câu trả lời ngắn: Thời gian tốt nhất để thay đổi (nghĩa là sử dụng dòng lệnh) là NGAY BÂY GIỜ . Đàn ông đích thực dùng bàn phím. Đàn ông đích thực KHÔNG bấm vào. Giai đoạn = Stage.

Câu trả lời dài hơn: Trong viễn cảnh dài hạn, ngoài việc có năng suất cao hơn và do đó có giá trị hơn (ít bị sa thải), sử dụng dòng lệnh có thể / sẽ / sẽ giúp bạn thông minh hơn (do thực hành / ghi nhớ đáng kể) và lành mạnh hơn (vì sử dụng đồng thời cả hai tay trong giao diện dòng lệnh thay vì một tay với chuột phù hợp hơn với công thái học).

Dưới đây là một bài viết / bài luận rất được đề xuất, " Tại sao Windows gây ra sự ngu ngốc ", tại http://www.over-yonder.net/~fullermd/rant/winstool/1


3
Đùa hay không, rằng những người đàn ông thực sự sẽ không giành được bất kỳ giải thưởng nào, mặc dù tôi đồng ý 100% rằng sử dụng CLI hiệu quả hơn rất nhiều, tiếng ồn máy móc chỉ là câm.
ocodo

0

Tôi không chắc rằng bạn nên bao giờ cố gắng để ghi nhớ công tắc trên một công cụ dòng lệnh. Nếu bạn đang tạo một tập lệnh shell hoặc bất cứ điều gì để tự động hóa một số tác vụ, tốt hơn hết bạn nên xem xét tất cả những thứ đó - hãy dành ba mươi giây ngay bây giờ, để tránh hàng giờ đau đớn tìm ra điều gì đã xảy ra sau đó. Nếu bạn đang sử dụng cùng một công cụ dòng lệnh lặp đi lặp lại, có lẽ bạn nên tạo một tập lệnh shell ...

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.