Команды в линукс: Терминал линукс команды — работа с файлами, пользователями и диском

Содержание

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

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

Рассмотрим основные команды Linux, которые необходимо знать. Их необходимо вводить прямо в консоле.

Справочная информация

man и --help

Справочная информация. Позволяет узнать больше о команде, и параметрах. "man cat".

Результат выполнения man cat

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

Работа с файловой системой

pwd

Выводит полный путь к текущему каталогу.

ls

Показывает список файлов и подкаталогов.

По умолчанию все файлы, которые начинаются с точки, являются скрытыми. Чтобы их показать необходимо добавит ключ "-a".

ls -a

Если нужно вывести полную информацию, то добавим символ -l.

Итого получаем: ls -al

Результат ls -la

Расcмотрим результат выполнения ls -la:

  • drwr -xr -x - это права доступа;
  • цифра 1 - указывает количество жестких ссылок;
  • root - имя пользователя.
    Кто владелец;
  • root - имя группы к которой принадлежит документ;
  • 68 размер.

cat

Показывает на экране содержимое документа. Например нужно посмотреть содержимое файла rc.local. Вводим команду и путь, получается так: cat /etc/rc.local.

tac

tac противоположна cat. Выводит слово в обратном порядке.

less

Используется для просмотра длинных текстов с прокруткой по одной странице. Бывает так, что документ очень большой и обычный редактор не может его отрыть например mcview. Например логи. Как правило, если не задать ограничение размера логов, то они могут быть большого размера. less без труда откроит в терминале. less /var/log/syslog

Результат выполнения команды less /var/log/syslog

cp

Копирование файлов и каталогов.

сp может:

  • копировать файл в другую директорию;
  • копировать несколько файлов в новый каталог;
  • копировать содержимое файла в другой файл той же директории.

cd

Позволяет перейти в другую директорию: cd /etc

Перемещение на уровень выше: cd .

.

Перейти в домашний каталог: cd ~

~ этот же сивол используется, если нужно обратиться к документу в домашнем каталоге. ~/read.txt

find

Поиск информации в файловой системе. В Линуксе найти нужный документ бывает непросто, так так файловая система разветвлена. Синтаксис такой: find path -name filename.

После имени, идет путь к каталогу где искать. Поиск будет искать во всех подкаталогах.

Можно указать несколько директорий. find /etc /var -name networks.

Система будет искать в директориях "etc" и "var" документ с именем networks.

mkdir

Создает новый каталог: mkdir newpapka

touch

Создает новый файл: touch test

rm

Опасная команда. Позволяет удалять файлы или каталоги.

rm /var/test

Ключи rm:

  1. -d. удалить каталог;
  2. -r. рекурсивно удалять содержимое каталогов;
  3. -f. Не запрашивать подверждения при удалении файлов.

chmod

Изменяет права доступа к документу.

Чтение, запись, выполнение.

wc

Утилита терминала Линукс. Считает количество слов, символов, байт.

Основные ключи wc:

-l. Считает количество строк.

-w . Количество слов.

-m. Количество байт и символов.

Работа с диском

df

Показывает объем свободного места на жестком диске.

Результат выполнения df

mount.

Монтирование файловых систем. Например флешку или cdrom.

mount /dev/sdc

umont.

Размонтирования устройств.

umount /dev/sdc

Работа с пользователями

sudo

Популярная команда. Означает «SuperUser Do». Позволяет запускать сценарий с правами супер пользователя root.
sudo passwd mar

useradd / userdel / usermod

useradd - позволяет создавать пользователя: useradd mar

userdel удаляет пользователя: userdel mar

usermod - добавление пользователя в группу.

passwd

Меняет пароль пользователя. Для смены пароля нужно войти в привилегированный режим linux. Добавим слово sudo или войти "sudo bash" или так "su -".

sudo passwd user.

Основные ключи:

  • -d. Удалить пароль.  passwd -d user.
  • -l. Блокировка пароля.
  • -u. Раблокировка пароля.

-n. Дезактивировать пароль, через n дней. То есть, если пользователь не сменит пароль через n дней он не сможет войти в систему Линукс. passwd -n 80 user

Результат выполнения passwd -n 80 user

Основы работы в терминале Linux

Общие сведения о командной оболочке.

Получение подсказок по командам Linux

Общие рекомендации для начинающих работать с командной строкой Linux

Выключение и перезагрузка.

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

Наиболее часто используемые команды Linux.

Общие сведения о работе в командной оболочке Linux

&nbsp &nbsp Командная строка, оболочка, консоль - эти термины используются для обозначения взаимодействия человека-оператора с операционной системой с применением стандартных устройств ввода-вывода, обеспечивающих ввод команд и получение результатов их выполнения.
В операционных системах семейства Linux подобное взаимодействие обеспечивается специальным программным продуктом - оболочкой ( shell ) . Наиболее распространенной из них, является оболочка проекта GNU bash ( Bourne Again SHell ). bash основывается на оболочке Bourne ( sh ) созданной Стефеном Борном и включает в себя свойства множества других оболочек - C ( csh ) , Korn ( ksh ), tc ( tcsh ) . bash была написана Брайаном Фоксом (Brian Fox ) и в настоящее время поддерживается Четом Рейми ( Chet Ramey ).

&nbsp &nbsp Свойства оболочки bash делают ее наиболее универсальным и удобным средством взаимодействия с ОС Linux:

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

- bash поддерживает режим истории команд, позволяя отображать и изменять ранее введенные команды. Оболочка bash также имеет несколько переменных, значения которых влияют на сохранение и повторный вызов ранее введенных команд.

- bash обеспечивает завершение частично введенных слов для имен переменных, пользователей, хостов, команд и файлов.

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

- bash позволяет использовать функции и псевдонимы, выполнять арифметические операции и вводить арифметические выражения в качестве команд.

- bash позволяет создавать целые наборы последовательно выполняемых команд (сценарии или скрипты) с использованием гибкого и функционального языка программирования данной оболочки.

- bash имеет гибкие настройки, обеспечивающие изменение внешнего вида командной строки.

Оболочка bash может выполняться как в интерактивном, так и в неинтерактивном режимах. В первом случае программа bash взаимодействует с пользователем, во втором - используется для выполнения скриптов ( специально подготовленных текстовых файлов с последовательностью команд) .

&nbsp &nbsp Команда оболочки Linux - это строка символов из имени команды и аргументов, разделенных пробелами. Аргументы предоставляют команде дополнительные параметры, определяющие ее поведение. Например, команда
echo 12345
выведет на экран строку символов 12345, введенных в качестве аргумента команды.

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

ls -l

ls - команда для отображения информации о файлах.. При вводе без аргументов, эта команда просто отобразит список файлов в текущем каталоге. При вводе с параметром -l - список в длинном формате - с отображением атрибутов, владельцев, даты и времени.

При использовании нескольких ключей, их можно объединить. Ниже приведенные варианты команд идентичны :

ls -l -d

ls -ld

Как получить подсказку по использованию команды Linux

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

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

ls -h В операционных системах семейства Linux, более подробную справочную информацию можно получить из комплекта документации, известного как man-страницы, поскольку он доступен по команде man. Этот комплект включает в себя 8 разделов, содержащих справочную информацию, которую можно вывести на экран с использованием команды man

Перечень разделов man-страниц:

1 - Команды уровня пользователя.

2 - Системные вызовы. Документация о библиотечных системных вызовах, как open, read, exec и т. п. Данный раздел обычно используется программистами.

3 - Библиотеки. Этот раздел также предназначен для программистов и содержит справочную информацию о библиотеках прикладных программ ( abs, rint и т.п.)

4 и 5 - Форматы системных и пользовательских файлов. Содержит документацию о различных форматах файлов, как например, файл passwd

6 - Игры. Описание игр, поставляемых с установленной системой.

7- Драйверы. Документация к драйверам, как например ip или 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 .

Общие рекомендации для начинающих работать с командной строкой.

&nbsp &nbsp Работа в командной строке Linux имеет некоторые принципиальные отличия по сравнению с работой в среде Windows.

&nbsp &nbsp Во-первых, не забывайте, что строчные и заглавные буквы для Linux - это разные символы. В операционной системе Windows каталог TEMP и каталог Temp - это один и тот же каталог, в Linux - это два разных. То же самое касается команд, их ключей, имен пользователей ,паролей и т.п.

&nbsp &nbsp Во-вторых, справка по команде с параметром --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.

Отдельная статья по настройкам и использованию команды sudo

&nbsp &nbsp Начинающих пользователей 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, или если есть другие варианты - подстановка общей части и возможные варианты имени.

Как управлять выводом на экран.

&nbsp Для просмотра текста, ушедшего за пределы видимости экрана используются комбинации клавиш SHIFT и PAGE UP или PAGE DOWN (в зависимости от направления просмотра).
Для приостановки вывода на экран - CTRL-S, отмена приостановки - CTRL-Q

&nbspДля вывода большого объема текста на экран в постраничном режиме используется команда less, в цепочке с основной командой. Объясню на примере. Пусть у нас есть текстовый файл mytxt размером на 10 экранов. Для вывода текста на экран (стандартный вывод) можно воспользоваться командой cat имя файла
cat mytxt
После выполнения этой команды вы увидите быстро промелькнувший текст и последний (десятый) экран вывода. Можно, конечно, воспользоваться комбинациями клавиш SHIFT-PAGEDOUN или SHIFT-PAGEUP для просмотра текста, но существует возможеость воспользоваться и командой less.
cat mytxt | less
Символ | означает объединение в цепочку выполнения команды выдачи текста cat и команды управления постраничным выводом less. В результате, после отображения на экране первой страницы текста , вывод будет приостановлен до нажатия
PAGE DOWN
или ENTER (построчное перемещение). Для завершения постраничного вывода нажмите клавишу Q.
&nbsp В цепочки можно объединять несколько команд. Например, вам понадобилось вывести на экран в постраничном режиме все строки, содержащие слово mail. Для поиска можно воспользоваться командой
grep
Итоговая цепочка из трех команд:
cat mytxt | grep mail | less

&nbsp Для большинства дистрибутивов Linux вместо less можно использовать more.

Иногда удобно использовать одновременно несколько терминалов, переключаясь между ними (например, когда необходимо смотреть информацию журнала в одном окне и управлять процессами и настройками в другом).

Для переключения используется комбинация клавиш CTRL - ALT - F1...F6 (от первого терминала до 6-го или далее). Для переключения в графическую оболочку используется одна из комбинаций, которая может отличаться для разных дистрибутивов. Например, CTRL-ALT-F7.

Чтобы запустить еще один графический сервер на этом же компьютере, используйте команду startx 1 -- :1. У вас добавится новый графический терминал. Чтобы перейти во второй графический терминал, нажмите Alt+F8., а чтобы вернуться в первый - Alt+F7. Таким образом можно открывать до 64 графических терминалов. (startx 2 -- :2 и т.д).

Для завершения сеанса работы в командной оболочке используется команда exit.

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

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.


Как перезагрузить или выключить компьютер.

&nbsp Одно и то же действие в Linux очень часто можно выполнить несколькими способами. Стандартно для перезагрузки или выключения компьютера используется shutdown. Команда имеет много опций, позволяющих выполнить перезагрузку в определенное время, быструю перезагрузку без проверки файловой системы, имитировать и отменять уже запущенный (ждущий своего времени) процесс перезагрузки.

Полный список опций можно получить по shutdown --help

Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
&nbsp Для выключения питания (halt):
shutdown -h now

В большинстве дистрибутивов можно использовать короткие команды:
reboot - перезагрузка
halt - выключение

Можно также воспользоваться изменением уровня запуска системы командой init , позволяющей управлять запуском и завершением процессов в системе с использованием скриптов, хранящихся в /etc/inittab. Уровень 0 - выключение, уровень 6 - перезагрузка. Соответственно
для выключения:
init 0

для перезагрузки:
init 6

Команду init можно использовать для изменения уровней запуска системы.
Уровни:
1 - Однопользовательский режим. Доступ разрешен пользователю root.
2 - Многопользовательский режим без поддержки сетевых функций.
3 - С поддержкой сети.
4 - Зарезервировано.
5 - С использованием графической оболочки.

&nbsp &nbsp Если вам нужно завершить графическую оболочку (например, когда инсталляция некоторых приложений требует ее закрытия) введите:

init 3

&nbsp &nbsp Графическая оболочка закроется, и система перейдет на уровень запуска 3. Для возврата на уровень 5 введите:

init 5

&nbsp &nbsp Уровень запуска системы по умолчанию определяется значением 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 пока поддерживаются, но очевидно, что ее время заканчивается.

Документация systemd для администраторов ( перевод на русский язык, ноябрь 2014г.)


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


&nbsp &nbsp Посмотреть список процессов в 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" в имени

    &nbsp &nbsp Для получения сведений об использовании ресурсов компьютера можно воспользоваться командой top

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

    Ниже выводится таблица, характеризующая отдельные процессы. Число строк, отображаемых в этой таблице, определяется размером окна. Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h выводит справку по командам, которые позволяют изменить формат отображаемых данных и управлять некоторыми параметрами процессов в системе:

  • s или d - изменить интервал обновления окна.
  • z - цветное/черно-белое отображение
  • n или # - количество отображаемых процессов
  • Можно отсортировать список процессов по использованию ресурсов процессора (P), памяти (M), времени выполнения (T) и т.п.

    &nbsp &nbsp В среде утилиты top также существуют подкоманды, которые позволяют управлять процессами в интерактивном режиме:

  • k - снять ( kill ) задачу. По этой команде будет запрошен идентификатор процесса ( PID ), после ввода которого, процесс будет завершен.
  • r - изменить текущий приоритет задачи (renice). Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение приоритета (отображается в колонке NI). Диапазон значений приоритетов - от минус 20 (наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только пользователь root.
    &nbsp &nbsp Для выхода из top нажмите q


    Команда kill


    &nbsp &nbsp Эти же действия (принудительное завершение процесса и изменение его приоритета) можно выполнить и без команды top.

    &nbsp &nbsp Процессы в 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

    &nbsp &nbsp При завершении процесса завершаются и порожденные им процессы.

    &nbsp &nbsp Для завершения процесса по его имени используется команда killall:
    killall mc - завершить процесс, в имени которого есть "mc"
    killall -u user - завершить процессы, порожденные пользователем user


    Изменение приоритетов - команды nice и renice


    &nbsp &nbsp Для изменения приоритета процессов используются команды 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* - искать от корневого каталога файлы, содержащие в имени символы .X
    which - отобразить полный путь исполняемого файла, доступного в данной оболочке, например which ifconfig
    touch - изменить временные отметки файла. Удобно использовать для создания пустых файлов – 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 - просмотр или изменение параметров конфигурации протокола IP
    netstat - отобразить состояние сетевых соединений
    arp, ping, nslookup, traceroute - наиболее часто используемые команды сетевой диагностики.

    Статьи по теме:

    Оболочка пользователя (shell) Linux.

    Перечень наиболее часто используемых команд Linux с примерами.

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

    В начало страницы &nbsp &nbsp | &nbsp &nbsp На главную страницу сайта.

  • Урок 19. Процессы в Linux

    Что такое процессы? 

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

     

    Для чего необходимо изучать процессы? 

    Бывает так, что компьютер “тормозит” и не позволяет выполнять некоторые важные операции. Такое происходит, когда какой-нибудь процесс занимает большую часть оперативной памяти или процессорного времени. Зная основы работы с процессами можно отключить мешающий процесс и разгрузить компьютер. Существуют ситуации, когда запущенная программа перестает реагировать на действия пользователя и никак не удается ее закрыть штатным способом. В данном случае достаточно найти процесс данной программы и принудительно закрыть программу.   

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

     

    PID - (process ID) идентификатор каждого процесса 

    PPID - (parent process ID) идентификатор родительского процесса. Процесс может порождать и другие процессы. 

    UID, GID - реальные идентификаторы пользователя и его группы, запустившего данный процесс. 

    EUID, EGID - эффективные идентификаторы пользователя и его группы. В 16-ом уроке мы изучали признаки доступа SUID, SGID. Когда пользователь запускает файл с установленными признаками, то эффективные идентификаторы  (EUID, EGID) равны реальным идентификаторам (UID, GID) владельца данного файла. То есть система смотрит на эффективные идентификаторы и таким образом узнает, что был установлен признак SUID/SGID и предоставляет доступ пользователю. Если пользователь запустит любой другой файл без установленного признака SUID/SGID, то реальные и эффективные идентификаторы всегда равны. 

    Priority/Nice - приоритет и относительный приоритет. Служит для выделения большего или меньшего процессорного времени для определенного процесса. Разрешается менять только относительный приоритет (Nice). Его значение варьируется от -20 до +19. Чем ниже значение относительного приоритета, тем больше процессорного времени выделяется для данного процесса. 

    STAT - состояние процесса. В таблице представлены обозначения процессов:

    Состояние

    Описание

    R (runnable)

    Работающий процесс

    S (sleeping)

    Процесс в состоянии ожидания

    T (stopping)

    Остановленный процесс

    Z (zombie)

    Завершившийся процесс

    В (uninterruptible)

    Непрерывный процесс

     

    Кроме того, помимо состояния самого процесса можно увидеть и дополнительную информацию (индикатор), которая следует сразу за символом состояния:

    Индикатор

    Описание

    <

    Процесс с высоким приоритетом

    N

    Процесс с низким приоритетом

    L

    Процесс имеет страницы, заблокированные в памяти

    s

    Процесс является лидером сессии

    l

     

    +

    Процесс работает на переднем плане

     

    Как же можно увидеть все процессы? 

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

     

    Список всех процессов - ps aux:

    Отображение всех процессов, включая и PPID - ps -ef:

    Отображение дерева процессов, то есть схематическое отображение от какого процесса был порожден конкретный процесс - ps auxf:

    Из рисунка видно, что процесс /usr/sbin/mdm породил 2 процессы /usr/lib и cinnamon. 

    Отображение дерева процессов, включая PPID - ps ajxf:

    Взгляните внимательно на выделенный текст. Например, процесс 1358 - /usr/bin/py породил новый процесс cinnamon c PID=1375. Видно, что его родительский PPID = 1358 (в первой колонке). 

    Более короткий вывод дерева процессов - pstree:


    Отображение процессов конкретного пользователя - ps U пользователь:

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

     

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

    Конечно, такая команда существует и вот как она выглядит - ps -eo параметр_1, параметр_2, и так далее. Например, нам необходимо отобразить только пользователя и его процесс - ps -eo user,cmd:

     

     

    Теперь отобразим пользователя, его UID, GID, идентификатор процесса, родительский идентификатор и название процесса - ps -eo user,uid,gid,pid,ppid,cmd:


    Как видно можно выводом команды можно управлять и исключить ненужную информацию. Список параметров доступен на 1-ой странице встроенного мануала.

    Завершение процесса 

    Теперь, когда мы знаем номер процесса и программу, то мы можем ее принудительно закрыть.

     

    Как это сделать? 

    С помощью команд kill и killall. Упрощенный формат команд выглядит так: 

    kill PID_процесса 

    killall имя_процесса

    Есть небольшой нюанс в работе команд kill/killall.  Процесс можно закончить разными способами. Для этого существуют различные сигналы.Чтобы узнать список всех доступных сигналов введи команду kill -l:


    Нам достаточно запомнить всего лишь 2 сигнала: TERM и KILL

    TERM - “мягкое” завершение процесса и порожденных им процессов, все открытые файлы закрываются и ресурсы системы освобождаются. 

    KILL - “грубое” завершение процесса. Все порожденные процессы останутся незавершенными и может привести к непредсказуемым последствиям. Поэтому данный способ лучше применять лишь в крайних случаях.

     

    Как указать такой сигнал? 

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

    kill -9 PID_процесса 

    либо 

    kill KILL PID_процесса 

    Цифра означает номер сигнала при выводе списка командой kill -l.

    Динамическое отображение процессов 

    Команда ps полезна при поиске определенного процесса и общего представления загрузки системы. Однако у нее есть небольшой недостаток - выходные данные команды не обновляются. В то время, пока мы смотрим на процесс, он может уже закончится. То есть команда ps попросту делает мгновенный “снимок” процессов на момент исполнения команды.

     

    Как получить автоматически обновляющийся список процессов? 

    С помощью команды top:

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

     

    Что это за команды? 

    Завершение процесса - клавиша “к”, затем введите номер процесса:

    Отображение процессов конкретного пользователя - клавиша “U”, затем введите UID или имя пользователя:

    Результат команды выглядит так:

    Помощь - клавиша “h” или “?”:

    Выход из программы - клавиша “q” или Ctrl + C.  Программа поддерживает много команд, поэтому предлагаю ознакомиться с ними самостоятельно при желании.

    Просмотр открытых/задействованных файлов 

    Мы уже знаем, что процессы могут порождать дочерние процессы, а также открывать файлы. Но как узнать какие файлы какими процессами были открыты? 

    Для этого существует команда lsof. Она предоставляет следующую информацию: 

    • открытые файлы
    • запущенные команды, открывшие данный файл
    • пользователь, запустивший данную команду
    • номер процесса

     

    Список всех открытых файлов - lsof:

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

    Список открытых файлов конкретной команды - lsof -c команда:


    Данная команда полезна, когда в системе установлена новая программа и необходимо знать какие файлы она открывает. Возможно она открывает совсем не те файлы и это может быть вредоносное ПО.

    Список открытых файлов конкретного процесса - lsof -p PID:


    Запустив простую команду xclock (аналоговые часы) мы видим сколько файлов она открыла. Данная команда похожа на предыдущую. Только в данном случае исследуется отдельный процесс, в том время как lsof- c может исследовать и дочерние процессы.

    Список открытых файлов конкретного пользователя - lsof -u пользователь:


    Когда в системе зарегистрировано несколько пользователей, то полезно знать какие программы они запустили. Например, некоторые пользователи любят открывать много вкладок в интернет браузере (Chrome, Firefox). Естественно это нагружает систему. Недостаточно просто убить процесс “chrome” или “firefox”, так его используют все пользователи, просто одни меньше, а другие - больше. Данная команда поможет сузить зону поиска.

    Сведения об используемой памяти

    Оперативная память - free -h:

    Объем памяти жесткого диска - df -h:

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

    Объем занятой памяти конкретного каталога - du -h:


    Так как мы находимся в каталоге /home/student/Documents, то команда отображает все каталоги данного каталога. В конце списка указывается общий объем занятой памяти.

     

    Можно ли отобразить только общий объем занятой памяти данного каталога? 

    Конечно. Используйте опцию -s - du -sh:


    Имейте в виду, что данная команды показывает объем памяти текущего каталога.

     

    Список используемых команд: 

    ps aux - список всех процессов на момент исполнения команды

    ps -ef  -  отображение процессов, включая и PPID

    ps auxf  - отображение дерева процессов

    ps ajxf  - отображение дерева процессов, включая PPID

    pstree - упрощенное отображение дерева процессов

    ps U пользователь  - отображение процессов пользователя

    ps -eo параметр_1, параметр_2, и так далее - отображение требуемого списка процессов

    kill PID_процесса - завершение процесса по его идентификатору

    killall имя_процесса - завершение процесса по его имени

    kill -l - отображение списка доступных сигналов для завершения процессов

    top - отображение динамического списка процессов

    lsof - отображение списка открытых файлов

    lsof -c команда - отображение списка открытых файлов указанной командой/программой

    lsof -p PID - отображение списка открытых файлов указанного процесса

    lsof -u пользователь - отображение списка открытых файлов указанного пользователя

    free -h - отображение информации об использовании оперативной памяти

    df -h - отображение информации об объеме памяти жесткого диска

    du -h - подробное отображение информации о занимаемом объеме памяти текущим каталогом

    du -sh - укороченное отображение информации о занимаемом объеме памяти текущим каталогом

     

     

    Комментарии для сайта Cackle

    Основные FTP команды в Linux

    31. 01.2017

    FTP (File Transfer Protocol - протокол передачи файлов) - это популярный сетевой протокол, который используется для копирования файлов с одного компьютера на другой в локальной сети, либо в сети Интернет. FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, и даже до TCP/IP, в 1971 году.

    Протокол FTP уязвим, то есть FTP не может зашифровать свой трафик, все передачи - открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Для безопасной передачи данных, используется протокол SFTP (Secure File Transfer Protocol). В отличие от стандартного FTP он шифрует и команды, и данные, защищая пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот. Далее рассмотрим основные команды для работы с FTP программой.

    FTP соединение

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

    Для начала фтп соединения достаточно ввести команду ftp <сервер> например:

    ftp test.hostingthutor.com

    После нажатия клавиши enter вывод команды будет следующим:

    Connected to test.hostinghutor.com (114.55.5.11).
    220 test.hostinghutor.com FTP Server ready.
    Name (test.hostinghutor.com:ftpuser):
    

    Другой способ для соединения - это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open:

    ftp
    ftp> test. hostinghutor.com
    

    Кроме того, возможно соединиться и по ip:

    ftp  114.55.5.11

    Или с таким обращением ftp [email protected], то есть:

    ftp [email protected]

    Далее необходимо ввести логин и пароль ftp-соединения.

    После успешной авторизации будет сообщение такого вида:

    230 User ftpuser logged in
    Remote system type is UNIX.
    Using binary mode to transfer files.                                           
    ftp>

    Из сообщения видно, что для передачи файлов используется двоичный (бинарный) тип передачи. Двоичный режим передачи файлов - это передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только текстовых файлов. Вы можете вводить команды ascii или binary для переключения между режимами передачи. Бинарный режим (binary) необходимо использовать для всех нетекстовых типов файлов - изображения, архивы, программы и т. д.

    Команды для навигации

    Итак, перейдем к командам для навигации и перехода по каталогам ftp-сервера:

    pwd - команда покажет текущую директорию на ftp-сервере:

    ftp> pwd
    257 "/" is the current directory

    ls - команда покажет список файлов и каталогов в текущей директории:

    ftp> ls
    227 Entering Passive Mode.
    150 Opening ASCII mode data connection for file list
    -rw-r--r--   1 ftpuser  ftpuser  3034978 Jun 31 19:02 file1.tar.gz
    -rw-r--r--   1 ftpuser  ftpuser  30842294 Jul 31 20:08 file2.tar.gz
    -rw-r--r--   1 ftpuser  ftpuser  67798316 Jul 31 19:46 file3.tar.gz
    -rw-r--r--   1 ftpuser  ftpuser  6001252 Jan 17 12:02 file4.zip
    -rw-r--r--   1 ftpuser  ftpuser  31386394 Jan 17 11:28 file5.tar.gz
    drwxr-xr-x   2 ftpuser  ftpuser         4 Jan 17 20:23 www
    -rw-r--r--   1 ftpuser  ftpuser  48546694 Jan 17 11:33 file6.zip
    226 Transfer complete

    cd <имя директории> – команда для перехода в нужную директорию:

    ftp> cd www
    250 CWD command successful

    Проверяем командой pwd:

    ftp> pwd
    257 "/www" is the current directory

    mkdir <имя директории> - создание новой директории (каталога):

    ftp> mkdir tmp
    257 "/tmp" - Directory successfully created

    rmdir <имя директории> - удаление директории (каталога):

    ftp> rmdir tmp
    250 RMD command successful

    Удаление файлов на ftp сервере

    delete <имя файла> - удаляет файл на удаленном ftp сервере:

    ftp> delete test1. sql
    250 DELE command successful

    Скачивание файлов с ftp

    get - скачать файл на локальную машину. get fileName или get fileName newFileName

    ftp> get file.zip
    local: file.zip remote: file.zip
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for file.zip (486694 bytes)
    226 Transfer complete
    486694 bytes received in 0.229 secs (6.5e+04 Kbytes/sec)

    Скачиваем file.zip на локальную машину как file2.zip:

    ftp> get file.zip file2.zip
    local: file2.zip remote: file.zip
    227 Entering Passive Mode .
    150 Opening BINARY mode data connection for file.zip (486694 bytes)
    226 Transfer complete
    486694 bytes received in 0.306 secs (9.4e+04 Kbytes/sec)

    С помощью команды get с удаленного ftp сервера файлы копируются в текущую локальную директорию. Чтобы изменить текущую локальную директорию нужно использовать команду lcd:

    lcd <путь> – изменить текущую директорию на локальной машине:

    ftp> lcd /root
    Local directory now /root

    Чтобы скачать несколько файлов с удаленного ftp сервера на локальную машину можно использовать команду mget:

    ftp> mget *. sql
    mget test2.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test2.sql (23957080 bytes)
    226 Transfer complete
    23957080 bytes received in 0.233 secs (1e+05 Kbytes/sec)
    mget test1.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test1.sql (11873185 bytes)
    226 Transfer complete
    11873185 bytes received in 0.135 secs (8.6e+04 Kbytes/sec)

    Скачивание каждого файла необходимо подтверждать (да / нет) y/n.

    Еще один вариант скачивания mget:

    ftp> mget test1.sql test2.sql
    mget test1.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test1.sql (11873185 bytes)
    226 Transfer complete
    11873185 bytes received in 0.101 secs (1.1e+05 Kbytes/sec)
    mget test2.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test2.sql (23957080 bytes)
    226 Transfer complete
    23957080 bytes received in 0. 204 secs (1.1e+05 Kbytes/sec)

    Загрузка файлов на ftp сервер

    put <имяфайла> - команда для загрузки одного файла на ftp сервер:

    ftp> put test1.sql
    local: test1.sql remote: test1.sql
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test1.sql
    226 Transfer complete
    11873185 bytes sent in 0.129 secs (9e+04 Kbytes/sec)

    Для загрузки нескольких файлов сразу можно использовать команду mput:

    ftp> mput test1.sql test2.sql
    mput test1.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test1.sql
    226 Transfer complete
    11873185 bytes sent in 0.0964 secs (1.2e+05 Kbytes/sec)
    mput test2.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test2.sql
    226 Transfer complete
    23957080 bytes sent in 0.354 secs (6.6e+04 Kbytes/sec)

    Загрузку каждого файла необходимо подтверждать y / n (да / нет).

    Еще один вариант команды mput:

    ftp> mput *.sql
    mput test1.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test1.sql
    226 Transfer complete
    11873185 bytes sent in 0.0985 secs (1.2e+05 Kbytes/sec)
    mput test2.sql? y
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for test2.sql
    226 Transfer complete
    23957080 bytes sent in 0.2 secs (1.2e+05 Kbytes/sec)

    Если на фтп загружаются файлы большого размера, то неплохо было бы наблюдать за ходом загрузки. Для этого можно использоваться команды hash и tick.

    hash - команда после которой ftp будет печатать символ «#» каждые 1024 байт данных:

    ftp> hash
    Hash mark printing on (1024 bytes/hash mark).
    put file2.tar.gaz
    ##########################
    226 Transfer complete
    785888111 bytes sent in 6.94 secs (1.1e+05 Kbytes/sec)

    tick - команда будет отображать счетчик байтов:

    ftp> tick
    Hash mark printing off. 
    Tick counter printing on (10240 bytes/tick increment).
    ftp> put file2.tar.gz
    local: file2.tar.gz remote: file2.tar.gz
    227 Entering Passive Mode.
    150 Opening BINARY mode data connection for file2.tar.gz
    Bytes transferred: 912706618 //-> счетчик
    226 Transfer complete
    912706618 bytes sent in 8.08 secs (1.1e+05 Kbytes/sec)

    Вот и весь базовый набор команд для работы с ftp в консоле. Для просмотра списка доступных команл на данном FTP сервере можно использовать команду help:

    ftp> help
    Commands may be abbreviated.  Commands are:
    
    !               debug           mdir            sendport        site
    $               dir             mget            put             size
    account         disconnect      mkdir           pwd             status
    append          exit            mls             quit            struct
    ascii           form            mode            quote           system
    bell            get             modtime         recv            sunique
    binary          glob            mput            reget           tenex
    bye             hash            newer           rstatus         tick
    case            help            nmap            rhelp           trace
    cd              idle            nlist           rename          type
    cdup            image           ntrans          reset           user
    chmod           lcd             open            restart         umask
    close           ls              prompt          rmdir           verbose
    cr              macdef          passive         runique         ?
    delete          mdelete         proxy           send   

    Также, можно получить короткую справку по каждой команде help <команда>:

    ftp> help status
    status          show current status 
    
    ftp> help quit
    quit            terminate ftp session and exit 
    
    ftp> help bye
    bye             terminate ftp session and exit

    И в завершение, две команды, которые выше quit или bye для закрытия ftp-сессии и выхода:

    ftp> quit
    221 Goodbye.  

    Подробную информацию с описанием команд можно получить с помощью man ftp в командной строке:

    # man ftp
    Formatting page, please wait...
    FTP(1)                    BSD General Commands Manual                   FTP(1)
    
    NAME
         ftp - Internet file transfer program
    
    SYNOPSIS
         ftp [-Apinegvd] [host]
         pftp [-Apinegvd] [host]
    ................
    ...............

    Уроки Linux Mint. Команды для навигации и перемещения по каталогам в Linux (cd, ls, pwd, file)

    Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать систему Linux, ранее мы познакомились с тем, что такое эмулятор терминала и командная оболочка, теперь начнем знакомиться с командами Linux. Кстати, если вы пользователь Windows и хотите начать знакомиться с Linux, то рекомендую первое знакомство осуществлять на виртуальной машине, например, VirtualBox.

    В этой публикации мы рассмотрим четыре простых команды, которые используются для навигации в системе Linux, то есть для перемещения по каталогам и папкам. Эти команды помогут вам начать изучать свою систему и просматривать из чего она состоит. Но для начала мы немного поговорим про относительный и абсолютный путь в Linux, это нужно, чтобы было понимание, что мы вообще делаем. Первая команда, которую мы рассмотрим — pwd. Команда pwd используется для просмотра текущего рабочего каталога в Linux. Далее мы разберемся с командой cd. Команда cd позволяет нам перемещаться по каталогам системы. Еще мы поговорим о команде ls, которая позволяет просматривать содержимое любого каталога вашей системы. В завершение мы рассмотрим команду file. Команда file в системах Linux используется для того, чтобы определить тип объекта файловой системы, ведь самому Linux вовсе не нужно расширение, чтобы понять какой файл перед ней.

    Относительный и абсолютный путь в Linux

    Содержание статьи:

    Любая иерархия каталогов в операционных системах подобных Unix начинается с корневого каталога или корня, который обозначается таким вот образом: «/».   Обратите внимание: именно слэш (/), а не обратный слэш (\).  Когда мы пытаемся получить доступ к файлу или каталогу при помощи командной оболочки, нам необходимо указывать путь к тому объекту файловой системы, к которому мы ходим обратиться.

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

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

    Древовидная структура любой файловой системы, к которой привыкли пользователи Windows

    Нас интересует каталог dir1, который находится на рабочем столе, у этого каталога есть дочерний или вложенный каталог, который называется dir2, а родительским каталогом для dir1 является «Рабочий стол».   Допустим, если мы находимся в каталоге dir1, то для того, чтобы перейти в каталог «Рабочий стол», нам нужно воспользоваться конструкцией «...», это будет относительным путем, поскольку он будет выстроен относительно каталога dir1.

    Если же мы хотим из каталога dir1 попасть в каталог dir2, то можем воспользоваться вот таким путем: ./dir1. Здесь символы точка-слеш означает текущий рабочий каталог, конструкцию ./ в данном случае можно не писать, bash вас поймет и без нее.  Хотя как в первом, так и во втором случае, можно воспользоваться абсолютным путем. Для рабочего стола абсолютный путь в моем случае выглядит так:

    /home/kirill/Рабочий стол/

    /home/kirill/Рабочий стол/

    А для каталога dir2 так:

    /home/kirill/Рабочий стол/dir1/dir2/

    /home/kirill/Рабочий стол/dir1/dir2/

    Если мы находимся в каталоге dir1 и хотим попасть в каталог dir6, то мы можем воспользоваться относительным путем:

    Этот путь я выстроил относительно каталога dir1. Из каталога dir6 можно вернуться в каталог dir1, используя относительный путь:

    Здесь мы сперва вернемся в каталог dir2, а затем спустимся еще на ступеньку ниже — в каталог dir1. Но из каталога dir1 можно попасть в dir6, используя абсолютный путь:

    /home/kirill/Рабочий стол/dir1/dir2/dir6/

    /home/kirill/Рабочий стол/dir1/dir2/dir6/

    Также можно использовать абсолютный путь, чтобы из каталога dir6 вернуться в dir1:

    /home/kirill/Рабочий стол/dir1

    /home/kirill/Рабочий стол/dir1

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

    pwd – команда для просмотра названия текущего рабочего каталога

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

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

    Когда мы разбирались с терминалом и командной оболочкой, то говорили, что в приглашении терминала обычно указывается название текущего рабочего каталога, но приглашение можно настроить так, чтобы название и путь до текущего каталога не показывался и, например, в таких ситуациях неплохо было бы узнать, где мы, собственно, находимся, чтобы понять куда нам идти, для этой цели и служит команда pwd (print working directory). Давайте выполним ее из каталога dir1:

    [email protected] ~/Рабочий стол/dir1 $ pwd /home/kirill/Рабочий стол/dir1 [email protected] ~/Рабочий стол/dir1 $

    [email protected] ~/Рабочий стол/dir1 $ pwd

    /home/kirill/Рабочий стол/dir1

    [email protected] ~/Рабочий стол/dir1 $

    Помните, что при входе в терминал мы обычно попадаем в свой домашний каталог, который для краткости в приглашении обозначается символом ~, давайте выполним команду pwd в домашнем каталоге:

    [email protected] ~ $ pwd /home/kirill [email protected] ~ $

    [email protected] ~ $ pwd

    /home/kirill

    [email protected] ~ $

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

    ls – команда для просмотра содержимого каталога

    Для команды ls у нас будет отдельная публикация, в который мы подробнее разберемся с ее возможностями. Сейчас нам важно отметить следующее: команда ls используется для просмотра содержимого текущего каталога или любого другого каталога, к которому у вас есть права на чтение.

    Работает команда ls очень просто, давайте выполним ее из своего домашнего каталога:

    [email protected] ~ $ ls Dropbox Документы Изображения Общедоступные Шаблоны Видео Загрузки Музыка Рабочий стол [email protected] ~ $

    [email protected] ~ $ ls

    Dropbox Документы Изображения Общедоступные Шаблоны

    Видео Загрузки Музыка Рабочий стол

    [email protected] ~ $

    Если мы хотим увидеть содержимое рабочего стола, находясь в домашнем каталоге, то команде ls можно передать путь до того каталога, который мы хотим посмотреть:

    [email protected] ~ $ ls /home/kirill/"Рабочий стол"/ dir1 [email protected] ~ $

    [email protected] ~ $ ls /home/kirill/"Рабочий стол"/

    dir1

    [email protected] ~ $

    На самом деле возможности команды ls куда шире, чем мы их сейчас описали, эта команда обладает массой всевозможных интересных параметров, которые можно комбинировать друг с другом, но об этом в другой раз. Кстати сказать: часто новички в мире Linux, когда речь заходит о командах говорят фразу: дайте список всех Linux команд. Так вот, списка всех команд Linux не существует. Дело всё в том, что каждый дистрибутив (в том числе и Linux Mint) обладает своим собственным набором команд, более того, вы можете изменить этот набор команд удалив или установи какую-нибудь программу, имя которой станет новой командой (про установку Linux Mint на виртуальную машину VirtualBox вы можете почитать здесь).

    cd – команда для перемещения по каталогам и папкам

    Определять свое местоположение в системе и просматривать содержимое различных каталогов мы научились, теперь давайте научимся двигаться по лабиринту каталогов Linux, для этих целей у нас есть команда cd (change directory).

    Давайте для начала перейдем из домашнего каталога в dir1, который находится на рабочем столе. Сделать это можно, используя абсолютный путь cd /home/kirill/Рабочий стол/dir1:

    [email protected] ~ $ cd /home/kirill/Рабочий стол/dir1 bash: cd: /home/kirill/Рабочий: Нет такого файла или каталога [email protected] ~ $

    [email protected] ~ $ cd /home/kirill/Рабочий стол/dir1

    bash: cd: /home/kirill/Рабочий: Нет такого файла или каталога

    [email protected] ~ $

    Обратите внимание: произошла ошибка, командная оболочка не смогла найти каталог с именем Рабочий. Дело все в том, что «пробел» в системах подобных Unix является разделительным символом. Вообще, терминал работает с тремя видами символов: обычные текстовые символа, разделительные символы и специальные символы, пробел относится к разделительным и терминал их обрабатывает по-особенному, когда встречает их. Чтобы терминал понял, что словосочетание Рабочий стол — это имя каталога (то есть, чтобы терминал проигнорировал символ пробела), его надо взять в кавычки, которые могут быть как одинарными, так и двойными:

    [email protected] ~ $ cd /home/kirill/'Рабочий стол'/dir1 [email protected] ~/Рабочий стол/dir1 $

    [email protected] ~ $ cd /home/kirill/'Рабочий стол'/dir1

    [email protected] ~/Рабочий стол/dir1 $

    Также из домашнего каталога можно перейти в каталог dir1, используя относительный путь:

    [email protected] ~ $ cd 'Рабочий стол'/dir1 [email protected] ~/Рабочий стол/dir1 $

    [email protected] ~ $ cd 'Рабочий стол'/dir1

    [email protected] ~/Рабочий стол/dir1 $

    А вернуться из dir1 на рабочий стол, мы можем при помощи вот такой конструкции:

    [email protected] ~/Рабочий стол/dir1 $ cd . . [email protected] ~/Рабочий стол $

    [email protected] ~/Рабочий стол/dir1 $ cd ..

    [email protected] ~/Рабочий стол $

    Или же можем использовать абсолютный путь:

    [email protected] ~/Рабочий стол/dir1 $ cd /home/kirill/'Рабочий стол'/ [email protected] ~/Рабочий стол $

    [email protected] ~/Рабочий стол/dir1 $ cd /home/kirill/'Рабочий стол'/

    [email protected] ~/Рабочий стол $

    Чтобы перейти с каталога «Рабочий стол» в каталог dir1, мы можем воспользваться такой штукой:

    [email protected] ~/Рабочий стол $ cd ./dir1 [email protected] ~/Рабочий стол/dir1 $

    [email protected] ~/Рабочий стол $ cd ./dir1

    [email protected] ~/Рабочий стол/dir1 $

    Хотя конструкцию . /, которая говорит терминалу о том, что это текущий каталог можно опустить, посмотрим это, перейдя из каталога dir1 в dir2:

    [email protected] ~/Рабочий стол/dir1 $ cd dir2 [email protected] ~/Рабочий стол/dir1/dir2 $

    [email protected] ~/Рабочий стол/dir1 $ cd dir2

    [email protected] ~/Рабочий стол/dir1/dir2 $

    Стоит отметить, что у команды cd есть несколько полезных сокращений, которые я рекомендовал бы запомнить:

    • cd – переместит вас в домашний каталог;
    • cd / — переместит вас в корень;
    • cd — – переместит вас в предыдущий рабочий каталог;
    • cd ~username – переместит вас в домашний каталог того пользователя, чей логин вы указали.

    file – команда для определения типа файлов

    Вам нужно для себя отметить две вещи: работа с операционными системами  типа Unix требует от пользователя некоторой внимательности и всё сущее в Linux есть файл. Про работу с файлами в командной оболочке bash мы поговорим отдельно, сейчас давайте разберемся с тем, как определить тип файла, ведь ОС семейства Linux у файлов не обязательно должны быть расширения, а тип файла операционная система определяет по другим параметрам. То есть, если в Linux вы видите файл pict1.jpg – это не обязательно будет изображение.

    Но мы смоделируем несколько другую ситуацию. На рабочем столе у меня есть каталог dir1, в котором есть каталог dir2, а в каталоге dir2 есть папки dir4 и dir6 и файл с именем dir5, это показано на рисунке ниже.

    Часть содержимого каталога с именем dir2

    Давайте перейдем в каталог dir2 и выполним команду ls:

    Выполнив команду ls мы увидели содержимое каталога dir2 в терминале

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

    Чтобы понять что здесь есть файл, а что каталог, нам нужно воспользоваться дополнительной командой file, применим ее к объектам файловой системы dir4, dir5, dir6:

    [email protected] ~/Рабочий стол/dir1/dir2 $ file dir4 dir5 dir6 dir4: directory dir5: UTF-8 Unicode text dir6: directory [email protected] ~/Рабочий стол/dir1/dir2 $

    [email protected] ~/Рабочий стол/dir1/dir2 $ file dir4 dir5 dir6

    dir4: directory

    dir5: UTF-8 Unicode text

    dir6: directory

    [email protected] ~/Рабочий стол/dir1/dir2 $

    Как видим, команда file указывает не только тип файла, но и умеет определять что объект является каталогом. А еще из примера видно, что file умеет работать сразу с несколькими аргументами, то есть ей на проверку можно отправлять сразу несколько файлов, а можно это делать и по одному. Также из примера выше видно, что dir5 — это обычный текстовый файл в кодировки UTF-8. Давайте проверим оставшиеся файлы:

    [email protected] ~/Рабочий стол/dir1/dir2 $ file file5 file5: UTF-8 Unicode text [email protected] ~/Рабочий стол/dir1/dir2 $ file file6 file6: UTF-8 Unicode text [email protected] ~/Рабочий стол/dir1/dir2 $ file pict1.jpg pict1.jpg: UTF-8 Unicode text [email protected] ~/Рабочий стол/dir1/dir2 $ file pict2.jpg pict2.jpg: cannot open `pict2.jpg' (No such file or directory) [email protected] ~/Рабочий стол/dir1/dir2 $ file pict2.png pict2.png: empty [email protected] ~/Рабочий стол/dir1/dir2 $ file vasya vasya: PNG image data, 1920 x 1000, 8-bit/color RGB, non-interlaced [email protected] ~/Рабочий стол/dir1/dir2 $

    [email protected] ~/Рабочий стол/dir1/dir2 $ file file5

    file5: UTF-8 Unicode text

    [email protected] ~/Рабочий стол/dir1/dir2 $ file file6

    file6: UTF-8 Unicode text

    [email protected] ~/Рабочий стол/dir1/dir2 $ file pict1. jpg

    pict1.jpg: UTF-8 Unicode text

    [email protected] ~/Рабочий стол/dir1/dir2 $ file pict2.jpg

    pict2.jpg: cannot open `pict2.jpg' (No such file or directory)

    [email protected] ~/Рабочий стол/dir1/dir2 $ file pict2.png

    pict2.png: empty

    [email protected] ~/Рабочий стол/dir1/dir2 $ file vasya

    vasya: PNG image data, 1920 x 1000, 8-bit/color RGB, non-interlaced

    [email protected] ~/Рабочий стол/dir1/dir2 $

    Команда file умеет определять тип файла лучше, чем подсвечивает терминал. Здесь мы видим, что файлы file5 и file6 — это текстовые файлы в кодировке UTF-8. Файл pict1.jpg вовсе никакая не картинка, а текстовый файл. Файла pict2.jpg не существует и file нам об этом сообщает, файл pict2.png вообще является пустым, а вот файл с незамысловатым именем vasya на самом деле является изображением и мы даже видим некоторые характеристики этого изображения.

    Итак, мы изучили несколько команд оболочки, которые помогут нам изучать систему Linux Mint и перемещаться между каталогами и папками, а также просматривать их содержимое и определять его тип, для этих целей у нас есть четыре команды: cd, ls, file, pwd. И не забывайте, что для перемещения по каталогам в Linux можно использовать как абсолютный путь, так и относительный.

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

    Я хочу продолжить выпускать уроки по Linux Mint и командной оболочке bash

    Если это так, то ваше желание

    справочник команд unix shell — Нещадим Алексей Сергеевич

    Большинство UNIX-like систем обладают встроенной справкой, которая подробно описывает все доступные команды. Однако чтобы воспользоваться этой справкой, вы должны знать, по крайней мере, название команды, о которой вы хотите получить информацию. Поскольку большинство пользователей только в общих чертах понимают, что они хотят сделать, то, как правило, встроенная справка мало полезна новичкам.

    Этот справочник поможет пользователям, знающим, что они хотят сделать, найти соответствующую команду Linux по краткому описанию.

    Системная информация:
    arch или uname -m — отобразить архитектуру компьютера
    uname -r — отобразить используемую версию ядра
    dmidecode -q — показать аппаратные системные компоненты — (SMBIOS / DMI)
    hdparm -i /dev/hda — вывести характеристики жесткого диска
    hdparm -tT /dev/sda — протестировать производительность чтения данных с жесткого диска
    cat /proc/cpuinfo — отобразить информацию о процессоре
    cat /proc/interrupts — показать прерывания
    cat /proc/meminfo — проверить использование памяти
    cat /proc/swaps — показать файл(ы) подкачки
    cat /proc/version — вывести версию ядра
    cat /proc/net/dev — показать сетевые интерфейсы и статистику по ним
    cat /proc/mounts — отобразить смонтированные файловые системы
    lspci -tv — показать в виде дерева PCI устройства
    lsusb -tv — показать в виде дерева USB устройства
    date — вывести системную дату
    cal 2007 — вывести таблицу-календарь 2007-го года
    date 041217002007. 00* — установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
    clock -w — сохранить системное время в BIOS
    Остановка системы:
    shutdown -h now или init 0 или telinit 0 — остановить систему
    shutdown -h hours:minutes & — запланировать остановку системы на указанное время
    shutdown -c — отменить запланированную по расписанию остановку системы
    shutdown -r now или reboot — перегрузить систему
    logout — выйти из системы
    Файлы и директории:
    cd /home — перейти в директорию '/home'
    cd .. — перейти в директорию уровнем выше
    cd ../.. — перейти в директорию двумя уровнями выше
    cd — перейти в домашнюю директорию
    cd ~user — перейти в домашнюю директорию пользователя user
    cd - — перейти в директорию, в которой находились до перехода в текущую директорию
    pwd — показать текущюю директорию
    ls — отобразить содержимое текущей директории
    ls -F — отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип
    ls -l — показать детализированое представление файлов и директорий в текущей директории
    ls -a — показать скрытые файлы и директории в текущей директории
    ls *[0-9]* — показать файлы и директории содержащие в имени цифры
    tree или lstree — показать дерево файлов и директорий, начиная от корня (/)
    mkdir dir1 — создать директорию с именем 'dir1'
    mkdir dir1 dir2 — создать две директории одновременно
    mkdir -p /tmp/dir1/dir2 — создать дерево директорий
    rm -f file1 — удалить файл с именем 'file1'
    rmdir dir1 — удалить директорию с именем 'dir1'
    rm -rf dir1 — удалить директорию с именем 'dir1' и рекурсивно всё её содержимое
    rm -rf dir1 dir2 — удалить две директории и рекурсивно их содержимое
    mv dir1 new_dir — переименовать или переместить файл или директорию
    cp file1 file2 — сопировать файл file1 в файл file2
    cp dir/* .  — копировать все файлы директории dir в текущую директорию
    cp -a /tmp/dir1 . — копировать директорию dir1 со всем содержимым в текущую директорию
    cp -a dir1 dir2 — копировать директорию dir1 в директорию dir2
    ln -s file1 lnk1* — создать символическую ссылку на файл или директорию
    ln file1 lnk1 — создать «жёсткую» (физическую) ссылку на файл или директорию
    touch -t 0712250000 fileditest — модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)
    Поиск файлов:
    find / -name file1 — найти файлы и директории с именем file1. Поиск начать с корня (/)
    find / -user user1 — найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
    find /home/user1 -name "*.bin" — найти все файлы и директории, имена которых оканчиваются на '. bin'. Поиск начать с '/ home/user1'*
    find /usr/bin -type f -atime +100 — найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней
    find /usr/bin -type f -mtime -10 — найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней
    find / -name *.rpm -exec chmod 755 '{}' ; — найти все фалы и директории, имена которых оканчиваются на '.rpm', и изменить права доступа к ним
    find / -xdev -name "*.rpm" — найти все фалы и директории, имена которых оканчиваются на '.rpm', игнорируя съёмные носители, такие как cdrom, floppy и т.п.
    locate "*.ps" — найти все файлы, сожержащие в имени '.ps'. Предварительно рекомендуется выполнить команду 'updatedb'
    whereis halt — показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt'
    which halt — отображает полный путь к файлу 'halt'
    Монтирование файловых систем:
    mount /dev/hda2 /mnt/hda2 — монтирует раздел 'hda2' в точку монтирования '/mnt/hda2'. Убедитесь в наличии директории-точки монтирования '/mnt/hda2'
    umount /dev/hda2 — размонтирует раздел 'hda2'. Перед выполнением, покиньте '/mnt/hda2'
    fuser -km /mnt/hda2 — принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем
    umount -n /mnt/hda2 — выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске
    mount /dev/fd0 /mnt/floppy — монтировать флоппи-диск
    mount /dev/cdrom /mnt/cdrom — монтировать CD или DVD
    mount /dev/hdc /mnt/cdrecorder — монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)
    mount -o loop file.iso /mnt/cdrom — смонтировать ISO-образ
    mount -t vfat /dev/hda5 /mnt/hda5 — монтировать файловую систему Windows FAT32
    mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — монтировать сетевую файловую систему Windows (SMB/CIFS)
    mount -o bind /home/user/prg /var/ftp/user — «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user
    Дисковое пространство:
    df -h — отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)
    ls -lSr |more — выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр
    du -sh dir1 — подсчитывает и выводит размер, занимаемый директорией 'dir1' (Прим.переводчика. ключ -h работает не во всех *nix системах)
    du -sk * | sort -rn — отображает размер и имена файлов и директорий, с соритровкой по размеру
    rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n — показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т. п.)
    dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n — показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)
    Пользователи и группы:
    groupadd group_name — создать новую группу с именем group_name
    groupdel group_name — удалить группу group_name
    groupmod -n new_group_name old_group_name — переименовать группу old_group_name в new_group_name
    useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 — создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
    useradd user1 — создать пользователя user1
    userdel -r user1 — удалить пользователя user1 и его домашний каталог
    usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 — изменить атрибуты пользователя
    passwd — сменить пароль
    passwd user1 — сменить пароль пользователя user1 (только root)
    chage -E 2005-12-31 user1 — установить дату окончания действия учётной записи пользователя user1
    pwck — проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
    grpck — проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group
    newgrp [-] group_name — изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd
    Выставление/изменение полномочий на файлы:
    ls -lh — просмотр полномочий на файлы и директории в текущей директории
    ls /tmp | pr -T5 -W$COLUMNS — вывести содержимое директории /tmp и разделить вывод на пять колонок
    chmod ugo+rwx directory1 — добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) — всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1
    chmod go-rwx directory1 — отобрать у группы и всех остальных все полномочия на директорию directory1.
    chown user1 file1 — назначить владельцем файла file1 пользователя user1
    chown -R user1 directory1 — назначить рекурсивно владельцем директории directory1 пользователя user1
    chgrp group1 file1 — сменить группу-владельца файла file1 на group1
    chown user1:group1 file1 — сменить владельца и группу владельца файла file1
    find / -perm -u+s — найти, начиная от корня, все файлы с выставленным SUID
    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.
    chmod o+t /home/public — назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
    chmod o-t /home/public — снять STIKY-бит с директории /home/public
    Специальные атрибуты файлов:
    chattr +a file1 — позволить открывать файл на запись только в режиме добавления
    chattr +c file1 — позволяет ядру автоматически сжимать/разжимать содержимое файла.
    chattr +d file1 - указавет утилите dump игнорировать данный файл во время выполнения backup'а
    chattr +i file1 — делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
    chattr +s file1 — позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.
    chattr +S file1 — указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
    chattr +u file1 — данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить
    lsattr — показать атрибуты файлов
    Архивирование и сжатие файлов:
    bunzip2 file1.bz2 — разжимает файл 'file1.gz'
    gunzip file1.gz —
    gzip file1 или bzip2 file1 — сжимает файл 'file1'
    gzip -9 file1 — сжать файл file1 с максимальным сжатием
    rar a file1.rar test_file — создать rar-архив 'file1.rar' и включить в него файл test_file
    rar a file1.rar file1 file2 dir1 — создать rar-архив 'file1.rar' и включить в него file1, file2 и dir1
    rar x file1.rar — распаковать rar-архив
    unrar x file1. rar —
    tar -cvf archive.tar file1 — создать tar-архив archive.tar, содержащий файл file1
    tar -cvf archive.tar file1 file2 dir1 — создать tar-архив archive.tar, содержащий файл file1, file2 и dir1
    tar -tf archive.tar — показать содержимое архива
    tar -xvf archive.tar — распаковать архив
    tar -xvf archive.tar -C /tmp — распаковать архив в /tmp
    tar -cvfj archive.tar.bz2 dir1 — создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах)
    tar -xvfj archive.tar.bz2 — разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)
    tar -cvfz archive.tar.gz dir1 — создать архив и сжать его с помощью gzip
    tar -xvfz archive.tar.gz — разжать архив и распаковать его
    zip file1.zip file1 — создать сжатый zip-архив
    zip -r file1. zip file1 file2 dir1 — создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий
    unzip file1.zip — разжать и распаковать zip-архив
    RPM пакеты (Fedora, Red Hat и тому подобное):
    rpm -ivh package.rpm — установить пакет с выводом сообщений и прогресс-бара
    rpm -ivh --nodeps package.rpm — установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей
    rpm -U package.rpm — обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
    rpm -F package.rpm — обновить пакет только если он установлен
    rpm -e package_name.rpm — удалить пакет
    rpm -qa — отобразить список всех пакетов, установленных в системе
    rpm -qa | grep httpd — среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»
    rpm -qi package_name — вывести информацию о конкрентном пакете
    rpm -qg "System Environment/Daemons" — отобразить пакеты входящие в группу пакетов
    rpm -ql package_name — вывести список файлов, входящих в пакет
    rpm -qc package_name — вывести список конфигурационных файлов, входящих в пакет
    rpm -q package_name --whatrequires — вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
    rpm -q package_name --whatprovides — show capability provided by a rpm package
    rpm -q package_name --scripts — отобразит скрипты, запускаемые при установке/удалении пакета
    rpm -q package_name --changelog — вывести историю ревизий пакета
    rpm -qf /etc/httpd/conf/httpd. conf — проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла.
    rpm -qp package.rpm -l — отображает список файлов, входящих в пакет, но ещё не установленных в систему
    rpm --import /media/cdrom/RPM-GPG-KEY — ипортировать публичный ключ цифровой подписи
    rpm --checksig package.rpm — проверит подпись пакета
    rpm -qa gpg-pubkey — проверить целостность установленного содержимого пакета
    rpm -V package_name — проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета
    rpm -Va — проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!
    rpm -Vp package.rpm — проверить пакет, который ещё не установлен в систему
    rpm2cpio package.rpm | cpio --extract --make-directories *bin* — извлечь из пакета файлы содержащие в своём имени bin
    rpm -ivh /usr/src/redhat/RPMS/`arch`/package. rpm — установить пакет, собранный из исходных кодов
    rpmbuild --rebuild package_name.src.rpm — собрать пакет из исходных кодов
    YUM — средство обновления пакетов(Fedora, RedHat и тому подобное):
    yum install package_name — закачать и установать пакет
    yum update — обновить все пакеты, установленные в систему
    yum update package_name — обновить пакет
    yum remove package_name — удалить пакет
    yum list — вывести список всех пакетов, установленных в систему
    yum search package_name — найти пакет в репозитории
    yum clean packages — очисть rpm-кэш, удалив закачанные пакеты
    yum clean headers — удалить все заголовки файлов, которые система использует для разрешения зависимостей
    yum clean all — очисть rpm-кэш, удалив закачанные пакеты и заголовки
    DEB пакеты (Debian, Ubuntu и тому подобное):
    dpkg -i package. deb — установить / обновить пакет
    dpkg -r package_name — удалить пакет из системы
    dpkg -l — показать все пакеты, установленные в систему
    dpkg -l | grep httpd — среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»
    dpkg -s package_name — отобразить инфрмацию о конкретном пакете
    dpkg -L package_name — вывести список файлов, входящих в пакет, установленный в систему
    dpkg --contents package.deb — отобразить список файлов, входящих в пакет, который ешё не установлен в систему
    dpkg -S /bin/ping — найти пакет, в который входит указанный файл.
    APT — средство управление пакетами (Debian, Ubuntu и тому подобное):
    apt-get install package_name — установить / обновить пакет
    apt-cdrom install package_name — установить / обновить пакет с cdrom'а
    apt-get update — получить обновлённые списки пакетов
    apt-get upgrade — обновить пакеты, установленные в систему
    apt-get remove package_name — удалить пакет, установленный в систему с сохранением файлов конфигурации
    apt-get purge package_name — удалить пакет, установленный в систему с удалением файлов конфигурации
    apt-get check — проверить целостность зависимостей
    apt-get clean — удалить загруженные архивные файлы пакетов
    apt-get autoclean — удалить старые загруженные архивные файлы пакетов
    Pacman — средство управление пакетами (Arch, Frugalware и alike)
    pacman -S name — install package «name» with dependencies
    pacman -R name — delete package «name» and all files of it
    Просмотр содержимого файлов:
    cat file1 — вывести содержимое файла file1 на стандартное устройсво вывода
    tac file1 — вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т. д.)
    more file1 — постраничный вывод содержимого файла file1 на стандартное устройство вывода
    less file1 — постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п.
    head -2 file1 — вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
    tail -2 file1 — вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
    tail -f /var/log/messages — выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста.
    Манипуляции с текстом:
    cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
    cat file_originale | [operazione: sed, grep, awk, grepи т. $/d' example.txt — удалить пустые строки и комментарии из файла example.txt
    echo 'esempio' | tr '[:lower:]' '[:upper:]' — преобразовать символы из нижнего регистра в верхний
    sed -e '1d' result.txt — удалить первую строку из файла example.txt
    sed -n '/string1/p' — отобразить только строки содержашие «string1»
    sed -e 's/ *$//' example.txt — удалить пустые символы в в конце каждой строки
    sed -e 's/string1//g' example.txt — удалить строку «string1» из текста не изменяя всего остального
    sed -n '1,8p;5q' example.txt — взять из файла с первой по восьмую строки и из них вывести первые пять
    sed -n '5p;5q' example.txt — вывести пятую строку
    sed -e 's/0*/0/g' example.txt — заменить последовательность из любого количества нулей одним нулём
    cat -n file1 — пронумеровать строки при выводе содержимого файла
    cat example.txt | awk 'NR%2==1' — при выводе содержимого файла, не выводить чётные строки файла
    echo a b c | awk '{print $1}' — вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
    echo a b c | awk '{print $1,$3}' — вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
    paste file1 file2 — объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
    paste -d '+' file1 file2 — объединить содержимое file1 и file2 в виде таблицы с разделителем «+»
    sort file1 file2 — отсортировать содержимое двух файлов
    sort file1 file2 | uniq — отсортировать содержимое двух файлов, не отображая повторов
    sort file1 file2 | uniq -u — отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
    sort file1 file2 | uniq -d — отсортировать содержимое двух файлов, отображая только повторяющиеся строки
    comm -1 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1'
    comm -2 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file2'
    comm -3 file1 file2 — сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
    Преобразование наборов символов и файловых форматов:
    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 — вывести список доступных форматов
    Анализ файловых систем:
    badblocks -v /dev/hda1 — проверить раздел hda1 на наличие bad-блоков
    fsck /dev/hda1 — проверить/восстановить целостность linux-файловой системы раздела hda1
    fsck.ext2 /dev/hda1 или e2fsck /dev/hda1 — проверить/восстановить целостность файловой системы ext2 раздела hda1
    e2fsck -j /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же
    fsck.ext3 /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1
    fsck.vfat /dev/hda1 или fsck.msdos /dev/hda1 или dosfsck /dev/hda1 — проверить/восстановить целостность файловой системы fat раздела hda11
    Форматирование файловых систем:
    mkfs /dev/hda1 — создать linux-файловую систему на разделе hda1
    mke2fs /dev/hda1 — создать файловую систему ext2 на разделе hda1
    mke2fs -j /dev/hda1 — создать журналирующую файловую систему ext3 на разделе hda1
    mkfs -t vfat 32 -F /dev/hda1 — создать файловую систему FAT32 на разделе hda1
    fdformat -n /dev/fd0 — форматирование флоппи-диска без проверки
    mkswap /dev/hda3 — создание swap-пространства на разделе hda3
    swap-пространство:
    mkswap /dev/hda3 — создание swap-пространства на разделе hda3
    swapon /dev/hda3 — активировать swap-пространство, расположенное на разделе hda3
    swapon /dev/hda2 /dev/hdb3 — активировать swap-пространства, расположенные на разделах hda2 и hdb3
    Создание резервных копий (backup):
    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
    rsync -rogpav --delete /home /tmp — синхронизировать /tmp с /home
    rsync -rogpav -e ssh --delete /home ip_address:/tmp — синхронизировать через SSH-туннель
    rsync -az -e ssh --delete ip_addr:/home/public /home/local — синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием
    rsync -az -e ssh --delete /home/local ip_addr:/home/public — синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием
    dd bs=1M if=/dev/hda | gzip | ssh [email protected]_addr 'dd of=hda.gz' — сделать «слепок» локального диска в файл на удалённом компьютере через ssh-туннель
    tar -Puf backup.tar /home/user — создать инкрементальную резервную копию директории '/home/user' в файл backup.tar с сохранением полномочий
    ( cd /tmp/local/ && tar c . ) | ssh -C [email protected]_addr 'cd /home/share/ && tar x -p' — копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/
    ( tar c /home ) | ssh -C [email protected]_addr 'cd /home/backup-home && tar x -p' — копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home
    tar cf - . | (cd /tmp/backup ; tar xf - ) — копирование одной директории в другую с сохранением полномочий и линков
    find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents — поиск в /home/user1 всех файлов, имена которых оканчиваются на '.txt', и копирование их в другую директорию
    find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 — поиск в /var/log всех файлов, имена которых оканчиваются на '.log', и создание bzip-архива из них
    dd if=/dev/hda of=/dev/fd0 bs=512 count=1 — создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск
    dd if=/dev/fd0 of=/dev/hda bs=512 count=1 — восстановить MBR с флоппи-диска на /dev/hda
    CDROM:
    cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force — clean a rewritable cdrom
    mkisofs /dev/cdrom > cd.iso — create an iso image of cdrom on disk
    mkisofs /dev/cdrom | gzip > cd_iso.gz — create a compressed iso image of cdrom on disk
    mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd — create an iso image of a directory
    cdrecord -v dev=/dev/cdrom cd.iso — burn an ISO image
    gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom — burn a compressed ISO image
    mount -o loop cd.iso /mnt/iso — mount an ISO image
    cd-paranoia -B — rip audio tracks from a CD to wav files
    cd-paranoia -- "-3" — rip first three audio tracks from a CD to wav files
    cdrecord --scanbus — scan bus to identify the channel scsi
    Сеть (LAN и WiFi):
    ifconfig eth0 — показать конфигурацию сетевого интерфейса eth0
    ifup eth0 — активировать (поднять) интерфейс eth0
    ifdown eth0 — деактивировать (опустить) интерфейс eth0
    ifconfig eth0 192.168.1.1 netmask 255.255.255.0 — выставить интерфейсу eth0 ip-адрес и маску подсети
    ifconfig eth0 promisc — перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)
    ifconfig eth0 -promisc — отключить promiscuous-режим на интерфейсе eth0
    dhclient eth0 — активировать интерфейс eth0 в dhcp-режиме.
    route -n
    netstat -rn — вывести локальную таблицу маршрутизации
    route add -net 0/0 gw IP_Gateway — задать ip-адрес шлюза по умолчанию (default gateway)
    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 del 0/0 gw IP_gateway — удалить ip-адрес шлюза по умолчанию (default gateway)
    echo "1" > /proc/sys/net/ipv4/ip_forward — разрешить пересылку пакетов (forwarding)
    hostname — отобразить имя компьютера
    host http://www.linuxguide.it или host 62.149.140.85 — разрешить имя http://www.linuxguide.it хоста в ip-адрес и наоборот
    ip link show — отобразить состояние всех интерфейсов
    mii-tool eth0 — отобразить статус и тип соединения для интерфейса eth0
    ethtool eth0 — отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения
    netstat -tupn — отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, обеспечивающих эти соединения
    netstat -tupln — отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, слушающих порты
    tcpdump tcp port 80 — отобразить весь трафик на TCP-порт 80 (обычно — HTTP)
    iwlist scan — просканировать эфир на предмет, доступности беспроводных точек доступа
    iwconfig eth2 — показать конфигурацию беспроводного сетевого интерфейса eth2
    Microsoft Windows networks(SAMBA):
    nbtscan ip_addr
    nmblookup -A ip_addr — разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
    smbclient -L ip_addr/hostname — отобразить ресурсы, предоставленные в общий доступ на windows-машине
    smbget -Rr smb://ip_addr/share — подобно wget может получить файлы с windows-машин через smb-протокол
    mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему
    IPTABLES (firewall):
    iptables -t filter -nL
    iptables -nL — отобразить все цепочки правил
    iptables -t nat -L — отобразить все цепочки правил в NAT-таблице
    iptables -t filter -F или iptables -F — очистить все цепочки правил в filter-таблице
    iptables -t nat -F — очистить все цепочки правил в NAT-таблице
    iptables -t filter -X — удалить все пользовательские цепочки правил в 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 filter -A FORWARD -p tcp --dport pop3 -j ACCEPT — позволить «прокидывать» (forward) POP3-соединения
    iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" — включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса «DROP INPUT»
    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 — перенаправление пакетов, адресованных одному хосту, на другой хост
    Мониторинг и отладка:
    top — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)
    ps -eafw — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
    ps -e -o pid,args --forest — вывести PID'ы и процессы в виде дерева
    pstree — отобразить дерево процессов
    kill -9 98989 или kill -KILL 98989 — «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)
    kill -TERM 98989 — корректно завершить процесс с PID 98989
    kill -1 98989 или kill -HUP 98989 — заставить процесс с PID 98989 перепрочитать файл конфигурации
    lsof -p 98989 — отобразить список файлов, открытых процессом с PID 98989
    lsof /home/user1 — отобразить список открытых файлов из директории /home/user1
    strace -c ls >/dev/null — вывести список системных вызовов, созданных и полученных процессом ls
    strace -f -e open ls >/dev/null — вывести вызовы бибилотек
    watch -n1 'cat /proc/interrupts' — отображать прерывания в режиме реального времени
    last reboot — отобразить историю перезагрузок системы
    last user1 — отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней
    lsmod — вывести загруженные модули ядра
    free -m — показать состояние оперативной памяти в мегабайтах
    smartctl -A /dev/hda — контроль состояния жёсткого диска /dev/hda через SMART
    smartctl -i /dev/hda — проверить доступность SMART на жёстком диске /dev/hda
    tail /var/log/dmesg — вывести десять последних записей из журнала загрузки ядра
    tail /var/log/messages — вывести десять последних записей из системного журнала
    Другие полезные команды:
    apropos …keyword — выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
    man ping — вызов руководства по работе с программой, в данном случае, — ping
    whatis …keyword — отображает описание действий указанной программы
    mkbootdisk --device /dev/fd0 `uname -r` — создаёт загрузочный флоппи-диск
    gpg -c file1 — шифрует файл file1 с помощью GNU Privacy Guard
    gpg file1.gpg — дешифрует файл file1 с помощью GNU Privacy Guard
    wget -r http://www.example.com — загружает рекурсивно содержимое сайта http://www.example.com
    wget -c http://www.example.com/file.iso — загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии
    echo 'wget -c http://www.example.com/files.iso' | at 09:00 — начать закачку в указанное время
    ldd /usr/bin/ssh — вывести список библиотек, необходимых для работы ssh
    alias hh='history' — назначить алиас hh команде history

    © [[email protected] articles]

    Дополнение за 18 апреля 2011 года:

    Список не является окончательным, описание команд естественно не полное, полное описание команд Вы можете получить в linux shell# man command.

    ls : показывает файлы и каталоги в текущей директории, аналог команды dir в Windows.
    ls -al : показывает файлы и каталоги в текущей директории, включая подкаталоги, более "сложный" листинг.
    cd : сменить директорию, например, если введем команду cd /usr/local/directadmin то перейдем в указанную директорию.
    cd ~ : перейти в домашнюю директорию.
    cd - : перейти в директорию в которой находились до перехода в другую директорию.
    cd .. : перейти в директорию на 1 уровень вверх.
    cat /filename.conf : покажет содержимое файла.
    chmod : изменят атрибуты, после команды chmod устанавливается циферное значение, доступ для ПОЛЬЗОВАТЕЛЯ-ГРУППЫ-ВСЕХ:
    0 = --- Нет доступа
    1 = --X Только выполнение
    2 = -W- Только запись
    3 = -WX Запись и выполнение
    4 = R-- Только чтение
    5 = R-X Чтение и выполнение
    6 = RW- Чтение и запись
    7 = RWX Чтение, запись и выполнение

    Использование:
    chmod набор правил filename

    chmod 000 : Ни у кого не будет доступа
    chmod 644: Обычно используется для HTML страниц
    chmod 755: Обычно применяется для CGI скриптов

    chown : Изменяет владельца файла или каталога
    После команды указывается значение:
    ПОЛЬЗОВАТЕЛЬ - ГРУППА

    chown root myfile.txt : Установить пользователя root владельцем данного файла.
    chown root:root myfile.txt : Изменить пользователя и группу для данного файла и установить root.

    tail : аналог команды cat, только читает файлы с конца.
    tail /var/log/messages : покажет последние 20 (по умолчанию) строк файла /var/log/messages
    tail -f /var/log/messages : выводит листинг файла непрерывно, по мере его обновления.
    tail -200 /var/log/messages : выведет на экран последние 200 строк с указанного файла.

    more : как cat, только показывает файл поэкранно, а не весь сразу
    more /etc/userdomains : Покажет листинг файла на весь экран. Для прокрутки используйте пробел, q для выхода из режима просмотра.

    pico : простой в работе редактор с дружественным интерфейсом.

    Редактор файлов VI
    vi : редактор файлов, много опций, для ноыичка тяжелый в работе.
    В редакторе vi Вы можете использовать следующие полезные коменды, только Вы будете должны нажать клавишу SHIFT + :

    :q! : Выйти из файла и редактора без сохранения.
    :w : Сохранить.
    :wq : Сохранить и выйим из редактора.
    :номер строки : например :25 : перейти на 25 строку
    :$ : Перейти на последнюю строку в файле
    :0 : Перейти на первую строку в файле

    grep : ищет заданное значение в файлах.
    grep root /etc/passwd : ищет значения root в файле /etc/passwd
    grep -v root /etc/passwd : покажет все строки где встречается значение root.

    ln : создает ссылки между файлами и папками
    ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf : Теперь Вы можете редактировать /etc/httpd.conf а не оригинал. изменения будут произведены и в оригинале.

    last : показывает кто авторизовывался и когда
    last -20 : показывает последние 20 авторизаций

    w : Показывает кто еще авторизован в шелле и откуда вошли
    who : Также показывает кто залогинен в шелл.

    netstat : показывает все текущие сетевые подключения.
    netstat -an : показывает подключения к серверу, с какого IP на какой порт.
    netstat -rn : показывает таблицу IP маршрутизации.

    top : показывает все запущенные процессы в таблице, информацию по использованию памяти, uptime системы и другую полезную информацию. Нажав Shift + M увидите таблицу использования памяти или Shift + P таблицу использования процессора.

    ps: показывает процесс лист в упрощенном виде.
    ps U username : показывает процессы определенного юзера.
    ps aux : показывает все системные процессы.
    ps aux --forest : показывает все системные процессы, вывод процессов в форме дерева в определенной иерархии.

    touch : создает пустой файл.

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

    wc : счетчик слов
    wc -l filename.txt : посчтитает сколько строк находится в файле filename.txt

    cp : копировать файл
    cp filename filename.backup : скопирует filename в filename.backup

    mv : перемещает файлы и папки.

    rm : удаляет файл или папку.
    rm filename.txt : удаляет filename.txt, при этои спросит действительно ли Вы хотите удалить данный файл.
    rm -f filename.txt : удалит filename.txt без подтверждения удаления
    rm -rf tmp/ : рекурсивно удаляет каталог tmp, все файлы в нем и подкаталоги.

    TAR: упаковка и распаковка .tar.gz и .tar файлов.
    tar -zxvf file.tar.gz : распакует архив
    tar -xvf file.tar : распакует архив
    tar -cf archive.tar contents/ : содержимое каталога contents/ упакует в archive.tar
    gzip -d filename.gz : Декомпрессирует и распакует файл.

    ZIP Files: распаковывает .zip файлы
    unzip file.zip

    Firewall - iptables команды
    iptables -I INPUT -s IPADDRESSHERE -j DROP : Запретит все соединения с указанного IP
    iptables -L : Лист правил iptables
    iptables -F : очищает все iptables правила
    iptables --save : Сохраняет текущие правила в память на диск
    service iptables restart : Перезапустит iptables

    Apache Shell Commands:
    httpd -v : Покажет дату и время сборки и версию Apache сервера.
    httpd -l : Покажет модули Apache
    httpd status : будет работать только если mod_status разрешен и покажет страницу с активными подключениями.
    service httpd restart : рестартанет Apache web server

    MySQL Shell Commands:
    mysqladmin processlist : покажет активные mysql соединения и запросы.

    Linux и Unix команды, информация и справка

    Обновлено: 23.05.2020, Computer Hope

    Unix ABC

    Unix, который не является аббревиатурой, был разработан в конце 1960-х годов многими из тех же людей, которые помогли создать язык программирования C. Однако сегодня Unix разрабатывается многими организациями, институтами и отдельными лицами, которые внесли значительные дополнения в современную систему Unix.

    • См. Наше определение Unix для получения дополнительной информации.

    Linux ABC

    Linux (произносится как « lee 'nuhks» или li ' nuhks, но не li ' nuhks ) - это ядро ​​бесплатной операционной системы с открытым исходным кодом. Ядро Linux было разработано Линусом Торвальдсом и выпущено в 1991 году. Оно обеспечивало базовую основу для операционной системы, но в нем отсутствовали инструменты пользовательского уровня, чтобы сделать его законченным.

    Проект GNU, начатый в 1984 году Ричардом Столлманом, преследовал аналогичные цели, создав набор инструментов и утилит с открытым исходным кодом, созданных по образцу операционной системы Unix с закрытым исходным кодом.Однако проекту GNU не хватало базового ядра. После того, как ядро ​​Linux было выпущено, участники перенесли инструменты GNU в ядро ​​Linux, и так родилась операционная система GNU / Linux.

    Существует значительная полемика (даже сегодня) по поводу того, следует ли называть эту комбинированную операционную систему «GNU / Linux» или «Linux». Однако широкие массы тяготели к названию «Linux», и это название в значительной степени прижилось. Однако нельзя упускать из виду вклад проекта GNU. Когда вы запускаете важную команду в Linux, вы используете инструмент, кропотливо созданный участниками проекта GNU.

    За прошедшие годы группа разработчиков ядра Linux выросла до более чем 10 000 разработчиков по всему миру. Он выпущен под GPL (General Public License), что означает, что он может распространяться, использоваться и расширяться бесплатно, а разработчики имеют доступ ко всему исходному коду.

    • См. Соответствующее определение Linux и информацию о вариантах.

    MS-DOS против Linux и Unix

    Если вы можете управлять компьютером с помощью MS-DOS или командной строки Windows, Linux и Unix легче освоить.В таблице ниже приведен список общих команд MS-DOS с их аналогами для Linux и Unix.

    Команды Linux и Unix

    Linux Mint - Сообщество

    Системная информация

    date - Показать текущую дату и время
    cal - Показать календарь этого месяца
    uptime - Показать текущее время безотказной работы
    w - Показать, кто сейчас в сети
    whoami - Кто вы вошли под именем
    finger пользователь - Показать информацию о пользователе
    uname -a - Показать информацию о ядре
    cat / proc / cpuinfo - Информация о процессоре
    cat / proc / meminfo - Информация о памяти
    df -h - Показать использование диска
    du - Показать использование пространства каталога
    бесплатно - Показать использование памяти и свопа

    Сочетания клавиш

    Введите - Выполните команду
    Стрелка вверх - Показать предыдущую команду
    Ctrl + R - Позволяет ввести часть искомой команды и находит ее

    Ctrl + Z - останавливает текущую команду, возобновляет с fg на переднем плане или bg на заднем плане
    Ctrl + C - останавливает текущую команду, отменяет текущую операцию и / или начинает новую новую строка
    Ctrl + L - Очистить экран

    команда | меньше - Позволяет прокручивать командное окно bash с помощью Shift + стрелка вверх и Shift + стрелка вниз
    !! - Повторяет последнюю команду
    команда ! $ - Повторяет последний аргумент предыдущей команды
    Esc +.(точка) - Вставить последний аргумент предыдущей команды на лету, что позволяет редактировать его перед выполнением команды

    Ctrl + A - возврат к началу вводимой команды
    Ctrl + E - переход к концу вводимой команды
    Ctrl + U - вырезание всего перед курсором до специального буфер обмена, стирает всю строку
    Ctrl + K - Вырезать все после курсора в специальный буфер обмена
    Ctrl + Y - Вставить из специального буфера обмена, в который Ctrl + U и Ctrl + K сохраняют свои данные
    Ctrl + T - Поменять местами два символа перед курсором (на самом деле вы можете использовать это для переноса символа слева направо, попробуйте!)
    Ctrl + W - Удалите слово / аргумент слева от курсор в текущей строке

    Ctrl + D - выйти из текущего сеанса, аналогично выйти

    Изучите команды

    apropos subject - Список страниц руководства для темы
    man -k keyword - Отображение справочных страниц, содержащих ключевое слово
    man command - Показать руководство для команда
    человек-т человек | ps2pdf -> человек.pdf - Создание pdf страницы руководства
    , в которой команда - Показать полный путь к команде
    время команда - Посмотрите, сколько времени занимает команда

    whereis app - Показать возможные местоположения приложения
    which app - Показать, какое приложение будет запускаться по умолчанию; он показывает полный путь

    В поисках

    grep шаблон файлов - Поиск шаблона в файлах
    grep -r pattern dir - Рекурсивный поиск шаблона в dir
    команда | grep шаблон - Поиск шаблона в выводе команды
    найти файл - Найти все экземпляры файла
    find / -name filename - Начиная с корневого каталога, найдите файл с именем filename
    find / -name ”* filename *” - Начиная с корневого каталога, найдите файл, содержащий строку имя файла
    найти имя файла - Найдите файл с именем имя файла с помощью команды locate; это предполагает, что вы уже использовали команду updatedb (см. далее)
    updatedb - Создание или обновление базы данных файлов во всех файловых системах, прикрепленных к корневому каталогу Linux.
    which filename - Показать подкаталог, содержащий исполняемый файл с именем имя файла
    grep TextStringToFind / dir - Начиная с каталога с именем dir , найдите и перечислите все файлы, содержащие TextStringToFind

    Права доступа к файлу

    chmod восьмеричный файл - Измените права доступа файла на восьмеричный , который можно найти отдельно для пользователя, группы и мира, добавив: 4 - чтение (r), 2 - write (w), 1 - execute (x)
    Примеры:
    chmod 777 - чтение, запись, выполнение для всех
    chmod 755 - rwx для владельца, rx для группы и мира
    Дополнительные параметры см. в man chmod .

    Файловые команды

    ls - Список каталогов
    ls -l - Список файлов в текущем каталоге в длинном формате
    ls -laC - Список всех файлов в текущем каталоге в длинном формате и отображение в столбцах
    ls -F - Список файлов в текущем каталоге и укажите тип файла
    ls -al - Отформатированный листинг со скрытыми файлами

    cd dir - Изменить каталог на dir
    cd - Перейти на домашний
    mkdir dir - Создать каталог dir
    pwd - Показать текущий каталог

    rm name - Удалить файл или каталог с именем name
    rm -r dir - Удалить каталог dir
    rm -f file - Принудительно удалить файл
    rm -rf dir - Принудительно удалить весь каталог dir и все включенные в него файлы и подкаталоги (используйте с особой осторожностью)

    cp file1 file2 - Копировать file1 в file2
    cp -r dir1 dir2 - Копировать dir1 to dir2 ; создать dir2 , если он не существует
    cp file / home / dirname - Скопируйте имя файла с именем file в каталог / home / dirname

    mv file / home / dirname - переместить файл с именем filename в каталог / home / dirname
    mv file1 file2 - переименовать или переместить file1 С по файл2 ; если file2 - существующий каталог, перемещает file1 в каталог file2

    ln -s file link - Создать символическую ссылку link to file
    touch file - Создать или обновить файл
    cat> file - Places стандартный ввод в файл
    cat file - Показать файл с именем file

    еще файл - отобразить файл с именем файл по одной странице за раз, перейти к следующей странице с помощью пробела
    заголовок файл - вывести первые 10 строк файла
    head -20 file - Показать первые 20 строк файла с именем file
    tail file - Вывести последние 10 строк файла
    tail -20 file - Показать последние 20 строк файла с именем file
    tail -f file - Выводить содержимое файла по мере его роста, начиная с последних 10 строк

    Компрессия

    tar cf файл.tar-файлы - Создать tar с именем file.tar , содержащим файлов
    tar xf file.tar - Извлечь файлы из file.tar

    tar czf file.tar.gz files - Создание tar со сжатием Gzip
    tar xzf file.tar.gz - Извлечение tar с помощью Gzip

    tar cjf file.tar.bz2 - Создать tar со сжатием Bzip2
    tar xjf file.tar.bz2 - Распаковать tar с помощью Bzip2

    gzip файл - сжимает файл и переименовывает его в file.gz
    gzip -d file.gz - распаковывает file.gz обратно в файл

    Печать

    /etc/rc.d/init.d/lpd start - Запустить демон печати
    /etc/rc.d/init.d/lpd stop - Остановить демон печати
    / etc / rc.d / init.d / lpd status - Отображение состояния демона печати
    lpq - Отображение заданий в очереди печати
    lprm - Удаление заданий из очереди
    lpr - Печать файла
    lpc - Управление принтером инструмент
    человек тема | lpr - Распечатать страницу руководства под названием subject в виде простого текста
    man -t subject | lpr - Распечатать страницу руководства под названием тема как вывод Postscript
    printtool - Запустить интерфейс настройки принтера X

    Сеть

    ifconfig - Список IP-адресов для всех устройств на локальном компьютере
    iwconfig - Используется для установки параметров сетевого интерфейса, специфичных для беспроводной работы (например, частоты)
    iwlist - используется для отображения некоторая дополнительная информация из интерфейса беспроводной сети, которая не отображается iwconfig
    ping host - Ping host и вывод результатов
    whois domain - Get whois information for domain
    dig domain - Получить информацию DNS для домена
    dig -x host - Обратный поиск host
    wget file - Download file
    wget -c file - Продолжить остановку ped скачать

    SSH

    ssh user @ host - Подключиться к host as user
    ssh -p port user @ host - Connect to host on port порт как пользователь
    ssh-copy-id user @ host - Добавьте свой ключ к host для user , чтобы включить ввод с ключа или без пароля

    Администрирование пользователей

    adduser accountname - Создать нового пользователя call accountname
    passwd accountname - Дать accountname новый пароль
    su - Войти как суперпользователь из текущего логина
    exit - перестать быть суперпользователем и вернуться к обычному пользователю

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

    ps - Показать текущие активные процессы
    вверху - Показать все запущенные процессы
    kill pid - Убить идентификатор процесса pid
    killall proc - Убить все процессы с именем proc (используйте с особой осторожностью)
    bg - Список остановленных или фоновых заданий; возобновить остановленное задание в фоновом режиме
    fg - переносит последнее задание на передний план
    fg n - переносит задание n на передний план

    Установка из исходников

    ./ configure
    make
    make install
    dpkg -i pkg.deb - установить пакет DEB (Debian / Ubuntu / Linux Mint)
    об / мин -Uvh pkg.rpm - установить пакет RPM (Red Hat / Fedora)

    Остановка и запуск

    shutdown -h now - выключить систему сейчас и не перезагружать
    halt - остановить все процессы - то же, что и выше
    shutdown -r 5 - выключить систему через 5 минут и перезагрузить
    shutdown -r now - Выключите систему сейчас и перезагрузите
    перезагрузите - Остановите все процессы и затем перезагрузите - то же, что и выше
    startx - Запустите систему X

    Рекомендуемая литература:

    Шпаргалки.org - Все шпаргалки, обзоры, краткие справочные карты, краткие справочные руководства и краткие справочные листы на одной странице. Единственное, что вам нужно.

    Учебное пособие: объяснение лучших советов и приемов для bash - Блог учебников по Linux / Качественные учебные пособия по Linux без беспорядка

    LinuxCommand.org - изучение оболочки, написание сценариев оболочки, библиотека сценариев, страницы SuperMan, кто, что, где, почему

    LinuxManPages.com - общие команды, системные вызовы, подпрограммы, специальные файлы, форматы файлов, игры, макросы и соглашения, команды обслуживания, Most Popular Man Pages

    Linux Man Pages от die.net - страницы руководства сгруппированы по разделам, чтобы увидеть полный список страниц руководства Linux для раздела, выберите один. Или вы можете просматривать справочные страницы Linux по имени; выберите первую букву имени интересующей вас команды, функции или файла Linux.

    Руководство для новичков в Linux: горячие клавиши и команды - основные горячие клавиши и команды для Linux; Общие команды Linux - информация о системе; Основные операции, сетевые приложения, (де) сжатие файлов; Контроль над процессом; Основные команды администрирования, доступ к дискам / разделам; Инструменты сетевого администрирования, команды, связанные с музыкой, команды, связанные с графикой.

    Страницы руководства Sudo - Sudo (su "do") позволяет системному администратору делегировать полномочия, чтобы дать определенным пользователям (или группам пользователей) возможность запускать некоторые (или все) команды от имени пользователя root или другого пользователя, обеспечивая при этом контрольный журнал команды и их аргументы. Для получения дополнительной информации см. Введение в Sudo. Sudo - это бесплатное программное обеспечение , распространяемое по лицензии типа ISC.

    LinOxide.com - Черно-белый шпаргалка по командам Linux

    Что такое встроенная команда в Linux?

    Встроенная команда - это команда Linux / Unix, которая « встроена в интерпретатор оболочки, такой как sh, ksh, bash, dash, csh и т. Д. ».Отсюда и произошло название этих встроенных команд. Другими словами, мы можем сказать, что эти команды всегда будут доступны в ОЗУ, так что доступ к ним будет немного быстрее по сравнению с внешними командами, которые хранятся на жестком диске. У этого типа команд есть много преимуществ. Ниже приведены некоторые преимущества.

    Повышение производительности

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

    Поддерживать набор команд на минимальной оболочке

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

    Как вывести список всех встроенных команд?

    Есть много способов перечислить встроенные команды.Такие команды, как compgen и help, помогут нам составить список всех доступных встроенных команд для конкретной оболочки.
    Пример:

     [[email protected] ~] $ compgen -b 
     
     
    Выход: 
    .
    :
    [
    псевдоним
    bg
    bind
    break
    builtin
    caller
    cd
    command
    compgen
    complete
    compopt
    continue
    declare
    dirs
    disown
    echo
    enable
    eval
    exec
    exit
    export
    false
    fc
    fg
    getopts
    hash
    help
    history
    jobs
    kill
    let
    local
    logout
    mapfile
    popd
    printf
    pushd
    pwd
    read
    readarray
    readonly
    return
    set
    shift
    shopt
    source
    suspend
    test
    раз
    trap
    true
    type
    typeset
    ulimit
    umask
    unalias
    unset
    wait
    [surendra @ linuxnix.com ~] $

    или же

    [[email protected] ~] $ help

    Следует отметить, что «встроенные команды различаются от оболочки к оболочке» .

    Как проверить, является ли команда Linux встроенной или нет?

    Чтобы проверить, является ли команда внешней или внутренней командой (встроенной), мы должны выполнить команду типа
    Пример:

     [[email protected] ~] $ type cd 
     
    Вывод: 
    cd - встроенная оболочка

    Другие примеры:

    [surendra @ linuxnix.com ~] $ type pwd
    pwd - это встроенная оболочка
    [[email protected] ~] $ type ls
    ls имеет псевдоним `ls –color = auto '
    [[email protected] ~] $ type whoami
    whoami это / usr / bin / whoami

    Если вы заметили, что команды ls и whoami не являются встроенными командами.

    Как найти расположение встроенной команды Linux?

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

    [[email protected] ~] $ который cd
    / usr / bin / which: нет cd in (/ usr / local / bin: / bin: / usr / bin: / usr / local / sbin: / usr / sbin : / sbin: / home / visplad / bin)
    [[email protected] ~] $ который позволяет
    / usr / bin / which: no let in (/ usr / local / bin: / bin: / usr / bin: / usr / local / sbin: / usr / sbin: / sbin: / home / visplad / bin)

     Как узнать размер встроенных команд? 
     

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


    [[email protected] ~] $ du -hs $ (который bash)
    884K / bin / bash
    [[email protected] ~]
    $

    Замените bash желаемой оболочкой.

    Как получить справку по встроенным командам?

    Поэтому важный вопрос - как получить справку по этим встроенным командам.Когда вы попытаетесь выполнить man для этих команд, вы получите ошибку ниже

    [email protected]: ~ $ man cd
    Нет ручного ввода для cd
    [email protected]: ~ $

    Тогда где мы можем получить по ним помощь?

    В этом вам поможет специальная команда. Команда для получения дополнительной справки по встроенным командам Linux / Unix - это help. Чтобы узнать о команде подробно, просто выполните команду ниже.


    помощь built-in_command

    Пример

    help cd
    или
    help -m cd

    Вывод:

    [surendra @ linuxnix.com ~] $ help -m cd
    ИМЯ
    cd - Изменить рабочий каталог оболочки.


    ОБЗОР
    cd [-L | -P] [dir]


    ОПИСАНИЕ
    Изменить рабочий каталог оболочки.


    Измените текущий каталог на DIR. По умолчанию DIR - это значение переменной оболочки
    HOME.


    Переменная CDPATH определяет путь поиска для каталога, содержащего
    DIR.Альтернативные имена каталогов в CDPATH разделяются двоеточием (:).
    Нулевое имя каталога совпадает с именем текущего каталога. Если DIR начинается с
    с косой черты (/), то CDPATH не используется.


    Если каталог не найден и установлена ​​опция оболочки `cdable_vars ',
    предполагается, что слово является именем переменной. Если эта переменная имеет значение,
    это значение используется для DIR.


    Опции:
    -L принудительно использовать символические ссылки
    -P использовать физическую структуру каталогов без использования символических ссылок


    По умолчанию следует переходить по символическим ссылкам, как если бы был указан `-L '.


    Статус выхода:
    Возвращает 0, если каталог изменен; ненулевое значение в противном случае.


    СМОТРИ ТАКЖЕ
    bash (1)


    РЕАЛИЗАЦИЯ
    GNU bash, версия 4.1.2 (1) -release (x86_64-redhat-linux-gnu)
    Copyright (C) 2009 Free Software Foundation, Inc.
    Лицензия GPLv3 +: GNU GPL версии 3 или более поздней

    Чтобы получить однострочный ответ, используйте параметр -d с командой справки.

    [[email protected] ~] $ help -d cd
    cd - Изменить рабочий каталог оболочки.

    Чтобы получить простые параметры команды, используйте параметр -s.


    [[email protected] ~] $ help -s cd
    cd: cd [-L | -P] [dir]

    Надеюсь, это поможет понять встроенные команды в Linux.

    Просмотры сообщений: 25 370

    Следующие две вкладки изменяют содержимое ниже.

    Базовые команды UNIX

    Базовые команды UNIX Примечание: не все они на самом деле являются частью самой UNIX, и вы можете не найти их на всех машинах UNIX.Но все они могут быть использованы на turing практически таким же образом, набрав команду и нажав возвращение. Обратите внимание, что некоторые из этих команд отличаются от других в Solaris. машины - см. отличия SunOS.
    Если вы допустили опечатку, проще всего нажать CTRL-u , чтобы отменить всю строку. Но вы также можете редактировать командную строку (см. руководство по UNIX).
    UNIX чувствителен к регистру.

    Файлы

    • ls --- выводит список ваших файлов
      ls -l --- перечисляет ваши файлы в "длинном формате", который содержит множество полезная информация, e.г. точный размер файла, которому принадлежит файл и кто имеет право на нее смотреть и когда она в последний раз изменялась.
      ls -a --- перечисляет все файлы, включая те, чьи имена начинаются с точка, которую не всегда хочется видеть.
      Есть много других опций, например, чтобы перечислить файлы по размеру, дата, рекурсивно и т. д.
    • еще filename --- показывает первую часть файла, ровно столько, сколько поместится на одном экране. Просто нажмите пробел, чтобы увидеть больше или q бросить курить.Вы можете использовать шаблон / для поиск по выкройке.
    • emacs filename --- это редактор, который позволяет вам создать и отредактировать файл. См. Страницу emacs.
    • mv filename1 filename2 --- перемещает файл (т.е. дает это другое имя или перемещает его в другой каталог (см. ниже)
    • cp filename1 filename2 --- копирует файл
    • rm filename --- удаляет файл.Целесообразно использовать параметр rm -i, который запросит подтверждение перед тем, как удаление чего-либо. Вы можете сделать это по умолчанию, создав псевдоним в файле .cshrc.
    • diff filename1 filename2 --- сравнивает файлы и показывает, чем они отличаются
    • wc filename --- сообщает вам, сколько строк, слов, и символы есть в файле
    • chmod options filename --- позволяет изменить чтение, писать и выполнять разрешения для ваших файлов.По умолчанию только вы можете посмотреть на них и изменить их, но иногда вы можете захотеть измените эти разрешения. Например, chmod o + r filename сделает файл доступным для чтения всем, и chmod o-r filename сделает его нечитаемым для других очередной раз. Обратите внимание, что для того, чтобы кто-то действительно мог посмотреть файл необходимые каталоги должны быть как минимум исполняемыми. См. Дополнительную информацию в справке по защите.
    • Сжатие файлов
      • gzip filename --- сжимает файлы, чтобы они занимают гораздо меньше места.Обычно текстовые файлы сжимаются примерно до половины их исходный размер, но он очень сильно зависит от размера файла и характер содержания. Для этого есть другие инструменты цель тоже (например, сжать ), но gzip обычно дает самая высокая степень сжатия. Gzip создает файлы с окончанием .gz добавляется к исходному имени файла.
      • gunzip filename --- распаковывает файлы, сжатые с помощью gzip.
      • gzcat filename --- позволяет просматривать сжатый файл без на самом деле нужно его заархивировать (то же самое, что и gunzip -c ).Ты даже можешь распечатайте его напрямую, используя gzcat filename | lpr
    • печать
      • lpr filename --- print. Используйте параметр -P, чтобы указать имя принтера, если вы хотите использовать принтер, отличный от вашего по умолчанию принтер. Например, если вы хотите распечатать двустороннюю печать, используйте lpr -Pvalkyr-d ', или, если вы в CSLI, вы можете использовать' lpr -Pcord115-d '. См. Раздел «Справка по принтерам» для получения дополнительной информации о принтерах. и их местонахождение.
      • lpq --- проверить очередь принтера, например чтобы получить номер, необходимый для удаления, или чтобы узнать, сколько других файлов будет напечатано прежде чем выйдет ваш
      • lprm jobnumber --- удалите что-нибудь из очередь принтера. Вы можете найти номер вакансии, используя lpq. Теоретически вы также должны указать имя принтера, но это не обязательно, поскольку пока вы используете в отделе принтер по умолчанию.
      • genscript --- преобразует текстовые файлы в PostScript для печати и дает вам несколько вариантов форматирования.Рассматривать создание псевдонима типа alias ecop 'genscript -2 -r \! * | lpr -h -Pvalkyr ' для печати двух страниц на одном листе бумаги.
      • dvips filename --- распечатать файлы .dvi (т.е. файлы, созданные LaTeX). Вы можете использовать dviselect только для печати выбранные страницы. Смотрите страницу LaTeX для получения дополнительной информации информация о том, как сэкономить бумагу при печати черновиков.

    Справочники

    Каталоги, как и папки на Macintosh, используются для группировки файлов. вместе в иерархической структуре.
    • mkdir dirname --- создайте новый каталог
    • cd dirname --- сменить каталог. Вы в основном идете в другой каталог, и вы увидите файлы в этом каталоге когда вы делаете "ls". Вы всегда начинаете со своего «домашнего каталога», и вы можете вернуться туда, набрав «cd» без аргументов. cd .. будет поднять вас на один уровень выше вашего текущего положения. Вам не нужно ходить шаг за шагом - можно делать большие прыжки или избегать ходьбы вокруг, указав пути.
    • pwd --- сообщит вам, где вы сейчас находитесь.

    В поисках вещей

    • ff --- найти файлы в любом месте системы. Это может быть очень полезно, если вы забыли, в какой каталог вы поместили файл, но помните имя. Фактически, если вы используете ff -p , вы не даже нужно полное имя, только начало. Это также может быть полезно для поиска других вещей в системе, например документация.
    • grep string filename (s) --- ищет строку в файлы.Это может быть полезно для многих целей, например находка нужный файл среди многих, выясняя, какая версия является правильной что-то, и даже делать серьезную корпусную работу. grep входит в несколько разновидностей ( grep , egrep и fgrep ) и имеет много очень гибких вариантов. Просмотрите страницы руководства, если это звучит хорошо тебе.

    О других людях

    • w --- сообщает, кто вошел в систему и что они делают. Особенно полезно: «неактивная» часть.Это позволяет увидеть, они сидят и печатают на клавиатуре прямо в момент.
    • who --- расскажет, кто вошел в систему и где они приходящий из. Полезно, если вы ищете кого-то, кто на самом деле физически в том же здании, что и вы, или в каком-то другом конкретном расположение.
    • finger имя пользователя --- дает много информации об этом пользователе, например когда они в последний раз читали почту и авторизован.Часто люди помещают другую практическую информацию, например, телефон номера и адреса в файле под названием .plan . Эта информация также отображается «пальцем».
    • последний -1 имя пользователя --- сообщает вам, когда пользователь последний раз входил и выходил и откуда. Без каких-либо опций последний будет дать вам список всех логинов.
    • talk имя пользователя --- позволяет вам вести (печатный) разговор с другой пользователь
    • запись имя пользователя --- позволяет обмениваться однострочными сообщения с другим пользователем
    • elm --- позволяет отправлять сообщения электронной почты людям в мир (и, конечно же, их читать).Это не единственный почтовик, который можно используйте, но тот, который мы рекомендуем. Увидеть вяз страницу, и узнайте об ведомственных списки рассылки (которые вы также можете найти в / user / linguistics / helpfile).

    О себе (электронном)

    • whoami --- возвращает ваше имя пользователя. Звучит бесполезно, но нет. Возможно, вам понадобится узнать, кто забыл войти где-нибудь, и убедитесь, что * вы * вышли из системы.
    • finger и файлы .plan
      , конечно, вы тоже можете потрогать.Это может быть полезно, например, в качестве быстрой проверки, получили ли вы новую почту. Попробуйте создать полезный .plan файл в ближайшее время. Ищите идеи в чужих файлах .plan. В файл должен быть доступен для чтения всем, чтобы быть видимым через 'Палец'. При необходимости выполните команду chmod a + r .plan. Вы должны понять, что эта информация доступна из любой точки мира, а не только другие люди по Тьюрингу.
    • passwd --- позволяет вам изменить пароль, который вам следует делайте регулярно (не реже одного раза в год).См. Руководство LRB и / или посмотрите пароль справки.
    • ps -u yourusername --- перечисляет ваши процессы. Содержит много информация о них, включая идентификатор процесса, который вам нужен если вам нужно убить процесс. Обычно, когда тебя выгнали сеанса дозвона или другим способом отключен внезапно, этот список будет содержать нужные вам процессы убить. Они могут включать оболочку (tcsh или что-то еще, что вы используете), и все, что вы запускали, например emacs или elm.Быть осторожен чтобы не убить текущую оболочку - ту, у которой номер ближе к одна из команд ps, которые вы сейчас выполняете. Но если это случится, не паникуйте. Просто попробуйте еще раз 🙂 Если вы используете X-display, вы можете необходимо убить некоторые X-процессы, прежде чем вы сможете их снова запустить. Эти будет отображаться только при использовании ps -efl , потому что они root процессы.
    • kill PID --- убивает (завершает) процессы с идентификатором ты дал. Конечно, это работает только для ваших собственных процессов.Получить ID с помощью ps . Если процесс не «умирает» должным образом, используйте опция -9. Но сначала попробуйте без этой опции, потому что она не дает возможности завершить процесс возможно важно бизнес перед смертью. Вам может потребоваться убить процессы, например, если ваше модемное соединение было прервано, и вы не вышли из системы правильно, что иногда бывает.
    • quota -v --- показать, какая у вас квота на диске есть (т.е. сколько места у вас есть для хранения файлов), сколько вы фактически используете, и если вы превысили свою квоту (которую вы получать автоматическое предупреждение системы) сколько времени вы осталось разобраться в них (удалив или сжав некоторые, или переместив их на свой компьютер).
    • du filename --- показывает использование диска файлами и каталоги в имя файла (без аргументов текущий каталог используется). du -s дает только общую сумму.
    • last yourusername --- список ваших последних входов в систему. Мочь быть полезным помощником в памяти о том, когда вы были где, как долго вы были работает и отслеживает ваш телефонный счет, если вы делаете Нелегальный телефонный звонок для дозвона.

    Подключение к внешнему миру

    • nn --- позволяет читать новости.Сначала вы сможете прочитать местные новости по Тьюрингу, а затем удаленные новости. Если хочешь читать только местные или удаленные новости, вы можете использовать nnl или nnr , соответственно. Чтобы узнать больше о nn , введите nn , затем \ tty {: man}, затем \ tty {=. *}, затем \ tty {Z}, затем нажмите пробел, чтобы пошагово пройти через руководство. Или посмотрите справочную страницу. Или посмотрите гипертекст nn FAQ - наверное, самый простой и интересный способ.
    • rlogin hostname --- позволяет подключаться к удаленному хосту
    • telnet имя хоста --- также позволяет подключаться к удаленный узел.По возможности используйте rlogin .
    • ftp hostname --- позволяет загружать файлы с удаленный хост, который настроен как ftp-сервер. Это распространенный метод для обмена академическими работами и черновиками. Если вам нужно сделать бумагу доступных таким образом, вы можете (временно) поместить копию в / пользователь / ftp / pub / TMP. Для более надежных решений спросите Эмму. Большинство важные команды в ftp: get для получения файлов из удаленный компьютер, и поместил для их размещения ( mget и mput позволяет указать более одного файла одновременно).Звуки прямолинейно, но не путайте их, особенно когда ваше физическое местоположение не соответствует направлению ftp соединение, которое вы устанавливаете. ftp просто перезаписывает файлы такими же имя файла. Если вы передаете что-либо, кроме текста ASCII, используйте двоичный режим.
    • lynx --- позволяет просматривать веб-страницы с обычного Терминал. Конечно, вы можете видеть только текст, а не изображения. Вы можете ввести любой URL-адрес в качестве аргумента команды G .когда вы делаете это с любого хоста в Стэнфорде, вы можете не указывать .stanford.edu часть URL-адреса при подключении к URL-адресам Стэнфордского университета. Введите H в любое время, чтобы узнать больше о lynx , и Q для выхода.

    Инструменты разные

    • webster word --- ищет слово в электронном версия словаря Вебстера и возвращает определение (я)
    • дата --- показывает текущую дату и время.
    • cal --- показывает календарь на текущий месяц. Используйте, например, "cal 10 1995", чтобы получить это для октября 95, или "cal 1995", чтобы получить Весь год.
    Вы можете узнать больше об этих командах, просмотрев их manpages:
    man имя команды --- показывает страницу руководства для команда

    Дальнейшие способы получения помощи смотрите на страницах с электронными источниками информации. и неэлектронные источники.

    Дополнительные команды UNIX


    Резервное копирование на главную страницу вычислений

    Команды Linux - Изучите команды терминала Linux с примерами

    Как использовать grep для всех файлов в каталоге рекурсивно

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

    Как создать символическую ссылку в Linux с помощью команды ln

    В этом руководстве по Linux мы узнаем, как создать символическую ссылку в Linux с помощью команды ln.

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

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

    В этом учебном пособии мы узнаем, как установить переменные среды в Linux. Установить переменную среды в Linux очень просто. Все, что нам нужно сделать, это экспортировать переменную с помощью команды экспорта.

    Установить переменные среды в Linux очень просто. Все, что нам нужно сделать, это экспортировать переменную с помощью команды экспорта.

    Также можно установить и экспортировать в одну строку.

    В чем разница между командами useradd и adduser в Linux

    В Linux вы чаще увидите, что для выполнения одной и той же задачи доступно более одной команды Linux. Поэтому, когда дело доходит до добавления новых пользователей в систему, в большинстве дистрибутивов Linux есть две команды. Две команды - это useradd и adduser.Так в чем же разница между useradd и adduser в Linux? Они оба всегда работают одинаково? Хотя и то, и другое можно использовать для создания пользователей, они не всегда делают одно и то же. В зависимости от дистрибутива Linux две команды могут вести себя по-разному.

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

    Мы можем использовать команду usermod или gpasswd для добавления пользователя в группу в операционной системе Linux. И обе команды очень просты в использовании.

    usermod -a -G имя группы имя пользователя

    gpasswd - это команда Linux, предназначенная для группового администрирования.Параметр команды -a используется для добавления пользователя в группу в Linux.

    gpasswd -a имя пользователя имя группы

    Что такое Linux bash && Разделитель команд

    В сценариях оболочки Часто вы увидите, что несколько команд Linux bash запускаются через знак «&&». bash && use для выполнения последовательности команд одну за другой, но если одна команда не удалась, сброс команд не будет выполнен. Другими словами, то, что делает bash &&, - это запускать несколько команд Linux одну за другой до тех пор, пока нет сбоя, если одна команда не удалась, сброс команд Linux никогда не будет выполнен.

    20 команд Linux, которые должен знать каждый системный администратор

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

    Если вы новый разработчик или хотите управлять своим собственным приложением, следующие 20 основных команд системного администратора помогут вам лучше понять свои приложения.Они также могут помочь вам описать проблемы системным администраторам для устранения неполадок, почему приложение может работать локально, но не на удаленном хосте. Эти команды применяются к средам разработки Linux, контейнерам, виртуальным машинам (ВМ) и голому железу.

    1. локон

    curl передает URL. Используйте эту команду для тестирования конечной точки приложения или возможности подключения к конечной точке вышестоящей службы. c url может быть полезен для определения того, может ли ваше приложение обращаться к другой службе, такой как база данных, или для проверки работоспособности вашей службы.

    В качестве примера представьте, что ваше приложение выдает ошибку HTTP 500, указывающую, что оно не может достичь базы данных MongoDB:

      

    $ curl -I -s myapplication: 5000
    HTTP / 1.0 500 ОШИБКА ВНУТРЕННЕГО СЕРВЕРА

    Параметр -I показывает информацию заголовка, а параметр -s заглушает тело ответа. Проверка конечной точки вашей базы данных с локального рабочего стола:

      

    $ curl -I -s база данных: 27017
    HTTP / 1.0200 ОК

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

      

    $ curl -I -s https://opensource.com
    HTTP / 1.1 200 OK

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

      

    $ curl database: 27017
    curl: (6) Не удалось разрешить базу данных хоста

    Это указывает на то, что ваше приложение не может разрешить базу данных, потому что URL-адрес базы данных недоступен или хост (контейнер или виртуальная машина) не имеет сервера имен, который он может использовать для разрешения имени хоста.

    2. Python -m json.tool / jq

    После запуска curl выходные данные вызова API могут быть трудночитаемыми. Иногда вам нужно распечатать вывод JSON, чтобы найти конкретную запись. Python имеет встроенную библиотеку JSON, которая может в этом помочь. Вы используете python -m json.tool для создания отступов и организации JSON. Чтобы использовать модуль JSON Python, направьте вывод файла JSON в команду python -m json.tool .

      

    $ cat test.json
    {"title": "Person", "type": "object", "properties": {"firstName": {"type": "string"}, "lastName": {"type": "string" }, "age": {"description": "Возраст в годах", "type": "integer", "minimum": 0}}, "required": ["firstName", "lastName"]}

    Чтобы использовать библиотеку Python, направьте вывод в Python с параметром -m (модуль).

      

    $ cat test.json | python -m json.tool
    {
    "свойства": {
    "возраст": {
    "описание": "Возраст в годах",
    "минимум": 0,
    "тип": "целое число"
    },
    "firstName": {
    "type": "string"
    },
    "lastName": {
    "type": "string"
    }
    },
    "required": [
    "firstName",
    "lastName"
    ],
    "title": "Человек",
    "type": "объект"
    }

    Для более продвинутого анализа JSON можно установить jq . j q предоставляет несколько параметров, которые извлекают определенные значения из входных данных JSON. Чтобы красиво печатать, как в модуле Python выше, просто примените jq к выводу.

      

    $ cat test.json | jq
    {
    "title": "Person",
    "type": "object",
    "properties": {
    "firstName": {
    "type": "string"
    },
    "lastName": {
    "тип": "строка"
    },
    "возраст": {
    "описание": "Возраст в годах",
    "тип": "целое число",
    "минимум": 0
    }
    },
    " обязательно ": [
    " firstName ",
    " lastName "
    ]
    }

    3.ls

    ls отображает список файлов в каталоге. Системные администраторы и разработчики выдают эту команду довольно часто. В пространстве контейнера эта команда может помочь определить каталог и файлы вашего образа контейнера. Помимо поиска файлов, ls может помочь вам проверить ваши разрешения. В приведенном ниже примере вы не можете запустить myapp из-за проблем с разрешениями. Когда вы проверяете разрешения с помощью ls -l , вы понимаете, что разрешения не имеют символа «x» в -rw-r - r-- , которые доступны только для чтения и записи.

      

    $ ./myapp
    bash: ./myapp: Permission denied
    $ ls -l myapp
    -rw-r - r--. 1 root root 33 21 июл 18:36 myapp

    4. хвост

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

    Параметр -f указывает параметр «следовать», который выводит строки журнала по мере их записи в файл. В примере есть фоновый сценарий, который обращается к конечной точке каждые несколько секунд, и в журнале записывается запрос. Вместо того, чтобы следить за журналом в реальном времени, вы также можете использовать tail , чтобы увидеть последние 100 строк файла с опцией -n .

       $ tail -n 100 / var / log / httpd / access_log   

    5.кошка

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

      

    $ cat requirements.txt
    flask
    flask_pymongo

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

    6. grep

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

      

    $ cat tomcat.log | grep org.apache.catalina.startup.Catalina.start
    01-июл-2017 18:03:47.542 INFO [main] org.apache.catalina.startup.Catalina.start Запуск сервера через 681 мс

    7. пс

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

      

    $ ps -ef
    UID PID PPID C STIME TTY TIME CMD
    root 1 0 2 18:55? 00:00:02 / docker-java-home / jre / bi
    root 59 0 0 18:55 pts / 0 00:00:00 / bin / sh
    root 75 59 0 18:57 pts / 0 00:00: 00 пс -ef

    Для большей разборчивости используйте ps и подключите его к grep .

      

    $ ps -ef | grep tomcat
    корень 1 0 1 18:55? 00:00:02 / докер-java-home / jre / bi

    8.env

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

      

    $ env
    PYTHON_PIP_VERSION = 9.0.1
    HOME = / root
    DB_NAME = test
    PATH = / usr / local / bin: / usr / local / sbin
    LANG = C.UTF-8
    PYTHON_VERSION = 3.4.6
    PWD = /
    DB_URI = mongodb: // база данных: 27017 / тест

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

    9. верх

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

      

    $ tail myapp.log
    Traceback (последний вызов последним):
    MemoryError

    Вашему приложению действительно не хватает памяти ? Для подтверждения используйте top , чтобы определить, сколько ЦП и памяти потребляет ваше приложение. При выдаче top вы замечаете, что приложение Python использует большую часть ЦП, с увеличением использования памяти, и подозреваете, что это ваше приложение. Во время его работы вы нажимаете клавишу «C», чтобы увидеть полную команду и выполнить обратный инжиниринг, если процесс является вашим приложением.Оказывается, это ваше приложение, интенсивно использующее память ( memeater.py ). Когда вашему приложению не хватает памяти, система завершает его с ошибкой нехватки памяти (OOM).

    Помимо проверки собственного приложения, вы можете использовать top для отладки других процессов, которые используют ЦП или память.

    10. netstat

    netstat показывает состояние сети. Эта команда показывает используемые сетевые порты и их входящие соединения. Тем не менее, netstat не входит в стандартную комплектацию Linux.Если вам нужно его установить, вы можете найти его в пакете net-tools . Как разработчик, который экспериментирует локально или отправляет приложение на хост, вы можете получить сообщение об ошибке, что порт уже выделен или адрес уже используется. Использование netstat с параметрами протокола, процесса и порта показывает, что HTTP-сервер Apache уже использует порт 80 на указанном ниже хосте.

    11. ip

    Если адрес ip не работает на вашем хосте, он должен быть установлен с пакетом iproute2 .Подкоманда адрес (или просто ip a для краткости) показывает интерфейсы и IP-адреса хоста вашего приложения. Вы используете IP-адрес для проверки IP-адреса вашего контейнера или хоста. Например, когда ваш контейнер подключен к двум сетям, IP-адрес может показать, какой интерфейс подключается к какой сети. Для простой проверки вы всегда можете использовать команду ip address , чтобы получить IP-адрес хоста. В приведенном ниже примере показано, что контейнер веб-уровня имеет IP-адрес 172.17.0.2 на интерфейсе eth0.

     

    $ ip address show eth0
    3: eth0: mtu 1500 qdisc noqueue state UP группа по умолчанию qlen 1000
    ссылка / эфир d4: 3b: 04: 9e: b2: c2 brd ff: ff : ff: ff: ff: ff
    inet 10.1.1.3/27 brd 10.1.1.31 область действия глобальный динамический noprefixroute eth0
    valid_lft 52072sec предпочтительный_lft 52072sec

    12. LSOF

    lsof перечисляет открытые файлы, связанные с вашим приложением. На некоторых образах компьютеров Linux вам необходимо установить lsof с пакетом lsof.В Linux практически любое взаимодействие с системой обрабатывается как файл. В результате, если ваше приложение записывает в файл или открывает сетевое соединение, lsof отразит это взаимодействие как файл. Подобно netstat , вы можете использовать lsof для проверки прослушивающих портов. Например, если вы хотите проверить, используется ли порт 80, используйте lsof , чтобы проверить, какой процесс его использует. Ниже вы можете видеть, что httpd (Apache) прослушивает порт 80. Вы также можете использовать lsof для проверки идентификатора процесса httpd, выясняя, где находится двоичный файл веб-сервера ( / usr / sbin / httpd ).

    Имя открытого файла в списке открытых файлов помогает точно определить источник процесса, в частности Apache.

    13. df

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

     

    $ df -h
    Размер используемой файловой системы Доступность Использование% Установлено на
    devtmpfs 7.7G 0 7.7G 0% / dev
    / dev / mapper / RHEL-Root 50G 16G 35G 31% /
    / dev / nvme0n1p2 3.0G 246M 2.8 G 9% / boot
    / dev / mapper / RHEL-Home 100G 88G 13G 88% / home
    / dev / nvme0n1p1 200M 9,4M 191M 5% / boot / efi
    / dev / sdb1 114G 55G 54G 51% / run / media / смокинг / красный

    Параметр -h позволяет распечатать информацию в удобочитаемом формате.По умолчанию, как в примере, df предоставляет результаты для всего, что находится в корневом каталоге, но вы также можете ограничить результаты, указав каталог как часть вашей команды (например, df -h / home ).

    14. du

    Чтобы получить более подробную информацию о том, какие файлы используют дисковое пространство в каталоге, вы можете использовать команду du . Если вы хотите узнать, какой журнал занимает больше всего места в каталоге / var / log , например, вы можете использовать du с опцией -h (для чтения человеком) и -s вариант для общего размера.

      

    $ du -sh / var / log / *
    1,8M / var / log / anaconda
    384K / var / log / audit
    4,0K /var/log/boot.log
    0 / var / log / chrony
    4.0K / var / log / cron
    4.0K / var / log / maillog
    64K / var / log / messages

    В приведенном выше примере показано, что самый большой каталог в / var / log - это / var / log / audit . Вы можете использовать du вместе с df , чтобы определить, что использует дисковое пространство на хосте вашего приложения.

    15. id

    Чтобы проверить пользователя, запускающего приложение, используйте команду id , чтобы вернуть идентификатор пользователя. В приведенном ниже примере Vagrant используется для тестирования приложения и изоляции его среды разработки. После входа в поле Vagrant, если вы попытаетесь установить HTTP-сервер Apache (зависимость), система сообщит, что вы не можете выполнить команду как root. Чтобы проверить своего пользователя и группу, введите команду id и обратите внимание, что вы работаете как «бродячий» пользователь в «бродячей» группе.

      

    $ dnf -y install httpd
    Загруженные плагины: fastestmirror
    Для выполнения этой команды вам необходимо быть пользователем root.
    $ id
    uid = 1000 (бродячий) gid = 1000 (бродячий) группы = 1000 (бродячий) context = unlimited_u: unlimited_r: unlimited_t: s0-s0: c0.c1023

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

    16. chmod

    При первом запуске двоичного файла приложения на хосте может появиться сообщение об ошибке «Отказано в разрешении."Как видно из примера для ls , вы можете проверить разрешения двоичного файла вашего приложения.

      

    $ ls -l
    итого 4
    -rw-rw-r--. 1 бродяга бродяга 34 11 июля 02:17 test.sh

    Это показывает, что у вас нет прав на выполнение (без «x») для запуска двоичного файла. c hmod может исправить разрешения, чтобы позволить пользователю запускать двоичный файл.

      

    $ chmod + x test.sh
    [vagrant @ localhost ~] $ ls -l
    итого 4
    -rwxrwxr-x.1 бродяга бродяга 34 11 июля 02:17 test.sh

    Как показано в примере, это обновляет разрешения правами выполнения. Теперь, когда вы пытаетесь выполнить свой двоичный файл, приложение не выдает ошибку отказа в разрешении. Chmod также может быть полезен при загрузке двоичного файла в контейнер. Это гарантирует, что ваш контейнер имеет правильные разрешения на выполнение вашего двоичного файла.

    17. Dig / nslookup

    Сервер доменных имен (DNS) помогает разрешить URL-адрес набору серверов приложений.Однако вы можете обнаружить, что URL-адрес не разрешается, что вызывает проблемы с подключением для вашего приложения. Например, предположим, что вы пытаетесь получить доступ к своей базе данных по URL-адресу mydatabase с хоста вашего приложения. Вместо этого вы получаете сообщение об ошибке «не удается устранить». Для устранения неполадок попробуйте использовать dig (служебная программа поиска DNS) или nslookup (запрос серверов имен в Интернете), чтобы выяснить, почему приложение не может разрешить базу данных.

      $ nslookup mydatabase 
    Сервер: 10.0,2,3
    Адрес: 10.0.2.3 # 53

    ** сервер не может найти мою базу данных: NXDOMAIN

    Использование nslookup показывает, что mydatabase не может быть разрешена. Попытка разрешить с помощью dig дает тот же результат.

      $ dig mydatabase 

    ; << >> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 << >> mydatabase
    ;; глобальные параметры: + cmd
    ;; время соединения истекло; нет доступа к серверам

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

    18. firewall-cmd

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

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

     

    $ sudo firewall-cmd --get-active-zone ''
    corp
    интерфейсы: ens0
    dmz
    интерфейсы: ens1

    В этом примере на вашем компьютере два сетевых устройства, одно из которых назначено зоне corp , а другое - зоне dmz .

    Чтобы узнать, что разрешено в каждой зоне, вы можете использовать параметр --list-all :

     

    $ sudo firewall-cmd --zone corp --list-all
    corp
    target: по умолчанию
    интерфейсы: ens0
    services: cockpit dhcpv6-client ssh
    ports:
    протоколы:
    [...]

    Добавить услуги так же просто:

     

    $ sudo firewall-cmd --add-service http --permanent
    $ sudo firewall-cmd --reload

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

    19. sestatus

    Обычно SELinux (модуль безопасности Linux) применяется на хосте приложения, управляемом предприятием. SELinux обеспечивает доступ с минимальными привилегиями к процессам, запущенным на хосте, предотвращая доступ потенциально вредоносных процессов к важным файлам в системе. В некоторых ситуациях приложению требуется доступ к определенному файлу, но это может вызвать ошибку. Чтобы проверить, не блокирует ли SELinux приложение, используйте tail и grep для поиска сообщения «отказано» в журнале / var / log / audit .В противном случае вы можете проверить, включен ли SELinux, используя sestatus .

      

    $ sestatus
    Статус SELinux: включен
    SELinuxfs mount: / sys / fs / selinux
    Корневой каталог SELinux: / etc / selinux
    Имя загруженной политики: целевой
    Текущий режим: принудительное применение
    Режим из файла конфигурации: принудительное применение политики
    MLS статус: включен
    Политика deny_unknown статус: разрешен
    Максимальная версия политики ядра: 28

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

    20. История

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

      

    $ история
    1 ясно
    2 df -h
    3 du

    Что делать, если вы хотите выполнить команду из своей предыдущей истории, но не хотите вводить ее повторно? Используйте ! перед номером команды для повторного выполнения.

    Команды

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

    Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    © 2019 Штирлиц Сеть печатных салонов в Перми

    Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.