Этот урок переехал в мой гитхаб: https://github.com/codedokode/pasta/blob/master/soft/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
:
cd / — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему)
cd /etc/apache — перейти в каталог /etc/apache
cd files — переходит в каталог files внутри текущего
cd .. — переходит в родительский кталог
cd ../.. — переходит на 2 уровня выше
cd ~ — перейти в свой домашний каталог (/home/anon например)
cd ~/test — перейти в /home/anon/test
В Windows, сначала надо перейти на нужный диск командой c:
, d:
, e:
и так далее. Потом использовать cd
или chdir
:
d: - перейти на диск d:
cd \ — перейти в корневой каталог
cd \windows\system32
cd ..
cd ..\..
Обрати внимание, 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 в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
ls — показать список файлов в линукс
ls -l — показать файлы с подробностями
dir — показать список файлов в windows с подробностями
dir /b — показать только имена файлов, без подробностей
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (--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 my.php
Windows: c:\php\php.exe my.php
Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:
Линукс: php /some/dir/my.php
Windows: c:\php\php.exe d:\files\my.php
В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.
Попрактиковаться в линукс в командной строке можно на таких командах:
Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl+d] — и файл создан
Просмотреть текстовый файл: cat file.txt
Просмотреть огромный текстовый файл, который не влеазает на экран: cat file.txt | less
В просмотрщике работают стрелки и q для выхода (escape не работает).
Удалить файл: rm file.txt
Скопировать файл: cp file.txt copy.txt
Переместить/переименовать файл: mv file.txt copy.txt
Скопировать в другую папку: cp file.txt /some/other/directory
Запустить команду и сохранить ее вывод в файл: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10
Вывести последние 10 строк файла: cat file.txt | tail -10
Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep dog
Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname '*dog*'
Узнать текущее время: date
Создать папку: mkdir folder
Удалить папку: rm -r folder
Померять, сколько времени выполнялась команда: time [команда]
Узнать свой id пользователя: id
Показать список запущенных процессов: ps -lax
Показать что-то вроде диспетчера задач: top (для выхода q)
Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi
Подробнее о работе команд можно узнать с помощью параметра --help
, дописанного после команды.
Попрактиковаться в комнадной строке в Windows можно так:
help — выводит список полезных команд
dir — выводит файлы в каталоге
Создать текстовый файл: copy con file.txt[enter]ввести текст[enter][ctrl+z][enter] — файл создан
Просмотреть текстовый файл: type file.txt
Просмотреть огромный текстовый файл: type file.txt | more (enter — прокрутка, q — выход)
Удалить файл: del file.txt
Скопировать файл: copy /b file.txt copy.txt
Переименовать файл: ren file.txt copy.txt
Запустить команду и сохранить вывод в файл: dir /? > file.txt
Создать текстовый файл с одной строкой текста: echo lalala lololo > file.txt
Дописать строчку в конец файла: echo boom >> file.txt
Создать папку: mkdir folder
Удалить папку: rmdir folder
Узнать текущее время: time и date (ctrl+с для выхода)
Подробнее о работе команд можно узнать с помощью параметра /?
, дописанного после команды.
В линукс показать информацию о настройке сети: ifconfig
(или /sbin/ifconfig
если у
тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Пропинговать (проверить связь) с сервером: ping google.com
Узнать IP по имени домена: nslookup yandex.ru
Показать список открытых с компьютера соединений: netstat
(в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение)
Проверить путь до какого-то сервера или узла сети:
- в Windows:
tracert google.com
- в linux:
traceroute google.com
(не работает? пиши/usr/sbin/traceroute
или пропиши уже себе sbin в PATH)
Используй ключи --help
и /?
Гугли мануал по командной строке windows/linux в интернете.