sonyps4.ru

Консольные команды linux ubuntu. Основные команды Linux и Unix консоли

Команды консоли Linux, или как еще говорят командная строка, это своего рода промежуточное звено между пользователем и непосредственно компьютером. Для того, что бы машина выполнила ваш приказ, ей необходимо дать соответствующую команду. Изначально, именно так и происходили взаимоотношения человека с компьютером, а вот несколько позже, появился дополнительный инструмент мышка, которая значительно упростила весь процесс взаимообмена информацией и сделала его более доступным для всех пользователей. Тем не менее, консоль и на сегодняшний день, остается мощным и порой очень удобным инструментом для выполнения всякого рода действий.


Вообще, консольных утилит существует превеликое множество, но здесь мы вкратце, в качестве примера, рассмотрим лишь две из них, но очень важные и часто используемые. Утилита Apt-get , предназначенная для работы с программными пакетами. Для тех же, кто совершенно не признает консоль, может воспользоваться замечательной графической оболочкой для Apt-get , под названием Synaptic (имеется в официальном репозитории).

Как пользоваться утилитой?

//основная формула

sudo apt-get команда

//в качестве примера обновим все пакеты

sudo apt-get upgrade


Основные команды apt-get при работе с пакетами.

apt-get update //обновление информации о пакетах из репозитариев
apt-get upgrade //обновление всех пакетов
apt-get dist-upgrade //обновление системы в целом
apt-get clean //чистит локальное хранилище, кроме файлов кэша
apt-get autoclean //тоже, что и clean , с удален. кэш-файлов
apt-get check //обновляет кэш и провер. неудовл. зависимости
apt-get autoremove //удаление ранее скачаных, но ненужных пакетов
apt-get remove //удаление пакета с сохран. конфигурац. файлов
apt-get purge //удаление пакета со всеми зависимостями
apt-get install //установка пакета
apt-get build-dep //устанавл. все для сборки исходных пакетов
apt-get source //скачивает пакеты с исходниками


Параметры:

-h, --help //справка
-q, --quiet //скрыть индикатор процесса
-qq //не показывать ничего кроме ошибок
-d, --download-only //только получить пакеты и выйти
-s, --simulate //выполнить симуляцию событий
-y, --yes //автом. отвечать "Да" на все вопросы
--reinstall //переустановить пакеты
-f, --fix-broken //исправить нарушенные зависимости
-m, --ignore-missing //игнорировать отсутствующие пакеты
-u, --show-upgraded //показать обновленные пакеты
--no-upgrade //не производить обновления пакетов
-b, --compile, --build //собрать пакет после получения
-D //при удалении, удалить зависящие компоненты
-V //подробно показывать номера версий пакетов
--no-remove //если пакеты отмеч. к удален., то apt-get выкл.
--force-yes //принудительное выполнение заданной операции


Прикол.

apt-get moo

Должны увидеть корову, которая спрашивает: "Вы мычали сегодня?"

Утилита "aptitude".

Рассмотрим еще одну очень хорошую утилиту под названием "aptitude ", фактически это тоже самое, что и "apt-get ", но считается лучше, а также имеет псевдо-графический интерфейс. Принцип работы точно такой же, только вместо "apt-get ", нужно вводить значение "aptitude ". Сначала установим саму утилиту:

sudo apt-get aptitude

Теперь, если набрать: aptitude , то попадете в интерфейс программы.

Рассмотрим некоторые команды:

// Установка пакета.

sudo aptitude пакет1 пакет2 пакет3

Как видите, устанавливать можно сразу неограниченное количество пакетов одновременно. Сколько бы вы их не устанавливали, aptitude автоматически разрешит все зависимости, вам останется только согласится (y) и нажать(enter) . Так же, по аналогии можно удалять пакеты:

sudo aptitude remove имя_пакета1
или
sudo aptitude purge имя_пакета1

Первая команда удаляет только файлы пакета, не трогая настройки, вторая удаляет полностью все. Посмотреть описание пакета можно так:

aptitude show имя_пакета

Вообщем, эта утилита абсолютный аналог "apt-get ", но при установке и удалении пакетов, желательно использовать ее, нежели "apt-get ". Во всяком случае, на официальном сайте Ubuntu дают именно такие рекомендации.

Другие команды консоли.

Список команд, относящихся к информации.

hostname //сетевое имя машины
whoami //имя текущего пользователя
uname -m //покажет архитектуру машины
uname -r //версия ядра
sudo dmidecode -q //информ. об аппарат. обеспечении системы
cat /proc/cpuinfo //информация о процессоре
cat /proc/interrupts //прерывания
cat /proc/meminfo //вся информация о памяти
cat /proc/swaps //вся информация про swap
cat /proc/version //версия ядра и другая информация
cat /proc/net/dev //сетевые интерфейсы и статистика
cat /proc/mounts //смонтированные устройства
cat /proc/partitions //доступные разделы
cat /proc/modules //загруженные модули ядра
lspci -tv //PCI устройства
lsusb -tv //USB устройства
date //текущая дата
cal //календарь и текущий месяц
cal 2012 //покажет весь 201х год


Команды, относящиеся к процессам перезагрузки и выключения.

shutdown -h now //выключить систему
init 0 //выключить систему
telinit 0 //выключить систему
shutdown -h hours:minutes & //запланировать выключение системы
shutdown -c //отменить запланированное выключение
shutdown -r now //перезагрузить систему
reboot //перезагрузить систему
logout //завершить сессию


Операции с файлами и не только...

cd /home //перейти в домашний каталог
cd .. //перейти на уровень выше
cd ../.. //перейти на 2 уровня выше
cd - //перейти в предыдущий каталог
pwd //показать путь к текущей директории
ls
ls -F //показать файлы и директории
ls -l //показ. подробности о файлах, директориях
ls -a //показать скрытые файлы
mkdir dir1 //создать директорию с именем dir1
mkdir dir1 dir2 //создать директории dir1 и dir2
mkdir -p /tmp/dir1/dir2 //создать директорию в указанном месте
rm -f file1 //удалить файл с именем file1
rmdir dir1 //удалить директорию с именем dir1
rm -rf dir1 //удалит директорию dir1 и всё её содержимое
rm -rf dir1 dir2 //удалить директории dir1 \dir2 и содержимое
mv dir1 new_dir //переименовать / переместить директорию
cp //копирование файлов/папок
ln -s //cоздать символическую ссылку
chmod //присвоение прав файлам
find / -user user1 //искать файлы, директ. с user1 find /home/user1 -name \*.bin //искать файлы .bin в / home / user1 find /usr/bin -type f -atime +100 //иск. бин. файлы, незап. 100 дн. find /usr/bin -type f -mtime -10 //иск. файлы созд./изм. за 10 дн. find / -name \*.deb -exec chmod 755 "{}" \; //иск. файлы (.deb) и измен. права locate \*.ps //найти файлы с расширением .ps whereis halt //показать путь к программе halt which halt //показ. полн. путь к програм. halt


На первый взгляд, все это может выглядеть несколько устрашающе, но это только на первый взгляд. Не стоит сразу бросаться в панику и сразу же, возвращаться к Windows (у). Современные дистрибутивы Linux , а Ubuntu в особенности, вполне позволяет вам обходиться без командной строки. Тем не менее, командная строка, в отдельных случаях намного бывает удобней, чем графический интерфейс. Также, совсем необязательно заучивать все эти команды наизусть, достаточно будет создать текстовый файл, скопировать в него все содержимое и держать его поблизости, как шпаргалку, которой при необходимости можно воспользоваться.

Конечно, это далеко еще не все, что касается темы командной строки и непосредственно самих команд, если кого-то это реально заинтересовало, то могу посоветовать перейти по следующей ссылке, там можно много чего найти и скачать, вопрос только в том, а нужно ли это все вам. Я вообще сомневаюсь, что на сегодняшний день найдется хоть один человек во всем мире, который бы знал на память все существующие команды консоли (возможно я и ошибаюсь).

Консоль Linux абсолютно волшебный и удобный инструмент, позволяющий управлять всей системой короткими командами, причём можно сотворять абсолютно что угодно - от установки программ, до изменения оболочки, и в целом это экономит кучу времени, и это главная причина почему стоит пользоваться консолью.. (В Windows чтоб установить программу нужно прошёлкать сколько-то окон и поснимать галочки, чтоб лишнее не поставилось, здесь же одна команда и получаешь нужное, тоже можно получить и при установки deb пакетов или из центра программ или вообще собрать программу из исходников прям в системе - куча возможностей на любой вкус.)

Запустить консоль Linux можно запустив терминал (Ctrl+Alt+T зависит от сборки), находится он в
Пуск (Меню) → Администрирование → Терминал (Или слева при раскрытии меню, зависит от оболочки..)
Для KDE: Пуск (Kickoff) → Система → Терминал. Или в файловом менеджере Dolphin он всегда под рукой горячая клавиша F4.

Полезной опцией является тот момент, что в консоли можно запустить любое приложение и оно будет туда складывать свой вывод, таким образом можно ловить ошибки приложений..

Например перейдём в папку и напишем./start-tor-browser

В Линуксе расширение файла может не быть, исполняемым может быть любой файл у которого стоят разрешения на выполнение (можно выставить правой клавишей в свойствах или chmod +x ./start-tor-browser ) в Виндовс обычно исполняемые только.exe и ещё некоторые файлы.

Управление консолью Linux

Часто понадобится запрашивать привилегии суперпользователя root для многих действий связанных с установкой, изменением файлов итп. Для этого предусмотрен механизм предоставления необходимого количества привилегий, но не более - sudo . Эта команда следует перед другими и вводится пароль пользователя для разрешения на запуск, вообще в Линуксе везде где производятся существенные изменения запрашивается пароль.

Имейте ввиду, в целях безопасности консоль Линукс не отображает вводимые пароли, но по факту они вводятся.

В редких случаях и это не советуется, можно запросить права суперпользователя и что-то сделать под ним не вводя каждый раз sudo , если поставить Debian или разные серверные дистрибутивы, в консоли нужно прописать su , но поскольку в сборках пароль суперпользователя не задан, то можно получить доступ к суперпользователю написав
sudo su

Если ввести любую команду, напрмиер, apt , то можно увидеть описание или apt и 2 раза TAB и увидеть только список функций. Если написать man apt попадаем в описание (мануал) к текущей функции. Ещё помощь можно получить в утилитах, к примеру если ввести ls --help ..

При работе в консоли(терминале) в текстовым редактором nano , чтоб сохранить изменения нажмите закрыть Ctrl+X и подтвердите сохранение, отмена Ctrl+C (во многих случаях прервать любое действие эта команды Ctrl+C или q ).

Ctrl+D отключиться (отлогиниться) от текущего пользователя, сервера. Повторное нажатие закрывает консоль..

В любой ситуации не теряйтесь обычно есть подсказки на экране, что жать..

Для копирования используется сочетание Ctrl+Shift+C , для вставки Ctrl+Shift+V (альтернатива мышка или Ctrl+Insert с Shift+Insert).

Можно ещё не мучить себя и использовать любой текстовой редактор с графическим режимом:

# решётка/диезик означает, что всё что дальше не выполнять - это комментарий kate ~/.config/pulse # открыть под суперпользователем: kate sudoedit ~/.config/pulse

Kate умеет сохранять системные файлы по факту сохранения, т.е. просто открывайте в нём любые интересующие файлы и при сохранении вводите пароль и в дамках, консоль не нужна...

Историю команд можно посмотреть введя history , если нажимать стрелки вверх вниз, будут подставляться прошлые введённые команды. Повторить команду можно введя !! (два восклицательных знака, но стрелку вверх и энтер(ввод) быстрее..)

Команды консоли Linux

Никогда не выполняйте команд, назначения которых не понимаете. Команды консоли Linux , дают огромную власть, в том числе и удалить все файлы 1 командой..

Sudo rm -rf / # равноценно echo "text" | perl -e "$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see"

Линукс загружен в память и скорее всего будет работать не смотря на удаление системы до момента перезагрузки. Кстати это ещё одно отличие позволяющее обновлять систему на горячую - нет блокировки файлов системой, не требуется постоянных перезагрузок как в Windows.

Типичное использование консоли:

Было несколько раз на старых сборках, после обновления заглючивало оболочку и компьютер отказывался перезагружаться или выключаться , но из консоли подчинился:

# Выключить компьютер: sudo halt или sudo init 0 или telinit 0 или shutdown -h now # Перезагрузить: sudo reboot или shutdown -r now

Изменение прав и/или владельца можно осуществить через Действия root (Root Actions Servicemenu). Подробнее права Линукс chmod описаны в соседней статье.. (-R рекурсивно пройти по всем файлам/каталогам внутри)

Sudo chmod -R 755 /path/to/dir sudo chown -R $USER:$USER /path/to/dir # корректней, но группа может отдаваться пустой и она совпадает с пользователем: sudo chown -R $USER:$GROUP /path/to/dir

Иногда нужно выяснить какой дистрибутив , название и прочие данные:

Cat /etc/*release # посмотреть архитектуру: arch или uname -m

Посмотреть диски в системе:

Fdisk -l # покажет названия с отказом в доступе sudo fdisk -l # выведет полную информацию

Установка, удаление программ:

# уствновить пакет/программу: sudo apt install -y name # удалить пакет/программу: sudo apt remove -y name # удалить пакет/программу вместе с его конфигурационными файлами: sudo apt purge -y name # ещё можно явно указанные неиспользуемые зависимости удалить: sudo apt -y autoremove

Y - соглашаться со всеми вопросами установщика, он там обычно сообщает всякие глупости, мол нужно дополнительно будет поставить связанные библиотеки или приложение займёт столько то места на диске.. В основном используются install и remove . Можно перечислить сразу несколько пакетов для установки sudo apt install -y name1 name2...

Дописать в конец файла:

Echo -e "my \n text \n info \n" >> ~/.config/my.conf

Если вместо >> поставить > , то файл перезапишется.

Правильно записывать в файлы, для которых нужны права суперпользователя, можно так:

# перезаписать файл: echo "значение" | sudo tee /путь/к/файлу/файл.sh # дописать в конец: echo "значение" | sudo tee -a /путь/к/файлу/файл.sh # параметр -i игнорировать ошибки. #eщё вариантик: sudo sh -c "echo 127.0.0.1 localhost >> /etc/hosts"

echo может иметь иметь опции/параметры:

E - включить поддержку вывода Escape последовательностей -E - отключить интерпретацию Escape последовательностей -n - не выводить перевод строки

Если включена -e, Escape последовательности для вставки специальных символов:

\b - удалить предыдущий символ \c - удалить перевод строки \n - перевод строки \r - символ возврата каретки в начало строки \t - горизонтальная табуляция \v - вертикальная табуляция

Внутри sh скрипта флаг echo -e не нужен если указан интерпретатор для исполнения сценария(скрипта) #!/bin/sh, консоль использует более новый #!/bin/bash..

Скопировать фалы rsync:

Как-то словил проблему при копировании на диск с 5900 оборотов и меньшей максимальной скоростью диска, на 7200 оборотов (он на порядок быстрее), видимо переполнение буферов идёт или ещё что-то, винт разгоняет копирование свыше 120-160мб/с и принимающий начинает щёлкать головкой, в то время как на 5900 скоростей свыше 90мб/с не замечал. В итоге помогло ограничение скорости копирования. Выставил чуть меньше 90мб/с и вуаля никаких щелчков. Утилита очень полезна если необходимо передать файл на другой сервер или для передачи файлов с ломающегося диска с условием наличия бэкапа.

# rsync [опции] [источник] [приемник] sudo rsync -a --progress /from/ /to/ sudo rsync -aPv --bwlimit=90000 /media/$USER/disk1/Music/ /media/$USER/disk2/Music/

В случае присутствия пробелов будут ошибки - возьмите в кавычки, я обычно такой формой пользуюсь:

Sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/" # или sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/"

A, --archive - работа в режиме архивирования, сохраняются права доступа и информация о владельцах.
--partial - сохранять частично переданные файлы.
--progress - показать % выполнения во время передачи.
-P - эквивалент для --partial --progress (сохранять недокаченные файлы, показывать прогресс).
--ignore-existing - пропускать уже существующие на приёмнике disc2 (так можно немного ускорить, например для видео, они точно не меняются).
--delete - удалять те, которых нет на источнике disc1.
--bwlimit=KBPS - ограничение скорости копирования.
-v - показывать подробности.
-c - сравнивать файлы при помощи подсчёта контрольных сумм (по умолчанию по дате и размеру). Выполняется очень долго..
-n - ничего не делать, только показать что будет скопировано.

Линукс постоянно радует такими мелочами, в системе по умолчанию есть большинство нужного, а Виндовс беги ищи, устанавливай - трать время..

Навигация и операции с файлами

Возможно пригодится и знание базовых команд для перемещения и управления файлами..

  • pwd - показывает директорию в которой находитесь, иногда бывает нужна в случае сокращения в консоли, напрмиер домашняя папка отобразится как ~..
  • cd - переходит в указанную папку, например cd ~ ; cd /home/$USER
  • ls - линейно выводит список папок и файлов в текущей директории или указанной
    ls /home . Чтоб вывести построчно с указанием прав и владельца необходимо добавить аргумент -l . Чтоб увидеть скрытые файлы и папки -a . Отсортировать по размеру -S . Отсортировать по расширению -X .
    В итоге имеем команду ls -la или ls -la /путь/к/каталогу .
  • du * - считает размер директории, например du -hs * или du -hc /путь .
    Аргументы:
    -h - human-readable показывает вес файлов в Кб, Мб итд..
    -с - подсчитывает сумму..
    -s - показать только общий вес файлов..
    А вот как можно вывести в отсортированном виде du -hc * | sort -rn
  • find - Поиск файлов и директорий
    # найти в папке /home файлы по имени абрикос: find /home -name "абрикос" # найти файлы принадлежащие пользователю user1: find /home -user user1 # найти файлы оканчивающиеся на txt: find /home -name "*.txt" # найти файлы с правами 000 исключая имя public_ftp и удалить их: find /home/ -perm 000 -not -name "public_ftp" -exec rm -rf {} \; # найти все папки и назначить права по умолчанию: find /home - type d -exec chmod 755 {} \; # найти все файлы и назначить права по умолчанию: find /home - type f -exec chmod 644 {} \; # найти только файлы по имени и выставить права: find /home/ -name "xmlrpc.php" -type f -exec chmod 000 "{}" \; # скопировать все файлы в текущей директории содержащие в имени только цифры # - регулярное выражение указывающие на массив из диапазона от 0 до 9: find . -name -exec cp {} ~/ todir \; # удалить пустые файлы: find /home -type f -empty -exec rm {} \; # удалить пустые папки: find /home -type d -empty -exec rmdir {} \; # удалить файлы *.gz в папках logs, по неопределённому пути в /home/: find /home/*/logs -type f -name "*.gz" -delete # удалить файлы старше 365 дней find /home -type f -mtime +365 -exec rm -f {} \; # вывести список файлов в которых встречается текст: grep -rl "строка" ./ # или find ./ -type f -exec grep -l "строка" {} + # заменить текст в файлах: find ./ -type f -readable -writable -exec sed -i "s/старый/новый/g" {} \; #g - заменяем не только первое вхождение # функция понимает регулярные выражения, заменим все где число вначале: find ./ -type f -readable -writable -exec sed -i "s/\dстарый/новый/g" {} \; # заменить текст в файле: sed -i "s/старый/новый/g" file.txt # заменить текст в файле только в строках с 1 по 10: sed -i "1,10 s/старый/новый/g" file.txt # заменить текст в файле везде кроме строк с 1 по 10: sed -i "1,20 !s/старый/новый/g" file.txt

    Думаю примеров достаточно, за остальным в man find..

    Бывает необходимо найти где находится в системных папках та или иная утилита

    Whereis find # или which find

  • cat - выводит содержимое файла, например cat /proc/bus/input/devices .

    Ещё можно заниматься извращениями, например, копирование содержимого файла Linux в другой файл cat файл1 > файл2
    Если файл был не пустым, он будет перезаписан, если воспользоваться >> будет дописан в конец файла2. Можно склеить два отдельных файла в один: cat файл1 файл2 > файл3

  • mkdir - создаёт директорию, например mkdir -p /путь/к/папке -p создаст рекурсивно все каталоги, если их нет иначе будет выдавать сообщение об ошибке, мол старшего каталога нет..
  • cp - копирует файл/папку, cp опции файл-источник файл-приемник, cp -r /что /куда
    -r - рекурсивно, все подкаталоги
    -a = -dR --preserve=ALL не будет следовать по ссылкам (копировать от туда все файлы), а только рекурсивно скопирует: ссылки, файлы, папки с сохранением атрибутов. # скопирует все файлы, начинающиеся на test: cp ~/test* ~/todir/ # копировать директорию fromdir со всем содержимым в текущую директорию: cp -a /fromdir . # скопировать файл: cp ~/pic.png ~/to/ # скопировать с переименованием или просто сделать копию: cp ~/pic.png ~/to/wallpaper.png cp pic.png pic2.png # скопировать группы файлов: cp *.txt /to/folder cp *.txt *.jpg "read me.doc" /to/folder

    При копировании группы файлов, последнее имя трактуется как место назначения, а все предшествующие файлы, как исходные объекты. В других командах, например mv и rm, также разрешены множественные аргументы.

  • mv - позволяет перемещать или переименовывать каталоги mv /что /куда
    mv /from /to # переместить файлы: mv /home/my/* /home/mynew/ # переместить папку /my/ в /mynew/: mv /home/my/ /home/mynew/ # переименование папки: mv /oldname /newname # переименование файла: mv oldname.txt newname.txt # перемещать группы файлов: mv *.txt /to/folder/ mv *.txt *.jpg "read me.doc" /to/folder/ # удалить: mv /folder /dev/null
  • rm - удаляет файл/папку, например rm -r /путь
    -r - рекурсивно пройти все вложенные папки
    -f - не запрашивать подтверждения операций
    # удалить папку со всем вложенным: rm -rf /backup/ # удалить все объекты в папке: rm -rf /backup/* # удалить все файлы: rm -f /var/log/spooler-* \ rm -f /var/log/messages-* \ rm -f /var/log/secure-*

Специальные обозначения в консоли

  • ~/ - означает домашнюю директорию текущего пользователя.
  • $USER - подставить имя текущего пользователя.
  • ./ - указание на текущий каталог
  • ../ - указание на каталог выше, перейти в каталог выше cd .. или cd ../
  • * - Знак подстановки, означает любые символы, например у нас есть ряд файлов для распаковки или не хочется писать всё целиком (актуально если нет графической оболочки, например, при удалённом управлении..)
    # разархивирование: tar -Jxvf arch-17.40-492261.tar.xz tar -Jxvf arch-17*.tar.xz # показать только размер: du *.tar.xz
  • > - перезаписать файл, точнее отправить вывод команды в файл echo "Привет" > /путь/файл.txt
  • >> - дописать в конец
  • {} - подставляет имя каждого файла
  • \ - в конце строки сообщает, что нужно рассматривать следующую строку как одну цепочку команд..

Клавиша TAB во время набора текста - автозаполнение..

Современные пользователи персональных компьютеров привыкли к графическому интерфейсу. Однако иногда приходится использовать интерфейс командной строки, то есть вводить определенные команды вручную. Например, в случае отсутствия графической оболочки, при восстановлении и настройке системы и т. д. Более того, с помощью командной строки некоторые действия выполнять быстрее и удобнее, чем с помощью привычного графического интерфейса.

Командная строка - это очень мощное средство управления системой. Некоторые начинающие пользователи боятся работать в консоли, считая, что это слишком сложно и непонятно. На самом деле это не так, достаточно освоить некоторые приемы работы и несколько простых команд и с остальными командами разобраться будет значительно проще. Графический интерфейс получил широкое распространение не так уж и давно - в конце прошлого века. А до этого все пользователи компьютеров работали с командной строкой.

В любом случае, пользователям Linux стоит освоить работу в консоли, эти навыки им обязательно пригодятся в дальнейшем. В этой статье мы рассмотрим работу с консолью и терминалом, а также основные часто применяемые команды Linux, не претендуя на полноту, поскольку полное их описание с примерами может занять не один том.

Чтобы получить доступ к консоли, находясь в графическом режиме, нужно нажать комбинацию клавиш Ctrl+Alt+F1 . Далее нужно будет ввести логин и пароль, как при загрузке системы. Можно открыть несколько консолей, с помощью комбинаций клавиш Ctrl+Alt+F2 , Ctrl+Alt+F3 и т.д. (до F6) и запускать в них различные программы одновременно. Для возврата в графическое окружение нужно нажать Alt+F7 , при этом консоли остаются открытыми и программы, запущенные в них, будут продолжают работать.

Рис. 1. Эмулятор терминала Konsole

Команды в Linux состоят из нескольких частей: собственно самой команды, ключей (опций) и параметров, которые могут быть обязательными и необязательными. Например, в команде ls -la /var/www (далее команды будем выделять жирным шрифтом): ls - это команда, la - это ключи, которые чаще всего отделяются знаком минус «-», а параметром в данном случае является каталог /var/www. Ключи бывают короткие и длинные: короткие состоят из одной буквы и отделяются одним минусом «-», длинные ключи отделяются двумя минусами «--». Короткие ключи можно объединять в один, например команды ls -l -a -t -r и ls -latr идентичны. Наиболее популярные длинные ключи: --help и --version. Набрав ключ --help после любой команды (например ls --help), мы получим краткую справку о ней. Ключ --version служит для вывода версии программы.

Обратите внимание, что команды, ключи, имена файлов в Linux зависят от регистра. То есть, LS и ls - это разные команды, если вместо ls набрать LS , то эффект будет неожиданным. Длинные команды удобно набирать, используя клавишу «Tab», которая служит для автодополнения, достаточно набрать первые буквы из названия команды и нажать эту клавишу. Если есть несколько команд, которые начинаются с введенных символов, то они отобразятся на экране, в этом случае нужно набрать еще один или несколько символов и опять нажать «Tab». Аналогично клавиша «Tab» может быть использована для быстрого набора параметров, имен длинных файлов и т.д. C помощью курсорных клавиш можно просматривать и редактировать уже введенные команды.

Также можно использовать следующие сочетания клавиш:

Ctrl+C - прервать работу программы (обратите внимание, что в графическом окружении эта же комбинация клавиш используются для копирования).

Ctrl+Shift+C - скопировать выделенную информацию в буфер, для выделения можно использовать мышь.

Ctrl+Shift+V - вставить информацию из буфера. Для вставки текста также удобно использовать среднюю кнопку мыши (колесо прокрутки), предварительно выделив текст.

Ctrl+S - приостановить вывод на терминал.

Ctrl+Q - возобновить вывод на терминал. Хотя обычно для этого можно использовать любую клавишу. Иногда помогает если терминал «завис».

Ctrl+Z - остановить работу программы. Для продолжения нужно набрать команду fg (либо bg для продолжения работы программы в фоновом режиме).

Ctrl+D - выход из терминала, закрытие консоли, разрыв соединения с удаленным компьютером.

Теперь перейдем непосредственно к рассмотрению команд Linux.

Информационные команды

man команда - выводит подробную информацию о команде Linux, ключах и т.д. Например: man date .

К сожалению не все руководства переведены на русский, возможно потребуются начальные знания английского.

date - выводит текущую дату и время.

uname -a - выводит информацию о системе.

who - выдает список пользователей, которые сейчас находятся в системе. Не стоит пугаться, если будет найдено несколько пользователей на персональном компьютере, это вовсе не означает, что его взломали хакеры. Обратите внимание на их имена. Каждый открытый терминал, включая графический, система считает отдельным пользователем.

w - аналогично who показывает пользователей в системе, но, кроме этого, отображает еще дополнительную информацию - какие команды выполняют пользователи, и насколько загружен процессор.

free - вывод информации об оперативной памяти.

top - выводит информацию о процессах, о загрузке процессора, о распределении памяти.

df -h - выводит информацию о жестких дисках.

uptime - отображает время работы системы, количество пользователей, загрузку процессора.

pwd - показывает текущий каталог.

time - измеряет время работы программы, например time ls .

echo - выводит строку текста на стандартное устройство вывода. echo Привет - выведет слово «Привет», echo * - отобразит список файлов текущей директории. echo $ - выведет сумму чисел 2 и 3.

Команды для работы с файлами

ls - выводит список файлов в текущем каталоге. Чтобы отобразить список файлов в любом каталоге, нужно набрать путь к каталогу после команды, например: ls /usr/bin . Некоторые ключи команды ls:

A - показать скрытые файлы;

S - указать размер файлов в блоках;

T - сортировка по времени модификации файлов, сначала новые файлы;

X - сортировка по расширению названия файлов, файлы без расширения выводятся вначале;

L - расширенный формат вывода: показывает атрибуты, владельцев и группу файлов, размер, дату и время их создания;

R - изменить порядок сортировки на обратный. Например, команда

ls -lat /etc выведет содержимое каталога /etc в расширенном виде и с сортировкой по времени создания файлов.

cp - копирование файлов. cp doc1 doc2 - создаст копию файла doc1 под именем doc2.

rm - удаление файлов. rm doc - удалит файл doc. rm * - удалит все файлы в текущем каталоге. rm *doc - удалит все файлы, которые заканчиваются на doc. Ключ -i используется для подтверждения удаления каждого файла, ключ -r для удаления каталогов и файлов внутри этих каталогов.

rmdir - удаление директории. rmdir alex - удалит каталог alex.

Нужно быть очень осторожным с командами rm и rmdir , особенно в режиме суперпользователя, поскольку можно удалить не только свои, но и системные файлы, что может привести к краху системы.

pwd - вывод текущей директории.

mkdir - создание новой директории. mkdir alex - создаст каталог alex.

mv - перемещение или переименование файлов. mv new old - переименует файл new в old.

cat - соединение файлов или вывод файлов на стандартное устройство вывода. cat doc - выведет файл doc.

cat /proc/cpuinfo - выдаст подробную информацию о процессоре, cat /proc/version - о версии ядра Linux.

touch - создание пустого файла.

touch doc - создаст файл doc. find - поиск файлов. find / -name "doc*" - найдет все файлы, которые начинаются с doc.

tar - программа для работы с архивами. tar -zxvf file.tar.gz - распакует архив file.tar.gz. tar -cvf my.tar myfile - заархивирует файл myfile, создав архив my.tar.

more - вывод файлов с остановкой для просмотра, в отличие от cat, который выводит весь файл сразу. Можно прокручивать текст построчно, с помощью клавиши ввода или постранично с помощью пробела.

less - программа для просмотра файлов аналогичная more , но позволяет прокручивать текст вверх и управлять с помощью курсорных клавиш.

nano - простой полноэкранный текстовый редактор. Рекомендуется для новичков, поскольку содержит минимум функций и основные команды отображаются на экране.

vi - довольно мощный текстовый редактор, но он имеет свою нестандартную систему команд, поэтому требует время на освоение.

mc (Midnight Commander) - мощный файловый менеджер, аналог Norton Commander для DOS или FAR для Windows. Позволяет удалять, копировать, переименовывать, просматривать, редактировать файлы, менять их атрибуты и т. д. Midnight Commander обычно не входит в стандартный набор системных программ, поэтому его нужно устанавливать отдельно. Но он настоятельно рекомендуется к использованию, поскольку сильно упрощает работу с файлами.

Установка и удаление программ

Для установки и удаления программ используются различные утилиты, в зависимости от версии дистрибутива Linux. В основанных на Debian дистрибутивах (Ubuntu, Linux Mint и т. д.) для этой цели используются команды apt-get или aptitude . Первый вариант упрощенный, второй имеет большую функциональность. Некоторые действия, например, установку и удаление, нужно выполнять от root, либо использовать команду sudo .

sudo apt-get update - получение нового списка пакетов.

sudo apt-get upgrade - обновить программы, перед этим нужно обновить список пакетов, выполнив предыдущую команду. Обе команды желательно выполнять периодически (часто это делается автоматически), а также перед установкой новых программ.

sudo apt-get install mc - установка программы mc.

sudo apt-get remove mc - удаление программы mc. В дистрибутивах, основанных на Red Hat, где используются RPM-пакеты, часто используют менеджер yum .

yum update - обновление системы.

yum install mc - установка программы mc.

yum remove mc - удаление программы mc. Есть и другие пакетные менеджеры и варианты установки программного обеспечения.

Сетевые команды и работа с удаленными компьютерами

ping - проверка связи с определенным адресом в сети. ping google.com - проверка доступности сайта google.com, также можно использовать IP-адрес: ping 192.168.1.5 . Если ответа нет, то это не означает на 100%, что нет связи, иногда работу этой команды блокируют в сети.

traceroute - показывает маршрут прохождения трафика. Например: traceroute google.com . Позволяет определить, на каком участке сети возникают проблемы.

telnet - подключение к удаленному компьютеру. Дает возможность выполнять команды на другом компьютере. В основном используется во внутренней сети, поскольку трафик не шифруется. Пример: telnet 192.168.1.1 .

ssh - подключение к удаленному компьютеру по шифрованному каналу. ssh - подключение к серверу site.com пользователя alex. Для подключения через нестандартный порт используется ключ -p, например

ssh -p 12345 - подключение к серверу 111.222.123.123 пользователя root через порт 12345.

ftp - подключение к удаленному компьютеру по протоколу передачи файлов. ftp site.com - подключение к серверу site.com.

sftp - команда аналогична ftp, но соединение происходит по шифрованному протоколу.

route -n - показывает таблицу маршрутизации.

ifconfig - информация о сетевых соединениях и их настройка.

hostname - отображает или изменяет сетевое имя компьютера.

whois сайт или IP-адрес - выводит информацию о домене, владельце доменного имени или IP-адреса, например whois google.com или whois 8.8.8.8 .

dig - выводит информацию о DNS, например dig google.com . Можно обратиться к любому DNS-серверу, указав его следующим образом: dig @8.8.8.8 google.com . Для получения информации с DNS-сервера можно также воспользоваться программами host и nslookup , указав после них доменное имя или IP-адрес, но эти утилиты имеют урезанную функциональность, по сравнению с dig .

wget - программа для загрузки файлов, страниц, сайтов из интернета. wget http://site.com - загрузить главную страницу site.com. wget -r -l 10 -k http://site.com - загрузит сайт полностью.

lynx , links , links2 (3 отдельные команды) - текстовые браузеры, позволяют просматривать сайты прямо из консоли.

Команды администрирования

su - смена пользователя. su alex - сменит пользователя на alex. Набрав su без параметров, вы получите права суперпользователя (root), при этом символ подсказки $ сменится на # .

В этом режиме не стоит находиться постоянно, а лучше вообще его не использовать, а пользоваться командой sudo .

Для выхода из сессии и возврата к предыдущему пользователю нужно набрать exit .

sudo - позволяет выполнять другие программы с правами суперпользователя, набирается перед другой командой, например

sudo rm file - удалит файл, созданный любым пользователем.

sudo -i или sudo -s - аналоги команды su .

Использовать команду sudo нужно также очень внимательно и только в случае необходимости.

passwd - смена пароля текущего пользователя. passwd alex - смена пароля пользователя alex.

adduser или useradd - добавить нового пользователя. adduser katya - добавит пользователя katya. После набора команды нужно ввести пароль. Для выполнения команды нужно быть суперпользователем.

userdel - удалить пользователя. userdel vasya - удалит пользователя vasya.

groupadd - создание новой группы. groupadd students - создаст группу students.

groupdel - удаление группы. groupdel students - удалит группу students.

chmod - изменить права доступа файла или каталога. chmod 644 file - установит права 644 на файл. chmod +x file - даст файлу права на выполнение.

chown - изменить хозяина файла. chown alex file - в результате выполнения этой команды хозяином файла станет alex.

chgrp - изменение группы файла. chgrp students laba1 - смена группы файла laba1 на students.

Команды для работы с процессами

ps - вывести список процессов. ps axu - посмотреть все процессы. ps axu | grep win - отобразить все процессы, где встречаются символы «win».

kill - убить программу, после команды указывается номер программы (идентификатор процесса - PID), который можно узнать с помощью команды ps. Пример: kill 1234 .

killall команда - завершает все процессы, запущенные с помощью указанной команды.

bg - продолжить работу программы в фоновом режиме, например после комбинации клавиш Ctrl+Z . После команды может быть указан PID:

bg 1234 .fg - продолжить выполнение программы в обычном режиме, также может быть указан PID.

Прочие команды Linux и языки программирования

Некоторые команды из этого списка могут отсутствовать в стандартных дистрибутивах, их можно установить отдельно.

sed - мощная утилита для обработки текста.

awk - язык для обработки текста.

grep - утилита поиска текста с использованием регулярных выражений, часто используется в связке с другими командами. grep "^a" "text.txt" - покажет все строки в файле text.txt, которые начинаются с буквы а.

emacs - продвинутый текстовый редактор, обладающий большим количеством функций, вплоть до встроенных игр. Для опытных пользователей.

gcc - компилятор языка C, с помощью которого можно получить исполняемые файлы программ, которые распространяются в исходных кодах. Или откомпилировать свои программы.

gcc hello.c -o privet - компиляция программы hello.c, результатом компиляции будет программа с названием privet. По умолчанию (без опции -o) выходной файл будет называться a.out. GCC - это целый набор компиляторов (GNU Compiler Collection). Кроме C есть поддержка программ на C++, Fortran, Ada, Objective-C, Java и Go.

g++ - компилятор языка C++ из GCC. perl - мощный скриптовый язык.

python - вызов интерпретатора языка Python. Это современный и мощный язык, который может быть рекомендован начинающим.

exit - завершение текущей сессии, может применяться для отключения от удаленного компьютера, закрытия терминала.

shutdown -h now - команда завершения работы системы, выключения компьютера. Аналогом является команда halt . Если вместо ключа -h использовать ключ -r, то произойдет перезагрузка системы. Можно указать время, через которое будет выполнена команда. Now означает сейчас.

shutdown -r +10 - перезагрузка компьютера через 10 минут. Ключ -с отменяет выполнение команды. Для выполнения команды нужно иметь права root.

reboot - перезагрузка компьютера, аналог shutdown -r .

/usr/bin/lsb_release -ircd # Узнать версию дистрибутива Linux;

uname -a # Показать версию ядра Linux;

uname -m # Отобразить архитектуру компьютера;

hostname # Показать сетевое имя компьютера;

uptime # Время работы системы без перезагрузки и выключения;

shutdown # Выключение\перезагрузка. Примеры:
- shutdown -r now # Перезагрузка;
- shutdown -h 20:00 # Выключить питание в 20:00;
- shutdown -h now # Выключение;

init 0 # Выключение;

halt # Выключение;
logout # Выйти из системы; # Показывает log-файл загрузки ОС;
cat /proc/cpuinfo # Показать полную информацию о модели процессора (частота, поддерживаемые инструкции и т.д.);
cat /proc/meminfo # Показать расширенную информацию о занимаемой оперативной памяти;

lshal # Показать список всех устройств и их параметров;
lspci -tv # Показать обнаруженные PCI-устройства;
lsusb -tv # Показать обнаруженные USB-устройства;
lsmod # Список всех модулей загруженных в ядро;
modprobe # Загрузка модулей в ядро, пример: # Пример смены root-окружения на /mnt: chroot /mnt . После этого коневой раздел, примонтировнный к /mnt, будет использоваться как родной;
ldd # Список библиотек, необходимых для конкретной программы. Вывести список библиотек, необходимых для работы ssh: ldd /usr/bin/ssh ;
whereis # Показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к конкретному файлу. Пример: whereis halt ;
crontab # Обеспечивает возможность выполнения определённых задач по расписанию. Подробнее по ссылке cron ;

swapoff # Отключение swap-разделов. Отключаем swap (данные перемещаются в оперативную память): swapoff -a ;

swapon # Включение swap-разделов. Включаем swap: swapon -a ;

date # Просмотр и изменение даты\времени. Примеры:

- date # Показывает текущую дату и время;

- date 041217002007.00 # Установить системные дату и время. Формат: ММДДЧЧммГГГГ.СС;

Файловые операции

pwd # Выводит текущий путь;
ls # Выводит список файлов и каталогов. Пример вывода форматированного списка всех файлов и директорий, включая скрытые: ls -laX ;
cd # Переход по директориям. Примеры:
- cd # Переход в домашнюю директорию;
- cd /home # Пример перехода в /home;
- cd .. # Переход в директорию уровнем выше;
- cd ~user # Перейти в домашнюю директорию пользователя user ;
touch # Создание пустого файла если нет. Пример: touch test.txt ;
rm # Удаление. Примеры:
- rm test.txt # Удаление файла;
- rm -rf temp # Удаление директории temp с вложенными файлами;
cp # Копирование. Примеры:
- cp test.txt /home/test.txt # Копирует test.txt из текущей директории в /home ;
- cp -la /dir1 /dir2 # Копирование директорий;
ln # Cоздание символической ссылки. Пример: ln -s /var/test.txt /home/test.txt - создать символическую ссылку к файлу /var/test.txt в директории /home;
mkdir # Создание директории. Пример: mkdir temp ;
rmdir # Удаление директории. Пример: rmdir temp ;
mv # Перемещение\Переименование. Пример переименования директории: mv /dir1 /dir2 (аналогично с файлами);
locate # Поиск. Пример поиска везде всех файлов с именем test.txt: locate test.txt ;
find # Поиск. Примеры:
- find /home/it -name test.txt # Найти файлы и директории с именем test.txt в /home/it и вложенных;
- find /home/it -name "*.txt" # Найти все файлы и директории в /home/it и вложенных, имена которых оканчиваются на ".txt";
- find /usr/bin -type f -atime +100 # Найти все файлы в "/usr/bin", время последнего обращения к которым более 100 дней;
- find /usr/bin -type f -mtime -10 # Найти все файлы в "/usr/bin", созданные или изменённые в течении последних 10 дней;
stat # Отображение всей доступной информации об указанном файле. Пример: stat test.txt ;
file # Определяет тип файла. Пример: file test.txt ;
chmod # Права доступа, подробнее по ссылке chmod ;
chown # Меняет владельца файла, пример: chown www:www test.txt ;
mc # Файловый менеджер ;

Архивация

tar - архиватор. Примеры:
- tar cf test.tar /home/test.txt # Создать tar-архив с именем test.tar содержащий /home/test.txt;
- tar czf test.tar.gz /home/test.txt # Cоздать tar-архив с сжатием Gzip по имени test.tar.gz;
- tar cjf test.tar.bz2 /home/test.txt # Cоздать tar-архив с сжатием Bzip2 по имени test.tar.bz;
- tar xf test.tar # Распаковать архив test.tar в текущую папку;
- tar xzf test.tar.gz # Распаковать tar-архив с Gzip;
- tar xjf test.tar.bz # Распаковать tar-архив с Bzip2;

Управление процессами

top # Диспетчер процессов;
ps # Показывает процессы. Примеры:

- ps axjf # Просмотр всех работающих процессов;

- ps -eF # Список процессов с полной строкой запуска;
- ps -U user # Cписок задач, порожденных пользователем user;
pgrep # Поиск процессов. Показать PID процесса sshd: pgrep -l sshd ;
lsof # lsof /home Показывает список процессов, которые используют /home;

fuser -m # Узнать, какой процесс занял устройство. Пример: fuser -m /mnt ;
kill # Убивает процесс. Примеры:

- kill 4712 «Убить» процесс с PID 4712:;

- kill -9 4712 # Принудительно завершает указанный процесс (выполнять если не помогает kill 4712 );

killall # Убивает процессы по имени. Примеры:

- killall x-www-browser # «Убить» процессы x-www-browser ;

- killall -u user # Завершить процессы, порожденные пользователем user;
nice # Позволяет отобразить или настроить приоритет задачи. Примеры:

- nice -4 mc # Запуск mc с приоритетом = текущий+4 ;

renice # Изменение приоритета процесса. Примеры:
- renice 4 -p 11597 # Установить значение приоритета для процесса mc (PID=11597) равным 4;

Оперативная память

free # Информация о состоянии памяти. free -m - показать состояние оперативной памяти в мегабайтах;
dmidecode # Информация о "железе". Информация о кол-ве разъемов оперативной памяти, и вставленных модулях: dmidecode --type 17 . Подробнее о dmidecode по ссылке dmidecode ;

Жесткий диск

du # Информация о размере директории. du -sh /home/it/ выводит на экран размер директории /home/it/ ;
fdisk # Информация о разделах жестких дисков. Информация о всех подключенных жестких и сменных дисках: fdisk -l . Подробнее: fdisk ;
blkid # Выводит UUID всех доступных накопителей информации в системе;
df # Показывает размер свободного места на разделах. Пример: df -h ;
mount # Монтирование. Примеры:
- mount # Показывает полную информацию о примонтированных устройствах;
- mount /dev/sda1 /mnt # Монтирует раздел /dev/sda1 к точке монтирования /mnt;
- umount /mnt # Отмонтирует раздел от точки монтирования /mnt;
badblocks # Проверка на бэд-блоки. badblocks -v /dev/sda1 проверить раздел sda1 на наличие bad-блоков;
fsck # Проверка файловой системы. fsck /dev/sda1 - проверить/восстановить целостность linux-файловой системы раздела sda1;
mkfs # Форматирование, подробнее по ссылке mkfs ;
smartctl # Проверка SMART. smartctl -A /dev/hda - контроль состояния жёсткого диска /dev/hda через SMART, подробнее по ссылке smart ;

hdparm # Информация о жестких дисках, Примеры:
- hdparm -I /dev/sda # Информация о диске /dev/sda ;
- hdparm -tT /dev/sda # Показывает производительность жесткого диска;

Сеть

ping # Пинг. Пропинговать ya.ru и вывести результат: ping ya.ru ;
ifconfig # Утилита настройки сети. Примеры:
- ifconfig # Показать параметры всех активных сетевых интерфейсов;
- ifconfig -a # Показать все сетевые интерфейсы;
- ifconfig eth0 up # Запустить сетевой интерфейс eth0;
- ifconfig eth0 down # Отключить сетевой интерфейс eth0;
- ifconfig eth0 hw ether 00:01:02:03:04:05 # Смена MAC адреса;
- ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # Выставить интерфейсу eth0 IP-адрес и маску подсети;

- ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 # Задать дополнительный IP адрес сетевому интерфейсу eth0;
iwlist scan # просканировать эфир на предмет, доступности беспроводных точек доступа;
iwconfig # Утилита настройки беспроводных сетевых интерфейсов.
- iwconfig wlan0 # Показать конфигурацию беспроводного сетевого интерфейса wlan0;
- iwconfig wlan0 mode ad-hoc # Указываем тип сети - ad-hoc;
- iwconfig wlan0 channel 2 # Указываем частотный канал;
- iwconfig wlan0 essid inet # Указываем имя сети. Подробнее о настройке раздачи интернета по wi-fi здесь: iwconfig ;
route # Настройка маршрутов. Примеры:
- route -n # Выводит на экран таблицу маршрутизации;
- route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с IP-адресом 192.168.1.1 (для удаления меняем add на del);
netstat # Текущие сетевые соединения. Пример:

- netstat -tup # Отобразить активные сетевые соединения: ;

- netstat -an | grep LISTEN # Показывает список всех открытых портов;
- netstat -anp -udp -tcp | grep LISTEN # Посмотреть список приложений, которые открывают порты;
ethtool # Информация о текущем режиме сетевого соединения и поддерживаемых. Примеры:

- ethtool eth0 отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения;
- ethtool -s eth0 speed 100 duplex full autoneg off # Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;
tcpdump # Утилита сканирования сетевого трафика. Пример: tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80;
iptables # Утилита настройки файервола;
ssh # Подключение к удаленному компьютеру по ssh. Пример: ssh 10.10.10.4 . Подробнее: ssh ;
wget # Утилита закачки. wget -c http://www.example.com/file.iso загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии;

whois # Узнать информацию о домене, пример: whois сайт ;

dig # Проверка доменных имён. Примеры по ссылке: dig ;

Текст

Печать

lpstat # Просмотр списка принтеров. Получить список всех доступных принтеров lpstat -a ;
lp # Команда отправки на печать. Подробнее: ;
lpr # Команда отправки на печать. Пример: lpr -P Kyocera_Kyocera_FS-4020DN test.txt ;

lprm - # Удаление очереди печати;

Пользователи и группы

id # Показывает сводную информацию по текущему пользователю (логин, UID, GID, группы);

adduser # Добавление нового пользователя. Пример добавления пользователя it: adduser it ;

passwd # Меняет пароль текущего пользователя;

groupadd # Добавление новой группы. Пример: groupadd ITgr ;

usermod # Изменения настроек пользователя. usermod -a -G ITgr it добавляет пользователя it в группу ITgr;

userdel # Удаление пользователя. Пример: userdel it ;

groupdel # Удаление группы. Пример: groupdel ITgr ;

users # Отображает краткий список пользователей работающих в системе в данный момент;

exit # Завершить сеанс текущего пользователя;

last # Отобразить регистрации пользователей в системе;

Разное

watch # Каждые n-секунд команда watch запускает нужную комаду. Пример: watch -n 5 "cat /proc/loadavg" Каждые пять секунд будет выводится результат команды просмотра средней загруженности компьютера;

screen # Оконный менеджер. Подробнее по ссылке: screen ;
dc # Калькулятор;
cal # Календарь. Примеры:
- cal -3 # Покажет предыдущий, текущий и последующий месяц;
- cal 2015 # Календарь 2015-го года;
sleep # Задержка на указанный промежуток времени, в примере 10 сек: sleep 10 ;
history # Показывает пронумерованный список команд, которые выполняли в этом и предыдущем сеансе;

script # Cоздать журнал своей консольной сессии. Сохраняется все что вводили, и все, что выдавалось на экран. Пример: script history.txt . Чтобы прекратить запись, введите exit ;

which # Отобразить полный путь исполняемого файла, например which ifconfig ;

wall # Вывести сообщение на все терминалы пользователей, пример: wall hello ;

reset # Сбросить настройки терминала и очистить его;

clear # Очищает экран терминала;

beep # Воспроизвести звуковой сигнал;

Справка

man # Справка;
man ls # Справка по команде ls;

* Для некоторых команд нужны полные права;

** Для некоторых команд требуется установка дополнительного программного обеспечения.

Whoami #вывести имя под которым Вы зарегистрированы date #вывести дату и время time <имя программы> #выполнить программу или команду и получить информацию о времени, #нужном для ее выполнения who #определить кто из пользователей работает на машине uname -a #вывести информацию о версии операционной системы cat /etc/issue #показать версию операционной системы (12.04, 13.04 etc.) lsb_release -a #название дистрибутива и версия uname -m #узнать, сколько бит в linux ОС free #вывести информацию по использованию памяти df -h #вывести информацию о свободном и используемом месте на дисках uptime #показывает текущее время, время, прошедшее после загрузки ОС, количество текущих #пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут top (htop) #выводит список работающих в системе процессов и информацию о них ps axu | grep php #список процессов, в имени которых встречается php ps aux | head -n 1; ps aux | grep:searchd #процессы с пояснением параметров сверху netstat -lnp | grep:9000 #узнать, что висит на 9000 порту netstat -luntp #показывает все открытые порты с использующими их приложениями lsusb #информация об устройствах, подключенных через USB lscpu #характеристики процессора

Здесь я только в кратце опишу основные команды. Про большинство команд можно узнать подробнее в интерактивном режиме, обратившись к справочной системе Linux с помощью команды man. Чтобы легче запомнить, от слова man ual:

Man <имя изучаемой команды>

Для выполнение некоторых команд, например задание прав доступа на системные файлы и многое другое, нужны права суперпользователя . Что бы выполнить команду от имени суперпользователя , нужно перед названием команды написать sudo (например: sudo service nginx restart). В некоторых debian системах, sudo может не быть установлен по умолчанию (но его можно установить apt-get install sudo). Для установки sudo нужно авторизоваться по root `ом:

На запрос пароля нужно ввести пароль суперпользователя. После чего любая команда будет выполняться от суперпользователя root.

Eugene@PCname:~$ su - Пароль: root@PCname:~# <команда, которая выполнится от имени root>

Общие команды Linux

Тут представлен список полезных команд, которые не вошли в другие разделы.

Sudo shutdown -h now #выключить компьютер сейчас sudo shutdown -h 90 #выключить компьютер через 90 мин. sudo reboot #перезагрузить компьютер wget --convert-links -r http://www.linux.org/ #копирование сайта целиком и конвертирование ссылок для автономной работы #копирование происходит на 5 уровней в глубину!! #выполнить последнюю выполненную команду history | tail -50 #показать последние 50 набранных команд passwd #меняет пароль текущего пользователя cal -3 #показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь)

Работа с файлами и директориями Linux

ls #показать список файлов в текущем каталоге (list) ls -la <имя каталога> #список файлов в каталоге <имя каталога>, включая скрытые pwd #выводит текущий путь (команда вывода текущей директории) cd [каталог] #cменить текущий каталог (change directory) cp <что_копировать> <куда_копировать> #копировать файлы (copy) mv <что_перемещать> <куда_перемещать> #переместить или переименовать файл (move) mkdir <каталог> #создать новый каталог (make directory) rmdir <каталог> #удалить пустой каталог (remove directory) rm <файлы> #удалить файлы (remove) rm -rf <имя каталога> #удаление директории вместе с вложенными файлами locate /var/www*index.php #найти все файлы с названием, заканчивающимся на index.php #в директории /var/www tail <имя файла> #выводит конец файла. Удобно при работе с логами и большими файлами du . -bh | more #вывод на экран информации о размере файлов и каталогов, начиная с текущего каталога sudo chmod 777 -R ~/Общедоступные #разрешение на чтение/запись/исполнение для всех на каталог ~/Общедоступные # -R - рекурсивно, то есть и на все вложенные файлы и папки sudo chown <имя пользователя> <имя файла> #задать владельца файла >filename #делает filename пустым файлом, т.е. стирает содержимое touch filename #создаёт пустой файл, также меняет время последнего изменения файла

Команды Linux, дающие информацию о системе

whoami #вывести имя под которым Вы зарегистрированы date #вывести дату и время time <имя программы> #выполнить программу или команду и получить информацию о времени, #нужном для ее выполнения who #определить кто из пользователей работает на машине uname -a #вывести информацию о версии операционной системы cat /etc/issue #показать версию операционной системы (12.04, 13.04 etc.) lsb_release -a #название дистрибутива и версия uname -m #узнать, сколько бит в linux ОС free #вывести информацию по использованию памяти df -h #вывести информацию о свободном и используемом месте на дисках uptime #показывает текущее время, время, прошедшее после загрузки ОС, количество текущих #пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут работы после загрузки, #количество текущих пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут top (htop) #выводит список работающих в системе процессов и информацию о них ps axu | grep php #список процессов, в имени которых встречается php ps aux | head -n 1; ps aux | grep:searchd #процессы с пояснением параметров сверху netstat -lnp | grep:9000 #узнать, что висит на 9000 порту netstat -luntp #показывает все открытые порты с использующими их приложениями lsusb #информация об устройствах, подключенных через USB lscpu #характеристики процессора

Как завершить какой-нибудь процесс? Если во время вывода top нажать k (от слова kill), то будет предложено

PID to kill:

нужно ввести идентификатор (PID) процесса и затем нажать enter. Это нечто вроде диспетчера задач в Windows.

Работа с архивами Linux

tar cf primer.tar /home/primer.txt #создать tar архив с именем primer.tar, #содержащий /home/primer.txt tar czf primer.tar.gz /home/primer.txt #cоздать tar-архив с сжатием Gzip по #имени primer.tar.gz tar xf primer.tar #распаковать архив primer.tar в текущую папку tar xzf primer.tar.gz #распаковать tar-архив с Gzip tar xjf primer.tar.bz #распаковать tar-архив с Bzip2

Примеры поиска текста и файлов в Linux

grep -rl "что_ищем" /путь #искать файлы рекурсивно с текстом #"что_ищем" по пути "/путь" less ~/Документы/http.txt | grep -A 2 "skype" #поиск по файлу ~/Документы/http.txt, #выведет строку совпадения + 2 следующие строки tail -f -n100 ~/logs/php-error.log #очень удобная фича для прочтения логов #в реальном времени выводит 100 последних строк файла find . -name "*.php" -mtime -1 -print #рекурсивный поиск файлов по паттерну (маске) "*.php" #которые изменялись за последние сутки find /var/www/ -mtime -10 #поиск файлов которые были изменены за последние 10 дней find /var/www/ -mtime -10 > filename.txt #записать вывод в файл find . -perm 777 | xargs rm #найти все файлы с правами 777 и удалить их find . -name cache | xargs chmod -R 777 #найти каталог cache и задать ему права 777

Выполнить куски кода в командной строке (php, python):

Php -r "var_dump(strlen("hello"));" python -c "print("hello");"

Это неполный список команд, которые уже очень пригодились мне. По мере изучения linux пост будет пополняться другими командами.



Загрузка...