linux common.md 8.8 KB

RabbitSVC SVN

Решение проблемы с постоянной авторизацией:

$ sudo add-apt-repository ppa:philippun/stuff
$ sudo apt update
$ sudo apt install python3-svn
Сеть

Сканирование сети:

$ sudo arp-scan --interface=eno1 --localnet

Добавить сетевой интерфейс

sudo ifconfig eno1:1 192.168.24.30
О системе

https://losst.pro/sbor-informatsii-o-sisteme-ubuntu

$ hostnamectl # версия ОС, ядра
$ cat /proc/cpuinfo
$ lsb_release -a
$ uname -a # версия ядра
$ df -h # место на дисках
Полезное
$ obsidian & # запуск программы в фоне
$ ctrl + l # очистка экрана

Утилиты

xxd - вывод содержимого файлов в hex и bin форматах

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

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

Создание и удаление

$ 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 # изменить пароль текущего пользователя ```