Tôi đang cố gắng chạy các lệnh Unix trên cả hai bash.exe
và mintty.exe
, được tìm thấy trong Cygwin64/bin
(ví dụ: usr/bin/bash.exe). Khi tôi cố gắng chạy Unix commmand ls
, tôi nhận được bash: ls: command not found
. Tuy nhiên, khi tôi nhấp vào biểu tượng máy tính để bàn cho các thiết bị đầu cuối Cygwin, và nhập ls
vào thiết bị đầu cuối Cygwin kết quả, Unix commmands như ls
làm việc! Tại sao lệnh Unix không hoạt động trên bash.exe
và mintty.exe
, nhưng trên thiết bị đầu cuối kết quả từ việc nhấp vào biểu tượng? Hơn nữa, sự khác biệt giữa hai vỏ được mang bởi bash.exe
và mintty.exe
là gì?Cygwin Bash.exe so với mintty.exe
Trả lời
Hai chương trình này không có cách nào thay thế cho nhau. Bash là shell và MINTTY là terminal emulator. MinTTY thường chạy trình bao của người dùng của bạn trong chính nó, có thể hoặc không thể là Bash. Đó là để nói, bạn thường sử dụng hai chương trình với nhau.
Nếu bạn kiểm tra các phím tắt MinTTY rằng Cygwin's setup.exe
bản dựng, bạn sẽ thấy rằng nó không phải là một khởi chạy đơn giản của chương trình. Nó chạy nó như là mintty -
, thông báo cho MinTTY chạy shell của người dùng của bạn như một vỏ "login".
Đây là vấn đề bạn đã gặp phải. Nếu bạn chạy bash.exe
mà không có tùy chọn, bạn chỉ cần lấy vỏ hình khỏa thân, với cấu hình mặc định của nó, có nghĩa là nó không làm những việc như thêm Cygwin /bin
vào số PATH
của bạn. Tương tự, nếu bạn chạy mintty.exe
mà không có tùy chọn, nó sẽ chạy trình bao của người dùng mà không có tùy chọn. Khi bạn đặt dấu gạch ngang cho mintty.exe
thay vì tên chương trình, nó sẽ chạy vỏ của người dùng của bạn làm vỏ đăng nhập: bash -l
, thay vì chỉ bash
. Tùy chọn đó làm cho Bash đọc trong một loạt các tập lệnh khởi động ngay sau khi khởi động, thiết lập lệnh PATH và nhiều hơn nữa bên cạnh.
Vì vậy, nếu bạn phải chạy bash.exe
ngoài MinTTY vì lý do nào đó, bạn có thể nói bash -l
để nhận được hành vi gần hơn với hoạt động bash.exe
khi chạy qua mintty -
. Tuy nhiên, bạn sẽ mất tất cả các tính năng mô phỏng thiết bị đầu cuối. MinTTY có hành vi sao chép tốt hơn nhiều so với giao diện điều khiển của Windows, ví dụ, đặc biệt là trên Windows 8 trở lên.
(Windows 10 bao gồm a much-improved console, nhưng mintty vẫn còn tốt hơn, IMHO, đặc biệt là khi làm việc với Cygwin.)
Say man mintty
tại dấu nhắc lệnh Cygwin cho một lời giải thích đầy đủ hơn về tất cả những điều mintty làm cho bạn. Câu hỏi cụ thể này đã được trả lời trong phần INVOCATION của the MinTTY manual page.
- 1. Tăng tốc so sánh tệp (với `cmp`) trên Cygwin?
- 2. Thực thi lệnh cygwin từ NodeJS
- 3. Biên dịch C++ với Cygwin
- 4. Không chạy cmake với cygwin
- 5. CYGWIN = nodosfilewarning không giúp cảnh báo cygwin
- 6. redhat cygwin vs cygwin? bất kỳ diffrence?
- 7. cygwin + console2 ctrl-c ngắt bàn phím không hoạt động
- 8. Kết nối với MySQL thông qua Cygwin
- 9. kết nối với mysql từ cygwin
- 10. Có perlbrew làm việc với Cygwin?
- 11. Biên dịch độc lập với Cygwin
- 12. Chạy đá quý Ruby với Cygwin
- 13. Heroku toolbelt đăng nhập với Cygwin treo
- 14. cygwin + rsync
- 15. Mở tệp từ Cygwin
- 16. Makefile trên Cygwin
- 17. Python: -mno -cygwin
- 18. pymssql so với pyodbc so với adodbapi so với ...
- 19. APL so với A so với J so với K?
- 20. Làm thế nào để tôi khởi động Mintty và chạy một tập lệnh?
- 21. hoàn thành tab cygwin
- 22. Cygwin trong Visual Studio
- 23. Cài đặt Cygwin
- 24. chạy gcc trong cygwin
- 25. Sự khác biệt giữa MSYS2 và Cygwin
- 26. Sử dụng bash (cygwin) bên trong chương trình C#
- 27. Sử dụng tramp với EmacsW32 và cygwin, có thể?
- 28. Bắt webcam để làm việc trong OpenCV 2.3 với Cygwin
- 29. Có thể sử dụng valgrind cùng với Cygwin không?
- 30. Đăng nhập hiện không tương thích với git bash/cygwin
Cảm ơn bạn đã trả lời! –