Mail — unix, linux command

Основные сигналы

Следующие сигналы являются частью стандарта POSIX. Каждый сигнал макрос, определенный в <signals.h> Файл заголовка системы. Они, как правило, сокращенны, без их SIG- префикса; например SIGHUP часто называют просто как HUP.

SIGTERM –  Этот сигнал запрашивает остановку процесса который работает. Этот сигнал может быть проигнорирован.Процессу дается время, чтобы хорошо выключился. Когда программа хорошо выключается, это означает, что ей дано время, чтобы спасти его прогресс и освободить ресурсы. Другими словами, он не «forced» прекращение работы процесса.

SIGKILL –  сигнал SIGKILL заставляет процесс прекратить выполнение своей работы немедленно. Программа не может игнорировать этот сигнал. Несохраненный прогресс будет потерян.

Синтаксис для  «kill».

Синтаксис команды такой:

# kill  PID(s)

или

# kill   %pid

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

# kill SIGKILL PID

Или

# kill -9 PID

где «-9» — это флаг относится к сигналу SIGKILL.

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

$ ps -aux

А если знаете конкретное приложение (например apache), то можно отсеять ненужное и вывести все процессы по данной службе:

$ ps -aux | grep apache

И это отобразит все запущенные приложения вместе с его PID-ом(ами).

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

# kill -9 3629

Стоит также отметить, что вы можете использовать несколько процессов одновременно чтобы их можно было » убить»:

# kill -9 PID1 PID2 PID 3

Перезагурзить конфигурационные файлы или перезапуск утилит:

# kill -1 number_of_PID

Особенно полезными сигналы включают HUP, INT, kill, STOP, CONT, и 0.

Варианты таковы:

-s signal_name
Символическое имя сигнала, задающее сигнал для отправки сигнала не по умолчанию.

-l
Если операнд не указан,  то показать имена сигналов; В противном случае, написать название сигнала, соответствующего exit_status.

-signal_name
Символическое имя сигнала, задающее сигнал для отправки в TERM по умолчанию.

-signal_number
Неотрицательное десятичное целое, задающее сигнал для отправки в TERM по умолчанию.

Следующие PID-ы, имеют особое значение:-1 Если суперпользователь, то транслирует сигнал всем процессам;  в противном случае вещает на все процессыbelong-
ing для пользователя.

Некоторые из наиболее часто используемых сигналов:

  • 1 HUP (hang up) — повесить.
  • 2 INT (interrupt) — прерывание.
  • 3 QUIT (quit) — выход.
  • 6 ABRT (abort) — прерывания.
  • 9 KILL (non-catchable, non-ignorable kill)
  • 14 ALRM (alarm clock) — будильник.
  • 15 TERM (software termination signal) — Программное обеспечение для прекращения сигнала.

PKill

Команда «pkill» позволяет использовать расширенные шаблоны регулярных выражений и других критериев соответствия. Вместо того чтобы использовать PID, теперь вы можете убить приложение, введя имя процесса. Например, чтобы убитьбраузер Firefox , просто запустите команду:

# pkill Firefox

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

# pkill fire

Чтобы избежать «убийства» неправильных процессов, вы можете сделать «pgrep -l » в список подходящих процессов.

Pkill команда имеет гораздо больше вариантов, например если указать опцию «-u», то она позволит вам указать имя пользователя или ID. В этом примере мы посылаем сигнал TERM всем процессам, принадлежащие пользователю ‘nobody’:

# pkill -u nobody

Killall

Killall использует имя процесса, а вместо PID, и он «убивает» все экземпляры процесса с тем же именем. Например, если вы используете несколько экземпляров браузера Firefox, вы можете убить их всех с помощью команды:

# killall firefox

В Gnome, вы можете перезапустить Nautilus с помощью команды:

# killall nautilus

xkill

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

Параметры для работы с командой dd

В довольно большой набор дополнительных параметров для конфигурации настроек. Мы рассмотрим основные из них:

  • — Установить размер блока (), который система будет считывать. Оптимально использовать 4–8 MB;
  • — Установить, сколько байт нужно записывать за один раз;
  • — Выбрать определенное число блоков для копирования. А чтобы обозначить их размер, подключают -опцию.
  • — обозначить сколько байт нужно считать за раз. По умолчанию — 512 байт.
  • — Обозначить сколько байт нужно записать за раз. По умолчанию — 512 байт.
  • — Пропустить определенное количество байт в начале вывода;
  • — Пропустить определенное количество байт в начале ввода;
  • — Параметр, чтобы преобразовать файл. Параметр имеет собственные параметры. С их помощью, например, можно конвертировать систему кодов ASCII в EBCDIC и наоборот. В таблице указаны основные способы конвертации файлов.
Параметр Действие
Заменить буквы верхнего регистра на нижний
Заменить буквы нижнего регистра на верхний
Не создавать выходной файл
Игнорировать ошибки ввода-вывода
Поменять местами каждую пару байтов ввода
Записывает данные выходного файла до окончания процесса
Аналогично , но еще записываются метаданные
Не обрезать выходной файл

Назначение команды dd

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

Using the Swaks Command

The swaks command is flexible, scriptable and a simple SMTP test utility. Very useful in handling SMTP features like the TLS and authentications.

To install swaks in Debian/ Ubuntu Systems run

sudo apt-get install swaks

1 sudo apt-get install swaks

To install swaks in RedHat / CentOS Systems run

yum install swaks

1 yum install swaks

A simple implementation of the swaks command is to use the following flags:

  • Server –s
  • The user –au
  • The password –ap
  • The address of the recipient
  • The –tls is necessary if you are connecting to port 587

1
2

#swaks —to recipient@emailaddress.com -s smtp.gmail.com:587

-tls-au-ap

DESCRIPTION

mailed

The options are as follows:

-a

Specify additional header fields on the command line such as «X-Loop:
foo@bar» etc. You have to use quotes if the string contains spaces.
This argument may be specified more than once, the headers will then
be concatenated.

-b bcc-addr

Send blind carbon copies to
bcc-addr

-c cc-addr

Send carbon copies to
list
of users.
cc-addr

should be a comma separated list of names.

-d

Causes
mail

to output all sorts of information useful for debugging
mail

-E

Don’t send messages with an empty body.

-f

if no
file

is specified.
When quit,
mail

writes undeleted messages back to this
file

-I

Forces
mail

to run in interactive mode, even when input is not a terminal.
In particular, the special
~

command character, used when sending mail, is only available interactively.

-i

Ignore tty interrupt signals.
This is
particularly useful when using
mail

on noisy phone lines.

-N

Inhibits initial display of message headers
when reading mail or editing a mail folder.

-n

Inhibits reading
/etc/mail.rc

upon startup.

-s subject

Specify subject on command line
(only the first argument after the
s

flag is used as a subject; be careful to quote subjects
containing spaces).

-u user

Equivalent to:

except that locking is done.

-v

Verbose mode.
The details of
delivery are displayed on the user’s terminal.

Specifying messages

printdeletedelete 1 2delete 1-5

Messages may also be selected using one of the following categories:

*

all messages

$

last message

:d

deleted messages

:n

new messages

:o

old messages

:r

read messages

:u

unread messages

Thus the command
top

which prints the first few lines of a message,
could be used in
top

to print the first few lines of all messages.
 

Recipient address specifications

expandaddr

An address may be expanded as follows:

An address that starts with a pipe
(`|’

)

character is treated as a command to run.
The command immediately following the
`|’

is executed with the message as its standard input.

An address that starts with a
`+’

character is treated as a folder.

An address that contains a
`/’

character but no
`!’

,
`%’

,
or
`@’

characters is also treated as a folder.

If none of the above apply, the recipient is treated as
a local or network mail address.

If the
expandaddr

option is not set (the default), no expansion is performed and
the recipient is treated as a local or network mail address.
 

Network mail (ARPA, UUCP, Berknet)

mailaddr

mail

has a number of options which can be set in the
.mailrc

file to alter its behavior; thus
set askcc

enables the
askcc

feature.
(These options are summarized below.)
 

Отправка почты

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

Пользователи Debian/Ubuntu могут воспользоваться командой apt-get:

# apt-get install mailutils

Пользователи Fedora / CentOS / Red Hat Enterprise Linux (RHEL) могут сделать это с помощью yum:

# yum install mailutils

Теперь команда mail должна быть готова к работе.

Выполните приведенную ниже команду, заменив «user@yourmaildomain.com» на свой адрес электронной почты. Опция s задает тему письма.

$ mail -s "Hello World" user@yourmaildomain.com

Теперь вы можете вводить текст письма. Когда закончите, нажмите «control-D» в начале новой строки.

# mail -s "This is the subject" m00n.silv3r@gmail.com
Cc: 
Hi Silver
How are you doing
Hope its going fine.
Bye

Вы отправили первое письмо из командной строки. Содержимое письма можно вставить из файла.
В некоторых дистрибутивах командная оболочка сначала запросит в интерактивном режиме ввод других полей, таких как «Cc» (Carbon copy). Просто нажимайте «Enter», чтобы пропустить этот этап. Когда вы введете адрес или адреса электронной почты, необходимо нажать «Enter», чтобы перейти на новую строку, к телу письма.
После нажатия Ctrl+D вы возвращаетесь в командную строку без каких либо дополнительных оповещений. Однако ваше письмо было отправлено.
Интересно, что если вы ничего не введете в теле письма и нажмете Ctrl+D, команда mail отреагирует на это:

# mail -s "This is the subject" m00n.silv3r@gmail.com
Cc: 
Null message body; hope that's ok

Если тело письма хранится у нас в отдельном файле, мы можем напрямую использовать его для отправки письма. Это полезно при вызове команды mail из скриптов, или других программ, написанных, например, на perl или php.

$ mail -s "Hello World" user@yourmaildomain.com < /home/user/mailcontent.txt

Или быстрая отправка письма одной строкой:

# echo "This is the message body" | mail -s "This is the subject" m00n.silv3r@gmail.com

Другие полезные параметры команды mail:

Ниже пример использования этих опций:

$ mail -s "Hello World" user@yourmaildomain.com -c usertocc@yourmaildomain.com -b usertobcc@yourmaildomain.com

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

$ mail -s "Hello World" user1@yourmaildomain.com,user2@yourmaildomain.com

Указать адрес отправителя тоже несложно, но здесь есть своя хитрость. После отправляемого письма необходимо добавить перед своим адресом следующую последовательность символов:

(двойное тире) (пробел) (одинарное тире) (без пробела) f

Ниже пример:

$ mail -s "Hello World" user@yourmaildomain.com -- -f from_user@yourmaildomain.com

Однако приведенная выше последовательность может работать в centos, но не в debian или ubuntu. В этих системах используется альтернативный синтаксис:

# echo "This is the message body" | mail -s "This is the subject" m00n.silv3r@gmail.com -aFrom:blog@binarytides.com

Опция a в целом добавляет дополнительные заголовки. Чтобы задать с ее помощью отправителя, используется следующий синтаксис:

# echo "This is the message body" | mail -s "This is the subject" m00n.silv3r@gmail.com -aFrom:Blogger\<blog@binarytides.com\>

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

Команда tr и ее синтаксис

Ниже приведен синтаксис команды tr. Требуется, как минимум, два набора символов и опции.

tr  "SET1" "SET2"

SET1 и SET2 это группы символов. are a group of characters. Необходимо перечислить необходимые символы или указать последовательность.

-> восмеричные (OCT) символы NNN (1 до 3 цифр)

-> обратный слеш (экранированный)

-> новая строка (new line)

-> перенос строки (return)

-> табуляция (horizontal tab)

-> все буквы и цифры

-> все буквы

-> все пробелы

-> все управляющие символы (control)

-> все цифры

-> все буквы в нижнем регистре (строчные)

-> все буквы в верхнем регистре (заглавные)

Примеры использования команды tr:

echo "something to translate" | tr  "SET1" "SET2"
tr "SET1" "SET2" < file-to-translate
tr "SET1" "SET2" < file-to-translate > file-output

Вот некоторые опции:

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

Команды Linux, связанные с процессом

Эти команды используются для обработки процессов Linux

55. ps

Команда Linux ps — это встроенный инструмент для отслеживания текущих процессов в системе. Он будет фиксировать состояние системы за один раз.

56. pmap

Команда pmap отображает карту использования памяти процесса или нескольких процессов. Pmap сообщает информацию об адресном пространстве или карте использования памяти процесса.

57. top

Команда top в Linux отображает запущенные процессы в системе. Эта команда широко используется для мониторинга нагрузки на сервер.

58. kill

Команда kill используется в Linux и других Unix-подобных операционных системах для завершения процессов без необходимости выхода из системы или перезагрузки компьютера.

59. killall

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

60. pkill

Аналогично команде killall, pkill посылает сигнал для завершения процесса с его именем. Начиная с Centos 7 рекомендуется использовать pkill.

61. fg и bg

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

Команда chgrp Linux

Стандарт прав файлов пришёл в Linux из Unix. У каждого файла есть владелец (user) и группа (group), помимо этого описываются права остальных пользователей (other). Права состоят из трёх пунктов: чтение (read), запись (write), выполнение (execute). Для изменения прав используется команда umask, но для изменения непосредственно владельца и группы используются команды chown и chgrp. Для просмотра текущих прав можно использовать команду ls.

Синтаксис и опции chgrp

Общий вид команды chgrp:

$ chgrp новая_группа имя_файла

Список распространённых параметров команды chgrp:

  • -h – работать непосредственно с самими символьными ссылками, а не с файлами, на которые они ссылаются;
  • —dereference – работать с файлами, а не самими символьными ссылками. Используется по умолчанию;
  • -R – рекурсивная обработка каталога со всем его содержимым;
  • -H – перейти по символической ссылке и изменить атрибуты файла/каталога. Сама ссылка остаётся без изменений. Используется вместе с параметром -R;
  • -L — перейти по символической ссылке и продолжить рекурсивную обработку. Сама ссылка остаётся без изменений. Используется вместе с параметром -R;
  • -P – при встрече с символьной ссылкой обрабатывать только её. Используется вместе с параметром -R, является значением по умолчанию;
  • —reference=имя_образца – использовать группу образца. Используется вместо новая_группа;
  • -c – при обработке выводить только изменения;
  • -v – выводить информацию о каждом обработанном файле.

Использование команды chgrp

Рассмотрим сразу несколько случаев использования, с реальным файлом и каталогом, а затем с символическими ссылками на них. Простейший пример использования команды chgrp без параметров. Следующая команда меняет группу на www-data для файла file в текущей папке:

А эта меняет группу на www-data для папки folder:

С реальными файлами и каталогами команда работает весьма предсказуемо, меняя их группу. Файлы в папке остаются неизменными. Если же обрабатывать символические ссылки, то их атрибуты останутся неизменными, а файлы получат новую группу. Такое поведение аналогично работе с параметром —dereference. Например, эти команды, применённые к символическим ссылкам, отработают как показано на снимке:

Теперь посмотрим на то, как будет работать параметр -h, меняющий атрибуты символической ссылки:

С параметром -h изменились только атрибуты ссылок, а не сами файлы. Теперь рассмотрим работу c параметром -R, предназначенным для рекурсивной обработки каталогов:

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

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

Чтобы увидеть разницу между параметрами -H и -L, рассмотрим ещё пару примеров. Напомним, что их надо использовать совместно с параметром -R:

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

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

Обращаем ваше внимание на то, что параметры -H и -L использовать небезопасно, они могут дойти до системных файлов

Mail Options

set unset

Tag Description
append
  Causes messages saved in
mbox
to be appended to the end rather than prepended.
This should always be set (perhaps in
/etc/mail.rc).
ask, asksub
  Causes
mail
to prompt you for the subject of each message you send.
If
you respond with simply a newline, no subject field will be sent.
askcc Causes you to be prompted for additional carbon copy recipients at the
end of each message.
Responding with a newline indicates your
satisfaction with the current list.
askbcc
  Causes you to be prompted for additional blind carbon copy recipients at the
end of each message.
Responding with a newline indicates your
satisfaction with the current list.
autoprint
  Causes the
delete
command to behave like
dp
— thus, after deleting a message, the next one will be typed
automatically.
debug Setting the binary option
debug
is the same as specifying
d
on the command line and causes
mail
to output all sorts of information useful for debugging
mail.
dot The binary option
dot
causes
mail
to interpret a period alone on a line as the terminator
of a message you are sending.
hold This option is used to hold messages in the system mailbox
by default.
ignore
  Causes interrupt signals from your terminal to be ignored and echoed as
@s.
ignoreeof
  An option related to
dot
is
ignoreeof
which makes
mail
refuse to accept a control-d as the end of a message.
Ignoreeof
also applies to
mail
command mode.
metoo Usually, when a group is expanded that contains the sender, the sender
is removed from the expansion.
Setting this option causes the sender
to be included in the group.
noheader
  Setting the option
noheader
is the same as giving the
N
flag on the command line.
nosave
  Normally, when you abort a message with two
RUBOUT
(erase or delete)
mail
copies the partial letter to the file
«dead.letter»
in your home directory.
Setting the binary option
nosave
prevents this.
Replyall
  Reverses the sense of
reply
and
Reply
commands.
quiet Suppresses the printing of the version when first invoked.
searchheaders
  If this option is set, then a message-list specifier in the form /x:y
will expand to all messages containing the substring y in the header
field x. The string search is case insensitive.
verbose
  Setting the option
verbose
is the same as using the
v
flag on the command line.
When mail runs in verbose mode,
the actual delivery of messages is displayed on the users
terminal.

Отправка писем из скриптов bash/shell

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

#!/bin/bash
du -sh | mail -s "disk usage report" user@yourmaildomain.com

Откройте новый файл, вставьте в него приведенные выше строки, сохраните и запустите. Вы получите письмо, содержащее вывод команды «du -sh».
И последняя хитрость в письмах из командной сроки — добавление вложений к письмам, отправляемым из скриптов. Предположим, вам необходимо сделать резервную копию директории с конфигурационными файлами, заархивировать ее и отправить в качестве вложения с помощью mutt:

#!/bin/bash
tar -zcf /home/user/backup.tar.gz /home/user/files_to_backup
echo "Archived configuration files" | mutt -a /home/user/backup.tar.gz -s "backup data" user@yourmaildomain.com

Команда echo в начале третьей строки добавляет текст «Archived configuration files» в тело письма.

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

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

33. ls

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

34. pwd

Linux pwd — это команда для показывает имя текущего рабочего каталога. Когда мы теряемся в каталогах, мы всегда можем показать, где мы находимся.

Пример ример ниже:

35. mkdir

В Linux мы можем использовать команду mkdir для создания каталога.

По умолчанию, запустив mkdir без какой-либо опции, он создаст каталог в текущем каталоге.

36. cat

Мы используем команду cat в основном для просмотра содержимого, объединения и перенаправления выходных файлов. Самый простой способ использовать cat— это просто ввести » имя_файла cat’.

В следующих примерах команды cat отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.

37. rm

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

38. cp

Команда Cp используется в Linux для создания копий файлов и каталогов.

Следующая команда скопирует файл ‘myfile.txt» из текущего каталога в «/home/linkedin/office«.

39. mv

Когда вы хотите переместить файлы из одного места в другое и не хотите их дублировать, требуется использовать команду mv. Подробнее можно прочитать ЗДЕСЬ.

40.cd

Команда Cd используется для изменения текущего рабочего каталога пользователя в Linux и других Unix-подобных операционных системах.

41. Ln

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

Команда Ln использует следующий синтаксис:

42. touch

Команда Touch используется в Linux для изменения времени доступа к файлам и их модификации. Мы можем использовать команду touch для создания пустого файла.

44. head

Команда head используется для печати первых нескольких строк текстового файла. По умолчанию команда head выводит первые 10 строк каждого файла.

45. tail

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

46. gpg

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

50. uniq

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

53. tee

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

54. tr

Команда tr (translate) используется в Linux в основном для перевода и удаления символов. Его можно использовать для преобразования прописных букв в строчные, сжатия повторяющихся символов и удаления символов.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: