Отобразить список процессов
ps -ef
Освободить занятый порт
Сначала выполнить fuser -vn tcp номер_порта после чего можно узнать PID номер процесса, затем командой kill -9 PID_номер_процесса уничтожаем процесс, после этого порт должен быть свободен.
Посмотреть список сетевых интерфейсов CentOs 7.9
nmcli device или nmcli device status - обе команды выводят одинаковую информацию, а именно 4 поля для каждого соединения: DEVICE(например enp0s3), TYPE(например ethernet), STATE(например connected), CONNECTION(например enp0s3).
Так же некоторые настройки сетевых соединений можно посмотреть в визуальном редакторе который называется NetworkManager TUI который можно вызвать командой nmtui.
Ещё есть команда nmcli con, она выводит 4 подя для каждого сетевого адаптера: 1)NAME(например: eth0); 2)UUID; 3)TYP(например: ethernet)E; 4)DEVICE(например: eth0).
Изменить IP-адрес сетевого адаптера
Для изменения ip адреса сетевого адаптера можно например выполнить команду: ip a add 192.168.0.10/24 dev eth0 - она изменит текущий IP адрес и маску подсети сетевого адаптера eth0. Обратите внимание, что данная настройка не будет действовать после перезагрузки операционной системы, для того чтобы настройка применялась на постоянной основе в CentOs 7 например для адаптера eth0 необходимо отредактировать файл ifcfg-eth0 например написать в нём следующее:
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR=192.168.0.10
NETMASK=255.255.255.0
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
Кроме того при необходимости в файл ifcfg-eth0 можно добавить параметры например такие как: GATEWAY, DNS1, DNS2. Так же про настройку сетевого адаптера в CentOs 7 рассказано в видео по следующей ссылке: https://www.youtube.com/watch?v=RtEVOBrw_Uo.
Монтирование физического hdd в CentOs 7
Для начала посмотрть информацию о подключённых дисках и разделах на них можно выполнив команду: lsblk --fs. Данная команда выводит следующие поля: 1)NAME(например: sda1); 2)FSTYPE(например: ext4); 3)LABEL; 4)UUID; 5)MOUNTPOINT(например: /boot).
Если к примеру hdd, который планируется примонтировать к файловой системе называется sdb и соответственно раздел который планируется примонтировать называется sdb1 то для того чтобы к примеру примонтировать этот раздел к дирректории /mnt/testsdb1/ можно выполнить команду: mount -o defaults /dev/sdb1 /mnt/testsdb1. Обратите внимание что после перезагрузки операционной системы дирректория из примера в этом абзаце автоматически примонтирована не будет и если в ней по-прежнему есть необходимость, то можно или повторно выполнить команду или добавить в файл /etc/fstab строку следующего содержания: UUID=00000000-0000-0000-0000-000000000000 /mnt/testsdb1 ext4 defaults 0 0, в этой строке UUID замените на UUID соответствующего раздела, который возвратила команда lsblk --fs. После добавления строки при загрузке операционной системы раздел автоматически будет монтироваться к дирректории.
Монтирование дирректории с удалённого сервера по ssh к директории CentOs 7
Для монтирования дирректории с удалённого сервера по ssh к дирректории в CentOs 7 может быть использована команда sshfs. Если на данная команда не доступна на серере, можно установить необходимое программное обеспечение командой: yum install sshfs. Если к примеру планируется примонтировать директорию /var/www/ с сервера test.ivru.net к дирректории /var/remotewww при этом доступ к удалённому серверу будет осуществляться от имени пользователя root для начала можно создать нужную директорию, для этого можно выполнить последовательность команд cd /var, затем выполнить команду mkdir remotewww, после того как директория создана можно выполнить следующую команду: sshfs root@test.ivru.net:/var/www /var/remotewww. После этого можно проверить примонтировалась ли директория, для этого для начал можно перейти в примонтированную директорию командой cd remotewww, затем можно посмотреть содержание директории командой ls.
Запись произвольного текста в файл из командной строки
cat > filename.txt <<TXT
Здесь можно написать
Произвольный текст
TXT
В примере выше последовательность символов TXT это ограничитель команды cat, причём ограничитель(в данном случаи TXT)обязательно требуется указывать в начале новой строки, в середине же строки ограничитель воспринят не будет и команда его воспримет просто как записываемый в файл текст.
Одну строку текста можно так же записать в файл командой ниже, при этом в конец файла тем не менее будет вставлена пустая строка. Для того чтобы перехода на новую строку не происходило можно вместо echo использовать printf.
echo "Текст который требуется записать" > /home/user/init-file.txt
Дописать текст в уже существующий не пустой файл можно используя команду приведённую ниже. Запись начинается к конца последней строки файла, при завершении файла в конце будет вставлена пустая строка.
tee -a init-file.txt << EOF
текст который требуется дописать в файл
EOF
Найти файлы размеры более одного гигабайта на всём сервере linux
find / -mount -type f -size +1G 2>/dev/null
Посмотреть информацию о операционной
Есть следующие варианты команд используя которые можно посмотреть информацию о операционной системе linux
uname -a
cat /proc/version
cat /etc/*release*
cat /etc/*release* | grep VERSION_ID
cat /etc/issue
Создать папку линукс
mkdir [filename] - создать папку/дирректорию/каталог
Посчитать размер папок и подпапок в которых находится пользователь
du -sh *
Переместить несколько папок или файлов
Следующей командой можно переместить все файлы и директории из текущей директории в директорию предыдущего уровня.
mv * ../
Переместить файл или директорию или несколько файлов либо директорий
cp файл_или_директория(можно несколько через пробел) директория_назначения
Поменять дату и время
date 12301710
Команда выше устанавливает соответственно месяц день часы и минуты(год не устанавливает, для установки года используйте команду ниже)
date +’%Y%m%d’ --set='20200520'
команда выше устанавливает соответственно год месяц и день
Синхронизация времени по NTP
ntpdate -s ntp.ubuntu.com(23.06.2023 при помощи этой команды синхронизировать время не получилось, зато получилось так: ntpdate -u pool.ntp.org)
Проверить выполнение можно выполнив date и посмотреть какая дата и время установлена.
Узнать шлюз сетевого интерфейса в linux
ip r | awk '/default/{print$3}'
MySQL
Установить права для пользователя на базу данных
GRANT ALL PRIVILEGES ON dbName . * TO 'crm'@'%';
Для применения изменений в правах доступа пользователя без перезагрузки службы базы данных можно затем выполнить команду: flush privileges;
Очистка логов создаваемых при восстановлении базы данных на Windows
PURGE MASTER LOGS BEFORE '2023-09-06 00:00:00';
Восстановить базу данных mysql из командной строки
mysql -u [username] -p[password] [db_to_restore] < [backupfile.sql]
Обратите внимание пользователь указывается через пробел а пароль без пробела после -p. Или можно пароль не указывать просто написав -p в этом случаи пароль будет запрошен отдельно после нажатия клавиши ENTER И логин и пароль вводить без квадратных скобок.
Что делать если MySQL не обрабатывает большие запросы
Для обработки длинных запросов необходимо в /etc/my.cnf в разделе [mysqld] дописать параметр max_allowed_packet = 128M
BackUp базы данных MySQL из командной строки
mysqldump --opt -u [username] -p[password] [dbname] > [backupfile.sql]
Удалить все таблицы из базы данных из командной сторки
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Получить SQL - insert запрос одной строки таблицы базы данных
Следующий запрос не создаст в запросе имена полей:
mysqldump -t имяБазыДанных имяТаблицы --where="id = '1978e26b-fd51-7ca1-e1f1-572994b70425'"
Запрос который так же укажет в SQL запросе имена полей по которым осуществляется вставка:
mysqldump -t имяБазыДанных имяТаблицы --where="id = '1978e26b-fd51-7ca1-e1f1-572994b70425'" --compact --no-create-info --complete-insert --quick
Узнать кодировку базы данных MySQL
SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "dataBaseName";
Изменить кодировку базы данных MySQL
ALTER DATABASE `dataBaseName` DEFAULT CHARACTER SET utf8mb4; или ALTER DATABASE `dataBaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Открыть 80-ый порт в firewall
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
Искать файлы по названию в командной строке linux включая поддиректории
find . -maxdepth 3 -iname "*.php"
-maxdepth 3 указывает что глубина поиска в поддиректориях равта трём. Если указать 1 то будет искать только в текущей директории. Вместо -iname можно использовать -name в этом случаи поиск станет регистрозависимым.
Поиск файлов изменённых за определённый период времени
Следующая команда отсортирует файлы по дате изменения в обратном порядке, то есть вверху будет файл который был изменён последним, внизу - самым ранним. Поскольку сразу после команды find указана точка, поиск будет осуществляться в директории предварительно выбранной с использованием команды cd.
find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
Для того чтобы вывести результат выполнения команды в файл в конец может быть добавлена следующая команда: > filename.extension, то есть так что получится команда приведённая ниже. Файл будет создан так же в директории предварительно выбранной командой cd.
find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r > filename.extension
Следующая команда может быть использована для поиска файлов изменённых за указанный диапазон дней, в рассматриваемом случаи файлов изменённых не ранее 17 дней назад и не позднее 3-х дней назад.
find . -type f -mtime -17 ! -mtime -3
Создание архива tar.gz с исключением из него указанных дирректорий
Перед использованием следующей команды необходимо с использованием cd перейти в дирректорию, содержимое которой планируется поместить в архив или же использовать абсолютные пути в команде. Следующая команда исключаем из создаваемого архива директории 1 и want, точка в строчке ниже является частью команды.
tar -zcvf site1.tar.gz --exclude 1 --exclude want .Читаем содержимое всех файлов и сразу распаковываем сжатые файлы
cat *$(ls -v *tar.gz*) | tar xzf -
Кто не понял используется если имеете дело с архивами tar разделёнными на несколько частей, то есть gz.1 gz.2 и так далее.
Извлечение архива gz(без tar)
gzip -d file.gz
SQL запрос для изменения пароля пользователя MySQL из командной строки
use mysql
этим запросом выбираем базу mysql
UPDATE `user` SET Password=PASSWORD('NewPassword') WHERE User='YouUser';
NewPassword необходимо заменить на Ваш новый пароль, а YouUser на имя пользователя для которого меняется пароль.
Изменение прав на файлы и папки
chmod -R 777 /var/www/testsite1.ru/
Флаг -R указан для рекурсивного обхода вложенных директорий, иначе права будут применены к файлам и папкам только указанной директории
Изменение владельца и группы для файлов и папок директории
chown -R root:root /var/www/testsite1.ru/
Вариант который применялся на песочнице: sudo chown e.nikolaev:www-data -R sandbox3
Аналогично изменению прав флаг -R означает рекурсивный обход директорий. root:root соответственно пользователь и группа.
Текущий пользователь linux
whoami
Текущая директория командной строки
pwd