- Перемещение по системе
- Переменные окружения
- Команды head & tail
- Команды touch, mv, cp, rm
- Символьные ссылки
- Пакетный менеджер apt
- Пользователи и группы
- Доступы
- Alias
- Find
- Прочее
-
перейти в домашнюю директорию:
cd ~
-
перейти в предыдущую директорию:
cd -
-
показать все переменные окружения:
printenv
-
посмотреть значение переменной:
echo $VAR
-
посмотреть значение переменной
$HOME
:$HOME
: абсолютный адрес домашней директории.
echo $HOME
-
показать первые 10 строк файла:
head /var/log/syslog
-
показать первые 1000 строк файла:
head -n 1000 /var/log/syslog
-
показать последние 10 строк файла:
tail /var/log/syslog
-
ключ -f позволяет показывать новые строки по мере их появления:
tail -f /var/log/syslog
-
следить за обновлением файла, только показать перед этим последние 100 строк:
tail -100f /var/log/syslog
Warning
Для командmv
cp
rm
желательно создать alias с ключом-i
, чтобы случайно не перезаписать существующий файл или не удалить без дополнительного оповещения.
-
перенос нескольких файлов одной командой:
mv -t dest/ test-1.txt test-2.txt test-3.txt
-
создать файл можно командой
touch
или>
- Хотя эта команда предназначена не для создания файла
> newfile.txt touch newfile.txt
Note
soft link & hard link
Мягкие ссылки, в отличии от жестких, не следят за состоянием файла.
Жесткие ссылки работают с индексным дескриптором, храня мета данные файла.
Файлы в файловой системе являются жесткими ссылками.
При создании мягкой ссылки необходимо указывать полный путь до файла.
- проверка типа файла с помощью
ls -l
, l в начале укажет на тип "ссылка".
lrwxrwxrwx 1 root root 20 мар 22 2020 libsidplay2.so.1 -> libsidplay2.so.1.0.1
-rw-r--r-- 1 root root 278808 мар 22 2020 libsidplay2.so.1.0.1
-
создание мягкой ссылки:
ln -s test1.txt soft-link.txt
-
создание жесткой ссылки:
ln test1.txt hard-link.txt
Note
В большинстве случаев для установки новых пакетов требуются права суперпользователя. Далее все команды начинаются с sudo, подразумевая что пользователь состоит в группе sudo. Что-бы запустить пакет, обычно нужно ввести команду, которая соответствует названию пакета.
-
пакетный менеджер
apt
предлагает нам возможность посмотреть информацию о пакете перед его загрузкой:sudo apt-cache search ncdu
-
установить пакет для проверки размера файлов:
sudo apt-get install ncdu
-
запустить команду (первый запуск команды может занять продолжительное время):
ncdu
-
удалить пакет:
sudo apt-get remove
-
удалить пакет и его настройки:
sudo apt-get purge ncdu
-
удалить зависимости, которые не используются ни одним приложением:
Note
Да, зависимости остаются после удаления пакета в системе. Так происходит, потому чтоsudo apt-get purge
не удаляет зависимости.sudo apt-get autoremove
-
посмотреть все доступные пакеты, которые у нас есть на данный момент:
sudo apt-cache pkgnames
-
получить более подробную информацию о пакете, включая версию, размер, зависимости, описание и многое другое, в том числе о тех пакетах, которые не установлены:
sudo apt-cache show ncdu
-
посмотреть зависимости конкретного пакета:
sudo apt-cache showpkg postgresql
-
посмотреть общую статистику
apt
:sudo apt-cache stats
-
команда
upgrade
делает очень много важных вещей. Рекомендуется всегда запускать эту команду сразу после установки свежей системы. Она безопасно обновит все пакеты, у которых по какой-то причине были установлены старые версии:sudo apt-get update sudo apt-get upgrade
-
просто обновить пакет:
sudo apt-get install vim --only-upgrade
-
список изменений, которые были внесены в конкретную версию того или иного пакета:
sudo apt-get changelog postgresql
-
просмотр репозиториев:
sudo apt-cache policy
или
vim /etc/apt/sources.list
-
очистка кэша пакетов:
apt autoclean
Note
Я предпочитаю командуadduser
, это удобно, но есть и командаuseradd
, которая значительно отличается, например, не создается домашняя директория. Флагuseradd -m
создаст домашнюю директорию.
-
создать пользователя, проверить наличие нового пользователя и добавить пароль:
sudo useradd newuser cat /etc/passwd sudo passwd newuser
-
удалить пользователя: Флаг
-r
удалит пользователя вместе с его домашней директорией.sudo userdel newuser
-
посмотреть список существующих групп
getent group
-
посмотреть список существующих групп
getent group
-
создать новую группу
sudo groupadd newgroup
-
добавить пользователя в группу
sudo usermod -aG newgroup newuser
-
удалить пользователя из группы
sudo gpasswd --delete newuser newgroup
Note
r - read
w - write
x - execute (исполнять)
todo: добавить цифровое обозначение
-
распределение прав:
Собственник Группа Все остальные -rwx rwx rwx
-
сделать файл запускаемым
chmod +x file.bin
-
поменяем собственника файла:
sudo chown newuser:newgroup test-2.sh
-
добавить пользователя в группу sudo:
sudo usermod -aG sudo newuser
-
Предоставить доступы самой команды sudo:
sudo visudo
Note
Открылся файл /etc/sudoers.d в текстовом редакторе nano. Единственное отличие от обыкновенного открытия в редакторе, visudo проведёт валидацию файла перед его сохранением. Всегда пользуемся visudo. Добавляем следующую строку в файл:
newuser ALL=(ALL) NOPASSWD:ALL
Note
alias необходимо добавить в файл .bashrc. Пример файла есть в репозитории.
-
создать новый alias:
alias mv="mv -i"
-
найти файл, у которого есть слово test в названии:
find -name "test*" -type f
-
независимый от регистра поиск:
find -iname "test*"
-
получить список всех директорий:
find -type d
-
получить список всех обыкновенных файлов:
find -type f
-
комбинируем флаги:
find -name "test*" -type f
-
получить файлы, которые по размеру больше чем 100 килобайт:
find -size +100k
-
найти все пустые файлы:
find -empty
-
найти файлы, которые были обновлены за последнюю минуту:
find -mmin 1
-
узнать модель монитора:
xrandr | grep " connected" | cut -f1 -d " "
-
изменить яркость:
xrandr --output [monitor-name] --brightness [brightness-level] xrandr --output LVDS-1 --brightness 0.75
-
просмотр фоновых процессов:
jobs -l
-
переключение на фоновый процесс:
fg 1
-
онлайн-сервис для определения ip
wget -qO- eth0.me
-
отчет об использовании дискового пространства файловой системой:
df -h
- - Запускаем gdisk
gdisk /dev/sda
- Печатаем таблицу разделов
p
- Удаляем раздел
d
Note
Внимательно смотрим на последний сектор при создании нового раздела, он может отличаться от того, что написано в просмотре (p). В таком случае операцию надо будет повторить. - Создаем новый раздел, все опции принимаем как предлагается
n
- Записываем таблицу
w
- Информируем ядро операционной системы об изменениях таблицы разделов
partprobe /dev/sda
- Расширяем созданный раздел (в примере раздел номер 3)
pvresize /dev/sda3
- Увеличиваем размер логического тома (в примере /dev/mapper/sysvg-var)
lvextend -l 100%VG /dev/mapper/sysvg-var
- Увеличиваем корневой раздел xfs без перезагрузки сервера (обращаем внимание на файловую систему, в примере xfs)
xfs_growfs /dev/mapper/sysvg-var