Основные команды
- ls -alh — вывод файлов.
- rename 's/\.txt$/\.pdf/' *.txt — переименовать файлы.
- !! — последняя команда.
- !1 — первая команда в history.
Работа с текстом
- cat — вывод содержимого файла.
- tac — реверс вывод содержимого файла.
- grep — поиск текста в файлах.
- wc — подсчет строк, слов и символов.
- head -n 10 — вывод первых строк.
- tail -n 10 — вывод последних строк.
Управление процессами
- ps -aux — вывод информации о процессах.
- pidof — ID процесса.
- top — мониторинг процессов в реальном времени.
- kill — убить процесс по его идентификатору.
- pkill — убить процесс по его имени.
- killall — убить все процессы с указанным именем.
- systemctl status — состояние службы.
- ulimit -u — лимит процессов.
- apt list --installed — список установленных пакетов.
- dpkg-query -l — список установленных пакетов.
- whereis — полный путь к программе.
- apt-get --purge remove {NAME} — удалить пакет.
Системная информация
- df -h — информация о файловых системах.
- du -s — информация о файловых системах.
- free — информация о памяти.
- vmstat — память.
- cat /proc/meminfo — память.
- uname — информация о системе.
- iostat — запись на диск.
- iotop — запись на диск по процессам.
- smartctl -a /dev/sdc — SMART.
- cat /proc/mdstat — RAID
- cat /etc/*-release — дистрибутив.
- less /var/log/syslog — системный журнал интерактивно.
- dmesg — буфер сообщений ядра
- journalctl — системный журнал (systemd-journald)
- strace — системные вызовы
Сетевые команды
- ping — проверка доступности узла.
- ifconfig / ip a — настройка сетевых интерфейсов.
- netstat -tulpn — информация о сетевых соединениях.
- ss -lntu — информация о сетевых соединениях.
- ip a — сетевые интерфейсы.
nftables стильно модно молодежно
- iptables-translate — iptables to nftables.
- sudo systemctl enable nftables — включить автозагрузку службы.
- sudo systemctl start nftables — запустить службу.
- cat /etc/nftables.conf — При запуске служба читает конфиг.
- sudo nft list ruleset — Просмотр действующих правил.
- sudo nft add rule [family] [table] [chain] [expression] [action] — Добавление правила.
- sudo nft add rule inet filter input iifname lo counter accept — чтобы сервисы внутри нормально работали разрешить подключения к loopback.
- sudo nft add chain inet filter input '{ policy drop; }' — После того как мы добавили все разрешающие правила в цепочке input, поменяем её политику на drop.
- sudo nft add rule inet filter input ct state established,related counter accept — разрешить все ответные пакеты механизм connection tracking.
- sudo nft delete rule inet filter input handle 8 — удалить правило по его номеру.
но странный стук зовет в дорогу
- apt install knockd — установим.
- /etc/default/knockd — START_KNOCKD=1.
- /etc/knockd.conf — конфигурации.
- nft 'add rule ip filter INPUT iifname "eth0" ct state related,established counter accept' — включить.
Wifi
- https://mcsindex.com/ — Modulation and Coding Scheme
- https://github.com/skhomm/useful-wireless-links — github wifi lib
- https://habr.com/ru/articles/479878/ — habr
- https://support.oscium.com/hc/en-us/articles/115013527388-Wireshark-Configuration-Profile — Wireshark profile
- https://help.mikrotik.com/docs/spaces/ROS/pages/224559120/WiFi — mikrotik
- https://wlanprofessionals.com/wi-fi-checklists/ — wi-fi-checklists
Dumbo the Flying Elephant
- libicu-dev pkg-config zlib1g-dev bison flex libreadline-dev — нужны если собирать самому.
- pg_lsclusters — список кластеров.
- sudo pg_ctlcluster 16 main reload — Обновить конфигурацию.
- /var/log/postgresql/postgresql-16-main.log — Журнал.
- /etc/postgresql/16/main — конфигурации.
- => \! pwd — Из psql можно выполнять команды shell.
- => SHOW work_mem; — объём обработки запросов.
=> SELECT name, setting, unit FROM pg_settings WHERE name = 'work_mem';
=> \dconfig work_mem - => ALTER SYSTEM SET work_mem TO '64MB'; — если мы собираемся выполнить запрос, сортирующий большой объем данных, то для сеанса можно увеличить значение.
- => SELECT pg_reload_conf(); — Чтобы изменение вступило в силу.
sudo pg_ctlcluster 16 main reload - => ALTER SYSTEM RESET work_mem; — default.
- psql -d база -U роль -h узел -p порт — параметры подключения.
- => \conninfo — текущее подключение.
- => SELECT name, setting, unit FROM pg_settings LIMIT 7; — Формат с выравниванием используется по умолчанию.
- С помощью запроса SQL можно сформировать несколько других запросов SQL и записать их в файл,
используя команду \o
=> \a \t \pset fieldsep '' — меняем формат.
=> \o dev1_tools.sql — указываем файл.
=> SELECT format('SELECT %L AS tbl, count(*) FROM %I;', tablename, tablename)
FROM pg_tables LIMIT 3;
=> \o \t \a — Вернем вывод на экран и восстановим форматирование по умолчанию. - => \i dev1_tools.sql — Выполнить команды из файла.
- => \set TEST Hi! — Установим переменную.
- => \echo :TEST — вызов переменной.
- => \unset TEST — сбросить значение.
- => \set top5 'SELECT tablename, pg_total_relation_size(schemaname||''.''||tablename)
AS bytes FROM pg_tables ORDER BY bytes DESC LIMIT 5;'
— запись в переменную запроса на получение списка пяти самых больших таблиц.
=> :top5 — выполнить запрос. - Без параметров \set выдает значения всех переменных, включая встроенные.
- \? variables — Справка по встроенным переменным.
- shared_buffers — параметр, который устанавливает, сколько выделенной памяти будет использоваться для кэширования данных. Обычно под shared_buffers отдают львиную часть всей памяти — от 25 до 50%. Если сравнивать с MS SQL Server, то это близкий аналог buffer pool, размер которого ограничивается параметром max server memory. Обычно рекомендуют устанавливать 30% от общего объема.
- temp_buffers — параметр, который задает максимальный объем памяти, выделяемый для временных таблиц (буферов) в каждом сеансе. т. е. временные таблицы, в отличии от MS SQL, могут кэшироваться в памяти, что позволяет избегать чтения с диска при работе с ними. При этом каждая таблица всегда имеет копию на диске, не важно хватило ли ей памяти в temp_buffers или нет.
- maintenance_work_mem — параметр, который устанавливает объём оперативной памяти, выделенный для выполнения операций обслуживания базы данных: VACUUM, CREATE INDEX и ALTER TABLE, ADD FOREIGN KEY. Для расчета нужно понимать количество одновременных потоков (задач) обслуживания.
- autovacuum_work_mem — параметр, который задает максимальный объём памяти, который будет использовать каждый рабочий процесс автоочистки. Входит в тот же кусок пирога, что и maintenance_work_mem и по умолчанию равен «-1», т.е. объём определяется значением maintenance_work_mem.
- work_mem — параметр, который задаёт базовый максимальный объём памяти, который будет использоваться в рамках одного рабочего процесса (сессии) во внутренних операциях типа соединений, сортировки, группировки и т. п. при обработке запросов, прежде чем будут задействованы временные файлы на диске.
Установка nanoCAD 26.0 в Ubuntu 24.04 (с внешним PostgreSQL)
1. Предварительные условия
- Ubuntu 24.04 (или совместимая версия)
- Установленный PostgreSQL (в данном примере версия 18, порт 5434, так как 5432 занят Docker)
- Пакеты nanoCAD 26.0 для Ubuntu 24.04 (скачанные с
repo.nanodev.ru)
2. Установка основного пакета nanoCAD
Перейдите в каталог с пакетами и установите основной пакет:
cd ~/Загрузки/nano
sudo apt install ./ncad26-0_26.0.7233.4927.8434-6+1771432269Ubuntu24.04_amd64.deb
Примечание: При установке появится сообщение о невозможности настроить базу данных — это нормально, так как мы будем использовать внешний PostgreSQL.
3. Настройка внешнего PostgreSQL
3.1 Создание роли и базы данных
Войдите в PostgreSQL как суперпользователь:
sudo -u postgres psql -p 5434
Выполните SQL-команды (если роль уже существует, пропустите):
CREATE ROLE mclogin WITH LOGIN SUPERUSER PASSWORD 'mclogin';
CREATE DATABASE ncad_26_0 OWNER mclogin;
\q
Важно: Порт должен соответствовать порту вашего PostgreSQL (в данном примере 5434).
3.2 Настройка строки подключения для nanoCAD
Создайте файл конфигурации /etc/default/ncad-db16:
sudo rm -f /etc/default/ncad-db16
echo "NCADPGDB=postgresql://mclogin:mclogin@127.0.0.1:5434" | sudo tee /etc/default/ncad-db16
Ключевой момент: Не указывайте имя базы данных в URL. Скрипт автоматически создаст или использует базу
ncad_26_0(и её предыдущую версиюncad_26_0_prev).
3.3 Запуск скрипта инициализации базы данных
ncad-db-install26-0
Успешный вывод должен содержать:
Установка баз данных для nanoCAD завершена
4. Установка дополнительных модулей (опционально)
Для установки модулей «Механика» и «СПДС»:
sudo apt install ./ncad-mech26-0_*.deb ./ncad-spds26-0_*.deb ./ncad-ssbadmin26-0_*.deb
Примечание: Эти пакеты могут выдать предупреждение о зависимостях от
ncad-pgsql16, но это не влияет на их установку.
5. Первый запуск и лицензирование
Запустите nanoCAD:
ncad26-0
При первом запуске появится Мастер регистрации. Вам потребуется:
- Серийный номер из личного кабинета на lk.nanocad.ru
- Выбрать офлайн-активацию (если нет интернета), сгенерировать файл запроса и отправить его в службу лицензирования.
6. Блокировка сети для nanoCAD (опционально, для принудительной офлайн-активации)
Если программа настаивает на онлайн-проверке, можно использовать firejail для запуска без сети:
firejail --net=none ncad26-0
Или создайте отдельного пользователя и заблокируйте его трафик через iptables:
sudo iptables -A OUTPUT -m owner --uid-owner nanocaduser -j DROP
7. Решение возможных проблем
| Проблема | Решение |
|---|---|
password authentication failed for user "mclogin" |
Убедитесь, что пароль mclogin сброшен: ALTER ROLE mclogin WITH PASSWORD 'mclogin'; |
database "ncad_26_0/postgres" does not exist |
Уберите имя базы данных из URL в /etc/default/ncad-db16 |
role "andrey" does not exist |
Создайте роль с именем вашего системного пользователя: CREATE ROLE andrey WITH LOGIN SUPERUSER; (временное решение) |
| Порт 5432 занят | Проверьте: sudo ss -tulpn | grep 5432; измените порт PostgreSQL или остановите контейнер Docker |
Ошибки зависимостей при установке ncad-pgsql16 |
Этот пакет не обязателен при использовании внешнего PostgreSQL — пропустите его |
8. Проверка работоспособности
После успешного запуска проверьте подключение к базе данных в меню nanoCAD:
- Настройки → Доступ к базам данных → Источник данных
- Сервер:
127.0.0.1:5434 - База данных:
ncad_26_0 - Пользователь:
mclogin, пароль:mclogin