Первичные знания консольных команд linux windows

Как начать пользоваться командной строкой (linux/win/mac) - cli.md

Этот урок переехал в мой гитхаб: https://github.com/codedokode/pasta/blob/master/soft/cli.md

Ниже — старая, неактуальная версия.


Как начать пользоваться командной строкой

Я не знаю, ты пользуешься Линуксом или Уиндоузом (обычно туториалы рассчитаны на линуксоидов и макосников, уиндоуз не модный среди молодежи). В макоси все практически так же как и в линуксе, в windows пошли своим путем и сделали все как в DOS.

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

Краткий мануал чайника по командной строке:

Как попасть в командную строку?

  • Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
  • Windows7: Пуск — набрать cmd — наждать [enter]
  • MacOS: Запустить приложение Терминал (его можно найти поиском в той фигне которая справа вверху экрана)
  • Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (ааа как вернуться назад? Ctrl + F7)
  • Linux: если ты линуксоид, ты и так знаешь

Во всех операционных системах

↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.

[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько).

[ctrl+c] — прерывает выполнение команды, например, если она долго тупит

Важно: клавиша Esc не работает в командной строке. Клавиши Ctrl + C, V, X не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».

Линукс и мак

В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль.

Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a] чтобы перейти в начала строки и [ctrl+e], чтобы в конец. [alt + b] (back) и [alt + f] (forward) двигают курсор на 1 слово назад/вперед.

Буфер обмена

В командной строке не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Скопировать текст можно, выделив мышью (в Windows надо разрешить выделение текста сначала в настройках окна и нажать Enter после выделения).

Текущий каталог

В командной строке результат выполнения команд зависит от того, в каком каталоге и на каком диске ты находишься. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)

Чтобы перейти в другой каталог, в линуксе используют команду cd:

cd /  — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему)
cd /etc/apache — перейти в каталог /etc/apache
cd files — переходит в каталог files внутри текущего
cd .. — переходит в родительский кталог
cd ../.. — переходит на 2 уровня выше
cd ~ — перейти в свой домашний каталог (/home/anon например)
cd ~/test — перейти в /home/anon/test

В Windows, сначала надо перейти на нужный диск командой c:, d:, e: и так далее. Потом использовать cd или chdir:

d:   - перейти на диск d:
cd  — перейти в корневой каталог
cd windowssystem32
cd ..
cd ....

Обрати внимание, windows и linux используют разные виды слешей. Обрати внимание, .. обозначает «родительский каталог». Обрати внимание, только в линукс и мак ~ обозначает «домашний каталог» (это /home/username или /Users/username). . (одна точка) обозначает текущий каталог и cd . никуда не перейдет. / (линукс) или (Windows) обозначает корневой каталог.

Очистка экрана

В linux — команда clear или клавиша [ctrl+L], в windows — команда cls (clear screen).

Список файлов

Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе (ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).

Посмотреть права на файл в Линукс можно либо командой ls -l, либо stat file.txt

Команды и оболочка

Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:

ls — показать список файлов в линукс
ls -l — показать файлы с подробностями
dir — показать список файлов в windows с подробностями
dir /b — показать только имена файлов, без подробностей

Подсказка

Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (--help или /?):

В линукс: ls --help — выведет справку по команде ls

В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q,
для прокрутки используй стрелки и PgUp/PgDn)

В Windows: dir /? — выведет справку по команде dir

В Windows: help выведет подсказку по основным командам

Виды команд

Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.

Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:

В линуксе: echo $PATH

В windows: echo %PATH%

В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге програмы не ищутся, если это не указать явно.

В Windows PATH — это всякие системные папки вроде c:windows и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:program filesautocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы и игры, установленные в Program Files, не запустить. Только то, что положено в системные папки.

Таким образом: если ты под линуксом, и ты набираешь команду php, то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:php, и не прописал этот путь в PATH, то набрав php, оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает, ну его нафиг».

Печалька.

Что же делать? 1) добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему 2) писать вместо php полный путь c:phpphp.exe

Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:

Линукс: php my.php
Windows: c:phpphp.exe my.php

Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:

Линукс: php /some/dir/my.php
Windows: c:phpphp.exe d:filesmy.php

В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.

Больше команд — linux

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

Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl+d] — и файл создан
Просмотреть текстовый файл: cat file.txt
Просмотреть огромный текстовый файл, который не влеазает на экран: cat file.txt | less 
В просмотрщике работают стрелки и q для выхода (escape не работает).
Удалить файл: rm file.txt
Скопировать файл: cp file.txt copy.txt
Переместить/переименовать файл: mv file.txt copy.txt
Скопировать в другую папку: cp file.txt /some/other/directory
Запустить команду и сохранить ее вывод в файл: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10
Вывести последние 10 строк файла:  cat file.txt | tail -10
Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep dog
Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname '*dog*'
Узнать текущее время: date
Создать папку: mkdir folder
Удалить папку: rm -r folder
Померять, сколько времени выполнялась команда: time [команда]
Узнать свой id пользователя: id
Показать список запущенных процессов: ps -lax
Показать что-то вроде диспетчера задач: top (для выхода q)
Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi

Подробнее о работе команд можно узнать с помощью параметра --help, дописанного после команды.

Больше команд — Windows

Попрактиковаться в комнадной строке в Windows можно так:

help — выводит список полезных команд
dir — выводит файлы в каталоге
Создать текстовый файл: copy con file.txt[enter]ввести текст[enter][ctrl+z][enter] — файл создан
Просмотреть текстовый файл: type file.txt
Просмотреть огромный текстовый файл: type file.txt | more (enter — прокрутка, q — выход)
Удалить файл: del file.txt
Скопировать файл: copy /b file.txt copy.txt
Переименовать файл: ren file.txt copy.txt
Запустить команду и сохранить вывод в файл: dir /? > file.txt
Создать текстовый  файл с одной строкой текста: echo lalala lololo > file.txt
Дописать строчку в конец файла: echo boom >> file.txt
Создать папку: mkdir folder
Удалить папку: rmdir folder
Узнать текущее время: time и date (ctrl+с для выхода)

Подробнее о работе команд можно узнать с помощью параметра /?, дописанного после команды.

Команды для работы с сетью Интернет

В линукс показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у
тебя в PATH нет /sbin)

В Windows показать информацию о сети: ipconfig

Пропинговать (проверить связь) с сервером: ping google.com

Узнать IP по имени домена: nslookup yandex.ru

Показать список открытых с компьютера соединений: netstat (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение)
Проверить путь до какого-то сервера или узла сети:

  • в Windows: tracert google.com
  • в linux: traceroute google.com (не работает? пиши /usr/sbin/traceroute или пропиши уже себе sbin в PATH)

Больше информации

Используй ключи --help и /?

Гугли мануал по командной строке windows/linux в интернете.

http://archive-ipq-co.narod.ru

Linux_Deep_10.1-5020-0c5eb5.png

В этой статье мы постарались систематизировать основные команды Linux. Команды, которые вы увидите в этом списке, одинаково верно работают в разных дистрибутивах, включая Debian, Gentoo, Ubuntu, ASPLinux, ALTLinux и т. д. Главная цель статьи — создать список основных команд Linux, что упростит как изучение, так и эксплуатацию этой операционной системы.

Все команды Linux разбиты на тематические подразделы с краткими описаниями. Список команд будет обновляться и дополняться.

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

Здесь собраны Linux-команды, которым не нашлось место в других разделах.

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

# lsb_release -a
# На экран выводится информация о версии ОС и основанных на ней дистрибутивах;

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

# cat /etc/SuSE-release
# На экран выводится информация о версии ОС SuSE;

# man hier
# Описывается иерархия файловой системы (для чего необходима каждая директория в Linux);

# wall Привет
# На терминалы других пользователей отправляется сообщение «Привет»;

# date
# Отображается текущая дата и время;

# cal -3
# Отображается в удобной форме предыдущий, текущий и следующий месяц;

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

# hostname
# Выводится сетевое имя компьютера;

# whois linux.org
# Показывается информация о домене linux.org;

# export http_proxy=http://your.proxy:port
# Меняется переменная окружения http_proxy для использования интернета посредством proxy-сервера;

# wget --convert-links -r http://www.linux.org/
# Сайт копируется целиком, конвертируются ссылки для автономной работы. Копирование производится на глубину 5-ти уровней;

# wget http://itshaman.ru/images/logo_white.png
# Файл http://itshaman.ru/images/logo_white.png скачивается в текущую папку;

# pppconfig
# Команда нужна для создания и настройки соединения Dial-Up при выходе в интернет по модему;

# pppoeconf
# Команда для создания и настройки выхода в сеть через ADSL-модем;

# !!
# Обеспечивается выполнение последней команды;

# history | tail -50
# Отображаются последние 50 набранных команд;

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

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

# shutdown -h now
# Для выхода из Linux;

# poweroff
# Для выхода из Linux;

# reboot
# Система перезагружается;

# last reboot
# Выводится статистика перезагрузок;

# winecfg
# Для настройки Wine — неэмулятора WinAPI;

# host itshaman.ru
# Для отображения IP-адреса введённого сайта.

2. Команды Linux для работы с директориями и файлами

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

2.1 Файлы и директории

# pwd
# Выводится текущий путь;

# ls
# Выводится список каталогов и файлов по порядку;

# ls -laX
# Выводится отформатированный список всех директорий и файлов, в том числе скрытых;

# cd
# Для перехода в домашнюю директорию;

# cd /home
# Для перехода в директорию /home;

# touch /home/primer2
# Создаётся пустой файл /home/primer2;

# tail /var/log/messages
# Выводится конец файла. Это удобно, если вы работе с большими файлами и логами;

# cat /home/primer2
# Показывается содержимое файла;

# nano /home/primer2
# Обеспечивается редактирование файла;

# gedit /home/primer2
# Ещё одна Linux-команда для редактирования файла;

# echo "Последняя строчка" | sudo tee -a /home/primer2
# К концу файла добавляется "Последняя строчка";

# cp /home/[email protected]/primer.txt /home/primer.txt
# Копируется /home/[email protected]/primer.tx в home/primer.txt;

# mkdir /home/[email protected]/shaman
# Создаётся директория с именем shaman;

# rmdir /home/[email protected]/shaman
# Удаляется директория с именем shaman;

# rm -rf /home/[email protected]/shaman
# Удаляется директория со вложенными фалами;

# ln -s /home/[email protected]/primer.txt /home/primer
# Cоздаётся символическая ссылка к файлу /home/[email protected]/primer.txt;

# cp -la /dir1 /dir2
# Для копирования директории;

# mv /dir1 /dir2
# Для переименовывания директории;

# du -sh /home/[email protected]/
# На экран выводится размер заданной директории. Команда подходит и для определения размера файлов;

# locate primer
# Выполняется поиск файлов с именем primer.

2.2 Права доступа

# [sudo] chmod 0777 /home/
# Меняются права доступа к директории. В данном случае 0777 – это разрешение на чтение/запись/исполнение для всех групп;

# [sudo] chown [email protected]:ITShaman /home/primer.txt
# Меняются владелец и группы, но только для файла /home/primer.txt;

# [sudo] chmod -R 0777 /home/
# Происходит рекурсивное изменение прав доступа к директории. Значение 0777 мы уже описали выше. Права 0777 будут иметь все вложенные файлы и директории;

# [sudo] chown -R [email protected] /home/
# Для всего содержимого директории меняется владелец.

3. Команды Linux: работаем с архивами

# tar cf primer.tar /home/primer.txt
# Создаётся tar-архив с именем primer.tar;

# tar cjf primer.tar.bz2 /home/primer.txt
# Создаётся tar-архив со сжатием Bzip2 и именем primer.tar.bz;

# tar czf primer.tar.gz /home/primer.txt
# Cоздаётся tar-архив со сжатием Gzip и именем primer.tar.gz;

# tar xf primer.tar
# В текущую папку распаковывается архив primer.tar;

# tar xjf primer.tar.bz
# Распаковывается tar-архив с Bzip2;

# tar xzf primer.tar.gz
# Распаковывается tar-архив с Gzip.

4. Команды Linux для установки программ

4.1 Просмотр установленных пакетов

RPM-дистрибутивы

# rpm -qa
# Отображается список пакетов RPM, установленных в системе.

DEB–дистрибутивы

# dpkg -l |more
# Для показа списка пакетов DEB, установленных в системе;

# apt-cache search имя пакета
# Для поиска в индексах доступного пакета и вывода на экран краткой информации о нужном пакете (это весьма полезная команда, обеспечивающая поиска программ из консоли);

# apt-cache showpkg имя пакета
# Для отображения полной информации об указанном пакете.

4.2 Установка и удаление пакетов

RPM-дистрибутивы

# [sudo] rpm -i pkgname.rpm
# Устанавливается RPM-пакет pkgname.rpm;

# [sudo] dpkg -i *.rpm
# Устанавливаются все пакеты в директории;

# [sudo] rpm -e pkgname
# Удаляется RPM-пакет pkgname.

DEB-дистрибутивы

# [sudo] apt-get update
# Обновляется список доступных пакетов из интернета;

# [sudo] apt-get upgrade
# Обновляется доступная версия установленных пакетов в системе;

# [sudo] dpkg -i *.deb
# Устанавливаются все пакеты в директории;

# [sudo] apt-get install pkgname
# Устанавливается DEB-пакет pkgname;

# [sudo] apt-get remove pkgname
# Удаляется DEB-пакет pkgname.

5. Команды Linux для мониторинга работы и просмотра логов

Здесь собраны команды Linux нужные для мониторинга работы ОС. Все показания, полученные с их помощью, выводятся на экран в режиме реального времени. Число, которое стоит после команды, обозначает интервал между выводом информации.

# top
# Для получения информации о загруженных процессах, потреблении ОЗУ;

# htop
# Расширенная онлайн-статистика о загруженных процессах;

# dmesg
# Отображение log-файла загрузки операционной системы и нахождения новых устройств;

# mpstat 1
# Отображается расширенная статистика потребления ресурсов в процентах (для некоторых дистрибутивов нужна установка пакета sysstat);

# iostat 2
# Показывается расширенная статистика прерываний по устройствам;

# vmstat 2
# Расширенная статистика по применению виртуальной памяти.

6. Команды Linux для отображения информации об устройствах

# lsdev
# Установленные устройства (для некоторых дистрибутивов потребуется пакет procinfo);

# cat /proc/cpuinfo
# Полная информация о модели процессора;

# cat /proc/meminfo
# Расширенная информация о занимаемой ОС;

# watch -n1 'cat /proc/interrupts'
# Данные о прерываниях;

# grep SwapTotal /proc/meminfo
# Размер раздела, который выделен под swap;

# free -m
# Используемые и свободные ОЗУ и Swap-файл (-m указывает, что отображать данные надо в Мб);

# lshal
# Полный список всех устройств, а также их параметров;

# lspci -tv
# Показ обнаруженных PCI-устройств;

# cat /proc/devices
# Все устройства в системе (названия взяты из директории /proc/devices);

# lsusb -tv
# USB-устройства;

# [sudo] dmidecode
# Версия BIOS;
# gtf 1024 768 75
# Вывод строки ModeLine для монитора на параметрах экрана 1024x768x75Hz.

7. Команды Linux для жёстких дисков и файловой системы

7.1 Информация о жёстком диске и файловой системе

# fdisk -l
# Все подключенные жесткие и сменные диски;

# smartctl -a /dev/sda1
# Вывод SMART-данных о разделе жесткого диска /dev/sda1 (нужен пакет smartmontools);


# [sudo] hdparm -I /dev/sda
# IDE/ATA жёсткие диски;


# [sudo] blkid
# Вывод UUID всех доступных накопителей в системе.

7.2 Производительность жёстких дисков

# [sudo] hdparm -tT /dev/sda
# Отображение производительности жёсткого диска.

7.3 Монтирование разделов жёсткого диска

# mount | column -t
# Примонтированные устройства;

# cat /proc/partitions
# Только примонтированные разделы;

# df
# Свободное место на разделах;

# [sudo] mount /dev/sda1 /mnt
# Монтаж раздела /dev/sda1 к точке монтирования /mnt;

# [sudo] mount -t auto /dev/cdrom /mnt/cdrom
# Монтаж большинства CD-ROM`ов;

# [sudo] mount /dev/hdc -t iso9660 -r /cdrom
# Монтаж IDE CD-ROM;

# [sudo] mount /dev/scd0 -t iso9660 -r /cdrom
# Монтаж SCSI CD-ROM;

# [sudo] mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
# Монтаж разделов FreeBSD в Linux;

# [sudo] mount -t iso9660 -o loop /home/file.iso /home/iso
# Монтаж ISO-образов;

# [sudo] mount -t smbfs -o username=vasja,password=pupkin //pup/Video
# Монтаж сетевых ресурсов (SMB);

# [sudo] mount /dev/sdb1 -t vfat -o rw /mnt
# Монтаж раздела с файловой системой FAT 16/32 к точке монтирования /mnt с возможностью записи;

# [sudo] umount /mnt
# Демонтаж раздела от точки монтирования /mnt;

8. Команды Linux для настройки сети

8.1 Конфигурация сети

# ifconfig
# Параметры всех сетевых;

# ifconfig eth0
# Параметры сетевого интерфейса eth0;

# [sudo] ethtool eth0
# Состояние сетевого интерфейса eth0 (Может потребоваться пакет ethtool). Команда применяется только для проводных подключений (с беспроводными интерфейсами не работает);

# [sudo] ethtool -s eth0 speed 100 duplex full autoneg off
# Принудительное задание скорости сетевому интерфейсу 100 Mbit и режима Full duplex и отключение автоматического определения;

# ifconfig eth0 192.168.50.254 netmask 255.255.255.0
# Задание основного IP-адреса сетевому интерфейсу eth0;

# ip addr add 192.168.50.254/24 dev eth0
# Аналогично;

# ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0
# Задание дополнительного IP-адреса сетевому интерфейсу eth0;

# ip addr add 192.168.51.254/24 dev eth0 label eth0:1
# Аналогично;

# [sudo] ifconfig eth0 up
# Запуск сетевого интерфейса eth0;

# [sudo] ifconfig eth0 down
# Его отключение;

# ifconfig eth0 hw ether 00:01:02:03:04:05
# Для смены MAC-адреса;

# [sudo] /etc/init.d/dhcpd restart
# Для перезагрузки DHCP клиента;

# ping 192.168.0.2
# Для проверки сетевого соединения. Пингуется IP-адрес 192.168.0.2.

8.2 Маршрутизация

# route -n
# Для вывода на экран таблицы маршрутизации;

# netstat -rn
# Аналогично.

8.3 Управление портами (брандмауэр)

# lsof -i
# Показывается список всех открытых портов в сеть интернет;

# netstat -an | grep LISTEN
# Отображение списка всех открытых портов;

# [sudo] netstat -tup
# Вывод активных соединений с интернетом;

# socklist
# Открытые сокеты;

# [sudo] netstat -anp --udp --tcp | grep LISTEN
# Выводится список приложений, открывающих порты;

# [sudo] iptables -P INPUT ACCEPT
# Открытие доступа ко всем портам;

# [sudo] iptables -P FORWARD ACCEPT
# То же самое;

# [sudo] iptables -P OUTPUT ACCEPT
# То же;

# [sudo] iptables -L -n -v
# Статус firewall (статус iptables);

# [sudo] iptables -X
# Удаляются все цепочки.

8.4 Управление NAT

# [sudo] iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Чтобы «поднять» NAT на интерфейсе eth0;

# [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT --to 192.168.16.254:993-995
# Перенаправить диапазон портов 993-995;

# [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22
# Перенаправить порт 20022, используемый для ssh;

# iptables -L -t nat
# Для проверки статуса NAT.

9. Команды Linux для создания и записи образов ISO

# cdrecord -scanbus
# Отображение всех доступных CD-ROM;

# dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc
#Создание образов ISO с диска CD-ROM.

10. Команды Linux: группы и пользователи

Эти команды Linux необходимы для работы с пользователями и группами пользователей.


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

Обратите внимание, что все процессы, которые запущены, имеют PID — уникальные номера.

# ps axjf
# Все загруженные процессы;

# pgrep -l sshd
# PID конкретного процесса – sshd;

# fuser -va 22/tcp
# PID процесса использующего 22-й порт;

# echo $$
# PID вашей оболочки;

# fuser -va /home
# PID процесса;

# lsof /home
# Список процессов;

# killall 0 httpd
# Текущее состояние процесса httpd;

# kil 4712
# С помощью этой команды вы «убьёте» процесс с PID 4712;

# [sudo] killall TERM 4711
# Команда посылает процессу с PID`ом 4711 сигнал TERM, завершающий процесс;

# [sudo] killall HUP httpd
# Процесс с именем httpd  получает сигнал HUP, останавливающий процесс;

# [sudo] fuser -k -TERM -m /home
# «Убиваются» все процессы, обладающие доступом к /home.

Ещё раз про важные сигналы, которые можно послать процессам:
• 1 — HUP; остановка процесса;
• 2 — INT; прерывание процесса;
• 3 — QUIT; выход;
• 9 — KILL; чтобы «убить» процесс;
• 15 — TERM; завершение процесса.

12. Команды Linux: Runlevels

После того, как происходит загрузка ядра Linux, загружаются разные демоны и приложения, например, NetworkManager, Evolution и прочие. Результат мы видим на рабочем столе после загрузки. При этом загрузка каждой службы выполняются скриптом, которые находятся в /etc/init.d.

Runlevels – это целое число, определяющее «уровень загрузки».

Уровни бывают:
• Runlevels=0; выключение компьютера;
• Runlevels=1; работа в режиме Single-User;
• Runlevels=2; текстовый режим (сеть не поддерживается);
• Runlevels=3; текстовый режим но уже с поддержкой сети;
• Runlevels=4;
• Runlevels=5; графический режим;
• Runlevels=6; осуществляется перезагрузка компьютера.

Таким образом, скрипты, которые загружаются лишь в текстовом режиме с поддержкой сети, — это Runlevels=3.

Упрощённый вариант настройки:

# [sudo] sysv-rc-conf
#Чрезвычайно удобная настройка Runlevels, правда, нужен пакет sysv-rc-conf.

А вот ручной вариант настройки:

# chkconfig --list
# Список всех скриптов с соответствующими Runlevels;

# chkconfig --list udev
# Разрешенные Runlevels только отдельного скрипта, у нас это udev;

# [sudo] update-rc.d udev defaults
# Скрипту udev выставляются значения Runlevels по умолчанию;

# [sudo] chkconfig udev off
# У udev отключаются все Runlevels;

# [sudo] update-rc.d -f udev remove
# Аналогично для Debian;

# [sudo] chkconfig udev --level 35 on
# Для добавления скрипту udev Runlevels 3 и 5;

# [sudo] update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6
# Для изменения параметров для скрипта udev.

13. Команды Linux для работы с ядром и модулями

13.1 Работа с ядром системы

# uname -a
# Отображение версии ядра Linux.

13.2 Работа с модулями ядра

# lsmod
# Вывод списка всех модулей, загруженных в ядро;

# [sudo] modprobe isdn
# Для загрузки модуля на примере isdn;

# make
# Создаётся сжатый образ ядра;

# [sudo] make modules_install
# Устанавливается модуль;

# make modules
# Производится компиляция модуля;

# [sudo] make install
# Для установки в ядро системы.

14. Команды Linux для работы с LiveCD

# [sudo] chroot /mnt
# Происходит смена root-окружения на /mnt. Далее корневой раздел, который примонтировн к /mnt, используется как родной.

15. Команды Linux для конвертирования данных

15.1 Конвертирование текста

# iconv -l
# Вывод списка всех кодировок, которые доступны;

# iconv -f cp1251 -t UTF-8 file_cp1251.txt -o file_utf8.txt
# Смена кодировки. Например, был файл file_cp1251.txt (кодировка cp1251), а получился файл file_utf8.txt (кодировка utf8).

15.2 Конвертирование PDF в JPEG

# convert name.pdf name-%03d.jpg
# Конвертация name.pdf в постраничные изображения JPEG (может понадобиться пакет imagemagick);

# convert *.jpeg name.pdf
# Конвертация изображений JPEG в PDF (может потребоваться пакет imagemagick).

15.3 Конвертирование видео

# mencoder -o videoout.avi -oac mp3lame -ovc lavc -srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts vcodec=msmpeg4v2:vbitrate=600 -mc 0 vidoein.AVI

15.4 Конвертирование аудио

# cdparanoia -B
# Треки с AudioCD копируются в текущую директорию wav-файлами;

# oggenc in.wav -b 256 out.ogg
# Wav-файлы конвертируются в Ogg Vorbis с качеством 256 kb/s;

# lame -b 256 in.wav out.mp3
# Wav-файлы конвертируются в mp3 с качеством 256 kb/s.

16. Команды Linux для печати на принтере

# export PRINTER=lbp2900
# Выбирается принтер по умолчанию. У нас это Canon LBP-2900;

# lprm -
# С принтера по умолчанию удаляются все задачи;

# lpr #2 name.txt
# На принтере распечатываются две копии файла name.txt.

Вот и всё, узнать больше всегда можно на курсе «Администратор Linux»!

В терминале Linux можно делать практически что угодно: настраивать систему, устанавливать и удалять приложения, управлять дисками и файлами и даже разговаривать с коровами.

71 команда Linux на все случаи жизни. Ну почти

Команды Linux для навигации в терминале

  1. &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear. Очищает окно терминала от всех сообщений.
  5. history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
  7. whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.

Команды Linux для получения прав суперпользователя

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

  1. sudo. Эта команда даст вам права суперпользователя. Введите sudo перед нужной командой (например,sudo apt upgrade), чтобы выполнить её от имени администратора. Система спросит у вас пароль.
  2. sudo su. После этой команды все введённые вами команды будут исполняться от имени суперпользователя, пока вы не закроете терминал. Используйте её, если вам нужно выполнить много команд с правами администратора.
  3. sudo gksudo. Команда для запуска с правами администратора приложения с графическим интерфейсом. Например, если вы хотите переместить или изменить системные файлы, введите sudo gksudo nautilus (укажите тот файловый менеджер, которым пользуетесь).
  4. sudo !!. Эта команда запустит ранее введённую команду с правами администратора. Полезно, если вы набрали команду без sudo.

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

Команды Linux для управления пакетным менеджером

Установку и удаление приложений в Linux выполняют пакетные менеджеры. В Ubuntu и Debian пакетный менеджер называется apt, в Fedora — dnf, в Arch и Manjaro — pacman. Они загружают приложения из сетевых репозитариев, источников пакетов. Давать им команды следует с правами суперпользователя.

apt (Debian/Ubuntu/Mint)

  1. sudo apt install имя_пакета. Установить нужный пакет.
  2. sudo apt-add-repository адрес_репозитария. Добавить сторонний репозитарий.
  3. sudo apt update. Обновить сведения о пакетах.
  4. sudo apt upgrade . Обновить все пакеты до самых свежих (выполнять после apt update).
  5. sudo apt remove имя_пакета . Удалить ненужный пакет.
  6. sudo apt purge имя_пакета . Удалить ненужный пакет со всеми зависимостями, если хотите освободить больше места.
  7. sudo apt autoremove . Удалить все ненужные зависимости, бесхозные пакеты и прочий мусор.

dnf (Red Hat/Fedora/CentOS)

  1. sudo dnf install имя_пакета. Установить нужный пакет.
  2. sudo dnf config-manager --add-repo адрес_репозитария. Добавить сторонний репозитарий.
  3. sudo dnf upgrade. Обновить все пакеты до самых свежих.
  4. sudo dnf remove имя_пакета. Удалить ненужный пакет.
  5. sudo dnf autoremove. Удалить все ненужные зависимости.

pacman (Arch/Manjaro)

  1. sudo pacman -S имя_пакета. Установить нужный пакет.
  2. sudo yaourt -S имя_пакета. Установить пакет из AUR, если его нет в основном репозитарии.
  3. sudo pacman -Sy. Обновить сведения о пакетах.
  4. sudo pacman -Syu. Обновить все пакеты до самых свежих.
  5. sudo pacman -R имя_пакета. Удалить ненужный пакет.
  6. sudo pacman -Rs имя_пакета. Удалить ненужный пакет со всеми зависимостями.

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

sudo apt install firefox clementine vlc

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

Команды Linux для управления процессами

  1. kill. Эта команда служит для принудительного завершения процессов. Нужно ввести kill PID_процесса. PID процесса можно узнать, введя top.
  2. xkill. Ещё одна команда для завершения процессов. Введите её, затем щёлкните по тому окну, которое нужно закрыть.
  3. killall. Убивает процессы c определённым именем. К примеру, killall firefox.
  4. top. Отображает перечень запущенных процессов, сортируя в зависимости от потребления ресурсов CPU. Своего рода терминальный «Системный монитор».

Команды Linux для управления файлами

Просмотр и изменение файлов

  1. cat. Когда команда используется с одним текстовым файлом (вот так: cat путь_к_файлу), она отображает его содержимое в окне терминала. Если указать два и больше файлов, cat путь_к_файлу_1 путь_к_файлу_2, она склеит их. Если ввести cat путь_к_файлу_1 > новый_файл, она объединит содержимое указанных файлов в новый файл.
  2. chmod. Позволяет изменять права доступа к файлу. Может пригодиться, если вы хотите внести изменения в системный файл.
  3. chown. Изменяет владельца файла. Следует выполнять с правами суперпользователя.
  4. file. Выводит информацию об указанном файле.
  5. nano. Открывает простой текстовый редактор. Можно создать новый текстовый файл или открыть существующий: nano путь_к_файлу.
  6. rename. Переименовывает файл или несколько файлов. Команду можно использовать и для массового переименования файлов по маске.
  7. touch. Изменяет дату последнего открытия или модификации указанного файла.
  8. wget. Загружает файлы из интернета в терминальную папку.
  9. zip. Распаковывает и сжимает архивы.

Создание и удаление файлов и папок

  1. mkdir. Создаёт новую папку в текущей терминальной папке или в указанной папке: mkdir путь_к_папке.
  2. rmdir. Удаляет указанную папку.
  3. rm. Удаляет файлы. Может удалить как отдельный файл, так и группу, соответствующую определённым признакам.

Копирование и перемещение файлов

  1. cp. Создаёт копию указанного файла в папке терминала: cp путь_к_файлу. Или вы можете указать назначение cp путь_к_файлу путь_для_копии.
  2. mv. Перемещает файл из одной папки в другую. Вы можете указать имя для перемещаемого файла. Забавно, но в Linux эта команда может использоваться и для переименования файлов. Просто укажите ту же папку, где находится файл, и другое имя.

Поиск файлов

  1. find. Поиск файлов по определённым критериям, таким как имя, тип, размер, владелец, дата создания и модификации.
  2. grep. Поиск текстовых файлов, содержащих определённые строки. Критерии очень гибко настраиваются.
  3. locate. Поиск файлов и папок, чьи названия подходят запросу, и отображение их путей в файловой системе.

Команды Linux для работы с разделами

  1. lsblk. Эта команда демонстрирует, какие диски есть в вашей системе и на какие разделы они поделены. Также команда отображает имена ваших разделов и накопителей, в формате sda1, sda2 и так далее.
  2. mount. Монтирует накопители, устройства или файловые системы Linux, чтобы вы могли с ними работать. Обычно устройства подключаются автоматически, как только вы щёлкнете по ним в файловом менеджере. Но иногда может понадобиться примонтировать что-то вручную. Вы можете подключать что угодно: диски, внешние накопители, разделы и даже ISO-образы. Эту команду нужно выполнять с правами суперпользователя. Чтобы примонтировать имеющийся диск или раздел, введите mount sdX.
  3. umount. Демонтирует файловые системы. Команда umount sdX отключит файловую систему внешнего носителя, чтобы вы могли извлечь его.
  4. dd. Эта команда копирует и преобразовывает файлы и разделы. У неё множество различных применений. Например, dd if=/dev/sda of=/dev/sdb сделает точную копию раздела sda на разделе sdb. dd if=/dev/zero of=/dev/sdX затрёт содержимое указанного носителя нулями, чтобы информацию было невозможно восстановить. А dd if=~/Downloads/ubuntu.iso of=/dev/sdX bs=4M сделает загрузочный носитель из скачанного вами образа с дистрибутивом.

Команды Linux для управления системой

  1. df. Отображает объём вашего диска, и сколько на нём осталось свободного места.
  2. free. Отображает объём доступной и занятой оперативной памяти.
  3. uname. Отображает сведения о системе Если ввести uname, терминал сообщит только Linux. Но команда uname -a выводит сведения об имени компьютера и версии ядра.
  4. uptime. Сообщает, как долго запущена ваша система.
  5. whereis. Отображает расположение исполняемого файла нужной программы.
  6. whoami. Называет имя пользователя.

Команды Linux для управления пользователями

  1. useradd. Регистрирует нового пользователя. Введите useradd имя_пользователя, и пользователь будет создан.
  2. userdel. Удаляет учётную запись и файлы пользователя.
  3. usermod. Изменяет учётную запись пользователя. Может переместить домашнюю папку пользователя или назначить дату, когда учётная запись будет заблокирована.
  4. passwd. Изменяет пароли учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.

Команды Linux для управления сетью

  1. ip. Многофункциональная команда для работы с сетью. Команда ip address show выводит сведения о сетевых адресах, ip route управляет маршрутизацией и так далее. Давая команды ip link set ethX up, ip link set ethX down, можно включать и выключать соединения. У команды ip много применений, так что перед её использованием лучше ознакомиться с руководством или ввести ip --help
  2. ping. Показывает, подключены ли вы к сети, и помогает определить качество связи.

И ещё кое-что

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

  1. cowsay что_угодно. Корова произнесёт то, что вы ей скажете.
  2. fortune | cowsay. Корова выдаст умную (или не очень) мысль или цитату.
  3. cowsay -l. Выводит список всех животных, которые могут быть отображены в терминале. Если вы вдруг не любите коров.
  4. fortune | cowsay -f животное_из_списка. Животное на ваш выбор начинает сыпать цитатами, иногда уместными.
  5. sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru. Заставит весь зоопарк говорить по-русски. Без этого животные цитируют Твена и Уайльда в оригинале.

Это далеко не все команды Linux. Если вам нужно узнать в деталях параметры и способы применения команд Linux, вы можете воспользоваться встроенным руководством. Наберите man ваша_команда или ваша_команда --help.

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

Соответствие консольных команд Windows и Linux

Описание Команда CMD Windows Команда Linux
Вызов справочной системы HELP apropos, man, whatis
Вызов командного интерпретатора (оболочки) CMD bash, csh, sh
Очистка экрана CLS clear, reset
Вывод сообщения на экран ECHO echo
Пауза в работе PAUSE sleep
Настройка параметров терминала MODE stty
Установка значений переменных окружения (указание путей к каталогам) PATH, SET, SETx env, set
Изменение системной даты DATE date
Изменение системного времени TIME date
Выход из командной строки EXIT exit
Работа с файлами и каталогами
Отображение списка файлов и каталогов DIR dir, ls
Создание каталога MKDIR mkdir
Удаление каталога RMDIR rmdir
Удаление файла DEL, ERASE rm
Переход в другой каталог CD cd
Копирование файлов или каталогов COPY, XCOPY cp
Переименование файла REN, RENAME mv
Перемещение файлов MOVE mv
Поиск файла WHERE find, locate
Вывод на экран содержимого файла TYPE, MORE cat, less, more
Сравнение содержимого двух файлов COMP, FC cmp, diff, diff3, sdiff
Сортировка строк в текстовом файле SORT sort
Изменение атрибутов файла ATTRIB chmod
Создание символьной ссылки на файл или каталог MKLINK ln
Резервное копирование данных ROBOCOPY cpio, tar
Вызов текстового редактора EDIT (нет в Windows Vista и старше) vi
Работа с томами и разделами
Создание разделов FDISK fdisk
Управление разделами DISKPART parted, partx
Форматирование диска, создание файловой системы DISKPART, FORMAT mformat, mkfs
Проверка файловой системы CHKDSK fsck
Управление системой.
Отобразить список процессов TASKLIST, QUERY PROCESS ps
Уничтожить процесс TASKKILL kill, killall
Перезагрузить компьютер SHUTDOWN shutdown, reboot
Выключить компьютер SHUTDOWN shutdown, halt
Выполнить команду от имени другого пользователя RUNAS sudo
Отобразить имя компьютера HOSTNAME hostname
Пользователи и группы.
Создать нового пользователя NET USER useradd
Изменить параметры пользователя NET USER usermod
Изменить пароль пользователя NET USER passwd
Удалить пользователя NET USER userdel
Создать новую группу пользователей NET GROUP groupadd
Изменить параметры группы NET GROUP groupmod
Удалить группу NET GROUP groupdel
Отобразить список активных пользователей QUERY USER users
Работа с сетью.
Работа с таблицей соответствия IP и MAC адресов ARP arp arp
Конфигурация протокола IP IPCONFIG, NETSH ifconfig, ip
Работа с таблицей маршрутизации ROUTE route
Опрос узла по протоколу ICMP PING ping
Клиент Telnet TELNET telnet
Работа с DNS-сервером в интерактивном режиме NSLOOKUP dig, nslookup
Трассировка маршрута к удаленному узлу TRACERT traceroute
Отобразить статистику сетевых соединений NETSTAT netstat

Строчные и заглавные буковки для команд командной строки Виндовс воспринимаются одинаково, ECHO и echo — будет интерпретировано как одна и та же команда. При работе в командной строке Линукс соблюдение регистра символов строго обязательно.

Понравилась статья? Поделить с друзьями:
  • Переактивация windows 7 через командную строку
  • Первичная установка windows 10 с флешки
  • Переактивация windows 10 после изменения аппаратной конфигурации
  • Первичная настройка windows 10 после установки
  • Первые шаги после установки windows 10