codedokode / cli.md
Я не знаю, ты пользуешься Линуксом или Уиндоузом (обычно туториалы рассчитаны на линуксоидов и макосников, уиндоуз не модный среди молодежи). В макоси все практически так же как и в линуксе, в windows пошли своим путем и сделали все как в DOS.
Думаю, что в данном случае тебе поможет не рыба, а удочка, так что держи пасту. Если после прочтения у тебя будут какие-то вопросы, или по-прежнему непонятно, почему команды не работают, пиши в наш уютный тред, разберемся.
Краткий мануал чайника по командной строке:
Как попасть в командную строку?
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd — наждать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той фигне которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (ааа как вернуться назад? Ctrl + F7)
- Linux: если ты линуксоид, ты и так знаешь
Во всех операционных системах
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.
[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько).
[ctrl+c] — прерывает выполнение команды, например, если она долго тупит
Важно: клавиша Esc не работает в командной строке. Клавиши Ctrl + C, V, X не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».
В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль.
Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a] чтобы перейти в начала строки и [ctrl+e], чтобы в конец. [alt + b] (back) и [alt + f] (forward) двигают курсор на 1 слово назад/вперед.
В командной строке не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Скопировать текст можно, выделив мышью (в Windows надо разрешить выделение текста сначала в настройках окна и нажать Enter после выделения).
В командной строке результат выполнения команд зависит от того, в каком каталоге и на каком диске ты находишься. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду cd :
В Windows, сначала надо перейти на нужный диск командой c: , d: , e: и так далее. Потом использовать cd или chdir :
Обрати внимание, windows и linux используют разные виды слешей. Обрати внимание, .. обозначает «родительский каталог». Обрати внимание, только в линукс и мак
обозначает «домашний каталог» (это /home/username или /Users/username ). . (одна точка) обозначает текущий каталог и cd . никуда не перейдет. / (линукс) или \ (Windows) обозначает корневой каталог.
В linux — команда clear или клавиша [ctrl+L], в windows — команда cls (clear screen).
Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе ( ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).
Посмотреть права на файл в Линукс можно либо командой ls -l , либо stat file.txt
Команды и оболочка
Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр ( —help или /? ):
В линукс: ls —help — выведет справку по команде ls
В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q, для прокрутки используй стрелки и PgUp/PgDn)
В Windows: dir /? — выведет справку по команде dir
В Windows: help выведет подсказку по основным командам
Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.
Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:
В линуксе: echo $PATH
В windows: echo %PATH%
В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге програмы не ищутся, если это не указать явно.
В Windows PATH — это всякие системные папки вроде c:\windows и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы и игры, установленные в Program Files, не запустить. Только то, что положено в системные папки.
Таким образом: если ты под линуксом, и ты набираешь команду php , то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав php , оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает, ну его нафиг».
Что же делать? 1) добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему 2) писать вместо php полный путь c:\php\php.exe
Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:
Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:
В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.
Больше команд — linux
Попрактиковаться в линукс в командной строке можно на таких командах:
Подробнее о работе команд можно узнать с помощью параметра —help , дописанного после команды.
Больше команд — Windows
Попрактиковаться в комнадной строке в Windows можно так:
Подробнее о работе команд можно узнать с помощью параметра /? , дописанного после команды.
Команды для работы с сетью Интернет
В линукс показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Пропинговать (проверить связь) с сервером: ping google.com
Узнать IP по имени домена: nslookup yandex.ru
Показать список открытых с компьютера соединений: netstat (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение) Проверить путь до какого-то сервера или узла сети:
Как перейти в корневой каталог
Вывод имени текущего каталога или переход в другую папку. При использовании только с именем диска (например chdir C:) команда chdir выводит имена текущих диска и папки. Выполненная без параметров команда chdir выводит текущие диск и каталог.
Синтаксис
chdir [[/d] [диск:][путь] [..]] [[/ d] [диск:][путь] [..]]
cd [[/d] [диск:][путь] [..]] [[/ d] [диск:][путь] [..]]
Параметры
Заметки
- Работа с расширениями командного процессора
Если расширения командного процессора разрешены (задано по умолчанию), имена папок в пути к текущему каталогу отображаются точно так же, как на жестком диске, в том же формате имен папок с учетом регистра. Например, если имя папки на жестком диске C:\Temp, команда CD C:\TEMP задает текущий каталог C:\Temp, соответствующий формату имени этой папки на жестком диске.
Чтобы запретить расширения командного процессора для определенного процесса, введите следующую команду:
Если расширения командного процессора запрещены, в команде chdir нельзя использовать пробелы в качестве разделителей. Таким образом, можно перейти в подкаталог, имя которого содержит пробел, не заключая параметр [путь] в кавычки. Например, следующий путь позволяет перейти в подкаталог \Start menu.
cd \winnt\profiles\username\programs\start menu
Для получения дополнительных сведений о разрешении и запрещении расширений командного процессора щелкните ссылку CMD.
Корневой каталог является вершиной дерева каталогов на диске. Чтобы перейти в корневой каталог, введите следующую команду:
Чтобы перейти в основной каталог диска отличного от текущего, введите следующую команду:
chdir [диск:\[каталог]]
cd [диск:\[каталог]]
Чтобы проверить переход к этому каталогу, введите одну из следующих команд:
chdir [диск:]
cd [диск:]
Примеры
Используемая с именем диска команда chdir позволяет перейти в текущий каталог этого диска. Например, если ввести команду cd c: в приглашении каталога C:\Temp, отобразится следующая строка:
Чтобы перейти в текущий каталог Reports, введите одну из следующих команд:
Чтобы перейти из текущего каталога в подкаталог \Specials\Sponsors, введите следующую команду:
Или, если текущим каталогом является \Specials, введите следующую команду, чтобы перейти в подкаталог \Specials\Sponsors:
Чтобы перейти из подкаталога в родительский каталог, введите следующую команду:
Для вывода на экран имени текущего каталога можно использовать команду chdirили cd без параметров. Например, если текущим каталогом является \Public\Jones на диске B, вызов команды chdir приведет к следующему результату:
Если при работе на диске D требуется скопировать все файлы каталогов \Public\Jones и \Public\Lewis на диске C в корневой каталог диска D, введите следующую последовательность команд:
Если требуется скопировать все файлы каталогов \Public\Jones и \Public\Lewis в текущий каталог диска D, введите следующие команды:
2.3. Команды работы с каталогами Вывод каталога
имя– имя файла или группы файлов, о которых необходимо получить информацию.
/p– режим просмотра содержимого каталога (рис. 2.2) с выводом информации на экран порциями по 23 строки (постраничный вывод);
/w – режим просмотра с менее детальной информацией (рис. 2.3), при этом выводятся только названия каталогов, заключенные в квадратные скобки, и имена файлов с расширением.

Рис. 2.2. Постраничный вывод содержимого каталога
А:\>dir D:\WIN\CURS /p
В результате выполнения этой команды на экран постранично выводится информация о содержимом подкаталога второго уровня CURS(подкаталоги и файлы, их размер, дата и время создания). Для прерывания выполнения этой команды используется сочетание клавишCtrl+C.
!! Просмотрите содержимое корневого каталога диска С:, используя постраничный режим просмотра (dir c:\/p).

Рис. 2.3. Сокращенный вывод содержимого каталога
Вывод может быть направлен не только на экран дисплея, но и на другие устройства, например, на принтер:
А:\>dir С:\WIN\CURS /w >prn
Здесь символ > передprnявляется символом переадресации вывода информации.
Вывод дерева каталогов
Дерево каталогов можно вывести на экран (рис. 2.4) и на принтер.
Для вывода на экран предназначена команда TREE(дерево).
TREE[диск] [путь] [имя] [/f] [|more]
где диск– имя диска, на котором размещена система каталогов;
путь –путь к каталогу, дерево которого необходимо просмотреть;
имя – имя этого каталога;
/f– режим вывода дерева каталогов с содержащимися в них файлами;
|more– команда конвейерной обработки вывода порциями по 23 строки.
C:\WIN>tree A:\TURBO\MYFILE /f |more
выводится дерево подкаталога второго уровня MYFILEдискаA: постранично с файлами.
!! Выведите на экран дерево каталогов диска С: порциями по 23 строки без файлов (dir c:\ /p).

Рис. 2.4. Вид дерева каталогов
Для вывода дерева каталогов на принтер используется команда TREEс перенаправлением вывода>prn:
C:\WIN>tree A:\TURBO\MYFILE /f >prn
Смена каталогов
Смена текущего каталога производится с помощью команды CD(ChangeDirectory– сменить каталог).
CD [путь]имя
где путь– путь к подкаталогу в иерархической файловой структуре;
имя – имя подкаталога, который необходимо объявить текущим.
Например, для того чтобы, находясь в корневом каталоге, сделать текущим каталог CURS, необходимо ввести команду
C:\>cd WIN\CURS
Если необходимо переместиться вверх на один уровень, например, из CURSвWIN, вводится команда
C:\WIN\CURS>сd ..
Здесь две точки (..) означают родительский каталог (в данном случаеWIN).
!! Переместитесь из текущего каталога на один уровень вверх (cd..) Обратите внимание на изменения, произошедшие в приглашении DOS.
Чтобы вернуться в корневой каталог из текущего подкаталога любого уровня, необходимо ввести команду cd \ , например,
C:\WIN\CURS>cd \
!! Перейдите в корневой каталог (cd \), приглашение должно выглядеть как C:\>.
В общем случае, находясь в текущем каталоге одного диска, можно сменить текущий каталог другого диска. Например,
Команда смены текущего каталога CD.
После запуска приглашение командной строки показывает текущий каталог. По умолчанию, это каталог профиля текущего пользователя. Для смены текущего каталога используется специальная команда CD.
Команда CD. Смена текущего каталога.
Для того чтобы перейти из текущего каталога в другой каталог используется команда cd. Команда имеет следующий синтаксис:CD [/D] [диск:][путь][..].
Команда для перехода в корневой каталог текущего диска выглядит так: cd\

Для того чтобы перейти в один из каталогов диска «C» используется команда: cd [каталог]
Например, зайдем в папку «Program Files»: cd program files

Для перехода из одного каталога диска «C» в другой каталог диска «C» используется команда: cd [\каталог]
Например, зайдем из папки «Program Files» в папку «Windows»: cd \windows
Для перехода из каталога в подкаталог используется команда: cd [каталог]
Например, зайдем из папки «Windows» в папку «Fonts», расположенную в папке «Windows»: cd fonts
Можно сразу перейти в папку «Fonts» из корневого каталога диска «C»: cd [каталог/подкаталог]
Например, перейдем в корень диска «C» с помощью команды cd\, а затем перейдем в папку «Fonts»:
cd windows/fonts
Чтобы перейти из текущего подкаталога в родительский каталог применяется команда cd..
Для перехода из текущего подкаталога в другой каталог, который не является родительским по отношению к текущему каталогу, применяется команда: cd [\каталог].
Например, перейдем в папку «Fonts» ( cd fonts ), а затем в папку «Program Files»: cd \program files
Таким образом, из вышесказанного следует вывод:
- Для перехода в корень диска применяется команда cd\
- Для перехода в любой каталог диска применяется команда cd [каталог] (из корня диска) и команда cd [\каталог] (из любого каталога или подкаталога).
- Для перехода в подкаталог применяется команда cd [каталог] (из каталога) и команда cd [каталог/подкаталог] (из корня диска).
В случае если необходимо поменять не только текущий каталог, но и текущий диск, необходимо использовать ключ /D. Команда будет выглядеть так: cd /D [диск:/] .
Например, перейдем из папки «Program Files», расположенной на диске «C», на диск «D»: cd /D d:/
Теперь с диска «D» перейдем в папку «Fonts», расположенную в папке «Windows» на диске «C»:
cd /D c:/windows/fonts
Команда СD может записываться как СHDIR. CD и CHDIR являются аналогичными командами и обе являются сокращениями от англ. «change directory» — поменять каталог.