Командная строка - это способ взаимодействия с компьютером, когда ты печатаешь команды, а он их исполняет. Она может использоваться для запуска программ (например на языке PHP) и для настройки некоторых программ.
Для начала, надо знать что командная строка реализована немного по-разному в разных ОС: в линуксе и маке один вариант, в windows другой. На андроиде и iOS тоже есть линуксоподобная командная строка, но чтобы в нее попасть, тебе надо установить какую-нибудь программу-терминал.
Краткий мануал чайника по командной строке:
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd - нажать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той штуке которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (вернуться назад в графический режим - Alt + 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 слово назад/вперед.
В линуксовой и маковской файловой системе нет букв дисков. Пути к файлам там начинаются из единого корня, и используют прямой слеш (например /home/ivan/file.txt), а дополнительные диски (например USB-носители) монтируются в одну из папок внутри файловой системы (например /mnt/flash). В линуксе регистр букв в имени файла имеет значение.
По умолчанию в Windows в консоли очень маленький и нечитаемый шрифт. Нажми правой кнопкой мыши на заголовок, зайди в настройки и поставь нормальный размер шрифта.
Пути к файлу в Windows используют бекслеш (например d:\tmp\file.txt), а регистр букв в них не имеет значения.
В командной строке обычно не работает 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) обозначает корневой каталог.
В Windows 7 и выше можно открыть окно консоли с заданной текущей папкой. Есть 2 способа, как это сделать:
- зажав shift, щелкнуть правой кнопкой по пустому месту в открытом окне папки, из появившегося меню выбрать пункт «command line here» («открыть командную строку»)
- поставить курсор в адресную строку в окне папки, ввести cmd и нажать Enter
Если тебе часто в windows приходится открывать консоль в какой-то папке (например папке с твоими программами), ты можешь создать на рабочем столе ярлык (правой кнопкой на рабочем столе → создать ярлык → ввести cmd, нажать "Далее" → ввести название, нажать "Готово" → зайти в свойства ярлыка → указать рабочую папку, нажать "ОК"). При запуске ярлыка будет открываться командная строка с выбранной текущей папкой.
В линуксе/маке, чтобы быстро перейти в нужную папку, можно набрать cd и перетащить в консоль иконку папки - должен вставиться полный путь к ней. Не гарантирую что это работает во всех дистрибутивах линукса, на маке работает.
В 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). Также, man bash можно набирать в поисковой системе (Гугл, Яндекс) - скорее всего она покажет ссылку на тот же самый мануал.
Также, для Линукса есть прекрасный сайт https://explainshell.com/ , который умеет для введенной команды находить мануал по ней и выводить объяснения каждого аргумента. Он полезен, когда ты видишь где-то в статье команду и хочешь понять, что делает каждая опция в ней. Пример объяснения для команды ls -la /tmp. В Хроме и ФФ также можно нажать правой кнопкой мыши в поле поиска, выбрать там пункт вроде "Добавить как поисковую систему", задать для него ключевое слово (например, exp) и тогда запрос можно будет писать прямо в адресной строке браузера как exp ls -la /tmp.
В 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, именно в них в Линуксе хранятся почти все программы. В текущем каталоге программы не ищутся, если это не указать явно, набрав ./command.
В Windows PATH — это всякие системные папки вроде c:\windows, c:\windows\system32 и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы, установленные в Program Files, не запустить. Только то, что положено в системные папки.
Таким образом: если ты под линуксом, и ты набираешь команду php, то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав php, оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает».
Печалька.
Что же делать? Есть 2 варианта:
- добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему
- писать вместо
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] — и файл создан - Создать текстовый файл содержащий данную строку:
echo Hello World > file.txt - Просмотреть текстовый файл:
cat file.txt - Просмотреть огромный текстовый файл, который не влезает на экран:
cat file.txt | lessилиless file.txt. В просмотрщике работают стрелки и 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(эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно). - Запустить команду, вывести результат на экран и сохранить в файл:
ls | tee -a file.txt - Вывести файл, но не весь, а только первые 10 строк:
cat file.txt | head -10 - Вывести последние 10 строк файла:
cat file.txt | tail -10 - Следить за обновлением файлов и выводить в консоль новые строки, которые в них дописывают:
tail -f file1.txt file2.txt(удобно так мониторить логи) - Вывести только строки файла, содержащие слово «dog»:
cat file.txt | grep -i dog(-iзначит игнорировать регистр букв) - Найти файлы, в имени которых есть «dog», в каталоге /tmp:
find /tmp -iname '*dog*' - Узнать текущее время:
date - Создать папку:
mkdir folder - Удалить папку:
rm -r folder - Померять, сколько времени выполнялась команда:
time [команда] - Узнать свой id пользователя:
id - Показать список запущенных процессов:
ps -lax - Показать что-то вроде диспетчера задач:
top(для выхода q) - Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают:
vi(попробуй:q!если все-таки в него попал) - Запустить нормальный редактор файла:
nano file.txt
Подробнее о работе команд можно узнать с помощью параметра --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 -an (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение).
Проверить путь до какого-то сервера или узла сети:
- в Windows:
tracert google.com - в linux:
traceroute google.com(не работает? пиши/usr/sbin/tracerouteили пропиши уже себе sbin в PATH)
Используй ключи --help и /?
Гугли мануал по командной строке windows/linux в интернете.
Этот раздел читать необязательно, но если ты хочешь знать больше, то пожалуйста.
- версию php можно узнать либо добавив ключ --version, либо -v:
php --version - список установленных модулей:
php -m - вывести конфигурацию (список текущих настроек) PHP:
php -i
В мире Линукс (да и в Windows тоже) у каждой программы обычно есть 3 потока (они имеют номера):
#0 - стандартный ввод — это поток из которого программа читает данные. По умолчанию в него поступает то, что ты набираешь на клавиатуре в консоли. Т.е. по умолчанию программы читают данные с клавиатуры.
#1 — стандартный вывод. В этот поток программа выводит результат работы, по умолчанию он подключен к консоли (т.е. результаты пишутся в консоль). Например, команда ls выводит список файлов в текущем каталоге на стандартный вывод
#2 — поток ошибок. Сюда правильно написанная программа пишет сообщения об ошибках, о ходе выполнения задачи. Для них специально предусмотрен отдельный поток (чтобы при сохранении результатов работы в файл в него не записывались сообщения о ходе работы), но по умолчанию так же как и #1 он подключен к консоли.
Эти потоки можно легко перенаправить в файл или даже другую программу (для чего они и придуманы). Вот как можно перенаправить стандартный ввод, чтобы команда читала данные не с клавиатуры а из файла:
команда < file.txt
Пайп (вертикальная черта) позволяет перенаправить выход одной программы на вход другой. Программа ls выводит список файлов в каталоге. Программа head -10 читает строки с стандартного ввода и выводит только первые 10 из них. Объединив эти команды, можно вывести имена первых 10 файлов:
ls | head -10
В линуксе есть и другие команды фильтры, которые можно применять вместе с пайпом. Это sort (сортирует результаты и позволяет удалять дубликаты), grep слово (отбирает строки, в которых встречается заданное слово), head -N (выводит первые N строк), tail -N (выводит последние N строк) и другие.
Перенаправить стандартный вывод в файл можно так:
ls > file.txt
В этом случае результат работы ls запишется в файл. При этом поток ошибок останется неперенаправленным и они будут выводиться в консоль — именно для этого эти потоки разделены.
Перенаправить поток ошибок в файл можно так:
команда 2> file.txt
Перенаправить и вывод, и ошибки в файл можно так:
команда 2>&1 > file.txt
Когда вывод перенаправлен в файл, ты не видишь ничего в консоли. Для борьбы с этим есть команда tee, которая расщепляет поток: одна копия идет в файл. другая выводится в консоль:
команда 2>&1 | tee file.txt
Команда tee по умолчанию при запуске очищает файл, если там что-то было, можно добавить параметр -a, чтобы она этого не делала, а дописывала строки в конец файла.
Все эти программы берут данные со стандартного ввода, обрабатывают и выдают результат на выход. Они предназначены для совместного использования с перенаправлением потоков ввода/вывода.
grep,egrep- отбирает только строки, соответствующие (или не соответствующие) регулярномуsort- сортирует поданные на вход строкиcat -n- нумерует поданные на вход строкиhead,tail- берут первые или последние строкиtac- читает строки с входа, переворачивает их и выдает в обратном порядкеtr- заменяет указанные символыsed- позволяет делать более сложные замены, напримерsed -rn 's!value=(\d+)!\1\n!gp'найдет во входном тексте строки вида value=123, выделит из них числа и выведет их каждое на своей строкеgzip/gunzip- архивируют/разархивируют данныеwc- считает число строк, слов и символов во входном файлеcut- разбивает каждую строку на куски по символу-разделителю и вырезает указанные куски
Подробнее:
Команда diff file1 file2 сравнивает 2 файла и выдает список различий в них. Она также умеет сравнивать папки с вложенными в них файлами рекурсивно.
Если установить команду pv то можно выводить шкалу прогресса. Допустим мы подаем огромный файл на вход команды и хотим следить сколько байт уже передано. Команда pv перекачивает данные со своего входа на выход, при этом считая их и выводя полоску прогресса:
cat file.txt | pv | другая команда
Скачать файл можно командой wget: wget -O file.txt 'http://example.com/download/file' Кавычки нужны.
Можно отправлять POST- и GET-запросы, например, для тестирования твоего приложения, командой curl:
curl -F name=Username -F 'comment=Hello World' 'http://example.com/post/comment'
С помощью программы gzip/gunzip можно сжимать файлы. По умолчанию она берет данные, поступающие на стандартный вход, сжимает и выдает на выход. Степень сжатия задается параметрами от -1 (минимальная) до -9 (максимальная).
- сжать файл на диске:
cat file.txt | gzip -9 > file.txt.gz - разжать файл и вывести на экран:
cat file.txt.gz | gunzip - выполнить команду, сжать и сохранить в файл ее результат:
команда | gzip -9 > file.txt.gz
Если команда выводит очень много данных, удобно направить ее вывод в программу-пейджер less. Она позволяет прокручивать результат стрелками, искать по регулярке командой / (n — перейти к следующему результату). Для выхода жми q, escape не работает. Во как направить вывод в less:
ls | less
Если надо туда же направить и поток ошибок то пиши так:
ls 2>&1 | less
Некоторые настройки хранятся в переменных окружения. Например, путь к домашнему каталогу хранится в $HOME и вывести ее можно так:
echo $HOME
Поменять переменную можно так: export VAR=value. Обрати внимание, у каждого процесса свой набор переменных, и они наследуются от родителя при создании процесса так что поменять переменные ты можешь только у программ, которые будут запускаться в этой консоли в дальнейшем, а у уже запущенных не поменяешь. Также, можно поменять переменную только для одной запускаемой команды, так:
VAR=value команда, например SOME_VAR=1 OTHER_VAR=2 php file.php
Мощь командной строки заключается в том, что если нам надо выполнить последовательность каких-то команд, то не требуется каждый раз вводить их вручную. Вместо этого, можно поместить их в файл (скрипт) и запустить этот файл. То есть, мы можем написать что-то вроде программы, составленной из отдельных команд.
В Windows скрипты для командной строки (пакетные скрипты) должны иметь расширение .bat или .cmd. В них пишутся команды, которые надо выполнить, каждая на новой строке, например:
@echo off
REM перейти на диск D
d:
REM перейти в папку test
cd \test\
REM напечатать текст
echo Привет мирКак видно, кроме полезных команд, тут есть несколько дополнительных строк. Команда echo off отключает вывод команд в консоль перед их выполнением, а знак @ отключает вывод самой команды echo off. Команда REM позволяет добавить комментарии в текст скрипта. Запускается скрипт просто указанием его имени (с указанием пути, если скрипт не находится в текущей папке или PATH). При этом будет неявно запущен интерпретатор cmd.exe и он будет выполнять команды из указанного файла:
d:\temp\script.batВ скриптах также можно использовать переменные окружения, создавать ветвления (IF) и циклы (FOR).
Подробнее про скрипты CMD в Windows:
- https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB
- http://www.intuit.ru/studies/courses/1059/225/info
- http://rsdn.org/article/winshell/batanyca.xml
- https://technet.microsoft.com/ru-ru/library/bb490869.aspx
- http://ab57.ru/cmd.html
Возможности bat-скриптов очень ограниченны, потому на смену им Microsoft разработала мощный интерпретатор Powershell и язык скриптов для него.
В linux (и mac) любой текстовый файл можно сделать исполняемым, если поставить ему флаг execute (признак, что файл исполняемый) командой chmod +x file.xyz и в первой строке файла указать специальную конструкцию под названием shebang (#!), за которой указан полный путь к программе-интерпретатору. Ну например, если у нас есть PHP-файл, мы можем сделать его исполняемым и написать в начале строку (обратите внимание, если файл сохранен в кодировке utf-8, в нем не должно быть BOM):
#!/usr/bin/phpИ этот файл станет исполняемым, мы сможем запускать его, просто написав его имя:
./file.phpЕсли в качестве интерпретатора прописать путь к оболочке bash, то получится bash-скрипт. В нем указываются команды, которые надо выполнить, каждая на новой строчке, например:
#!/bin/bash
set -e
# перейти в папку tmp
cd /tmp/
# вывести список файлов в ней
ls -alЗдесь использованы дополнительные конструкции: set -e - говорит, что при ошибке выполнения любой команды скрипт завершается (без этого скрипт бы продолжил выполняться), символ # обозначает комментарий. Язык bash довольно мощный, в нем есть ветвления (if), циклы (for, while), функции и переменные.
Для bash-скриптов обычно либо указывают расширение .sh, либо никакого расширения. В linux, как было написано выше, интерпретатор для файла определяется первой строчкой в нем, а не расширением.
Подробнее:
- https://ru.wikipedia.org/wiki/%D0%A8%D0%B5%D0%B1%D0%B0%D0%BD%D0%B3_(Unix)
- https://habrahabr.ru/company/ruvds/blog/325522/
- http://www.opennet.ru/docs/RUS/bash_scripting_guide/
Линуксоиды — суровые занятые люди и меньше всего им хочется ради установки программы что-то искать, скачивать, проверять на вирусы, запускать, жать далее, обнаружить что надо сначала поставить NET framework и так далее, а потом отвечать на вопросы типа «Не хотите ли проверить обновления?». Они придумали другой способ: на сервере создается репозиторий пакетов с программами, а пользователь несколькими командами может найти и установить нужный. В Debian используются пакеты формата deb и программа apt-get.
Для начала надо скачать свежий список пакетов:
sudo apt-get update
Эту команду стоит делать если ты давно ее не делал. Теперь список пакетов скачан и можно воспользоваться поиском. попробуем найти Апач:
apt-cache search apache | sort
Заметь, этой команде права рута не нужны. Команда sort сортирует результаты. Среди кучи результатов видим:
apache2 - Apache HTTP Server metapackage
Попробуем его установить. Это делается командой apt-get install (имена пакетов):
sudo apt-get install apache2
Готово! При этом команда install автоматически обновит имеющиеся у тебя программы и библиотеки, если для них вышла более новая версия. Заметь, что ты можешь указать много пакетов сразу:
sudo apt-get install apache2 php5-common php5-curl
С помощью apt-get и заготовленного списка пакетов можно одной командой установить на сервер весь нужный софт. Так-то! Просмотреть установленные пакеты можно командой dpkg-query -l
Все пакеты подписаны цифровой подписью и она проверяется при установке, так что вирусов можно не бояться, если только ты не установил в систему ключи из других источников, в этом случае ты должен доверять автору ключа так как он может установить тебе в систему что угодно и выполнить любой код. По умолчанию установлены только официальные дебиановские ключи.
Пакеты, которые стоит установить сразу:
apache2 apache2-mpm-prefork php5 php5-cli php5-curl php5-dev php5-gd php5-gmp php5-imap php5-intl php5-mcrypt php5-mysqlnd php5-xdebug php5-xsl — думаю понятно что это.
- git — система управления версиями, она тебе понадобится чтобы коммитить код на гитхаб.
- htop (линуксовый цветной диспетчер задач, попробуй его запустить, q = выход)
- iftop (показывает какая программа куда соединяется и сколько трафика качает)
- iotop (показывает кто мучает диск)
- mc (файловый менеджер и редактор mcedit)
- nano (простой текстовый редактор)
- sysv-rc-conf (включает и выключает службы в автозапуск)
Удобно использовать редактор nano, который часто предустановлен в линуксе. Горячие клавиши в нем подписаны внизу экрана.
Или же mcedit, который входит в состав файлового менеджера mc. Пиши например sudo mcedit /etc/apache2/httpd.conf и редактируй. Кнопки: F2 — сохранить, F10 — выйти, F7 − искать, Shift + F7 — искать еще, Esc + Tab — автодополнение. Escape как «отмена» работает, но надо жать 2 раза.
sudo less /var/log/apache2/error.log
sudo tail /var/log/messages
Отслеживать лог в реальном времени (попробуй): sudo tail -f /var/log/error.log
Поиск в логе через grep:
cat /var/log/messages | grep -i word
Для доступа к логам не нужны будут права админа если ты добавишь себя в группу adm.
Управление службами (апач. mysql): sudo service mysql действие
Где действие — это:
- start = запустить
- stop = остановить
- restart = перезапустить
- reload = обновить настройки из конфига (если ты его правил например) без остановки работы службы. То есть сайт ни на секунду не перестанет работать (в случае с restart — перестанет на несколько секунд). Не все службы это умеют, но если умеют то это удобно.
Выбор какие службы будут запускаться при загрузке: sudo sysc-rc-conf, для выхода жми q.