Команды линукс

Отобразить список процессов

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

Комментарии

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

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: