Системная информация
<box 100% left round|>
rch или 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
</box>
Команды Linux для управления сетью
Эти коды помогают настраивать Интернет и корректировать сетевые параметры в зависимости от пользовательских предпочтений.
Сетевые команды с примерами:
- «nethogs» отображает данные по расходу интернет-трафика;
- «ip» позволяет настроить сетевые параметры, демонстрирует наличие свободных портов. При включении дополнительных опций («show»/»help«) группирует в виде списка, формирует справку, подробный анализ;
- «ping» производит диагностику сетевых подключений и их качества. Делает отчёт по работе роутеров, модемов и т. д.;
- «tracerout» показывает скорость передачи данных и их подробный маршрут.
Диагностика сетевых подключений с помощью терминала
Используя консольные команды, даже новичок разберётся с тем, как пользоваться терминалом Linux. Не обязательно запоминать их все, достаточно просто использовать шпаргалку выше или переписать самые важные из них на лист бумаги. Данный справочник команд для консоли Linux заметно облегчит работу с этой операционной системой.
Как установить?
- Установка Linux рядом с Windows 10
- Установка двух Linux на компьютер
- Установка Ubuntu 16.04
- Установка Ubuntu 16.10
- Установка Debian 8.5 Jessie
- Установка ArchLinux 2016
- Установка Kubuntu 15.10
- Установка LinuxMint 18
- Установка ROSA Linux R6
- Установка OpenSUSE Leap 42.1
- Установка CentOS 7
- Установка Red Hat Enterprise 7
- Установка Linux Deepin 15.1
- Установка Manjaro Linux 15.12
- Установка Elementary OS Loki
- Установка Slackware 14.2
- Установка Tails
- Установка Linux Deepin 15
- Установка Mageia 5
- Установка PCLinuxOS
- Как установить SteamOS
- Установка fedora 24
- Установка AltLinux
- Как установить Puppy Linux
- Установка Zorin OS
- Установка Bodhi Linux
- Установка Calculate Linux
- Установка Tiny Core Linux
Немного про системный вызов fork()
Простыми словами системный вызов создает полный клон текущего процесса, отличаются они лишь своим идентификатором, т. е. .
Рассмотрим пример:
Что же произошло? Системный вызов создал клон процесса, т. е. теперь мы имеем родительский и дочерний процесс.
Чтобы отличить дочерний процесс от родительского в коде достаточно сделать проверку. Если результат функции равен — мы имеем дело с дочерним процессом, если нет — с родительским. Это не означает, что в операционной системе дочернего процесса равен .
Причем, порядок выполнения дочернего и родительского процесса ничем не задекларирован. Все будет зависеть от планировщика операционной системы. Поэтому в конце блока родительского процесса добавлена строчка , которая дожидается окончания дочернего процесса.
Мониторинг и отладка
<box 100% round left |>
top — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)ps -eafw — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)ps -e -o pid,args –forest — вывести PID’ы и процессы в виде дереваpstree — отобразить дерево процессовkill -9 98989 или kill -KILL 98989 — «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)kill -TERM 98989 — корректно завершить процесс с PID 98989kill -1 98989 или kill -HUP 98989 — заставить процесс с PID 98989 перепрочитать файл конфигурацииlsof -p 98989 — отобразить список файлов, открытых процессом с PID 98989lsof /home/user1 — отобразить список открытых файлов из директории /home/user1strace -c ls >/dev/null — вывести список системных вызовов, созданных и полученных процессом lsstrace -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 через SMARTsmartctl -i /dev/hda — проверить доступность SMART на жёстком диске /dev/hdatail /var/log/dmesg — вывести десять последних записей из журнала загрузки ядраtail /var/log/messages — вывести десять последних записей из системного журнала
</box>
Примеры использования
1. Простое использование команды tee
Команда ls -la нужна в Linux для показа списка файлов с описанием в текущем каталоге. Здесь команда tee используется для сохранения вывода ls -la в файл вывод.txt Введите следующие команды в терминале, чтобы проверить как работает команда tee.
Здесь первая команда показала вывод списка файлов в текущем каталоге в терминал и записала полученные данные в файл вывод.txt
Вторая команда показала содержимое файла вывод.txt
2. Добавление вывода в существующий файл
Если вывод любой команды записать в существующий файл с применением команды tee и операции -a, содержимое файла не будет перезаписано. Здесь вывод команды pwd будет добавлен в конец файла вывод.txt Запустите следующие команды с помощью терминала:
Здесь первая команда отображает вывод pwd в терминал и записывает вывод в конец файла вывод.txt Вторая команда используется для выделения вывода файла. Показано, что файл вывод.txt содержит оба результата: из предыдущего примера и из этого.
3. Запись вывода в несколько файлов
Команда tee может использоваться для вывода любой команды сразу в несколько файлов. Для этого необходимо указать имена файлов, разделив их пробелом. Используйте следующие команды для сохранения вывода date в два файла: вывод1.txt и вывод2.txt
Здесь первая команда выводит текущее системное время и сохраняет полученные результаты в два файла вывод1.txt и вывод2.txt Вторая команда показывает идентичное содержимое обоих файлов.
4. Игнорируем прерывание сигнала
Команда tee linux с опцией -i используется в этом примере, чтобы игнорировать любые прерывания во время ее выполнения. Таким образом, команда будет выполнена правильно, даже если пользователь нажимает CTRL+C. Выполните следующие команды в терминале.
Здесь первая команда считает количество строчек в файле вывод.txt и сохраняет полученный результат в файл вывод3.txt Вторая команда показывает содержимое файла вывод.txt, который содержит 37 строчек. Третья команда показывает содержимое файла вывод3.txt, в котором указано, что он действительно содержит 37 строчек.
5. Перенос вывода команды tee в другую команду
Вывод команды tee может быть перенесен в другую команду. В этом примере вывод из первой команды переносится в tee, а ее вывод — в другую команду. Запустите следующие команды в терминале:
Здесь первая команда используется для записи вывода ls в файл вывод4.txt и подсчета общего числа строк, слов и символов в файле вывод4.txt Вторая команда используется для отображения вывода команды ls, а третья — для отображения содержимого файла вывод4.txt
6. Команда tee и скрипты
Команда tee также может использоваться для записи вывода bash-скрипта в файл. Создайте bash-файл с приведенным кодом, который возьмет два входных числа из аргументов командной строки и выведет сумму этих чисел. Команда tee используется в этом примере для записи вывода add.sh в файл результат.txt
Запустите следующую команду в терминале для записи файла и отображения его содержимого.
Здесь числа 40 и 80 переносятся в качестве аргументов командной строки в скрипт add.sh и вывод записывается в файл результат.txt Команда cat выводит соответствующий результат.
7. Как скрыть вывод команды в терминале
Если вы хотите записать вывод прямо в файл и не показывать его в терминале, используйте /dev/null с командой tee. Для этого выполните следующие команды.
Здесь первая команда используется для записи вывода команды df в файл вывод5.txt, при этом вывод не показывается в терминале. Вторая команда показывает полученный результат.
Задачи
Раздел «Задачи» показывает статистику процессов, запущенных в вашей системе. «Общее» значение — это просто общее количество процессов. Например, на приведенном выше снимке экрана запущено 142 процесса. Чтобы понять остальные значения, нам нужно немного рассказать о том, как ядро Linux обрабатывает процессы.
Процессы выполняют смешанную работу, связанную с вводом / выводом (например, чтение дисков), и работу, связанную с ЦП (например, выполнение арифметических операций). Процессор простаивает, когда процесс выполняет ввод / вывод, поэтому ОС переключаются на выполнение других процессов в течение этого времени. Кроме того, ОС позволяет заданному процессу выполняться в течение очень небольшого промежутка времени, а затем переключается на другой процесс. Вот как ОС выглядят так, как если бы они были «многозадачными». Выполнение всего этого требует от нас отслеживания «состояния» процесса. В Linux процесс может находиться в следующих состояниях:
Runnable (R): процесс в этом состоянии либо выполняется на CPU, либо присутствует в очереди на выполнение, готовый к выполнению.
Прерываемый сон (S): процессы в этом состоянии ожидают завершения события.
Непрерывный сон (D): в этом случае процесс ожидает завершения операции ввода-вывода.
Остановлено (T): эти процессы были остановлены сигналом управления заданием (например, нажатием Ctrl + Z) или потому, что они отслеживаются.
Zombie (Z): ядро поддерживает различные структуры данных в памяти, чтобы отслеживать процессы. Процесс может создать несколько дочерних процессов, и они могут завершиться, пока родительский процесс еще существует. Однако эти структуры данных должны храниться до тех пор, пока родительский объект не получит статус дочерних процессов. Такие завершенные процессы, чьи структуры данных все еще существуют, называются зомби.
Процессы в состояниях D и S показаны в «спящем» режиме, а процессы в состоянии T — в «остановленном». Количество зомби показано как значение «зомби».
Microsoft Windows networks(SAMBA)
<box 100% round left|>
nbtscan ip_addrnmblookup -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-машине, в локальную файловую систему
</box>
Примеры поиска текста и файлов в Linux
grep -rl 'что_ищем' /путь #искать файлы рекурсивно с текстом #'что_ищем' по пути '/путь' less ~/Документы/http.txt | grep -A 2 'skype' #поиск по файлу ~/Документы/http.txt, #выведет строку совпадения + 2 следующие строки tail -f -n100 ~/logs/php-error.log #очень удобная фича для прочтения логов #в реальном времени выводит 100 последних строк файла find . -name "*.php" -mtime -1 -print #рекурсивный поиск файлов по паттерну (маске) '*.php' #которые изменялись за последние сутки find /var/www/ -mtime -10 #поиск файлов которые были изменены за последние 10 дней find /var/www/ -mtime -10 > filename.txt #записать вывод в файл find . -perm 777 | xargs rm #найти все файлы с правами 777 и удалить их find . -name cache | xargs chmod -R 777 #найти каталог cache и задать ему права 777
Выполнить куски кода в командной строке (php, python):
php -r "var_dump(strlen('hello'));" python -c "print('hello');"
Команды Linux окружения пользователя
29. su / sudo
Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы.
30. date
В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.
31. alias
Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить.
32. uname
Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.
33. uptime
Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.
34. sleep
Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.
IPTABLES (firewall)
<box 100% round left |>
iptables -t filter -nLiptables -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 — перенаправление пакетов, адресованных одному хосту, на другой хост
</box>
Часть 4. Главный цикл командной оболочки
Здесь и происходит вся магия. Взгляните на следующие строки. С помощью функции задаются callback функции на заданные события.
Событие — срабатывает при нажатии комбинации , которое в дефолтном поведении завершает работу программы. В нашем же случае мы переназначаем его на завершение foreground процесса.
Событие — срабатывает при завершении дочернего процесса созданyого с помощью системного вызова . В нашем случае мы переопределяем его на пометку фоновой задачи как выполненной с помощью функции .
Все что описано в главном цикле командной оболочки можно описать словами:
-
Вывод информации о пользователе и текущей директории с помощью функции
-
Чтение строки из стандартного потока ввода
-
Разбиение строки на токены
-
Выполнение ранее описанной функции , которая в зависимости от массива токенов выполняет нужное нам действие.
Нам осталось реализовать одну оставшуюся функцию . Которая получает информацию о текущей директории с помощью функции и имя пользователя с помощью функции .
Использование процессора
Раздел использования ЦП показывает процент времени, затраченного ЦП на различные задачи. us Значение времени ЦП проводит выполняющиеся процессы в пользовательском пространстве. Точно так же sy значение — это время, потраченное на запуск процессов в пространстве ядра.
Linux использует «хорошее» значение для определения приоритета процесса. Процесс с высоким «хорошим» значением «приятнее» другим процессам и имеет низкий приоритет. Аналогично, процессы с более низким значением «nice» получают более высокий приоритет. Как мы увидим позже, «хорошее» значение по умолчанию может быть изменено. Время, затраченное на выполнение процессов с установленным вручную «nice», отображается в качестве niзначения.
Затем следует idвремя, в течение которого процессор остается бездействующим. Большинство операционных систем переводят ЦП в режим энергосбережения, когда он находится в режиме ожидания. Далее следует waзначение, которое время ЦП тратит на ожидание завершения ввода-вывода.
Прерывания — это сигналы для процессора о событии, которое требует немедленного внимания. Аппаратные прерывания обычно используются периферийными устройствами, чтобы сообщить системе о событиях, таких как нажатие клавиш на клавиатуре. С другой стороны, программные прерывания генерируются из-за определенных инструкций, выполняемых на процессоре. В любом случае ОС обрабатывает их, и время, затрачиваемое на обработку аппаратных и программных прерываний, задается hiи siсоответственно.
В виртуализированной среде часть ресурсов ЦП предоставляется каждой виртуальной машине (ВМ). ОС определяет, когда у нее есть работа, но она не может выполнить ее, потому что ЦП занят на другой виртуальной машине. Количество времени, потерянное таким образом, является временем «кражи», обозначенным как st.
Способ 3: редактор базы данных
- Открываем редактор базы данных. Наиболее оптимальный вариант – нажимаем клавиши «Win R», пишем команду .
Переходим в следующий раздел:.
Создаем «Строковый параметр», название которого приравнивается к адресу местоположения элемента, в котором необходимо отключить функционал DEP, значение присваиваем – .
Включения работы DEP: запускаем интерпретатор команд Виндовс 7, и в нём вводим команду:Bcdedit.exe/set{current} nx OptInДальше перезапускаем ПК.
При выполнении данных несложных действий при помощи командной строки или настройки системы/реестра отключается функция DEP в Виндовс 7. Представляет ли опасность отключение функционала DEP? Чаще всего — нет, если программа, для которой происходит это действие, с официального ресурса, то это не опасно. В других случаях есть опасность заражения вирусным ПО.
Справка
Параметр help
Большинство команд имеют параметр , при помощи которого выводится короткое сообщение о том, как использовать указанную команду:
Команда man
Почти все команды в Linux распространяются вместе с man-страницами (от англ. «manual») — документацией, которая объясняет, что делает команда, приводит примеры того, как следует применять команду и какие параметры и опции она поддерживает.
Команда man применяется для отображения страницы руководства по заданной команде:
Например, чтобы открыть главную страницу справки по команде , вы должны ввести:
Для навигации по справочным страницам используйте клавиши со стрелочками вверх и вниз. Также вы можете нажать:
клавишу для перемещения на одну строку за раз;
клавишу (Пробел) для перехода к следующему экрану;
клавишу для возврата на один экран назад;
клавишу для выхода из справочной страницы.
Команда history
Если вы используете Linux в течение определенного периода времени, вы быстро заметите, что можете выполнять десятки (если не сотни) команд каждый день. Таким образом, запуск команды history особенно полезен, если вы хотите просмотреть ранее введенные команды:
Команда whereis
Команда whereis отображает полный путь к исполняемому файлу программы (или к исходным файлам, если они присутствуют в системе). Например:
Результат:
Дополнительно
Команда clear используется для очистки терминала, если он загроможден слишком большим количеством данных от прошлых команд
Нажатие на клавишу TAB (табуляция) приведет к автоматическому дополнению того, что вы в данный момент набираете в терминале. Например, если вам нужно перейти в папку Documents, то начните вводить команду , а затем нажмите на клавишу TAB и терминал автоматически дополнит команду до .
Сочетания клавиш:
— останавливает и завершает команду;
— ставит выполнение команды на паузу;
— временно приостанавливает вывод информации в терминал;
— продолжает вывод информации в терминал;
— перемещает вас в начало строки;
— перемещает вас в конец строки.
Вы можете запускать несколько команд в одной строке, отделяя их с помощью символа , например:
Если вместо использовать , то следующая команда выполнится только после успешного выполнения предыдущей.
Отключение dep для windows 7 и windows 8.1
Когда функция, останавливающая исполнение кода,нарушает работу в системе, то отключают ее действие в отношении всех установленных ПО. Выключение проводят в качестве администратора в командной строке.
Чтобы в Windows 7 отключить depвыполняется ряд операций:
- В меню «пуск» выбирается раздел «Программы и файлы» и через строку поиска находится командная строка набором латинских букв cmd. В контексте подтверждается включениечерез администратора.
- При появлении запроса вводится пароль.
- В окне интерпретатора операционной системы латинскими буквами пропечатывается bcdedit.exe /set {current} nxAlwaysOff. Выполнение команды подтверждается клавишей «Enter».
При правильном выполнении действий после веденого текста команды высвечивается сообщение об успешном завершении операции
В завершение окно с изменениями и закрывается и перезагружается компьютер.
Чтобы в последующем включить dep на Windows 7, по аналогичному алгоритму вносятся изменения в командной строке, но при этом взаменAlwaysOn пропечатывается AlwaysOff. После перезагрузки функция будет работать в обычном режиме.
Подобные операции выполняют, когда нужноотключить dep в Windows 8 или 8.1. Только в отличие от седьмой версии, чтобы открыть командную строку в восьмерке применяют команду «выполнить», открытую через меню «пуск» или нажатием Win R. В пустой строке открыть вручную набирают задачу cmd и подтверждают выбор.
Важно обратить внимание на то, что если на компьютере установлена версия XP, то придерживаться подобной инструкции не получиться. Чтобы отключить depв Windowsxpдля всей системы, требуется редактирование файла boot.ini, расположенного в содержании загрузочного диска