Командная строка - это способ взаимодействия с компьютером, когда ты печатаешь команды, а он их исполняет. Она может использоваться для запуска программ (например на языке 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.