Цель

Заметки ИТ которые я не хочу потерять

menu_navigation

Методичка по командам linux

Навигация

вывести файл в терминале
cat
узнать ОС и версию
cat /etc/*-release или cat /etc/issue
Список процессов
top
Список дисков
lsblk
Место на диске
df –h
Показать размер файлов в текущем каталоге
du -sh *
Перейти в корень
cd /
Перейти на один шаг назад
cd ..
Создать каталог в текущем каталоге
mkdir
Создать file
touch file
показать в каком каталоге находимся
pwd
Просмотр списка файлов в текущем каталоге
ls
Подробный список файлов в текущем каталоге
ls -l

Найти в нескольких папках картинки и удалить те, что старше 120 дней
find /var/www/owncloud/data/user*/files -iname "*.jpg" -type f -mtime +120 -exec rm -rf {} \;
Найти в каталоге директории с маской 2016 удалить эти каталоги включая содержимое
find ./free-sa/* -type d -name "*2016*" | xargs rm -dfR

Монтирование шары Windows в Linux, к примеру в /mnt/winshare
mount -t cifs -o username=,password= //ip-address/share /mnt/winshare
Также можно воспользоваться SFTP, подключиться по ssh к серверу с помощью wincsp или filezilla

Ubuntu, Debian

Установить пакет, например mc
apt-get install mc
обновить список пакетов
apt-get update
обновить все пакеты
apt-get upgrade
Удалить пакет
apt-get purge имя пакета
Список пакетов установленных в системе
dpkg --list
Поиск конкретных пакетов, например демонов syslog
dpkg --list | grep syslog
Перезагрузка сервера
reboot
Добавить ssh в автозагрузку
systemctl enable ssh

Настройка сети
Конфиг файл настройки сети находится в /etc/network/interfaces
В файле должно получиться что-то подобное
# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.5
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.254
        dns-nameservers 192.168.0.2 192.168.0.3
        dns-search domen.ru
Перезапуск службы сети
systemctl restart networkManager.service
или
service network-manager restart
или
/etc/init.d/networking restart
Проверить какие порты слушаются
netstat -tulpn
ss -tulpn

Проверить редактор текста по умолчанию
ls -l /etc/alternatives/editor
Сменить на необходимый (выбрать nano в списке предложенных к примеру)
update-alternatives --config editor

CentOS, Redhat

Установить пакет
yum install nano
обновить все пакеты
yum update
Удалить пакет
yum remove nano
Список пакетов установленных в системе
rpm -qa | less
Поиск конкретных пакетов, например демонов syslog
rpm -qa | grep syslog
или
yum list installed | grep php
сменить hostname (имя хоста)
hostnamectl set-hostname k8s-02-node07

systemctl restart systemd-hostnamed
Перезагрузка сервера
reboot

Проверить редактор текста по умолчанию
echo $EDITOR
Сменить на необходимый (nano к примеру)
export EDITOR=nano

Настройка сети
Конфиг файл настройки сети /etc/sysconfig/network-scripts/ifcfg-eth0
cd /etc/sysconfig/network-scripts
nano ifcfg-eth0
Меняем dhcp на static
Вбиваем address, netmask, gateway, dns-nameservers
Перезапуск службы сети
systemctl restart network
или
service network restart

Nano подсветка синтаксиса

Открываем файл nanorc в каталоге etc:
nano /usr/share/nano/sh.nanorc
и исправить строчку syntax "sh" на
syntax "sh" ".*|\.sh$|^\.bashrc|\.bash_login|\.bash_logout"

Время

установка ntp
yum install -y ntp
принудительная разовая синхронизация
ntpdate -u pool.ntp.org
добавить сервер для синхронизации времени
vi /etc/ntp.conf
server pool.ntp.org iburst
сменить тайм зону
timedatectl set-timezone Europe/Moscow
Принудительная корректировка времени (если закрыт 123 udp)
hwclock --set --date "mm/dd/yyyy hh:mm:ss"
синхронизация с системными часами
hwclock -s

Работа с архивами

Например чтобы запаковать текущую папку в tar-архив напишем
tar -cvvf test.tar ./
где test.tar имя которое будет присвоено полученному архиву, а "./" указание папки
А для распаковки этого архива
tar -xvvf test.tar

Работа с TAR/GZ и TAR/BZIP2
Tar-архив может быть дополнительно сжат одним из поддерживаемых архиваторов: gzip, bzip2
запаковать gzip в текущую папку
tar -cvvzf test.tar.gz ./
запаковать bzip2
tar -cvvjf test.tar.bz2 ./
распаковать запакованный gzip
tar -xvvzf test.tar.gz
распаковать запакованный bz2
tar -xvvjf test.tar.bz2

Работа с ZIP
Запаковать текущую папку в zip
zip -r test.zip ./
Распаковать архив .zip
unzip ./test.zip -d ./

Работа с многотомными архивами tar.gz
Запаковать содержимое папки /var/wwwв многотомный архив с размером тома 1024 Мб.
tar -czvf - /var/www/ | split -b 1024m - ./backup.tar.gz
(«-» после -czvf говорит tar'у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac ..., размер каждого 1024 Мб.
Склеить все части можно командой
cat backup.tar.gzaa backup.tar.gzab backup.tar.gzac > backup.tar.gz
Если все части архива находятся в одной папке, то команда для склеивания выглядит так:
cat backup.tar.* > backup.tar.gz

Работа с 7zip
Создание многотомного архива arch.7z папки test/
7z a -v100m arch.7z test/
в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 ..., размер каждого 100 Мб (опция -v100m).
Чтобы распаковать многотомный архив test.7z.001
7z x test.7z.001

Iptables

В centos
/etc/sysconfig/iptables
Проверить установлен ли
iptablesV
Установка правила по дефолту
# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

Расшифровка. Добавить правило (-А) в фильтр входящих соединений (INPUT), разрешающее (-j ACCEPT) любой трафик, поступающий на локальный интерфейс (-i lo). Локальный хост часто используется для размещения базы данных, к которой подключаются веб-сайт и почтовый сервер. Таким образом, сервер имеет доступ к базе данных, но взломать его через интернет нельзя.
iptables -A INPUT -i lo -j ACCEPT
Разрешить  устанавливать исходящие соединения
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Разрешить пинги
iptables -A INPUT -p icmp -j ACCEPT
Разрешить соединения для веб-сервера
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
Разрешить ssh
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

Просмотр списка правил IPTables
iptables -L
включить брандмауэр
chkconfig iptables on
сохранить введенные правила
service iptables save
рестарт службы
service iptables restart
сбросить все правила (если что-то пошло не так)
iptables –F

Firewalld

открыть порт 8080
firewall-cmd --zone=public --permanent --add-port=8080/tcp
перечитать правила
firewall-cmd reload
показать правила
firewall-cmd --list-all


Chmod, chown, chgrp

chmod – изменить права
chown – изменить владельца
chgrp – изменить группу пользователей
Вывод команды «ls –l» покажет подробную информацию о правах, файле, владельце и группе.
drw-r--r-- 14 root admins            4096 May  3  2016 folder
-rwxrw-r--  1 root admins            1024 May  3  2016 test.zip

«Символьное» назначением прав доступа
Разберем каждый элемент подробно:
Первый символ «d» означает каталог, файл обозначается как «-»
Следующими идут «тройки» прав «rwx» r-read, w-write, x-execute (право на выполнение).
Первая «тройка» - это права пользователя «u» - user
вторая – группа пользователей «g» - group
третья – все остальные – «o» - other.
«all» - объединяет всех пользователей
Дальше по порядку: владелец, группа, размер, дата, имя
Соответственно, чтобы дать права на выполнение группе admins на файл test.zip
chmod g+x test.zip
«+» - добавить права
«-» - отнять права
«=» - установить права(перезаписать)
Сменить владельца на user
chown user test.zip
Сменить группу на users
chgrp users test.zip
Можете изменить пользователя и группу одновременно
chown user:users test.zip

«Цифровое» синтаксис назначения прав доступа
У файла test.txt есть права:
-rwx r-x r-- test.txt
В таком случае, считаем как в двоичной системе:
«r»= «w»= «x»=1
«-»=0
получается
111 101 100
переводим по следующей таблице:
Права   Бинарное значение     Значение прав доступа
---           000                                        0
--x          001                                        1
-w-         010                                        2
-wx        011                                        3
r--           100                                        4
r-x          101                                        5
rw-         110                                        6
rwx        111                                        7
Для -rwx r-x r-- test.txt «цифровые» права соответствуют 754
Предоставим полные права на этот файл всем
chmod 777 test.txt

Users and groups

Список пользователей
cat /etc/passwd
или список пользователей без служебных учеток
cat /etc/passwd | grep 100
Список групп
cat /etc/group
создать пользователя
useradd valera
Указать пароль
passwd valera
добавить домашнюю папку с оболочкой баш
valera:x:1005:1005:,,,:/home/valera:/bin/bash
дать права владельца на домашнюю папку
chown -R valera:valera /home/valera
Удалить пользователя
userdel -r valera
Отключить пользователя (отключить домашнюю папку)
usermod -s /bin/false valera
в каких групах состоит пользователь
groups valera
создание новой группы
groupadd admins

Создать нового рута:
1.  добавить пользователя в группу sudo (ubuntu) или wheel (centos)
usermod -a -G wheel valera
2. Добавляем в /etc/sudoers строчку
user ALL=(ALL) ALL

удалить пользователя из группы
gpasswd -d valera admins
удалить группу
groupdel admins

Сменить пользователя
su user
Список залогиненых пользователей и сессий
who -ap
Ищем сессию (например, по времени авторизации), проверяем pid и убиваем по нему процесс
kill -9

Exim

Перечитать конфигурационный файл
exibuild
Перезапуск exim
/usr/local/etc/rc.d/*exim restart
Проверка что exim запустился
ps -ax | grep exim
Просмотр очереди exim
exim -bp | exiqsumm
Просмотр очереди exim c ID сообщения
exim -bp
Перезапуск всех очередей exim
exim -q -v
Просмотреть очередь указанного отправителя
exiqgrep -f  user@search.dom
Заблокировать все письма от указанного отправителя
exiqgrep -i -f luser@example.tld | xargs exim –Mf
Разблокировать замороженное сообщение по его ID
exim –Mt IDсообщения
Доставить письмо принудительно
exim -M IDсообщения
Просмотр заблокированных сообщений
exiqgrep -z
Удалить все заблокированные сообщения
exiqgrep -z -i | xargs exim –Mrm
Удалить все заблокированные сообщения конкретного отправителя
exiqgrep -i -f luser@example.tld | xargs exim –Mrm
Удалить конкретное сообщение в очереди по его ID
exim -Mrm «ID сообщения»
Обнулить блокировки для доменов, возникающие при ошибках отправки
cd /var/spool/exim/db
rm -f retry retry.lockfile
rm -f wait-remote_smtp wait-remote_smtp.lockfile
Тестирование маршрута доставки до указанного адреса:
exim -bt user@mail.ru
Просмотр сообщений конкретного отправителя
exiqgrep -f name@domain.com
Просмотр сообщений для конкретного получателя
exiqgrep -r name@domain.com
Поиск сообщений отправленных с определенного IP адреса:
exigrep '<= .* \[12.34.56.78\] ' /var/log/exim/mainlog
Поиск сообщений отправленных на определенный IP адрес:
exigrep '=> .* \[12.34.56.78\]' /var/log/exim/mainlog

Squid

service squid3 restart – рестарт службы                                           
squid3 -k reconfigure - перечитать cfg                или squid3 -k parse                                     
Пересоздать кэш:
service squid3 stop
rm -r /var/spool/squid3/*
squid -z                service squid3 start

Grep

Поиск текста «world» в файле «test.txt» и файле «test1.txt»
grep world test.txt test1.txt
Поиск слова или фразы во всех файлах каталога и его подкаталогах
grep -r “world is main” /usr/local/*
Опции
-r поиск текста в каталоге и всех подкаталогах
-i игнорировать регистр
-n дополнительно покажет номер строки, где находится искомый текст
-C 1 покажет искомый текст и по одной строке сверху и снизу от этого текста
Поиск файла в системе, т.е. по имени файла
ls | grep world
или
find /home -iname world*
Поиск файла по дате изменения
ls | grep May 13 2016
Поиск текста в файлах
grep -iR "log" /home
Удобная команда для поиска текста в логах
grep world -C 2 /usr/local/log
Поиск в архиве
grep -Z world test.gz
zipgrep world test.zip
bzfgrep world test.bz2

SELinux

Вывести правила связанные с сетью
getsebool -a | grep net
Разрешить подключаться к веб серверу по сети
setsebool -P httpd_can_network_connect on

LVM

Показать всю информацию по дискам (физические и логические)
fdisk -l
показать инфо о физических размеченных томах
pvdisplay
показать объединенные в группы физические тома
vgdisplay
показать логические тома
lvdisplay

Vi

a - перейти в режим редактирования
ESC - выйти из режима редактирования
:q - выйти из vi
:q! - выйти без сохранения
:wq - выйти с сохранением

Комментариев нет:

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