Tại sao Windows và Ubuntu có các lệnh shell tương tự?


14

Ubuntu có bash (Bourne Again SHell) trong khi Windows có vỏ độc quyền. Theo nghiên cứu của tôi, không có tên cho ngôn ngữ được sử dụng cho kịch bản shell trong Windows / Ubuntu. Nó chỉ được gọi là kịch bản shell.

Tại sao Windows & Ubuntu vỏ hiểu các lệnh tương tự như: ls, mkdir, rmdir, mountvà vân vân?

Có một số loại lingua franca cho shell scripting? Nếu vậy, xin vui lòng cho tôi biết thêm chi tiết.


9
Xem en.wikipedia.org/wiki/List_of_Unix_commands - tìm kiếm khi các lệnh này xuất hiện lần đầu tiên và kiểm tra khi Windows và GNU xuất hiện lần đầu tiên. Các lệnh này không phải là một phần của bash - chúng là các tiện ích bên ngoài, vì vậy shell nào được sử dụng là không liên quan.
muru

10
Và tôi khá chắc chắn lsđược hỗ trợ bởi Powershell, không cmd.exe. Và đó là bởi vì những người tạo ra Powershell đã nỗ lực để thêm bí danh cho các lệnh Unix phổ biến để người dùng Unix sẽ thoải mái hơn. technet.microsoft.com/en-us/l Library / dd347739.aspx
muru

7
Bài viết Wikipedia về DOS, có thể làm sáng tỏ điều này. Trích dẫn: "Thay vào đó, DOS chạy trên bộ xử lý Intel 8086 16 bit. Bắt đầu với MS-DOS 1.28 và PC DOS 2.0, hệ điều hành này tích hợp nhiều tính năng khác nhau lấy cảm hứng từ Xenix, biến thể Unix của Microsoft." Vì vậy, Unix, đến một điểm, là tiền thân của MS-DOS. vi.wikipedia.org/wiki/DOS
theodorn 24/2/2016

4
@muru: Trên thực tế, cả hai lệnh Unix DOS thực ra chỉ là bí danh của các lệnh PowerShell thực , được đặt tên theo Action-Objectcấu trúc được tiêu chuẩn hóa , bao gồm một tập hợp các hành động và đối tượng được tiêu chuẩn hóa. Ví dụ: cả hai lsdirlà bí danh cho Get-ChildItem(ngoài ra còn có bí danh gci) mkdirmdthực sự New-Item(thực sự có thể tạo ra nhiều hơn chỉ là các thư mục, nhờ cách tiếp cận dựa trên đối tượng của PowerShell), v.v.
Jörg W Mittag

2
Cũng xem CPM, VMS, JCL.
Zan Lynx

Câu trả lời:


44

Windows cmd.exekhông hỗ trợ ls, mountv.v., trừ khi bạn tự cài đặt chúng và thêm chúng vào %PATH%(thông qua Cygwin, MinGW, Hệ thống con cho các ứng dụng dựa trên Unix (SUA) hoặc một cái gì khác). Powershell nào. Và đó là vì Powershell có những bí danh này cho các lệnh Powershell tiêu chuẩn, để người dùng Unix có thể thoải mái hơn. Xem danh sách các Bí danh Tương thích trong Powershell . Windows có rmdir, mkdirv.v. , nhưng những thứ này, tất nhiên, không hỗ trợ cú pháp tùy chọn giống như bạn tìm thấy trên Ubuntu.

Trong Ubuntu, những thứ này không liên quan gì đến Bash. Chúng là tất cả các lệnh bên ngoài. Có tiêu chuẩn cho các tiện ích như vậy. POSIX là đáng chú ý nhất (xem danh sách các tiện ích bắt buộc POSIX ) và Cơ sở tiêu chuẩn Linux (LSB) là một tiện ích quan trọng khác cho các hệ thống Linux (chủ yếu dựa trên POSIX, nhưng có một số bổ sung ). Các tiện ích trên Ubuntu hầu hết được cung cấp bởi GNU và các tiện ích GNU thường có nhiều tính năng hơn cơ sở theo yêu cầu của POSIX.

POSIX cũng định nghĩa ngôn ngữ shell mà bạn đã đề cập (khác về cơ bản với ngôn ngữ trong cmd.exe). Nó bắt nguồn từ cú pháp của vỏ Bourne . Bash (bây giờ bạn biết Bourne nhắc lại điều gì nữa ), cũng từ GNU, cũng thêm các tính năng trên đầu, nhưng có thể hoạt động theo cách tuân thủ POSIX khi được yêu cầu. Ngôn ngữ POSIX là những gì bạn mong đợi nhận được sh. bash, ksh, ash, dash, zshTất cả sử dụng ngôn ngữ, với những cải tiến. cshlà trong một thế giới (ác mộng) của riêng mình, và tcshnâng cao csh.

Để hiểu thêm một chút, hãy nhìn vào lịch sử của các hệ thống tương tự Unix và Unix . Unix trước Windows hơn một thập kỷ và các tiện ích này lần đầu tiên xuất hiện trong Unix.

Windows, tại một thời điểm, tuân thủ POSIX, vì chính phủ Hoa Kỳ yêu cầu nó cho các hệ điều hành được sử dụng bởi các cơ quan chính phủ (đó là khi họ thêm Dịch vụ cho Unix (SFU) , từ SUA được đề cập trong đoạn đầu tiên). Nhưng yêu cầu đó đã bị loại bỏ, và sau đó, SUA đã bị loại bỏ.

Liên quan:

(Lưu ý phần chung của các bài đăng này - tất cả chúng đều có trên Unix & Linuxlịch sử được gắn thẻ - bạn có thể thấy việc duyệt qua thẻ đó rất nhiều thông tin.)


3
AFAIK, rmdir(cùng với mkdircd / chdir) là các command.comnội dung gốc kể từ MS-DOS 2.0 (không có hệ thống phân cấp trong hệ thống tệp DOS trước đó)
jlliagre

1
rdlà một phím tắt, mdquá.
jlliagre

1
Đây là những gì tôi đã nhận được từ việc đọc câu trả lời của bạn và đọc lướt qua các liên kết được cung cấp từ người khác: Những lệnh / tiện ích này đã xuất hiện lần đầu tiên trong quá khứ trên nhiều hệ thống khác nhau. Theo thời gian, hầu hết chúng đã được tích hợp vào Ubuntu và một số trong số chúng vào Windows. Tuy nhiên, Windows đã quyết định làm mọi thứ theo cách riêng của họ và tạo phiên bản riêng của các tiện ích này. Theo thời gian, Windows đã quyết định thêm bí danh vào các lệnh shell của riêng họ để người dùng linux có thể sử dụng các lệnh trên bề mặt xuất hiện giống như trên hệ thống của họ nhưng bên dưới chúng được dịch sang các lệnh windows
Lập trình viên Shady

1
Ngôn ngữ POSIX là những gì bạn mong đợi nhận được sh. bash, ksh, ash, dash, zshTất cả sử dụng ngôn ngữ, với những cải tiến. cshlà trong một thế giới (ác mộng) của riêng mình, và tcshnâng cao csh. Windows đã có lúc tuân theo POSIX, vì chính phủ Hoa Kỳ yêu cầu nó cho các hệ điều hành được sử dụng bởi các cơ quan chính phủ (đó là nơi SUA đến từ). Nhưng yêu cầu đó đã bị loại bỏ, và sau đó, SUA đã bị loại bỏ.
muru

1
@ShadyProgrammer một bài đăng U & L khác bạn sẽ thấy thú vị: unix.stackexchange.com/q/145522/70524
muru

0

Đơn giản:

Linux là một hệ thống dựa trên mô hình UNIX, được phát minh bởi Dennis Ritchie và Ken Thompson.

Windows / DOS là một hệ thống rẻ tiền của một hệ thống được gọi là CP / M phổ biến vào những năm 1970 trên những máy tính cũ mà bạn đã cắm trên TV, hệ thống này lần lượt là một hệ thống rẻ tiền của các hệ thống UNIX đầu từ cuối thập niên 60 / đầu thập niên 70 .


Mặc dù có một số sự thật cho câu trả lời của bạn, nhưng nó quá đơn giản để trở nên hữu ích. (Và chúng tôi đã sử dụng màn hình hoặc thiết bị đầu cuối với CP / M - không phải TV;)) Khi tôi đang cố gắng tìm ra một số lệnh bash hoặc sed tối nghĩa, đôi khi tôi nghĩ lại những ngày mà HĐH hầu như không làm gì cho bạn, nhưng nó rất dễ thực hiện - và tôi không bao giờ hết bộ nhớ trên máy 64k.
Joe
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.