Осваиваем командную строку. Практические советы.
Караул! Помогите! После (установки, изменения состава пакетов, настройки видеокарточки – нужное подчеркнуть) графический интерфейс не грузится, только командная строка. Что делать?! Такие вопросы через один встречаются на форумах, посвященных Linux. Что делать? – вводить команды. Ниже даны примеры с разъяснениями по самым распространенным вопросам при работе с командной строкой, задаваемым обычно на форумах.
После установки системы я вижу на экране строку
login:
Что делать?
Необходимо ввести имя пользователя, указанное на этапе установки, либо root, нажать на Enter, затем ввести пароль, который просила ввести программа установки.
root – это суперпользователь в Unix системах.
Внимание! Работать постоянно с правами пользователя root крайне нежелательно с точки зрения безопасности. Работайте под root’ом только при необходимости вводить много команд, которые требуют привелегий суперпользователя. Одну-две команды, требующие прав root, можно выполнить с помощью команды sudo в сессии обычного пользователя, к примеру
$sudo /sbin/ifconfig
Также следует учесть, что не все нижеприведенные примеры могут оказаться работоспособными в любом дистрибутиве, так как могут отсутствовать необходимые пакеты.
Что значит “прочитать man по mount” ?
Это означает, что в командной строке необходимо выполнить команду
#man mount
man показывает справочную информацию.
#man man
выведет справочную информацию о себе.
Как узнать информацию о используемой системе?
#uname -a
Как узнать из командной строки установлена ли в системе та или иная программа и в каком каталоге именно?
#locate <имя_программы>
либо командой поиска
#find / -name <имя_программы>
которая умеет искать не только по имени программы. Больше информации можно узнать, выполнив команду
#man find
Как узнать сколько свободного места на диске(дисках)?
#df
Команда показывает информацию об использованном и свободном месте для каждого смонтированного раздела.
Как отредактировать текстовый (конфигурационный) файл?
Необходимо выполнить команду
#vi <путь_к_файлу/имя_файла>
если ответом системы на вышеприведенную команду будет сообщение, что команда не найдена, значит текстовый редактор vi не установлен в системе. Можно попробовать другие редакторы
#joe <путь_к_файлу/имя_файла>
#vim <путь_к_файлу/имя_файла>
#pico <путь_к_файлу/имя_файла>
Необходимо учитывать, что в Linux в именах файлов имеет значение регистр букв. т.е. XORG.conf и xorg.conf – это разные файлы.
Я не нашел в системе текстовый редактор, но надо создать файл на несколько строк. Возможно ли это без текстового редактора?
Возможно. Предположим, необходимо создать исполняемый файл script.sh с двумя строками
#!/bin/sh
/bin/ls -sl
Выполняем:
echo '#!/bin/sh' > script.sh
echo '/bin/ls -sl' >> script.sh
chmod +x script.sh
Как создать пустой файл с именем README?
echo > README
Как создать директорию с именем video?
md video
Как узнать, какие модули ядра загружены?
#lsmod
Как просмотреть текстовый файл?
#less <путь_к_файлу/имя_файла>
В лог-файле много строк. Как просмотреть только строки, содержащие слово “Error” ?
#cat <имя_файла> | grep "Error"
Внимание! различается регистр букв, т.е. “error” и “Error” даст разные результаты.
Как вывести последние n строк текстового файла?
#cat <имя_файла> | tail -n
Пример: посмотреть последние 20 строк файла системных сообщений
#cat /var/log/messages | tail -20
Как просмотреть последние системные сообщения?
#dmesg
Где находится и как называется конфигурационных файл графической подсистемы?
Во всех современных дистрибутивах это
/etc/X11/xorg.conf
Как загрузить модуль ядра?
#insmod <имя_модуля>
либо
#modprobe <имя_модуля>
Как посмотреть сколько жестких дисков видит система и какие разделы на них?
#fdisk -l
Как “увидеть флешку”?
После подключения необходимо выполнить монтирование раздела с Flash-накопителем. Сначала необходимо выполнить команду
#dmesg
чтобы посмотреть какое имя устройства система назначила накопителю. Пусть имя утройства будет /dev/sda, а имя раздела – /dev/sda1. Монтируем:
#mount /dev/sda1 /mnt/flash
где /mnt/flash – существующий каталог.
Теперь содержимое Flash-накопителя можно посмотреть в каталоге /mnt/flash
Как размонтировать раздел?
#umount <путь_к_каталогу>
Как перейти в определенный каталог?
#cd <путь_к_каталогу>
Пример: перейти в каталог /etc/X11
#cd /etc/X11
Как удалить файл?
#rm <имя_файла>
Как удалить каталог?
#rm -R <имя_каталога>
Как посмотреть содержимое текущего каталога?
#ls
Как посмотреть содержимое определенного каталога?
#ls <путь_к_каталогу>
Команда ls не показывает размер файлов. Что делать?
#ls -sl
Как скопировать файл?
#cp <имя_файла> <путь_куда_копировать>
Как выполнить исполняемый файл?
Если файл находится в текущем каталоге, то необходимо выполнить
#./<имя_файла>
Если файл находится не в текущем каталоге:
#/<путь_к_файлу>/<имя_файла>
Я точно знаю, что файл исполняемый, но при попытке его выполнить система сообщает, что “отказано в доступе”. Что делать?
Если при этом Вы работаете учетной записью пользователя root, то это значит, что файлу не присвоен атрибут исполняемый. Необходимо выполнить команду
#chmod +x <имя_файла>
Как выяснить, установлен ли в системе определенный rpm-пакет?
#rpm -qa | grep "<имя_пакета>"
Как установить rpm-пакет?
#rpm -i <имя_файла>
Как посмотреть список исполняемых процессов?
#ps -ax
Как посмотреть загруженность системы, выделенную память, какая программа сколько потребляет ресурсов?
#top
Чтобы прервать выполнение top необходимо нажать q
Как получить информация о процессоре?
#cat /proc/cpuinfo
Как получить расширенную информацию о распределении памяти?
#cat /proc/meminfo
Как получить информацию об устройствах pci?
#lspci
Как получить информацию об устройствах в системе?
#lsdev
Как посмотреть сетевые соединения?
#netstat
Как посмотреть только http-соединения?
#netstat | grep "http"
Как посмотреть какие процессы какие сетевые соединения открыли?
#lsof -i
Что значит пропинговать mail.ru ?
Это значит послать запросы по протоколу ICMP на хост mail.ru. Выполняется командой
#ping mail.ru
Таким образом можно проверить наличие сетевого соединения с ближайшим хостом или определить наличие в сети определенного узла. Однако, иногда сеть или хост специально закрывают от ICMP-пакетов в целях обеспечения безопасности.
Что значит протрассировать (дать трассерт на) хост mail.ru ?
Это означает, что необходимо дать команду
#traceroute mail.ru
Данная команда показывает узлы, через которые проходит запрос и задержку до них.
Как посмотреть информацию о сетевых интерфейсах?
#ifconfig
Как отключить (положить) сетевой интерфейс?
#ifconfig <имя_интерфейса> down
Обычно интерфейс на первой сетевой карте имеет имя eth0
Как включить (поднять) сетевой интерфейс?
#ifconfig <имя_интерфейса> up
Как посмотреть “физическую” информацию о интерфейсе?
#ethtool <имя_интерфейса>
Как просмотреть таблицу маршрутизации?
#route
Как прописать маршрут по умолчанию для интерфейса eth1?
#route add default gw dev eth1
Как удалить маршрут по умолчанию?
#route del default
Как просмотреть настройки файрвола?
#iptables -L
Как отключить файрвол?
#iptables -P INPUT ACCEPT
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD ACCEPT
#iptables -F
#iptables -X
Внимание! после перезагрузки системы настройки файрвола снова вступят в действие.
Я запустил в консоли программу и не знаю как из нее выйти?
Обычно для того, чтобы прервать выполнение программы необходимо нажать Ctrl+C
Однако, это справедливо не для всех програм.
Как “убить” процесс?
#kill <номер_процесса>
Номер процесса можно узнать, выполнив команду ps ax
“Убить” процесс с помощью kill <номер_процесса> не получается? Что делать?
Выполнить команду
#kill -9 <номер_процесса>
Как “убить” все процессы с определенным именем?
Выполнить команду
#killall <имя_процесса>
Как перезагрузить компьютер?
#reboot
Как выключить компьютер?
#halt
После изменения настроек графическая система не загружается. Что делать?
Залогиниться под учетной записью root. Выполнить
#X -configure
#cp /home/root/xorg.conf.new /etx/X11/xorg.conf
Залогиниться пользователем. Выполнить
$startx
Команды, специфические для Ubuntu/Kubuntu
Как обновить список доступных в репозитариях пакетов?
$sudo apt-get update
Как обновить установленные пакеты?
$sudo apt-get upgrade
Как установить пакет?
$sudo apt-get install name
где name – имя пакета
Как найти пакет в списке доступных?
$sudo aptitude search name
где name – имя пакета