Чем терминал Ubuntu отличается от Windows cmd.exe?
Имеет ли стандартный терминал Ubuntu те же функции, что и в Windows? cmd.exe или это делает разные задачи?
Я имею в виду, например, могу ли я перемещать файлы или размонтировать USB-устройства в обоих? Я знаю, что у них разные синтаксисы.
Вы бы открыли терминал Ubuntu для того же, что открыли бы вы? cmd.exe на Windows или есть общие случаи использования?
2 ответа
cmd.exe это оболочка. Баш это оболочка. Они оба интерпретируют и запускают ввод из командной строки одинаковыми (ish) способами, оба позволяют вам запускать вещи, и оба могут интерпретировать сценарии на основе их относительных синтаксисов, но эти синтаксисы довольно разные.
PowerShell — еще один терминальный переводчик от Microsoft. Это намного больше похоже на Bash с точки зрения собственных возможностей, хотя и с еще более диким синтаксисом.
В целом, акцент в Windows сделан на предоставлении графического доступа к вещам. Многие функции не предоставляются командами командной строки. То, что было в основном скопировано из MSDOS, так что повседневные вещи, такие как перемещение файлов, достаточно просты, но размонтирование может потребовать дополнительных приложений. Я подозреваю, что вы можете сделать что-нибудь с достаточным количеством поиска и установки.
Другими словами, если бы я обнаружил загрунтованное ядерное устройство и единственный интерфейс для его распространения — это командная строка cmd.exe, мы, вероятно, все умрем. Я бы рискнул с tar ,
cmd а также terminal похожи в предоставлении пользователю текстового интерфейса (очевидно) и доступа к определенным утилитам более низкого уровня для устранения неполадок или настройки систем.
Например, в моем университете каждый раз, когда компьютер не позволяет пользователю войти в систему, что делает администратор? Откройте cmd и ping гостья. Это было бы то же самое с терминалом.
Как бы вы убили процесс, который занимает слишком много памяти? В терминале pkill firefox и в cmd taskkill firefox.exe ,
Сценарии оболочки в Linux аналогичны пакетным сценариям в Windows. Вот grep эквивалент на окнах. Раньше был текстовый редактор командной строки, работающий под cmd.exe , называется edit но это было прекращено, так как Windows 7 64-битной версии.
В этом отношении, да, вы бы открыли cmd и терминал для тех же целей.
Разница, однако, в том, что терминал linux может выполнять гораздо больше задач, и он гораздо более гибкий. Даже пользователи среднего уровня могут делать простые вещи в терминале, тогда как cmd.exe на Windows это скорее админ эксклюзивность.
Сответствие консольных команд Windows и Linux.
При переходе с Windows на Linux и наоборот, для тех, кто знаком с командной строкой, может пригодиться небольшая справка по соответствию консольных команд этих операционных систем. Естественно, полного соответствия, за редким исключением, не бывает, и в приведенной таблице собраны команды, идентичные по результатам выполнения или функционально близкие.
Соответствие команд CMD Windows командам Linux
Строчные и заглавные буквы для команд командной строки Windows воспринимаются одинаково, ECHO и echo — будет интерпретировано как одна и та же команда. При работе в командной строке Linux соблюдение регистра символов обязательно.
И в Linux, и в Windows используются специальные символы (иногда их еще называют метасимволами), которые интерпретируются оболочкой пользователя как определенные команды или данные.
Наиболее распространенные спецсимволы CMD Windows и оболочки bash Linux
Описание | Спецсимвол CMD Windows | Спецсимвол Linux |
Объединение команд | | и & (|| и &&) | | и & (|| и &&) |
Выполнение задачи в фоновом режиме | & | |
Подстановочные значения в строках | * и ? | * и ? |
Набор символов | [ ] | |
Отмена спецсимвола | ^ | \ |
Перенаправление ввода | или >> | > или >> |
Значение переменной | %переменная% | $переменная |
Домашний каталог | ~ | |
Текущий каталог | . | . |
Родительский каталог | .. | .. |
Комментарий | # |
В Linux набор спецсимволов зависит от используемой оболочки, и в любой из них спецсимволы используются чаще и их набор больше, чем в командной строке Windows. При чем, даже если спецсимволы одинаковы, их применение может приводить к разным результатам. Например, шаблоны имен файлов, задаваемые с помощью символа звездочки:
*.* — и в Linux, и в Windows такая конструкция означает – ”любые имена файлов с любым расширением”.
Аналогичным образом используется и знак вопроса, означающий ”любой одиночный символ” и в Linux, и в Windows.
test?.* — все файлы, имена которых начинаются со строки test и имеющие после нее любой символ. Однако особенности реализации командных интерпретаторов, могут приводить все же к разным результатам использования вроде бы аналогичных конструкций:
ls . * — эта команда Linux отобразит список файлов с длиной имени в 5 символов.
dir . * — эта команда Windows отобразит список файлов с длиной имени в 5 символов и меньше.
При использовании шаблона . txt в Windows отобразятся все файлы с именами длиной в 5 символов и менее, с расширением и .txt и .TXT. В Linux – с именами в 5 символов, и только те файлы, у которых расширение не содержит заглавные буквы.
Использование команд Linux в среде Windows.
С появлением в Windows 10 Подсистемы Windows для Linux (WSL – Windows Subsystem for Linux) пользователь получил возможность использовать в командной строке Windows команды оболочки Linux, появилась возможность создавать сценарии, в которых будут использоваться и команды CMD Windows, и команды оболочки Linux. Например, командный файл для вывода списка определенных файлов каталога C:\Windows\System32:
REM вывод списка файлов с 3-символьными именами и
REM расширением .exe средствами Linux
wsl ls /mnt/c/windows/system32/. exe
REM вывод списка файлов с 3-символьными именами и
REM расширением .exe средствами Windows
По умолчанию, Подсистема Windows для Linux не включена. Как ее включить и настроить – в отдельной статье, ссылка на которую приведена в конце страницы.
После установки и настройки WSL, в командных файлах CMD Windows можно использовать утилиту wsl.exe , обеспечивающую конфигурирование и выполнение команд Linux.
wsl ls /mnt/c/windows/system32/. exe — команда wsl, обеспечивающая исполнение в обычном bat-файле линуксовой команды ls /mnt/c/windows/system32/. exe .
После установки подсистемы WSL, кроме утилиты wsl.exe в среде Windows будут присутствовать еще и утилиты wslconfig.exe и bash.exe обеспечивающие максимальную совместимость Windows и Linux.
Разница командных строк?
Добрый вечер программисты!
У меня к вам вот такой вопрос-в чем разница между командными строками эмулятора Linux GitBash и командной строки Windows ?
Я обычно пользовался командной строкой GitBash, а вчера вот установил через эмулятор Linux — Ruby. Его не было видно ни через GitBash ( ruby -v) ни через командную стройку Windows. Это вроде логично, ведь Linux эмулирован. Но если установит установщиком под Windows то GitBash той же командой не видит.
Что я не верно сделал? Или это все таки разные команд. строки. Если я прав, расскажите, очень нужно это. А если очень глупый вопрос, прошу прощения)
Вам нужно почитать что такое переменная PATH и как ее настроить в Линукс и в Windows — в ней перечислены каталоги, в которых происходит поиск команд-программ.
Если вы пишете команду в строке, то
в Windows:
* Проверяется является ли эта команда внутренней командой (echo, set)
* Есть ли такая программа в текущем каталоге (если указана без расширения, то ищется CMD.bat, CMD.cmd, CMD.exe, CMD.com
* Есть ли такая программа в каталогах, перечисленных в PATH
в Linux:
* Проверяется является ли эта команда внутренней командой шелла (echo, set)
* Есть ли такая программа в каталогах, перечисленных в PATH (у файла должен быть аттрибут executable)
Не в курсе откуда берёт GitBash переменные среды, но явно как-то это должно быть настроено, поидее в каталоге вашего юзера должен быть .bashrc файл.
Для посмотреть PATH выполните в консоли баша, в выводе должен быть путь к каталогу где лежат бинарники руби
echo $PATH
Так-же учтите что для виндовой консоли ruby.exe и ruby это одно и то-же, а вот для баша это разные вещи, так что вводите ruby.exe ака полное имя.
Linux vs Windows Commands
Most of us think that Linux has terminal and we can use a command-line interface only in Linux but it is just a myth. There is a PowerShell and a command prompt in windows as well where we may execute the commands easily. But Windows and Linux have commands with the same name as well.
SNo. | Windows | Linux | Description |
---|---|---|---|
1. | dir | ls -l | Directory listing |
2. | ren | mv | Rename a file |
3. | copy | cp | Copying a file |
4. | move | mv | Moving a file |
5. | cls | clear | Clear Screen |
6. | del | rm | Delete file |
7. | fc | diff | Compare contents of files |
8. | find | grep | Search for a string in a file |
9. | command /? | man command | Display the manual/help details of the command |
10. | chdir | pwd | Returns your current directory location |
11. | time | date | Displays the time |
12. | cd | cd | Change the current directory |
13. | md | mkdir | To create a new directory/folder |
14. | echo | echo | To print something on the screen |
15. | edit | vim(depends on editor) | To write in to files. |
16. | exit | exit | To leave the terminal/command window. |
17. | format | mke2fs or mformat | To format a drive/partition. |
18. | free | mem | To display free space. |
19. | rmdir | rm -rf/rmdir | To delete a directory. |
20. | taskkill | kill | To kill a task. |
21. | tasklist | ps x | To list running tasks. |
22. | set var=value | export var=value | To set environment variables. |
23. | attrib | chown/chmod | To change file permissions. |
24. | tracert | traceroute | To print the route packets trace to network host. |
25. | at | cron | daemon to execute scheduled commands. |
26. | type | cat | To print contents of a file. |
27. | ping | ping | To send ICMP ECHO_REQUEST to network hosts. |
28. | nslookup | nslookup | To query Internet name servers interactively. |
29. | chdisk | du -s | For disk usage. |
30. | tree | ls -R | To list directory recursively. |
Examples:
1. Listing Directories and files in the current folder/directory.
For Windows:
2. Renaming a file.
For Windows: