##### RabbitSVC SVN Решение проблемы с постоянной авторизацией: ```bash $ sudo add-apt-repository ppa:philippun/stuff $ sudo apt update $ sudo apt install python3-svn ``` ##### Сеть Сканирование сети: ```bash $ sudo arp-scan --interface=eno1 --localnet ``` Добавить сетевой интерфейс ```bash sudo ifconfig eno1:1 192.168.24.30 ``` ##### О системе https://losst.pro/sbor-informatsii-o-sisteme-ubuntu ```bash $ hostnamectl # версия ОС, ядра $ cat /proc/cpuinfo $ lsb_release -a $ uname -a # версия ядра $ df -h # место на дисках ``` ##### Полезное ```bash $ obsidian & # запуск программы в фоне $ ctrl + l # очистка экрана ```

Утилиты

**xxd** - вывод содержимого файлов в hex и bin форматах ```bash $ xxd my_file.txt $ xxd -с 1 -b my_file.txt # -b - выводит в двоичном формате # -c 1 - вывод по одному символу # -p - убрать справочную информацию $ xxd -r -p file_in file_out # обратное преобразование ```

Командная строка

Создание и удаление
```bash $ true > file.txt # создает пустой файл $ echo "hello world" > file.txt # создает файл и пишет строку $ touch {1..50} # создает 50 файлов с именами от 1 до 50 $ mkdir -p folder1/folder2/folder3 # создает вложенные директории $ mkdir -p folder1/{folder2, folder3}/folder4 # второй способ $ ls -R folder1 # рекурсивные вывод содержимого $ tree folder1 $ echo ?.txt # выведет имена файлов только с 1 символом $ # ? - это только один символ $ touch user_{ivan, akex, petr}.txt # создает 3 файлв с именами по шаблону $ echo now is $(date) # вывод результата команды через $ $ rm *.txt # удаляет файлы по маске ```
Разное
```bash $ du -sh /usr/bin # вывод размера директории /usr/bin $ du -sh /usr/bin/* # вывод размера всех нескрытых файлов в /usr/bin $ du -sh /usr/bin/* | sort -h | less # сортировка по размеру файлов $ !du # команда du выполнится с предыдущими аргументами $ cd - # Вернуться в предыдущую директорию $ wc -l # считает количество строк переданных команде wc $ export # выводит переменные окружения $ export EDITOR=nano # установка переменной окружения $ export "export EDITOR=nano" >> ~./bashrc # установить текстовый редактор по умолчанию $ head -n10 file.txt # вывести 10 первых строк файла $ tail -n10 file.txt # вывести 10 последних строк файла $ cut -c 1-10 file.txt # выведет с 1-ого по 1-ый символы из каждой строчки файла $ watch -n 1 date # запускает каждую секунду команду date $ watch -g "df -h" # перезапускает команду df пока не изменится ее вывод $ tr ":" "\" # заменяетодин символ на другой ````
История команд
```bash $ history # выводит историю команд $ history | less # листать историю команд $ !25 # выполнить команду под номером 25 $ !! # повтороить предыдущую команду $ ```
Редактирование команд
```bash $ ctrl + a # переход в начало строки $ ctrl + e # переход в конец строки $ ctrl + w # удаление по словам ```
Потоки ввода/вывода
```bash $ echo hello world > 1.txt $ echo new line >> 1.txt # дозаписать файл $ cat 1.txt 2.txt > 3.txt # поместить содержимое двух файлов в третий $ tac 3.txt # выводит файл в обратном порядке $ ls nonexistent_file 2> 4.txt # перенаправить поток ошибок stderr в файл $ ls nonexistet_file &> 4.txt # оба потока stdout и stderr в файл $ cat < 1.txt # передача в stdin $ ls -la | tee output.txt # сохранит вывод ls в файл output.txt ```
Пользователи
```bash $ whoami # выводи имя пользователя $ cd # переход в домашнюю директорию пользователя ```
Статистика и информация
```bash $ stat file.txt # вывод статистики $ ls -l --time-style=full-iso file.txt # время выводится в полном формате $ ls -l --time=atime file.txt # вывод времени доступа $ touch -a --date="tomorrow" test.txt # изменитьвремя обращения к файлу $ touch -am --date="1990-06-01" test.txt # изменитьвремя обращения и время изменения файла ```
Псевдонимы
```bash $ alias l="ls -l" # создание alias. Сохраняется только в текущей сессии # Для сохранения нужнодобавитьв .bashrc ```
Помощь
```bash $ man ls # Получение справки по команде $ ls --help # ls --help | less # листать справку ```
Переменные окружения
```bash $ env # вывод переменных окружения $ echo $HOME # вывод значения переменной окружения $ touch $USER.txt # создает файл с именем пользователя $ export MY_VARIABLE=123 # создает переменную окружения в текущей сессии $ echo "export MY_VARIABLE=123" >> .bashrc # $ TMP=123 env | less # установка переменной окружения в рамках одной команды $ echo $PATH | tr ":" "\n" $ export CDPATH=.:/cygdrive/c/projects # добавить путь для перехода командой cd ```
Файловая система Linux
```bash $ bin -> usr/bin # ссылка на usr/bin $ /boot # загрузчик $ /dev # файлы устройств = устройства $ /etc # конфигурация системных программ $ /home # домашние директории всех пользователей $ lib -> usr/lib # библиотеки $ /media # монтируются устройства $ /mnt # монтируются устройства $ /proc # файлы процессов $ /root # директория суперпользователя $ sbin -> usr/sbin # файлы программ, которые может запускать только root $ /tmp # временные файлы $ /usr # пользовательские программы $ /var # частоизменяемые файлы $ /sys # информация ядра о системе, устройствах и драйверах $ /srv # файлы сервисов ```
Жесткие и (мягкие) символьные ссылки
Можно изменять данные по ссылкам. При удалении файла символьная ссылка остается, но ссылается на пустое пространство. Но жесткая ссылка и данные остаются. ```bash $ ln file.txt hard_link_to_file.txt # жесткая ссылкоа на file.txt $ ln -s file.txt soft_link_to_file.txt # символьная ссылкоа на file.txt ```
Группы пользователей
```bash $ groups user_1 # вывести группы в которых состоит пользователь user_1 $ /etc/passwd # информация о пользователях $ /etc/group # инфооормация о группах $ sudo adduser new_user # создать нового пользователя $ /etc/sudoers # пользователи с правами sudo $ sudo groupadd friends # создать группу friends $ sudo usermod -aG friends user_1 # добавить пользователя user_1 в группу friends $ sudo passwd user_1 # изменить пароль пользователя user_1 $ sudo passwd # изменить пароль текущего пользователя ```