Сайт Кузеванова Александра. Линукс основные команды
10 команд, которые должен знать каждый пользователь Linux
Вы можете считать себя новичком в Linux, но на самом деле это не так. Есть 3,74 миллиарда глобальных пользователей Интернета, и все они в некотором роде, используют Linux так как серверы Linux поддерживают 90% интернета. Большинство современных маршрутизаторов запускают Linux или Unix, а супер компьютеры также в большинстве своем работают на Linux. Если у вас есть Android-смартфон, ваша операционная система построена на ядре Linux.
Другими словами, Linux повсюду.
Изображение: Opensource.com
Но есть разница между использованием Linux-технологий и использованием самой Linux. Если вы заинтересованы в Linux, вам может быть интересно узнать, как использовать интерфейс командной строки Linux (CLI)
Ниже приведены основные команды Linux, которые всем нужно знать. Каждая из них проста и легко запоминается. Другими словами, вам не обязательно быть продвинутым пользователем, чтобы понять их.
Начните осваивать интерфейс командной строки Linux с помощью этих 10 основных команд.
1. ls
Нет, это не типографская ошибка - я действительно намеревался ввести нижний регистр буквы L. ls, или «list» - это команда номер один, которую вам нужно знать для использования CLI Linux. Эта команда списка функционирует в терминале Linux, чтобы отобразить все основные каталоги, поданные в соответствующей файловой системе. Например, эта команда:
ls /applications
показывает каждую папку, хранящуюся в папке приложений. Вы будете использовать его для просмотра файлов, папок и каталогов.
Все скрытые файлы можно просмотреть с помощью команды ls -a
2. cd
Эта команда используется для перехода (или «изменения») в каталог. Это то, как вы перемещаетесь из одной папки в другую. Скажите, что вы находитесь в папке «Загружаемые файлы», но вы хотите перейти в папку «Список воспроизведения Gym».
Просто ввод текста cd Gym Playlist не будет работать, поскольку оболочка не узнает его и сообщит, что папка, которую вы ищете, не существует. Чтобы открыть эту папку, вам нужно поставить обратную косую черту.
Команда должна выглядеть так:
cd Gym\ Playlist
Чтобы вернуться из текущей папки в предыдущую, вы можете ввести имя папки, за которой следует cd ... Подумайте о двух точках, подобных кнопке «Назад».
3. mv
Эта команда передает файл из одной папки в другую; mv означает «двигаться». Вы можете использовать эту короткую команду, как если бы вы перетащили файл в папку на ПК с Windows.
Например, если я создаю файл, призванный testfile продемонстрировать все основные команды Linux, и я хочу переместить его в папку «Мои документы», я бы выпустил эту команду:
mv /home/sam/testfile /home/sam/Documents/
Первая часть команды (mv) говорит, что я хочу переместить файл, вторая часть (home/sam/testfile) называет файл, который я хочу переместить, а третья часть (/home/sam/Documents/) указывает местоположение, куда я хочу передать файл.
4. Горячие клавиши Linux
Это больше, чем одна команда, но я не мог удержаться, и не рассказать про них здесь. Зачем? Потому что они экономят время и сильно помогают в работе.
CTRL+K Вырезает текст с курсора до конца строки
CTRL+Y Вставить текст
CTRL+E Перемещает курсор в конец строки
CTRL+A Перемещает курсор в начало строки
ALT+F Переход к следующему пространству
ALT+B Переход к предыдущему пространству
ALT+Backspace Удаляет предыдущее слово
CTRL+W Обрезает слово за курсором
Shift+Insert Вставляет текст в терминал
Ctrl+D Выходит из системы
Эти команды используются разными способами. Например, представьте, что вы неправильно заметили слово в тексте команды:
sudo apt-get intall programname
Вероятно, вы заметили, что «install» написана с ошибкой, поэтому команда не будет работать. Но быстрые клавиши позволяют легко вернуться и исправить. Если мой курсор находится в конце строки, я могу щелкнуть ALT+B дважды, чтобы переместить курсор на место, указанное ниже, с помощью ^ символа:
sudo apt-get^intall programname
Теперь мы можем быстро добавить письмо sдля исправления install. Очень просто!
5. mkdir
Это команда, которую надо использовать для создания каталога или папки в среде Linux. Например, вы можете ввести mkdir DIY в каталог для своих проектов DIY.
6. at
Если вы хотите запустить команду Linux в определенное время, вы можете добавить at к уравнению.
За синтаксисом at следует дата и время, в которые вы хотите выполнить команду. Затем будет изменено командное приглашение, at> чтобы вы могли ввести команду или команды, которые хотите запустить, в указанное вами время
Например:
at 4:08 PM Sat
at> cowsay 'hello'
at> CTRL+D
Это будет запускать программу cowsay в 16:08 в субботу.
7. rmdir
Эта команда позволяет удалить каталог через CLI Linux.
Например:
rmdir testdirectory
Имейте в виду, что эта команда не удалит каталог, в котором есть файлы внутри. Это работает только при удалении пустых каталогов.
8. rm
Если вы хотите удалить файлы, rm команда - это то, что необходимо. Она может удалять файлы и каталоги.
Чтобы удалить один файл, введите rm testfile
или
для удаления каталога и файлов внутри него, введите rm -r.
9. touch
Команда touch, иначе известная как команда make file, позволяет создавать новые, пустые файлы с помощью CLI Linux. Очень похоже на команду mkdir для создания каталогов, touch применяется для создание файлов.
Например, touch testfile создаст пустой файл с именем testfile.
10. locate
Эта команда используется для поиска файла в системе Linux. Похоже на поиск в Windows. Это очень полезно, если вы забудете, где вы сохранили файл или как вы его назвали.
Например, если у вас есть документ о вариантах использования цепочки блоков, но вы не можете придумать название, вы можете нажать на него locate -blockchain или вы можете искать «варианты использования цепочки», разделив слова звездочкой или звездочками ( *).
Например:
locate -i*blockchain*use*cases*,
Есть много других полезных команд CLI Linux, таких как pkill команда, и это здорово, если вы начнете понимать, что они делают.
Вот ещё некоторые другие полезные команды для людей, которые хотят научиться использовать терминал Linux: man, apropos, sudo, su, chown, chmod, find, xargs, grep, sed, mount, less, stat
Но 10 этих простых и полезных команд, являются необходимыми для начала работы с использованием командной строки Linux.
ex-hort.ru
сборник команд для администрирования linux систем
Ниже представлены различные команды системной оболочки Unix подобных операционных систем.Имейте в виду, это просто сборник, не относящийся к какому-то конкретному дистрибутиву, то есть многие из этих команд, специфичны для какой-то определенной системы и могут отсутствовать в других дистрибутивах Linux.
Большинство из приведенных ниже команд, являются достаточно повседневными, то есть часто используются в процессе администрирования Unix систем ( различных дистрибутивов Linux ).
data-ad-layout="in-article"data-ad-format="fluid"data-ad-client="ca-pub-9826241084544359"data-ad-slot="5629714098">
data-ad-layout="in-article"data-ad-format="fluid"data-ad-client="ca-pub-9826241084544359"data-ad-slot="8414771480">
Корректные: выключение, перезагрузка, выход из системы
# init 0 Выключить систему # logout Завершить текущую сессию # reboot Перезагрузка # shutdown -h now Еще один вариант корректного выключения # shutdown -h 22:15 & Запланировать выключение системы на 22 часа 15 минут # shutdown -c Отменить запланированное выключения системы # shutdown -r now Еще один вариант перезагрузки # telinit 0 Тоже способ выключения системы]]>Вверх]]>
Получение различной информации о системе
# arch Вывести на экран архитектуру компьютера # uname -m Так-же выводит архитектуру компьютера # cal 2010 Печатает календарь на 2010 год. Без аргументов выводит календарь на текущий месяц # cat /proc/cpuinfo Вывести подробную информацию о процессоре # cat /proc/interrupts Вывести информацию о прерываниях # cat /proc/meminfo Выводит статистику использования памяти # cat /proc/swaps Вывести информацию о swap файле(ах) ( файл подкачки ) # cat /proc/version Вывести информацию о версии текущего ядра # cat /proc/net/dev Вывести информацию и статистику по сетевым устройствам # cat /proc/mounts Показать смонтированные файловые системы # clock -w Записать текущую системную дату в BIOS # date Вывести текущую системную дату и время # date 041217002007.00 Установить дату и время в значение МесяцДеньЧасМинутаГод.Секунда # dmidecode -q Вывести в читабельном виде информацию по аппаратному оборудованию системы (SMBIOS / DMI) # hdparm -i /dev/hda Вывести характеристики жесткого диска # hdparm -tT /dev/sda Измерять скорость чтения данных с жесткого диска # lspci -tv Вывести список устройств на шине PCI # lsusb -tv Вывести список устройств на USB шине # uname -r Вывести версию используемого ядра]]>Вверх]]>
Дисковое пространство
# df -h Вывод информации о свободном и занятом дисковом пространстве на смонтированных разделах, в формате, удобном для чтения # dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n Выводит объем используемого дискового пространства, занятого файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.) # du -sh dir Выводит объем дискового пространства, занимаемый директорией dir # du -sk * | sort -rn Выводит листинг файлов и директорий с размером, сортируя его по размеру # ls -lSr | more Выводит листинг файлов и директорий, сортируя по возрастанию размера и перенаправляет его в программу more для постраничного просмотра # rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n Выводит объем дискового пространства, занимаемого файлами rpm-пакета, с сортировкой по размеру ( fedora, redhat и т.п. )]]>Вверх]]>
Работа с файлами и папками
# pwd Вывести текущую директорию # cd /home Перейти в директорию /home # cd .. Перейти в родительский каталог, то есть подняться на уровень выше # cd ../.. Подняться в дереве каталогов на два уровня # cd Перейти в домашний каталог # cd ~user Перейти в домашний каталог пользователя user # cd - Перейти в предыдущую директорию, из которой был сделан переход в текущую директорию # cp -a test_1 test_2 Копировать директорию test_1 в директорию test_2 # cp file_1 file_2 Копировать файл file_1 в файл file_2 # cp -a /tmp/test . Rопировать директорию test и все ее содержимое в текущую директорию # cp test/* . Копировать все файлы содержащиеся в директории test в текущую директорию # iconv -l Выводит список доступных для использования кодировок # iconv -c -f windows-1251 -t utf-8 inputFile > outputFile Конвертировать файл из кодировки windows-1251 в кодировку utf-8 # ln -s /path/to/filedir ./link Создать в текущей директории символическую ссылку link на директорию или файл filedir # ln /path/to/filedir ./link Создать в текущей директории жесткую ссылку link на директорию или файл filedir # ls Вывести листинг содержимого текущей директории # ls -F Листинг текущей директории с добавлением к именам символов, обозначающих тип объекта # ls -l Листинг текущей директории с подробностями по каждому объекту ( права доступа, владелец, группа, дата, размер ) # ls -a Кроме обычных объектов, вывести в листинге, скрытые файлы и директории, текущего каталога # ls /tmp | pr -T5 -W$COLUMNS Листинг директории /tmp в 5 колонок # ls *[0-9]* Вывести в листинг файлов и директорий текущего каталога, содержащие в имени цифровые символы # lstree Листинг иерархии директорий и файлов, начиная с корневого каталога (/) # mkdir dir Создать в текущем каталоге, директорию с именем dir # mkdir dir_1 dir_2 Создать в текущем каталоге две директории, с именами dir_1 и dir_2 # mkdir -p /path/to/dir Создать иерархию директорий. Кроме самой директории dir будут созданы все промежуточные директории # mv filedir new_filedir Переместить ( переименовать ) файл или директорию из filedir в new_filedir # rm -rf /dir Рекурсивно удалить директорию dir и всё её содержимое, без запроса подтверждения на удаление # rm -f file Удалить файл file, без запроса подтверждения # rm -rf /dir_1 /dir_2 Удалить директории /dir_1 и /dir_2 вместе с содержимым, без запроса подтверждения # rmdir /dir Удалить директорию /dir # tree Вывести иерархию директорий и файлов, начиная с корневой (/) # touch -t 0712250000 file1 Изменить дату и время создания файла, если указанный файл не существует, создать его с указанными датой и временем (YYMMDDhhmm)]]>Вверх]]>
Поиск нужного файла
# find / -user vasya Найти все директории и файлы принадлежащие пользователю vasya. Поиск будет производиться, начиная с корневой директории (/) # find / -name filedir Найти директории и файлы с именем filedir. Поиск будет производиться, начиная с корневой директории (/) # find /usr/bin -type f -atime +20 Найти все файлы в директории /usr/bin, время последнего обращения к которым более 20 дней # find /usr/bin -type f -mtime -10 Найти все файлы в директории /usr/bin, которые были созданы или модифицированы в течении последних 10 дней # find / -xdev -name \*.rpm Искать директории и файлы, имена которых оканчиваются на ".rpm", но игнорируя съёмные накопители, cdrom, usb и т.п. # find . -maxdepth 1 -name *.jpg -print -exec convert Найти в текущей директории все файлы с расширением jpg и выполнить для каждого команду convert ( Imagemagick ) # find /path/to/dir -name \*.c Найти все директории и файлы, имена которых оканчиваются на ".с". Поиск будет производиться, начиная с директории /path/to/dir # find / -name *.rpm -exec chmod 755 '{}' \; Начиная с корня, найти все фалы и директории, имена которых оканчиваются на ".rpm", и для каждого изменить права доступа # whereis ls Вывод полных путей к бинарным файлам, файлом исходных кодов и руководств, имеющих отношение к файлу ls # locate \*.ps Поиск всех файлов, содержащих в имени ".ps" по специальной базе данных, предварительно сформированной командой updatedb # which ls Вывести полный путь до файла ls]]>Вверх]]>
Монтирование файловых систем
# mount /dev/hda1 /mnt/disk Монтировать устройство /dev/hda1 в папку с именем /mnt/disk. точка монтирования, папка /mnt/disk, должна существовать # fuser -km /mnt/hda1 Размонтировать устройство hda1 если оно заблокировано каким либо процессом # mount -o loop file.iso /mnt/cdrom Смонтировать фаил или образ ISO в директорию /mnt/cdrom # mount /dev/hdb /mnt/cdrecorder Монтировать cdrw или dvdrom # mount -t vfat /dev/hda5 /mnt/hda5 Смонтировать раздел с файловой системой FAT32 # mount /dev/cdrom /mnt/cdrom Монтировать cdrom или dvdrom # mount /dev/fd0 /mnt/floppy Монтировать floppy disk ( дисковод мягких дисков ) # mount /dev/hdc /mnt/cdrecorder Монтировать cdrw или dvdrom # mount /dev/sda1 /mnt/usbdisk Монтировать USB устройство # mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Монтировать сетевую файловую систему Windows (SMB/CIFS) # umount -n /mnt/hda2 Размонтировать без записи в файл /etc/mtab, используется в ситуациях, когда файл находится в режиме только чтение или жесткий диск переполнен # umount /dev/hda2 Размонтировать диск hda2, предварительно неоходимо выйти из точки монтирования /mnt/hda2]]>Вверх]]>
Пользователи и группы
# useradd -c "User Vasya" -g admin -d /home/vasya -s /bin/bash vasya Создать пользователя vasya, домашним каталогом будет создана директория /home/vasya, в качестве системной оболочки будет назначен /bin/bash, пользователь будет включен в группу admin, кроме того для учетной записи будет создан комментарий "User Vasya" # useradd vasya Создать пользователя vasya # usermod -c "User FTP" -g system -d /ftp/ftpuser -s /bin/nologin ftpuser Изменение пользователя # userdel -r vasya Удалить пользователя с именем vasya и его домашнюю директорию # groupadd [ group_name ] Создать группу с именем group_name # chage -E 2005-12-31 vasya Установить дату окончания действия учётной записи пользователя vasya # groupdel [ group_name ] Удалить группу group_name # groupmod -n test new_test Переименовать группу test в new_test # newgrp - [group] Изменяет основную группу текущего пользователя. При указании "-", ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, основная группа будет назначена из файла /etc/passwd # grpck Проверка корректности системных файлов учётных записей. Проверяется файл/etc/group # pwck Проверка корректности системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow # passwd Изменить пароль текущего пользователя # passwd vasya Изменить пароль пользователя vasya ( может выполнять только root )]]>Вверх]]>
Атрибуты файлов
# chattr +a file Разрешает только добавление данных в файл # chattr +d file Игнорировать данный файл при создании резервной копии с помощью программы dump # chattr +c file Разрешить ядру автоматически сжимать/разжимать содержимое файла # chattr +i file1 Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него # chattr +S file1 Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync # chattr +u file1 При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости # chattr +s file1 Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению # lsattr Листинг файлов с атрибутами]]>Вверх]]>
Работа с правами доступа файлов и директорий
# chown vasya /file Назначить пользователя vasya владельцем файла file # chown -R vasya directory Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий # chown vasya:group /file Назначить владельца и группу для файла /file # chmod ugo+rwx /directory Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory # chmod go-rwx /directory Удалить все права на директорию /directory для группы и остальных # chgrp new_group file Изменить группу-владельца для file на new_group # chmod o+t /home/public Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла # chmod o-t /home/public Удалить STIKY-бит с директории /home/public # chmod u+s /bin/binary_file Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла # chmod u-s /bin/binary_file Удалить SUID-бит с файла /bin/binary_file # chmod g+s /home/public Установить SGID-бит на директории /home/public # chmod g-s /home/public Удалить SGID-бит с директории /home/public # find / -perm -u+s Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы # ls -lh Листинг текущего каталога с правами доступа]]>Вверх]]>
Архивация и сжатие файлов
# gzip -9 file1 Поместить файл file1 в архив gzip с максимальной степенью сжатия # rar a file1.rar file1 file2 dir1 Создать rar архив file1.rar, заархивировав файлы: file1, file2 и директорию: dir1 # rar a file1.rar test_file Упаковать в rar архив file1.rar файл test_file # rar x file.rar Разархивировать rar архив file.rar # bzip2 file1 Сжимает файл file1 # bunzip2 file1.bz2 Разжимает файл file1.bz2 # gzip file1 Сжимает файл file1 # gunzip file1.gz Разжимает файл file1.gz # tar -cvf archive.tar file1 file2 dir1 Создать tar архив archive.tar, упаковав в него файлы file1, file2 и директорию dir1 # tar -cvf archive.tar file Упаковать в tar-архив archive.tar, файл file # tar -tf archive.tar Вывести содержимое tar архива # tar -xvf archive.tar Распаковать tar архив # tar -xvf archive.tar -C /tmp Распаковать архив в /tmp # tar -cvfz archive.tar.gz dir1 Создать tar архив и сжать его с помощью программы gzip # tar -xvfz archive.tar.gz Разжать tar архив и распаковать его # tar -cvfj archive.tar.bz2 dir1 Создать архив и сжать его с помощью bzip2 ( ключ -j работает не во всех *nix системах ) # tar -xvfj archive.tar.bz2 Разжать архив и распаковать его ( ключ -j работает не во всех *nix системах ) # zip file1.zip file1 Создать сжатый zip-архив # zip -r file1.zip file1 file2 dir1 Запаковать в архив несколько файлов и/или директорий # unzip file1.zip Разжать и распаковать zip-архив # unrar x file1.rar Распаковать rar-архив]]>Вверх]]>
Работа с RPM пакетами ( Fedora, Red Hat и им подобные дистрибутивы )
# rpm -e [ package ] Удалить пакет package # rpm -qa | grep httpd Вывести список установленных в системе пакетов и отобрать, содержащие в своем имени httpd # rpm -qa Вывести список всех установленных в системе пакетов # rpm -qi [ package ] Вывести информацию о пакете package # rpm -ivh [package.rpm] Установить пакет с выводом сообщений и прогресс-бара # rpm -U [package.rpm] Обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен # rpm -ivh --nodeeps [package.rpm] Установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей # rpm -F [package.rpm] Обновить пакет только если он установлен # rpm -q [package] --whatprovides Список предоставляемой функциональности # rpm -q [package] --changelog Вывести историю ревизий пакета # rpm -q [package] --scripts Отобразит скрипты, запускаемые при установке/удалении пакета # rpm -qf /etc/httpd/conf/httpd.conf Проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла # rpm -qg "System Environment/Daemons" Отобразить пакеты входящие в группу пакетов ( fedora, redhat ) # rpm -qc [package] Вывести список конфигурационных файлов, входящих в пакет # rpm -ql [package] Вывести список файлов, входящих в пакет # rpm -q [package] --whatrequires Вывести список пакетов, необходимых для установки конкретного пакета по зависимостям # rpm -qp [package.rpm] -l Отображает список файлов, входящих в пакет, но ещё не установленных в систему # rpm -Va Проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью! # rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm] Установить пакет, собранный из исходных кодов # rpm -Vp [package.rpm] Проверить пакет, который ещё не установлен в систему # rpm2cpio [package.rpm] | cpio --extract --make-directories *bin* Извлечь из пакета файлы содержащие в своём имени bin # rpm --import /media/cdrom/RPM-GPG-KEY Импортировать публичный ключ цифровой подписи # rpm --checksig [package.rpm] Проверит подпись пакета # rpm -qa gpg-pubkey Проверить целостность установленного содержимого пакета # rpm -V [package] Проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменения пакета # rpmbuild --rebuild [package.src.rpm] Собрать пакет из исходных кодов]]>Вверх]]>
Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )
# yum list Вывести листинг пакетов, установленных в системе # yum clean headers Удалить все заголовки файлов, которые система использует для разрешения зависимостей # yum clean [package] Очистить rpm-кэш, удалив закачанные пакеты # yum search [package] Найти пакет в репозитории # yum clean all Очистить rpm-кэш, удалив закачанные пакеты и заголовки # yum -y install [ package ] Скачать и установить пакет # yum update [package] обновить пакет # yum -y update Обновить все пакеты, установленные в систему # yum localinstall [ package.rpm ] Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории # yum remove [package] Удалить пакет]]>Вверх]]>
Средства управления DEB пакетами ( Debian, Ubuntu и т.д. )
# dpkg -l Список пакетов, установленных в системе # dpkg -r [package] Удалить пакет из системы # dpkg -i [package.deb] Установить / обновить пакет # dpkg -l | grep httpd Вывести список установленных в системе пакетов, отобрав, содержащие в своем названии httpd # dpkg -s [package] Вывести информацию о конкретном пакете # dpkg --contents [package.deb] Вывести список файлов, входящих в пакет, который ешё не установлен в систему # dpkg -L [package] Вывести список файлов, входящих в пакет, установленный в систему # dpkg -S /bin/ping В какой пакет входит указанный файл.]]>Вверх]]>
Система управления пакетами Pacman ( Arch, Frugalware and alike )
# pacman -S name Установить пакет name со всеми зависимостями # pacman -R name Удалить пакет и все его файлы]]>Вверх]]>
Средство управление пакетами - APT ( Debian, Ubuntu и т.д. )
# apt-cache search [ package ] Вывести список пакетов, чье имя совпадает со строкой package # apt-get check Проверить зависимости # apt-cdrom install [ package ] Установить / обновить пакет с cdrom'а # apt-get install [ package ] Установить / обновить пакет # apt-get upgrade Обновить установленные в систему пакеты # apt-get remove [ package ] Удалить установленный пакет из системы, сохранив файлы конфигурации # apt-get update Обновить списки пакетов репозитария # apt-get clean Удалить загруженные архивные файлы пакетов]]>Вверх]]>
Анализ файловой системы
# badblocks -v /dev/hda1 Проверить раздел hda1 на наличие bad-блоков # fsck /dev/hda1 Проверить и при необходимости попробовать восстановить целостность linux-файловой системы раздела hda1 # fsck.ext2 /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела hda1 # fsck.msdos /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы fat раздела hda1 # fsck.vfat /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы fat раздела hda1 # fsck.ext3 /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext3 раздела hda1 # dosfsck /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы fat, раздела hda1 # e2fsck /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела hda1 # e2fsck -j /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext3 раздела hda1, журнал файловой системы расположен там же]]>Вверх]]>
Просмотр содержимого файлов
# cat file1 Вывести все содержимое файла начиная с первой строки # head -2 file1 Отобразить две первые строки файла # tac file1 Отобразить содержимое файла начиная с последней строки # tail -f /var/log/messages В реальном времени выводить все, что добавляется в файл # tail -2 file1 Вывести две последние строки файла # more file1 Отобразить содержимое файла постранично # less file1 Аналогична команде more но позволяет перемещаться по содержимому вперед и назад]]>Вверх]]>
Манипуляции с текстом
# cat -n file1 Вывести содержимое файла, нумеруя выводимые строки # cat example.txt | awk 'NR%2==1' Вывести только не четные строки файла # echo a b c | awk '{print $1,$3}' Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции # echo a b c | awk '{print $1}' Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции # comm -3 file1 file2 Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах # comm -1 file1 file2 Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1 # comm -2 file1 file2 Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2 # grep [0-9] /var/log/messages Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages # grep ^Aug /var/log/messages Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages # grep Aug /var/log/messages Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages # grep Aug -R /var/log/* Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже # paste -d '+' file1 file2 Объединить содержимое file1 и file2 в виде таблицы с разделителем "+" # paste file1 file2 Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m # sdiff file1 file2 Сравнить содержимое двух файлов # sed 's/string1/string2/g' example.txt Заменить string1 на string2 в файле example.txt и вывести содержимое # sed '/ *#/d; /^$/d' example.txt Удалить пустые строки и комментарии из файла example.txt # sed '/^$/d' example.txt Удалить пустые строки и комментарии из файла example.txt # sed -e '1d' exampe.txt Удалить первую строку из файла example.txt # sed -n '/string1/p' Отобразить только строки содержащие string1 # sed -e 's/string//g' example.txt Удалить строку string1 из текста файла example.txt не изменяя всего остального # sed -e 's/ *$//' example.txt Удалить пустые символы в конце каждой строки файла example.txt # sed -n '5p;5q' example.txt Вывести пятую строку # sed -n '2,5p' example.txt Вывести строки со второй по пятую # sed -e 's/00*/0/g' example.txt Заменить последовательность из любого количества нулей одним нулём # sort file1 file2 Вывести отсортированное содержимое двух файлов # sort file1 file2 | uniq Вывести отсортированное содержимое двух файлов исключая повторные значения # sort file1 file2 | uniq -u Вывести уникальные значения из отсортированного содержимого двух файлов # sort file1 file2 | uniq -d Вывести только повторяющиеся значения из отсортированного содержимого двух файлов # echo 'word' | tr '[:lower:]' '[:upper:]' Перевести символы нижнего регистра в верхний]]>Вверх]]>
Конвертирование соодержимого текстовых файлов
# dos2unix filedos.txt fileunix.txt Конвертировать содержимое текстового файла из MSDOS кодировки в UNIX кодировку (разница в символах возврата коретки) # unix2dos fileunix.txt filedos.txt Конвертировать содержимое текстового файла из UNIX кодировки в MSDOS кодировку (разница в символах возврата коретки) # recode ..HTML < page.txt > page.html Конвертировать содержимое тестового файла page.txt в html-файл page.html # recode -l | more Вывести список доступных форматов]]>Вверх]]>
Файловая система SWAP ( файл подкачки )
# mkswap /dev/hda3 Создание swap-пространство на разделе hda3 # swapon /dev/hda3 Включить swap-пространство, расположенное на разделе hda3 # swapon /dev/hda2 /dev/hdb3 Активировать swap-пространства, расположенные на разделах hda2 и hdb3]]>Вверх]]>
Форматирование файловой системы
# fdformat -n /dev/fd0 Форматирование флоппи-диска без проверки # mkfs /dev/hda1 Создать файловую систему linux на разделе hda1 # mke2fs -j /dev/hda1 Создать журналируемую файловую систему ext3 на разделе hda1 # mke2fs /dev/hda1 Создание файловой системы ext2 на разделе hda1 # mkfs -t vfat 32 -F /dev/hda1 Создать файловую систему FAT32 на разделе hda1]]>Вверх]]>
Резервное копирование ( Backup )
# find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 Поиск всех файлов, заканчивающихся на ".log" в директории /var/log, и упаковка их в bzip-архив # find /home/user -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents Поиск в директории /home/user файлов, имена которых оканчиваются на ".txt", и копирование их в другую директорию # rsync -rogpav --delete /home /tmp Синхронизировать директории /tmp и /home # rsync -az -e ssh --delete ip_addr:/home/public /home/local Синхронизировать локальную и удаленную директории через ssh туннель используя сжатие # rsync -rogpav -e ssh --delete /home ip_address:/tmp Синхронизация через SSH туннель # rsync -az -e ssh --delete /home/local ip_addr:/home/public Синхронизировать удалённую директорию с локальной используя ssh туннель со сжатием # dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' Создать "слепок" локального диска в файл на удалённом сервере используя ssh туннель # dd if=/dev/hda of=/dev/fd0 bs=512 count=1 Создание копии MBR ( Master Boot Record ) с /dev/hda на флоппи-диск # dd if=/dev/sda of=/tmp/backup Создание резервной копии содержимого жесткого диска в файл backup # dd if=/dev/fd0 of=/dev/hda bs=512 count=1 Восстановить MBR с флоппи-диска на /dev/hda # dump -0aj -f /tmp/home0.bak /home Создать полную резервную копию директории /home в файл /tmp/home0.bak # dump -1aj -f /tmp/home0.bak /home Создать инкрементную резервную копию директории /home в файл /tmp/home0.bak # restore -if /tmp/home0.bak Восстановить данные из резервной копии /tmp/home0.bak # tar -Puf backup.tar /home/user Создать инкрементную резервную копию директории /home/user в файл backup.tar сохраняя права доступа # ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' Упаковка в архив и копирование содержимого /tmp/local в директорию /home/share/ удалённого сервера, используя ssh туннель # ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' Упаковка в архив и копирование содержимого /home в директорию /home/backup-home удалённого сервера, используя ssh туннель # tar cf - . | (cd /tmp/backup ; tar xf - ) Упаковка в архив и копирование одной директории в другую с сохранением прав доступа и ссылок]]>Вверх]]>
CDROM
# cd-paranoia -B Перенести аудио-треки с компакт-диска в wav-файлы. # cd-paranoia -- Перенести три аудио-трека с компакт-диска в wav-файлы. # cdrecord -v dev=/dev/cdrom cd.iso Записать ISO-образ на компакт-диск. # gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - Записать сжатый ISO-образ на компакт-диск. # mkisofs /dev/cdrom > cd.iso Создать ISO-образ компакт-диска. # mkisofs -J -allow-leading-dots -R -V Создать ISO-образ из содержимого директории. # mkisofs /dev/cdrom | gzip > cd_iso.gz Создать сжатый ISO-образ компакт-диска. # mount -o loop cd.iso /mnt/iso Смонтировать ISO-образ компакт-диска в файловую систему. # cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force Очистить перезаписываемый компакт-диск. # cdrecord --scanbus Сканировать системную шину для поиска идентификаторов SCSI каналов. # dd if=/dev/hdc | md5sum Вычислить контрольную сумму MD5 для устройства, например, компакт-диска.]]>Вверх]]>
Сети (LAN / WiFi)
# dhclient eth0 Включить DHCP на сетевом интерфейсе eth0 # ethtool eth0 Вывод статистики по сетевому интерфейсу eth0 # hostname Вывести имя компьютера # host www.example.com Преобразовать домен www.example.org в ip-адрес и наоборот # ifconfig eth0 Вывести настройки сетевой карты eth0 # ifconfig eth0 promisc Переключить интерфейс eth0 в promiscuous-режим для сбора ( сниффинг ) сетевых пакетов # ifup eth0 Включить сетевой интерфейс eth0 # ifdown eth0 Отключить сетевой интерфейс eth0 # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Назначить IP адрес и маску сетевому интерфейсу eth0 # ip link show Вывести статус связи всех сетевых интерфейсов # iwconfig eth2 Вывести конфигурацию беспроводного сетевого интерфейса eth2 # iwlist scan Сканирование и поиск беспроводных сетей и точек доступа # mii-tool eth0 Вывести состояние связи сетевого интерфейса eth0 # nslookup www.example.com Ресольвить ( преобразовать/разрешить ) доменное имя www.example.org в ip-адрес и наоборот # 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 # route add -net 0/0 gw IP_Gateway Назначить ip-адрес шлюза по умолчанию ( default gateway ) # route del 0/0 gw IP_gateway Удалить ip-адрес шлюза по умолчанию ( default gateway ) # netstat -tup Выводит листинг всех установленных соединений по протоколам TCP и UDP без разрешения имён в ip-адреса а так-же PID'ы и имена процессов, обслуживающих данные соединения # netstat -tupl Вывод списка соединений по протоколам TCP и UDP без разрешения имён в ip-адреса а так-же и PID'ы и имена процессов, ожидающих соединений на сетевых портах # netstat -rn Вывести таблицу маршрутизации, аналог команды route -n # echo "1" > /proc/sys/net/ipv4/ip_forward Разрешить форвардинг ( пересылку ) пакетов # tcpdump tcp port 80 Отлавливать и выводить весь трафик на TCP-порт 80 (обычно - HTTP) # whois www.example.com Вывести информацию о доменном имени из базы данных whois]]>Вверх]]>
Microsoft Windows networks (samba)
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Монтировать smb-ресурс, расшаренный на windows-машине, в папку локальной файловой системы # nbtscan ip_addr Преобразовать имя netbios. Программа nbtscan не во всех системах присутствует по-умолчанию, nmblookup включен в пакет samba # nmblookup -A ip_addr Преобразовать имя netbios. Программа nbtscan не во всех системах присутствует по-умолчанию, nmblookup включен в пакет samba # smbclient -L ip_addr/hostname Вывести список ресурсов, выделенных в общий доступ на windows-машине # smbget -Rr smb://ip_addr/share Аналог программы wget для SMB протокола]]>Вверх]]>
Фаервол IPTABLES, штатный, для большинства дистрибутивов Linux
# iptables -t filter -L Вывести список всец цепочек правил # iptables -t nat -L Вывести все цепочки из NAT таблицы # iptables -t nat -F Очистить все цепочки правил в таблице NAT # iptables -t filter -X Очистить все пользовательские цепочки правил в таблице filter # iptables -t filter -F Очистить все цепочки правил в таблице filter # iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT Разрешить входящие соединения с telnet # iptables -t filter -A OUTPUT -p tcp --dport http -j DROP Запретить исходящие HTTP соединения # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами. # iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 Пересылка пакетов, адресованных одному хосту, на другой хост # iptables -t filter -A INPUT -j LOG --log-prefix Включить логгирование пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT" # iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT Разрешить форвардинг POP3 соединений]]>Вверх]]>
Мониторинг и отладка системы
# free -m Вывод статистики по оперативной памяти # kill -9 proc_id Убить процесс с PID proc_id, без соблюдения целостности данных, то есть насмерть # kill -1 proc_id Перечитать файл конфигурации процессом с PID proc_id # last reboot Вывод истории ребутов системы # lsof /home/user1 Вывести список открытых файлов из директории /home/user1 # lsof -p proc_id Вывести список файлов, открытых процессом с PID proc_id # lsmod Список загруженных модулей ядра # ps -e -o pid,args --forest Вывести список PID'ов и процессов в виде дерева # ps -eafw Отобразить работающие в системе процессы, используемые ими ресурсы и другую полезную информацию ( единожды ) # pstree Вывести дерево процессов # smartctl -i /dev/hda Проверить доступность SMART на жёстком диске /dev/hda # smartctl -A /dev/hda Проверка состояния жёсткого диска /dev/hda через SMART # strace -c ls >/dev/null Вывести список системных вызовов, созданных и полученных процессом ls # strace -f -e open ls >/dev/null Вывести список вызовов системных бибилотек # tail /var/log/messages Вывести десять последних записей из системного журнала # tail /var/log/dmesg Вывести десять последних записей из журнала загрузки ядра # top Вывести список работающих в системе процессов с различной полезной информацией в режиме реального времени с автоматическим обновлением данных # watch -n1 'cat /proc/interrupts' Выводить прерывания в режиме реального времени]]>TOP]]>
Другие полезные команды
# alias hh='history' Создать псевдоним hh для команды history # apropos ...keyword Вывод комманд, так или иначе относящихся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду # chsh Изменить системную оболочку пользователя # gpg -c file1 Шифрует файл file1 с помощью GNU Privacy Guard # gpg file1.gpg Дешифрует файл file1 с помощью GNU Privacy Guard # ldd /usr/bin/ssh Список библиотек, используемых программой ssh # man ping Ввывод страниц руководства по работе с программой, в данном случае, ping # mkbootdisk --device /dev/fd0 `uname -r` Создаёт загрузочный флоппи-диск # wget -r www.example.com Рекурсивно загружает содержимое сайта www.example.com # wget -c www.example.com/file.iso Загрузить файл www.example.com/file.iso с возможностью остановки и докачки # echo 'wget -c www.example.com/files.iso' | at 09:00 Включить закачку в определенное время # whatis ...keyword Вывести описание действий указанной программы # who -a Вывести список залогиненных пользователей, время последней загрузки системы и прочую полезную информацию]]>Вверх]]>
]]>оригинал документа]]>
vds-admin.ru
Команды Linux
Стандартные команды и команды, дающие информацию по системе
Работа с сетью
Простейшие действия
Немного о коммерческих программных продуктах.
Основные Команды Администрирования
Контроль процессов
Встроенные в Linux программные утилиты и языки
|
www.hotcomp.ru
Команды Linux: описание
После фокусов компании "Майкрософт", относящихся к их последней операционной системе под номером 10, многие пользователи обратили свое внимание на ОС семейства Linux. Эти системы стабильны, не подвержены риску заражения вирусами и могут работать в любых условиях. Стоит только настроить. Однако последнее как раз и пугает неподготовленного пользователя, поскольку при настройке в «Линукс» и установке подавляющего большинства программ требуется пользоваться терминалом. Он требует ввода определенных команд для того, чтобы можно было совершить то или иное действие. В "Виндовс" все было намного проще - там есть графический установщик. Однако "Линукс" куда более безопасен и интересен для тех, кто хочет расширить свои знания в области высоких технологий. Но нужно для начала изучить команды Linux. Это позволит легко и просто общаться с ОС. Но сначала несколько слов о самой системе и самых известных дистрибутивах.
Самые популярные дистрибутивы и их особенности
В настоящий момент есть две основные ветки развития "Линукс": Debian-ориентированная и Arch. ОС на базе этих дистрибутивов являются самыми популярными и распространенными среди пользователей. К первым относятся такие системы, как сама "Дебиан", "Убунту", "Линукс Минт". Вторая ветка включает в себя собственно "Арч" и производные ("Антергос", "Сусе" и прочие). Что интересно: под "убунтоподобные" дистрибутивы куда больше программ и прочих интересных вещей. Зато "Арч" постоянно получает самые новые ядра и компоненты. Разница в самом процессе установки и в том, какие команды Linux используются для управления операционной системой.
Выбор дистибутива
Выбор дистрибутива - всегда сугубо личное дело. Но для новичков больше подойдут ОС, основанные на Debian ("Минт", "Убунту" и прочие). Они имеют удобный графический установщик системы и не вызовут проблем при инсталляции на компьютер. Совсем не то с "Арчем". Этот дистрибутив имеет чисто консольную структуру при установке на ПК или ноутбук. Это значит, что придется вводить команды установки Linux в командной строке. Такая перспектива пугает многих начинающих пользователей. На "Арч' идут те, кто уже успел достаточно изучить ОС семейства "Линукс "и спокойно может обращаться с терминалом. А теперь перейдем к самим командам на разные случаи жизни.
Команды установки
При установке тех или иных программ в ОС система требует введения определенных команд установки Linux. Они не так уж и сложны, но важно вводить их правильно, в строгом порядке. Итак, необходимо помнить, что перед каждой командой такого плана следует вводить "sudo". Этот префикс обеспечивает выполнения действия от имени суперпользователя. После ввода первой команды придется ввести пароль администратора. К примеру, нужно обновить список доступных пакетов из интернета, основываясь на подключенных репозиториях. Следует ввести команду такого типа "sudo apt-get update". Основные команды Linux для установки приложений (речь идет об "убунтоподобных" дистрибутивах) выглядят так: "sudo apt-get install имя пакета" и "sudo apt-get remove имя пакета". Последняя команда служит для удаления приложения. После нее желательно выполнить еще "sudo autoremove" для подчистки "хвостов", оставшихся после удаления. Но это не обязательно. В "Линукс" нет реестра, поэтому он не захламляется. Система всегда работает быстро и стабильно.
Команды перезагрузки
Бывают такие ситуации, что "Линукс" требуется перезагрузить. Частенько это случается при переустановке драйверов в системе. Можно воспользоваться стандартным способом (через меню). Но куда быстрее и удобнее ввести в терминале соответствующий текст. По нажатии кнопки Enter ОС будет перезагружена быстро и безболезненно. Команда перезагрузки Linux выглядит так "sudo reboot". Ничего сложного. Все просто и понятно. Первое слово в команде запускает действие от имени администратора (суперпользователя), а второе - слово "перезагрузить" на английском языке. В "Линуксе" вообще все команды становятся куда понятнее, если пользователь знает английский. Это те же слова. Но часто используются сокращения и аббревиатуры.
Консольные команды
Консольные команды Linux бывают различных типов. Они могут управлять файлами, выводить в терминале информацию об операционной системе и самом компьютере, а могут служить и для настройки того или иного оборудования. Все зависит от конкретных задач. Самые популярные и распространенные команды - это "ср", "top" и "htop", "lsdef". Первая употребляется вместе с наименованием папки. Она позволяет войти в указанную папку и заняться редактированием файлов в терминале. Если использовать ее без названия папки, то ОС автоматически направит пользователя в домашнюю директорию. Команда "top" предоставляет пользователю информацию о загруженных процессах и количестве занятой и свободной оперативной памяти. Вся информация предоставляется в режиме реального времени. Фраза "htop", набранная в терминале, выдаст всю статистику о запущенных процессах в системе. Команда "lsdef" проинформирует юзера обо всех особенностях установленного оборудования. Эти команды носят чисто информативный характер.
Команды настройки
Часто бывает, что некоторые приложения в "Линукс" имеют чисто консольную структуру. Поэтому для того чтобы запустить настройку той или иной программы, приходится вводить соответствующие команды Linux. Ярким примером можно считать "прослойку" для запуска приложений Windows под названием wine-staging. У нее нет ярлыков и файлов запуска. Поэтому необходимо ввести в терминале "winecfg". Ее не нужно выполнять от имени администратора. нужно вводить так, как есть. Также и с некоторыми другими приложениями. Более того, в "Линукс" есть программы, которые напрочь лишены графического интерфейса. Взаимодействовать с ними возможно только при помощи консоли. Но в этом случае нужно вводить команды, которые поддерживает именно это приложение. А значит, придется изучать их отдельно. Ибо у каждой утилиты свой набор команд для работы.
Работа с жесткими дисками
ОС Linux позволяет управлять жесткими дисками прямо из консоли. Для этого тоже имеются специальные команды. Они применимы в том случае, если нет возможности использовать для той или иной операции утилиты с графическим интерфейсом. Кстати, таким образом можно восстановить даже основательно "убитые" диски. В этом плане "Линукс" незаменим и куда лучше "Винды". Итак, основная команда для работы с дисками - "fdisk -l". Она отображает информацию обо всех накопителях, установленных в системе. "Sudo mount" - монтирует раздел диска к точке монтирования. Она может использоваться для того, чтобы операционная система обнаружила только что подключенный жесткий диск. Команда "umount" служит для отмонтирования. А с помощью "sudo hdparm -tT /dev/sda" можно оценить производительность винчестера. Это основные команды для работы с жесткими дисками. В сочетании с определенными префиксами эти команды могут выполнять различные работы с жестким диском.
Работа с сетью
Команды Linux для управления сетевыми параметрами помогают узнать всю информацию о конкретном соединении и базово настроить его. Для того чтобы увидеть информацию обо всех сетевых интерфейсах, следует набрать в терминале команду "ifconfig". Если требуется проверить параметры только проводного соединения, то нужная команда - "ifconfig eth0". Также можно пинговать соединение для осуществления контроля скорости передачи данных. Нужно ввести в терминале "ping 192.168.0.2". Если возникли проблемы с сетевым соединением, то можно попробовать перезагрузить DHCP-клиент простой командой "sudo /etc/init.d/dhcpd restart". Для других задач при работе с сетью тоже имеются свои команды. Но перечислить их все в рамках данного материала невозможно. Слишком уж их много.
Общие команды
Это те команды Linux, которые невозможно отнести к конкретной категории. Назначение у них различное, но они являются общими по своей сути. К примеру, при помощи команды "uname -a" можно просмотреть информацию о версии ядра "Линукс". Команда "uptime" проинформирует пользователя об общем времени работы операционной системы с момента последней загрузки. "Wget" позволяет скачать любой файл из интернета при помощи консоли. Для этого нужно вводить команду в таком формате "wget ссылка на загрузку". Следующуй команду можно было бы отнести к сетевым. Она служит для настройки соединения с сетью через ADSL модем и выглядит так: "pppoeconf". Если нужно выйти из "Линукс", то достаточно набрать в консоли "shutdown -h now" или "poweroff" (команда выключения Linux). Это все команды общего типа, которые невозможно отнести к той или иной категории. Некоторые из них служат для получения определенной информации, а некоторые для настройки тех или иных параметров операционной системы.
Установка и удаления пакетов в дистрибутивах типа "Арч"
Продолжим изучение Linux. Список команд, используемых в "арчеподобных" дистрибутивах, может существенно отличаться от сборок на основе "Дебиан". Дело в том, что там используются совсем другие префиксы. Да и иерархия непохожа. К примеру, процесс установки и удаления пакетов будет сильно отличаться. Просмотреть список установленных пакетов можно при помощи команды "rpm -qa". Заметьте, здесь уже появился совершенно новый префикс. Да и сами команды не имеют ничего общего с "дебиановскими". Для установки конкретного пакета потребуется ввести "sudo rpm -i pkgname.rpm", где "pkgname.rpm" - имя соответствующего пакета. Также можно поставить одним действием все пакеты из данной директории путем ввода команды "sudo dpkg -i *.rpm". Как видите, ничего общего с командами из "убунтоподобных" дистрибутивов. Для удаления тех или иных пакетов в "Арче" следует ввести в консоли команду "sudo rpm -e pkgname, где "pkgname" - имя удаляемого приложения или пакета. В принципе, все просто и логично. Нужно только потратить определенное количество времени на то, чтобы понять эту логику. Как только пользователь освоит основные команды Linux, общение с операционной системой станет куда приятнее.
Работа с образами ISO и компакт-дисками
Каким бы странным это ни казалось, но терминал "Линукс" позволяет пользователю работать и с образами дисков: осуществлять запись, копировать диски и совершать прочие действия. Для тех, кто только что пересел на ОС с "Виндовс", подобная ситуация кажется невообразимой дикостью. Но нужно отметить, что через консоль работа с дисками и образами происходит куда успешнее, чем при использовании утилит с графическим интерфейсом. Итак, команды Linux для работы с оптическими носителями информации и их образами.
Команда "cdrecord -scanbus" показывает список доступных приводов, готовых для записи (в случае, если в вашем ПК их установлено несколько).
Фраза "dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc" инициирует процесс создания копии компакт-диска формата ISO с именем "mycd". По умолчанию копии дисков находятся в домашней директории. При помощи определенных команд можно также записать образ на флешку или на CD. Хотя для записи образов на флеш-накопитель в любом дистрибутиве "Линукс" есть отличное приложение с графическим интерфейсом. Так что лучше использовать его.
Работа с пользователями и группами
Если в Windows работа с учетной записью пользователя и правами доступа осуществляется полностью через графический интерфейс, то в "Линукс" все происходит с помощью консоли. причем просто так выполнить команду не получится. Нужно вводить префикс для доступа к правам администратора и личный пароль. Именно поэтому ОС Linux считаются более безопасными, чем поделки от "Майкрософт". Стоит отметить, что и команда запуска Linux не может обходиться без прав суперпользователя. Поэтому никакой хакер не сможет использовать ваш ПК для майнинга биткоинов без пароля. Однако вернемся к работе с пользователями. Для получения информации о текущем пользователе следует ввести в терминале "id". Команда "last" покажет последних зарегистрированных пользователей (актуально для серверов). Если нужно посмотреть имя текущего пользователя и время его входа, то следует использовать команду "who". Для того чтобы добавить нового пользователя, следует выполнить "useradd имя пользователя". Имя должно состоять только из латинских букв и символов и арабских цифр. Для удаления конкретного пользователя есть команда "userdel". Добавление группы осуществляется сочетанием "groupadd имя группы. В принципе, ничего сложного нет.
Заключение
Итак, описание команд Linux для работы с операционной системой посредством консоли завершено. Работа с консолью более безопасна, чем использование программ с графическими интерфейсами. Все команды логичны и понятны. Нужны только базовые знания английского языка. Если они есть, то разобраться с терминалом "Линукс" не составит никакого труда. Для новичков, не владеющих английским, на первых порах рекомендуется поискать инструкции по осуществлению тех или иных действий в Сети и просто копировать в терминал нужные команды. Со временем придет опыт и понимание. И работать с операционной системой станет намного проще.
fb.ru
Основные команды используемые в GNU/Linux
В мире Linux в отличии от мира Windows есть такой замечательный инструмент как консоль или другими словами командная оболочка (shell). Во многих случаях некоторые вещи гораздо легче и информативней сделать именно через консоль, не лазя по дебрям файловой системы и менюшек. Для многих это утверждение будет спорным, но со временем вы обязательно выделите те задачи которые легче и удобней выполнить из нее. Командных оболочек существует достаточное большое количество. Самые популярные из них это bash, zsh и sh. Так как большинство предпочитает bash поэтому и речь пойдет именно о bash.
Для начала немного ликбеза. Существуют команды которые будут работать в любом дистрибутиве и даже с любой оболочкой. Также существуют дистрозависимые команды которые будут актуальны только в конкретном дистрибутиве.
1. Команды работающие всегда и везде.
ls
Показывает список файлов и каталогов в текущей директории. У каждой команды всегда есть ключи (опции запуска) которые задаются после ввода самой команды и позволяют точно передать программе то, что мы от нее хотим. Самые частоиспользуемые ключи запуска:
ls -aБудет отображать все видимые и доступные для чтения файлы в директории. По умолчанию ls не отображает файлы начинающиеся с точки (.). Таких файлов очень много в домашней директории пользователя (home).
ls -lОтображает кроме списка файлов еще и права на эти файлы и их размер (Размер показывается только для файлов, для директорий не показывается)
ls -hДелает вывод ls более читабельным для человека (размер выводится в килобайтах, мегабайтах...,а не в байтах) Соответственно будет актуально запускать
ls -alh ls -RВыводит список файлов и директори рекурсивно. Другими словами будут отображены все имеющиеся в текущей директории каталоги и вложенные в них файлы.
ls -HСледовать по символьным ссылкам. Если в каталоге есть символьная ссылка на другой каталог, то будет отображаться и его содержимое тоже. Все описанные ключи могут быть введены совместно, например
ls -alhR. Все остальные опции вы можете посмотреть запустив
ls с ключом --help.
rm
Удаляет файл или директорию. Удаление происходит мимо корзины, так что восстановление удаленных файлов будет возможно только с помощью специальных утилит. Данная команда так же имеет ключи запуска.
rm -fУдаляет заданный каталог (или файл) принудительно, не спрашивая подтверждения пользователя.
rm -iБудет запрашивать подтверждение на удаление у пользователя.
rm -r(или -R) Рекурсивное удаление. Удаляет каталог со всеми вложенными в него файлами и каталогами. Например
rm -rfv /home/kernel/othersудалит этот каталог полностью со всеми файлами и директориями отображая процесс удаления каждого файла.
mv
Перемещение, и переименование файлов и каталогов.
mv -fАналогично предыдущему, принудительно перемещает файлы не задавая лишних вопросов.
mv -iИнтерактивный режим. При наличии конфликтов в директории назначения пользователю будет задаваться вопрос перезаписывать ли конфликтные файлы или нет.
mv -uПеремещает файлы только в том случае если источник новее чем назначение. Например
mv -iv /home/kernel/a /Filesперемещает директорию /home/kernel/a и все ее содержимое в директорию /Files отображая при этом весь процесс.
mkdir
Команда для создания каталогов.
mkdir -m
Задание прав доступа для будущей директории. Например
mkdir -m 400 /home/kernel/testсоздаст директорию test с правами доступа 400 (dr--------) Только чтение)) Подробнее о правах я расскажу в следующий раз.
mkdir -pСоздать директорию рекурсивно. Это означает, что если вы хотите создать /home/kernel/a/b/c, но директории "a" в /home/kernel не существует, то mkdir создаст их автоматически.
cp
Копирует заданные файлы. Имеет массу опций из которых несколько самых важных я опишу:
cp -RvРекурсивно копирует каталог в каталог назначения отображая прогресс.
cp -aРекурсивно копирует каталог сохраняя права на файлы при создании их в целевом каталоге.
cp -HПри копировании будет следовать по символическим ссылкам.
touch
Создает файл, а при условии что по заданному пути он уже присутствует - обновляет время его последнего изменения.
touch -tЗадает время последнего доступа к файлу или директории в формате ГГММДДччмм.
Например touch -t 201102151735изменит время последнего доступа файла на 15 февраля 2011 года 17 часов 35 минут
cat
Выводит содержимое любого файла в stdout(стандартный вывод, например в ту консоль в которой команда и запускается)
cat -nНумерует выводимые строки.
df
Выводит информацию о смонтированных в системе разделах и подробную информацию о них. Например название раздела, точку монтирования, процент свободного и использованного места на разделе и общий их размер.
df -hАналогично предыдущим выводит данную информацию в удобном для восприятия человеком виде.
history
Выводит информацию о последней 1000 введенных команд. Очень удобная вещь, когда например помнишь что уже это делал, но забыл как.
cd
Задает путь перехода "терминалом" Например введя
cd /Files/Video/HDвы переместитесь "терминалом" в данную директорию. Для быстрого возвращения в домашний каталог достаточно просто ввести cd.
pwd
Отображает путь вашего текущего местонахождения.
dmesg
Отображает "debug" информацию выдаваемую ядром Linux. Иногда бывает очень полезна особенно в случаях если что то работает неправильно.
grep
Фильтрует содержимое файлов содержимое которых отправленно на stdout, например нахождения чего то в текстовом файле. Используется совместно с командами ls и cat.
cat /home/kernel/Linux.txt | grep kernelВыведет все строки из файла Linux.txt содержащие kernel. Аналогично с ls.
uname
Показывает информацию о системе. Версию ядра, номер сборки, архитектуру и прочее.
lspci
Отобразить список оборудования.
2. Некоторый список команд работающих только в Debian like дистрибутивах.
sudo apt-get update
Синхронизирует локальную базу о доступных для установки пакетов с репозиторием разработчиков.
sudo apt-get upgradeСкачивает и устанавливает доступные обновления.
sudo apt-get dist-upgradeОбновляет до следующей версии дистрибутива. Использовать с осторожностью иначе можно получить неработающую систему
syslinux.ru
Основные команды в Linux Сайт Кузеванова Александра
Командная строка, оболочка, консоль — эти термины используются для обозначения взаимодействия человека-оператора с операционной системой с применением стандартных устройств ввода-вывода, обеспечивающих ввод команд и получение результатов их выполнения. В операционных системах семейства Linux подобное взаимодействие обеспечивается специальным программным продуктом — оболочкой (shell) . Наиболее распространенной из них, является оболочка проекта GNU bash (Bourne Again SHell ). Bash основывается на оболочке Bourne (sh) созданной Стефеном Борном и включает в себя свойства множества других оболочек — C (csh) , Korn (ksh), tc (tcsh) . Bash была написана Брайаном Фоксом (Brian Fox) и в настоящее время поддерживается Четом Рейми (Chet Ramey).
Свойства оболочки Bash делают ее наиболее универсальным и удобным средством взаимодействия с ОС Linux:
- обеспечивает редактирование командной строки. Курсор может быть перемещен в любую позицию команды для изменения ее содержания.
- поддерживает режим истории команд, позволяя отображать и изменять ранее введенные команды. Оболочка bash также имеет несколько переменных, значения которых влияют на сохранение и повторный вызов ранее введенных команд.
- обеспечивает завершение частично введенных слов для имен переменных, пользователей, хостов, команд и файлов.
- обеспечивает гибкое управление процессами, позволяя приостанавливать их, перезапускать, переключаться между задачами переднего плана и фоновыми, и даже продолжать выполнение задачи при завершении родительского процесса.
- позволяет использовать функции и псевдонимы, выполнять арифметические операции и вводить арифметические выражения в качестве команд.
- позволяет создавать целые наборы последовательно выполняемых команд (сценарии или скрипты) с использованием гибкого и функционального языка программирования данной оболочки.
- имеет гибкие настройки, обеспечивающие изменение внешнего вида командной строки.
Оболочка bash может выполняться как в интерактивном, так и в не интерактивном режимах. В первом случае программа bash взаимодействует с пользователем, во втором — используется для выполнения скриптов ( специально подготовленных текстовых файлов с последовательностью команд) .
Команда оболочки Linux — это строка символов из имени команды и аргументов, разделенных пробелами. Аргументы предоставляют команде дополнительные параметры, определяющие ее поведение. Например, команда
echo 12345
выведет на экран строку символов 12345, введенных в качестве аргумента команды.
Команды, являющиеся частью оболочки называются встроенными. Естественно, они могут отличаться для различных оболочек. Кроме того, в качестве команд используются имена исполняемых файлов. В качестве аргументов, командам передаются ключи илиопции, состоящие из тире и одного или нескольких символов. Пример такой команды:
ls -l
ls — команда для отображения информации о файлах.. При вводе без аргументов, эта команда просто отобразит список файлов в текущем каталоге. При вводе с параметром -l — список в длинном формате — с отображением атрибутов, владельцев, даты и времени.
При использовании нескольких ключей, их можно объединить. Ниже приведенные варианты команд идентичны :
ls -l -d
ls -ld
При работе в командной оболочке Linux, в большинстве случаев, можно получить справочную информацию по использованию конкретной команды, введя ее имя с параметром —help:
ls -help — отобразить справку для команды ls
Кроме того, операционные системы семейства Linux включают в себя комплект документации, известный как man-страницы, поскольку он доступен по команде man. Этот комплект включает в себя 8 разделов, каждый из которых содержит справочную информацию, которую можно вывести на экран с использованием команды man
Перечень разделов man-страниц:
1 — Команды уровня пользователя.
2 — Системные вызовы. Документация о библиотечных системных вызовах, как open, read, exec и т. п. Данный раздел обычно используется программистами.
3 — Библиотеки. Этот раздел также предназначен для программистов и содержит справочную информацию о библиотеках прикладных программ (abs, rint и т.п.)
4 и 5 — Форматы системных и пользовательских файлов. Содержит документацию о различных форматах файлов, как например, файл passwd
6 — Игры. Описание игр, поставляемых с установленной системой.
7 — Драйверы. Документация к драйверам, как например ip4 или ipv6
8 — Поддержка системы. Документация с информацией о командах для системного администрирования (init, fdisk, ifconfig и т.п.).
Примеры:
man 1 ls — отобразить справку для команды ls из первого раздела документации ( в нем хранится информация о командах уровня пользователя ).
На практике, если требуется справка именно о команде, номер раздела опускают. В таком случае, поиск будет выполнен по всем разделам, начиная с первого до совпадения с аргументом, заданным в команде man:
man ls — отобразить справку для команды ls из первого раздела документации, где она будет найдена.
Иногда отсутствие номера раздела в команде man даже предпочтительнее. Например, справка по команде
man 1 init — отобразить справку для команды init из первого раздела документации, завершится сообщением об отсутствии справочной информации, потому, что данная команда относится к командам поддержки системы и информация о ней содержится в 8-м разделе.
Для поиска справочной документации во всех разделах, используется опция -a:
man -a passwd — отобразить справку для аргумента passwd из всех разделов, где она будет найдена: В результате, отобразится справка по команде passwd из первого раздела и описание формата файла паролей passwd из пятого.
В качестве аргумента для строки поиска в команде man можно использовать шаблон:
man -a ip* — отобразить справку для всех параметров, начинающихся с ip из всех разделов справочной документации.
При просмотре справочной документации, отображаемой по команде man используются клавиши:
стрелка вверх/вниз — переход на строку вверх/вниз.
PgUp/PgDown — переход на страницу вверх/вниз.
Enter — переход на строку вниз.
Пробел — переход на страницу вниз
Q — выход из справки.
Также, удобным средством поиска справочной информации являются утилиты apropos и whatis , позволяющие выполнить поиск по ключевому слову в базе данных документации. Первая из них выводит те строки, которые содержат строку поиска в в именах справочных страниц и кратких описаниях, а вторая – показывает однострочные описания справочных страниц, которые имеются в начале каждой страницы. С параметрами по умолчанию команды выдадут различающуюся информацию. Например, команда whatis tar, выдаст информацию имеющую отношение к утилите архивирования tar, а команда apropos tar — выдаст информацию и об утилите tar, и, кроме этого, справочные данные, где строка “tar” является частью слова, например “start”. Использование утилиты apropos на первый взгляд кажется не очень эффективным, однако, это не так. Например, команда apropos net позволит быстро получить краткую справку по сетевым утилитам, присутствующим в данной системе. В данных командах можно использовать параметр -s указывающий номер раздела справочной системы, в котором будет выполняться поиск:
apropos –s 1 net — выполнить поиск только в первом разделе man.
При поиске обе утилиты используют индексные базы данных, которые обновляются с помощью программы mandb ( или традиционной текстовой базы данных, создаваемой программой makewhatis), поэтому поиск выполняется очень быстро. Дополнительные параметры командной строки, используемые apropos и whatis можно получить с помощью команды man .
Работа в командной строке Linux имеет некоторые принципиальные отличия по сравнению с работой в среде Windows.
Во-первых, не забывайте, что строчные и заглавные буквы для Linux — это разные символы. В операционной системе Windows каталог TEMP и каталог Temp — это один и тот же каталог, в Linux — это два разных. То же самое касается команд, их ключей, имен пользователей ,паролей и т.п.
Во-вторых, справка по команде с параметром —help и справка из man-страницы различаются. Последняя, как правило, более подробная, с примерами и ссылкой на связанные разделы документации.
В-третьих, доступный список команд и результат их выполнения зависит от ваших прав в системе. Как правило, потенциально опасные для целостности системы команды, и команды, влияющие на работу других пользователей, не доступны обычному пользователю. Полными правами по отношению к системе имеет только один пользователь (суперпользователь)- root. Обычно, учетная запись данного пользователя используется только для изменения настроек системы, и в большинстве дистрибутивов Linux, после установки системы, нет возможности работать под root‘ом в графической среде, в сеансах удаленного подключения, или даже при локальном входе в систему, как это сделано в Ubuntu . Такой подход позволяет предотвратить разрушение системы при ошибках пользователя, и вполне оправдан, однако существуют случаи, когда без прав root не обойтись. Для получения прав пользователя root (суперпользователя, superuser) , которому доступны все возможные команды, используйте команду su. Она позволяет сменить текущего пользователя. Если пользователь не задан, то подразумевается root..
Для выполнения отдельно взятой команды от имени суперпользователя root или другого пользователя используется команда sudo:
sudo ifconfig — выполнить команду ifconfig от имени суперпользователя root
sudo su — Комбинация sudo и su — выполнить команду su от имени суперпользователя root. Данный вариант команды позволяет пользователю перейти в учетную запись root без сохранения текущей пользовательской среды (знак «-«).
Обычно, использование команды sudo предпочтительнее, чем использование su и, при дополнительных настройках системы, позволяет легко отдавать отдельным пользователям только строго необходимые привилегии. Основная часть настроек sudo хранится в файле /etc/sudoers и задает правила, определяющие, какие пользователи, каких компьютеров, какие команды могут выполнять с вводом или без ввода пароля. Администратор системы может даже на какое-то время передать полномочия суперпользователя root любому пользователю, не передавая ему пароль от учетной записи root.
Начинающих пользователей Linux обычно пугает работа в командной оболочке из-за необходимости набирать слишком длинные строки команд, имен каталогов или файлов. Однако, очень часто в таком наборе нет необходимости. При работе в среде командной оболочки очень удобно использовать режим подстановки имен с помощью клавиши Tab. Например, для получения списка файлов каталога /home/everyone пользователю необходимо набрать команду
ls /home/everyone
Однако, оболочка позволяет обойтись без полного набора пути. Если после набора ls /h нажать клавишу Tab, то в командной строке будет подставлена недостающая часть имени каталога — ome, и в строке ввода отобразится
ls /home/
Аналогично, не нужно набирать полностью оставшуюся часть пути, а только e и Tab. Если существуют частично совпадающие имена файлов или каталогов, то подстановка выполняется только для общей части имени. Если в каталоге /home имеются подкаталоги everyone1 и everyone2 то после нажатия клавиши Tab выполнится подстановка общей части everyone и на экране отобразится список из возможных вариантов ввода — everyone1 и everyone2. Остается только ввести недостающую часть имени (1 или 2). Тот же прием используется и при наборе команд. Например, если набрать в качестве команды символ e и нажать Tab то отобразится список всех доступных команд, начинающихся с буквы e, если затем набрать символ c и снова нажать Tab, то будет выставлена подстановка имени до echo, или если есть другие варианты — подстановка общей части и возможные варианты имени.
Для просмотра текста, ушедшего за пределы видимости экрана используются комбинации клавиш SHIFT и PAGE UP или PAGE DOWN (в зависимости от направления просмотра).Для приостановки вывода на экран — CTRL-S, отмена приостановки — CTRL-Q
Для вывода большого объема текста на экран в постраничном режиме используется команда less, в цепочке с основной командой. Объясню на примере. Пусть у нас есть текстовый файл mytxt размером на 10 экранов. Для вывода текста на экран (стандартный вывод) можно воспользоваться командой cat имя файла cat mytxtПосле выполнения этой команды вы увидите быстро промелькнувший текст и последний (десятый) экран вывода. Можно, конечно, воспользоваться комбинациями клавиш SHIFT-PAGEDOUN или SHIFT-PAGEUP для просмотра текста, но существует возможность воспользоваться и командой less.
cat mytxt | less
Символ | означает объединение в цепочку выполнения команды выдачи текста cat и команды управления постраничным выводом
PAGE DOWN или ENTER (построчное перемещение). Для завершения постраничного вывода нажмите клавишу Q.В цепочки можно объединять несколько команд. Например, вам понадобилось вывести на экран в постраничном режиме все строки, содержащие слово mail.
Для поиска можно воспользоваться командой
grep < строка поиска >
Итоговая цепочка из трех команд:
cat mytxt | grep mail | less
Для большинства дистрибутивов Linux вместо less можно использовать more.
Иногда удобно использовать одновременно несколько терминалов, переключаясь между ними (например, когда необходимо смотреть информацию журнала в одном окне и управлять процессами и настройками в другом).
Для переключения используется комбинация клавиш CTRL — ALT — F1…F6 (от первого терминала до 6-го или далее). Для переключения в графическую оболочку используется одна из комбинаций, которая может отличаться для разных дистрибутивов. Например, CTRL-ALT-F7.
Чтобы запустить еще один графический сервер на этом же компьютере, используйте команду startx 1 — :
У вас добавится новый графический терминал. Чтобы перейти во второй графический терминал, нажмите Alt+F8, а чтобы вернуться в первый — Alt+F7. Таким образом можно открывать до 64 графических терминалов. (startx 2 — :2 и т.д).
Для завершения сеанса работы в командной оболочке используется команда exit.
Вы можете создать журнал своей консольной сессии, в котором будет отображено все, что вы вводили с клавиатуры, и все, что выдавалось на экран терминала.Для этого используется команда
script имя файла журнала
Например:
script /home/user/mysession.log
Чтобы прекратить запись в журнал введите команду exit.
Для просмотра истории ранее введенных команд используются стрелки Вверх/Вниз. При вводе набранной или вызванной из истории команды положение курсора относительно строки ввода значения не имеет.
Кроме того, в домашнем каталоге пользователя, имеется файл истории вводимых команд для данной оболочки, например.bash_history . Для отображения его содержимого на экране можно воспользоваться командой history.
Для просмотра информации в конечной части файлов ( например, журналов ) используется команда tail:
tail /var/log/mrssages — отобразить последние 10 строк ( значение по умолчанию ) из файла журнала /var/log/messages.
tail –n 100 /var/log/mrssages — отобразить последние 100 строк из файла журнала /var/log/messages.
Одно и то же действие в Linux очень часто можно выполнить несколькими способами. Стандартно для перезагрузки или выключения компьютера используется shutdown. Команда имеет много опций, позволяющих выполнить перезагрузку в определенное время, быструю перезагрузку без проверки файловой системы, имитировать и отменять уже запущенный (ждущий своего времени) процесс перезагрузки.
Полный список опций можно получить по shutdown —help
Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
Для выключения питания (halt):
shutdown -h now
В большинстве дистрибутивов можно использовать короткие команды:
reboot — перезагрузка halt — выключение
Можно также воспользоваться изменением уровня запуска системы командой init, позволяющей управлять запуском и завершением процессов в системе с использованием скриптов, хранящихся в /etc/inittab. Уровень 0 — выключение, уровень 6 — перезагрузка. Соответственно для выключения:
init 0
для перезагрузки:
init 6
Команду init можно использовать для изменения уровней запуска системы. Уровни:
— Однопользовательский режим. Доступ разрешен пользователю root.— Многопользовательский режим без поддержки сетевых функций.— С поддержкой сети.— Зарезервировано.— С использованием графической оболочки.
Если вам нужно завершить графическую оболочку (например, когда инсталляция некоторых приложений требует ее закрытия) введите:
init 3
Графическая оболочка закроется, и система перейдет на уровень запуска 3. Для возврата на уровень 5 введите:
init 5
Уровень запуска системы по умолчанию определяется значением initdefault из файла /etc/inittab. Для запуска системы с поддержкой графической оболочки она выглядит так:
id:5:initdefault:
Если 5 заменить на 3, то графическая оболочка при старте системы запускаться не будет.
Все выше сказанное относится к системам инициализации SysV (SystemV), которая много лет использовалась во всех дистрибутивах Linux для загрузки рабочей среды с помощью скриптов init. Однако, начиная с 2012г, наметился постепенный переход на systemd новую систему инициализации, изначально разработанную для дистрибутива Fedora, начиная с Fedora 148 . Попросту говоря, systemd — это демон инициализации других демонов в Linux, пришедший на замену используемому ранее скрипту инициализации (/sbin/init). Главная его особенность — распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы. Реализация systemd значительно отличается не только логикой, но и принципами управления процессом запуска, набором программных модулей и конфигурационных файлов. Файла /etc/initd больше нет, и для определения уровня запуска в systemd используются символические ссылки, например:
— для состояния init 3 ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
— для состояния init 5 ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
Команды init N в дистрибутивах с использованием systemd пока поддерживаются, но очевидно, что ее время заканчивается.
Посмотреть список процессов в Linux можно с помощью команды ps. Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущем сеансе пользователя. Полный список опций можно получить стандартно — выполнив
ps —help
Примеры использования:
- Список всех процессов, запущенных в системе:
ps -e — выдаст список процессов с идентификаторами ( PID ) и их именами или:
ps -eF — выдаст тот же список процессов, но с полной строкой запуска
- список задач, порожденных пользователем user:ps -U user
- список задач, связанных с текущим терминалом:ps -T
- список задач, связанных с терминалом N:ps t ttyN
- Если список задач большой, а нас интересует состояние одной или нескольких задач, можно воспользоваться grep:ps -U root | grep ppp — выдать список задач, содержащих «ppp» в имени. Для получения сведений об использовании ресурсов компьютера можно воспользоваться командой top. В верхней части окна выводятся суммарные данные о состоянии системы — текущее время, время с момента загрузки системы, число пользователей в системе, число процессов в разных состояниях, данные об использовании процессора и памяти.Ниже выводится таблица, характеризующая отдельные процессы. Число строк, отображаемых в этой таблице, определяется размером окна. Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h выводит справку по командам, которые позволяют изменить формат отображаемых данных и управлять некоторыми параметрами процессов в системе:
- или d — изменить интервал обновления окна.
- z — цветное/черно-белое отображение
- n или # — количество отображаемых процессов
- Можно отсортировать список процессов по использованию ресурсов процессора (P), памяти (M), времени выполнения (T) и т.п. В среде утилиты top также существуют подкоманды, которые позволяют управлять процессами в интерактивном режиме:
- k — снять (kill) задачу. По этой команде будет запрошен идентификатор процесса (PID), после ввода которого, процесс будет завершен.
r — изменить текущий приоритет задачи (renice). Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение приоритета (отображается в колонке NI). Диапазон значений приоритетов — от минус 20 (наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только пользователь root.Для выхода из top нажмите q
Эти же действия (принудительное завершение процесса и изменение его приоритета) можно выполнить и без команды top.Процессы в Linux имеют возможность обмениваться так называемыми «сигналами» с ядром и другими процессами. При получении сигнала процессом, управление передается подпрограмме его обработки или ядру, если такой подпрограммы не существует.
В Linux имеется команда kill, которая позволяет послать заданному процессу любой сигнал. Список сигналов можно получить по команде: kill -l
В результате выполнения этой команды вы увидите список номеров и названий сигналов. Для того, чтобы послать определенный сигнал выбранному процессу, нужно ввести:kill < -номерсигнала > номер PID выбранного процессаНапример, нам нужно завершить работу приложения Midnight Commander (mc).
Определим идентификатор процесса mc:ps -e | grep mc Пусть PID= 11597.
Посылаем сигнал SIGQUIT (номер 3): kill -3 11597
После чего процесс mc обработает сигнал GIGQUIT и выполнит завершение работы. Однако, если mc «завис», то, естественно, завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит управления. В таких случаях используется сигнал под номером 9 (SIGKILL), обрабатываемый ядром операционной системы, и принудительно завершающий указанный процесс:
kill -9 11597
Если в команде kill номер сигнала не задан, то используется значение SIGKILL, т.е предыдущую команду можно было ввести как kill PID:
kill 11597
При завершении процесса завершаются и порожденные им процессы. Для завершения процесса по его имени используется команда killall:
killall mc — завершить процесс, в имени которого есть «mc»
killall -u user — завершить процессы, порожденные пользователем user
Для изменения приоритета процессов используются команды nice и renice. При запуске процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки (shell). Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:
nice -< число > команда
nice -4 mc — запустит mc с приоритетом = 8+4=12
Команда renice используется для изменения приоритета уже запущенного процесса:
renice < число > -p PID renice 4 -p 11597 — установить значение приоритета для процесса mc (PID=11597) равным 4.
После выполнения, renice выдаст строку результата:
11597: old priority 12, new priority 4 — старый приоритет 12, новый приоритет 4
Задание нулевого и отрицательного числа приоритета возможно только с правами root.
Команды для работы с файлами и каталогами:
pwd – отобразить путь текущего каталогаcd – перейти в указанный каталогls – отобразить список файлов каталога, с ключом -l показывает дополнительные сведения о файлах.cp – копирование файлов/папокmv – перемещение файлов/папокmkdir – создать папкуrm – удалить файлы/папки, с ключом -r удаляет и все вложенные папки, с ключом -f — удаляет открытые файлы или каталогиrmdir – удаление пустой папкиchmod – изменить права доступа к файлуchown — сменить владельца файла или каталогаfind — найти файл. Задается исходный путь для поиска и шаблон поиска, find / -name .X* — искать от корневого каталога файлы, содержащие в имени символы .Xwhich — отобразить полный путь исполняемого файла, доступного в данной оболочке, например which ifconfigtouch — изменить временные отметки файла. Удобно использовать для создания пустых файлов – touch myfile создаст пустой файл myfile .
Системные команды
Эти команды обычно используется от имени суперпользователя (с командой sudo).
reboot – перезагрузка системыpoweroff – выключение компьютераreset – очищает окно терминалаpasswd – сменить свой пароль, а суперпользователю — поменять пароль любого пользователяusers — отобразить список пользователей, вошедших в систему.yum — установка, удаление или обновление программного обеспечения в дистрибутивах Fedora, RedHat и т.п.dpkg — установка, удаление или обновление программного обеспечения в дистрибутивах Debian, Ubuntu и т.п.apt-get — установка, удаление или обновление программного обеспечения в дистрибутивах на основе Debian (Ubuntu, Mint и т.п.)
Управление процессами
ps – отобразить список текущих активных процессовlsof — отобразить список открытых файлов процесса или пользователяstrace — отобразить список системных вызововlast — отобразить историю перезагрузок и регистраций пользователей в системеkill – послать сигнал процессу, обычно используется для принудительного завершения работы процесса.killall – завершение работы всех процессов, имена которых заданы параметром командной строкиtop – отображение списка текущих процессов и интерактивное управление ими.
Сетевые команды
ifconfig – конфигурация сетевых интерфейсовroute — таблица маршрутизацииifup / ifdown — включить /выключить сетевой интерфейсip — просмотр или изменение параметров конфигурации протокола IPnetstat — отобразить состояние сетевых соединенийarp, ping, nslookup, traceroute — наиболее часто используемые команды сетевой диагностики.
kuzevanov.ru
Основные команды Linux | Feanor184.ru
Июнь27
В этой статье я приведу список команд через ssh в операционной системе Linux, которые жизненно необходимы каждому системному администратору. Эти команды являются самыми распространенными и используемыми. Их хватит для выполнения основных действий в системе.
Основные операции с файлами и директориями
ls — laSh /путь — Вывод всех файлов (в том числе скрытых) и директорий по указанному пути. Если хотите просмотреть и вложенные директории, то нужно использовать опцию -R.
cd /путь — Смена текущей директории, в который находится пользователь
pwd — Путь текущей директории
mv <откуда> <куда> — Перемещение или переименование файлов или директорий
сp <откуда> <куда> — Копирование файлов. Для копирования директорий нужно использовать опцию -R
touch /путь к файлу — Создание пустого файла
mkdir /путь к каталогу — Создание директории. Для создания каталога с подкаталогами используйте команду mkdir /путь каталога/подкаталог
cat файл1 файл2 >> файл 3 — Объединение двух файлов 1 и 2 в один файл 3. Также можно использовать опцию -n для нумерации строк в файле 3
rm -rf /путь — Удаление файлов и каталогов. Будьте внимательны с использованием данной команды, т.к. восстановить удаленные данные будет крайне сложно. Желательно использовать опцию -i . В этом случае команда запрашивает у пользователя подтверждение на удаление каждого файла.
less имя файла — Постраничный просмотр файла. Для вывода строки можно использовать опцию -N. Для просмотра конца файла используйте клавишу G. Для поиска по файлу введите / и искомое слово.
Права и доступ к файлам
chown пользователь:группа файл — Cмена пользователи и/или группы у файла.
chmod ugo +-= rwx — Изменение прав для пользователя/группы/остальных на чтение/запись/исполнение файла или каталога.Например: chmod user +rw имя файла — добавление прав чтения и записи для user. Также можно использовать числовую форму, где r — 4, w — 2, 1 — x. Например: chmod 555 имя файла — изменит права для всех на чтение и исполнение данного файла.
Архивирование и сжатие файлов или директорий
gzip -cr файл — источник > архив — Архивирорование и сжатие файла или каталога с подкаталогами с сохранением исходного файла.
gunzip -c файл — архив > источник — Разархивирование файла или каталога с подкаталогами с сохранением исходного файла.
Поиск файлов или фрагментов в файле
locate -i имя файла — Поиск в базе имен файлов без учета регистра символов. Если вы ищете файл, который был создан относительно недавно, то лучше обновить базу поиска командой updatedb
grep -iR искомая фраза файл/директория — Поиск фрагментов текстового файла с подкаталогами (рекурсивно) без учета регистра символов. Для указания строки в файле используйте опцию -n. Чтобы показать только файлы в которых есть искомая фраза используйте опцию -l. Grep имеет огромное количество различных ключей, используя которое — можно очень гибко осуществить поиск внутри файлов linux.
find директория -user пользователь — поиск по принадлежности файлов определенному пользователю. Если указать восклицательный знак перед -user, то поиск будет с точностью, да наоборот. Другими словами, поиск по файлам, которые не принадлежат данному юзеру.
Поиск также можно делать по группе -group, размеру -size, типу -type. Например поиск по файлам, размер которых превышает 10Мб. будет выглядеть следующим образом: find директория -size +10m.
Также при поиске с каждым файлом можно делать определенные манипуляции при помощи опции -exec. Возможности find довольно обширны и требует много времени для описания, поэтому я не буду делать акцент на данной команде.
Полезные команды
whoami — Имя, под которым Вы авторизованы в системе.
su -l имя пользователя — Переключение пользователя
whereis команда — Определение пути к исполняемым и исходным файлам команды, а также к справочному руководству.
which команда — Сообщает о том, какой исполняемый файл будет запущен при указании данной команды в строке.
whatis название команды/программы — Показывает краткое описание команды или программы
apropos искомое слово — Ищет в кратких описаниях команд искомую фразу. Данная команда полезна тогда, когда Вы не знаете название команды, но знаете, что она выполняет.
Контроль использования ресурсов
ps aux — Выводит список всех запущенных процессов с указанием пользователя, под которым запущены процессы.
lsof -u пользователь — Вывод файлов, которые открыты данным пользователем.
lsof файл — Отображает список пользователей, которые используют файл в данный момент.
lsof -c команда — Показывает список файлов, которые использует данная команда.
strace номер pid процесса — Показывает какие системные вызовы делает определенный процесс.
free -m — Отображает использование оперативной памяти в системе
top — Отображает использование CPU, оперативной памяти и многое другое.
df -h — Отображает процент использования свободного места.
du -hs /var/ — показывает объем /var/ директории.
Установка программного обеспечения
rpm -Uhv пакет — Устанавливает заданный пакет на Centos. Если он уже установлен в системе, то обновляет его. Для удаления пакета необходимо использовать опцию -e. Используется на Centos.
yum install пакет — Устанавливает заданный пакет на Сentos со всеми зависимостями. Используется на Centos.
dpkg -i пакет — устанавливает заданный пакет на Debian. Опция -r позволяет удалить заданный пакет. Вам необходимо только указать название программы для удаления вместо пути при установке.
apt-get install пакет — Устанавливает заданный пакет на Debian со всеми зависимостями.
Сетевые команды
ifconfig -a — Выводит список всех сетевых интерфейсов. Для смены ip адреса на сетевом интерфейсе eth0 необходимо ввести команду ifconfig eth0 ip адрес.
mtr сайт или ip — Показывает прохождение пакетов от вашего сервера до заданного узла. Не идет в стандартной сборке, поэтому необходима для установки. Очень полезная программа, которая позволяет проверить потерю пакетов до заданного сайта или ip.
route — Показывает таблицу маршрутизации. Пример: route add -net default gw 192.168.0.1 dev eth0 — пакеты должны передаваться через шлюз 192.168.0.1 для сетевого интерфейса etho.
Работа в сети
scp файл-источник root@hostname:/папка/файл — Защищенное копирование между файлами. Также можно делать в обратном направлении.
rsync -vrtplze —progress —delete /путь root@hostname:/путь — полезная функция для резервного копирования. Данная команда делает инкрементальный бэкап, т.е. сохраняются только последние версии файлов.
wget -p /адрес сайта — Скачивает файлы по указанному адресу со всеми внутренними ссылками.
curl -O /адрес сайта — Выполняет похожие действия, но может не сохранять данные, а делать вывод для использования другими командами.
Основные конструкции, которые используются при работе с командами:
команда 1 && команда 2 — выполняет одну за другой команду, при условии, что предыдущая была выполнена успешно.
команда 1 || команда 2 — выполняет одну за другой команду, при условии, что предыдущая была выполнена с ошибкой.
команда 1 | команда 2 — вывод предыдущей команды используется последующей командой.
команда 1 >> имя файла — Вывод команды сохраняется в конец файла. Если файла нету, то он создается.
Другие статьи
Copyright © 2013-2017. All rights reserved.
feanor184.ru