notes/start_linux.md

79 KiB
Raw Permalink Blame History

Материал для подготовки к RHCSA

ls

ls - list, просмотр содержимого каталогов

ls опции /путь/к/папке  

-l - выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
-a - отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;

[da2001@co1 ~]$ ls -l  
total 4  
-rw-rw-r--. 2 da2001 da2001  0 May 24 09:59  connectedfile  
lrwxrwxrwx. 1 da2001 da2001 10 May 24 09:59  hosts -> /etc/hosts  
-rw-rw-r--. 2 da2001 da2001  0 May 24 09:59  newfile  
drwxrwxr-x. 2 da2001 da2001  6 May 24 08:57  oldfiles  
lrwxrwxrwx. 1 da2001 da2001 11 May 24 09:58  passwd -> /etc/passwd  
-rw-rw-r--. 1 da2001 da2001  0 May 24 08:55  unhidden  
drwxr-xr-x. 2 da2001 da2001  6 May 16 09:17  Видео  

cat / tac

cat - catenate, вывод содержимого файла
tac - вывод содержимого файла с обратной сортировкой строк

cat опции файл1 файл2 ...  

-b - нумеровать только непустые строки;
-E - показывать символ $ в конце каждой строки;
-n - нумеровать все строки;
-s - удалять пустые повторяющиеся строки;
-T - отображать табуляции в виде ^I.

[da2001@co1 ~]$ cat welcome   
Добро пожаловать в Linux!  
Развивайтесь.  
[da2001@co1 ~]$ tac welcome   
Развивайтесь.  
Добро пожаловать в Linux!  

cd

cd - change directory, смена рабочей директории

cd опции папкаазначения  
[da2001@co1 ~]$ cd /var/log  
[da2001@co1 log]$   

chmod

chmod - change mode, изменение прав доступа к файлу/папке

chmod опции права /путь/к/файлу  

Три варианта записи прав пользователя

двоичная    восьмеричная    символьная  права на файл          права на каталог  
000         0               ---         нет                    нет  
001         1               --x         выполнение             чтение файлов и их свойств  
010         2               -w-         запись                 нет  
011         3               -wx         запись и выполнение    всё, кроме чтения списка файлов  
100         4               r--         чтение                 чтение имён файлов  
101         5               r-x         чтение и выполнение    доступ на чтение  
110         6               rw-         чтение и запись        чтение имён файлов  
111         7               rwx         все права              все права  
Reference   Class   Описание  
u           user    Владелец файла  
g           group   Пользователи, входящие в группу владельца файла  
o           others  Остальные пользователи  
a           all     Все пользователи (или ugo)  
Operator    Описание  
+           добавить определённые права  
-           удалить определённые права  
=           установить определённые права  
Mode    Name          Описание  
r       read          чтение файла или содержимого каталога  
w       write         запись в файл или в каталог  
x       execute       выполнение файла или чтение содержимого каталога  
X       special       execute	выполнение, если файл является каталогом или уже имеет право на выполнение для какого-нибудь пользователя  
s       setuid/gid    установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно  
t       sticky        устанавливая t-бит на каталог, мы меняем это правило таким образом, что удалить файл может только владелец этого файла  
Разрешение Применяется к файлам Применяется к каталогам
Read Открыть файл Просмотр содержимого каталога
Write Изменить содержимое файла Создавать и удалять файлы
Execute Выполнить программный файл Перейти в каталог
Разрешение Числовое представление
Read 4
Write 2
Execute 1

Примеры
Установить права «rwxr-rx-x» (0755) для файла:
chmod u=rwx,g=rx,o=x filename

Установить права на выполнение для владельца файла, удалить права на выполнение у группы, удалить права на запись и выполнение у остальных пользователей:
chmod u+x,g-x,o-wx filename

Установить рекурсивно права на чтение для всех пользователей:
chmod -R a+r directory

Рекурсивно удалить атрибуты SUID и SGID:
chmod -R u-s,g-s directory

Особенности
Значениями по умолчанию являются:
для файлов: 644 (-rw-r--r--)
для каталогов: 755 (drwxr-xr-x)
Значения разные для файлов и каталогов потому, что флаг «выполнения» по-разному действует на файлы и каталоги. Для обычных файлов «выполнение» означает открытие файлов, для исполняемых файлов — их запуск, а для каталогов — просмотр содержимого.

Следующая команда выполнит рекурсивное применение правил для всех файлов в каталоге «/home/test», а также для всех файлов во всех подкаталогах:

find /home/test -type f -exec chmod 644 {} \;  

Следующая команда выполнит рекурсивное применение правил для всех каталогов в каталоге «/home/test», а также для всех каталогов во всех подкаталогах:

find /home/test -type d -exec chmod 755 {} \;  

Того же результата можно добиться и без использования find (обратите внимание на заглавную X):

chmod -R go=rX,u=rwX /home/test  

Установить для file1 разрешения аналогичные file2

chmod --reference file1 file2  

SUID, SGID и Sticky Bit

Разрешение Числовое значение Относительное значение Применительно к файлам Применительно к каталогам
SUID 4 u+s пользователь запускает файл с разрешениями владельца файла не имеет смысла
SGID 2 g+s пользователь запускает файл с разрешениями владельца группы Файлы, созданные в каталоге, получают одного и того же владельца группы
Sticky bit 1 +t не имеет смысла запрещает пользователям удалять файлы других пользователей, даже если есть права на запись

Установка SGID для каталога sales (группа sales) позволит создавать все новые файлы, группой которых будет группа sales, а назначение Sticky Bit запретит пользователям удалять файлы, созданные другими пользователями, даже если есть права на запись

chmod g+s,o+t /data/sales  

chown

chown - change owner, утилита, изменяющая владельца и/или группу для указанных файлов.

chown [-cfhvR] [--dereference] [--reference=rfile] пользователь[:группа] файл…  

-c, --changes Подробно описывать действие для каждого файла, владелец которого действительно изменяется.
-f, --silent, --quiet Не выдавать сообщения об ошибках для файлов, чей владелец не может быть изменён.
-h, --no-dereference Работать с самими символьными ссылками, а не с файлами, на которые они указывают. Данная опция доступна, только если имеется системный вызов lchown.
-R, --recursive Рекурсивное изменение владельца каталогов и их содержимого.
-v, --verbose Подробное описание действия (или отсутствия действия) для каждого файла.
--dereference Изменить владельца файла, на который указывает символьная ссылка, вместо самой символьной ссылки.
--reference=rfile Изменить владельца файла на того, который является владельцем файла.

Примеры использования
Изменить владельца (owner) для /var/run/httpd.pid на root

chown root /var/run/httpd.pid  

Поменять владельца для strace.log в rob и идентификатор группы в developers

chown rob:developers strace.log  

разделителем также может быть точка
Поменять имя владельца для /tmp и /var/tmp на nobody + поменять группу для /tmp и /var/tmp на nogroup

chown nobody.nogroup /tmp /var/tmp  

Поменять идентификатор группы на newgroup для /home

chown :newgroup /home  

или

chown .newgroup /home  

Поменять имя владельца для base на us и выполнить это рекурсивно, т.е. всех вложенных в каталог base файлов (-R).

chown -R us base  

Поменять владельца для noodlefrytasticy на mein

chown mein noodlefrytasticy  

newgrp

newgrp - изменение основной группы пользователя в текущей сессии
при создании нового файла/каталога он создаётся от имени пользователя и основной группы этого пользоватля

[da2001@co1 mydir]$ touch file  
[da2001@co1 mydir]$ ll  
total 0  
-rw-rw-r--. 1 da2001 da2001 0 Jun  8 08:43 file  

группы, в которых состоит пользователь

[da2001@co1 ~]$ groups  
da2001 wheel sales  

Чтобы все новые файлы в текущей сессии создавались от группы sales

[da2001@co1 mydir]$ newgrp sales  
[da2001@co1 mydir]$ touch file2  
[da2001@co1 mydir]$ ll  
total 0  
-rw-rw-r--. 1 da2001 da2001 0 Jun  8 08:43 file  
-rw-r--r--. 1 da2001 sales  0 Jun  8 08:50 file2  

cp

cp - copy, копировать файлы и директории

$ cp опции файл-источник файл-приемник  

или

$ cp опции файл-источник директория-приемник/  

--attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;
-f, --force - перезаписывать существующие файлы;
-i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;
-L - копировать не символические ссылки, а то, на что они указывают;
-n - не перезаписывать существующие файлы;
-P - не следовать символическим ссылкам;
-r - копировать папку Linux рекурсивно;
-s - не выполнять копирование файлов в Linux, а создавать символические ссылки;
-u - скопировать файл, только если он был изменён;
-x - не выходить за пределы этой файловой системы;
-p - сохранять владельца, временные метки и флаги доступа при копировании;
-t - считать файл-приемник директорией и копировать файл-источник в эту директорию.


dd

dd - dataset definition, копирование побайтово
https://habr.com/ru/post/117050/
больше примеров в файле Образ_SD_dd.md

dd if=источник_копирования of=местоазначения параметры  

bs - указывает сколько байт читать и записывать за один раз;
cbs - сколько байт нужно записывать за один раз;
count - скопировать указанное количество блоков, размер одного блока указывается в параметре bs;
conv - применить фильтры к потоку данных;
ibs - читать указанное количество байт за раз;
obs - записывать указанное количество байт за раз;
seek - пропустить указанное количество байт в начале устройства для чтения;
skip - пропустить указанное количество байт в начале устройства вывода;
status - указывает насколько подробным нужно сделать вывод;
iflag, oflag - позволяет задать дополнительные флаги работы для устройства ввода и вывода, основные из них: nocache, nofollow.

Примеры
Создание образа диска:

dd if=/dev/cdrom of=image.iso  

игнорировать ошибки чтения

dd if=/dev/cdrom of=image.iso conv=noerror  

создать образ диска и отправить по ssh, заранее нужно настроить доступ по ключам

dd if=/dev/DEVICE | ssh user@host «dd of=/home/user/DEVICE.img»  

записать на диск 0

dd if=/dev/zero of=/dev/DEVICE  

создать файл с записанными 0

dd if=/dev/zero of=zerofile bs=1M count=100  

df

df - disk free, показать свободное место на диске

df опции устройство  

-a, --all - отобразить все файловые системы, в том числе виртуальные, псевдо и недоступные;
-B - изменить размер одного блока перед выводом данных, например, можно использовать BM, чтобы вывести все данные в мегабайтах;
-h - выводить размеры в читаемом виде, в мегабайтах или гигабайтах;
-H - выводить все размеры в гигабайтах;
-i - выводить информацию об inode;
-k - выводить размеры в килобайтах;
--output - использовать специальный формат вывода, если не задано, выводит все поля. Доступны такие варианты: source, fstype, itotal, iused, iavail, ipcent, size, used, avail, pcent, file и target;
-P - использовать формат вывода POSIX;
--total - выводить всю информацию про использованное и доступное место;
-t, --type - выводить информацию только про указанные файловые системы;
-x - выводить информацию обо всех, кроме указанных файловых систем;

df -h  

diff

diff - сравнение текстовых файлов
https://pingvinus.ru/note/compare-files-diff-in-linux

diff опции файл1 файл2  

-q - выводить только отличия файлов;
-s - выводить только совпадающие части;
-с - выводить нужное количество строк после совпадений;
-u - выводить только нужное количество строк после отличий;
-y - выводить в две колонки;
-e - вывод в формате ed скрипта;
-n - вывод в формате RCS;
-a - сравнивать файлы как текстовые, даже если они не текстовые;
-t - заменить табуляции на пробелы в выводе;
-l - разделить на страницы и добавить поддержку листания;
-r - рекурсивное сравнение папок;
-i - игнорировать регистр;
-E - игнорировать изменения в табуляциях;
-Z - не учитывать пробелы в конце строки;
-b - не учитывать пробелы;
-B - не учитывать пустые строки.
Примеры
Сравнение двух текстовых файлов

diff myfile1 myfile2  

Перенаправление результата сравнения в файл

diff myfile1 myfile2 > changes.diff  

Сравнение директорий, содержащих текстовые файлы

diff -r mydir1 mydir2 > changes.diff  

Исключить файлы из сравнения
Создадим файл excludeFiles и запишем в него шаблоны и названия файлов, которые мы не должны сравнивать. Например, содержимое excludeFiles может иметь вид:

*.o  
ChangeLog*  
*.bak  
*.exe  
diff -r -X excludeFiles mydir1 mydir2 > changes.diff  

du

du - disk usage, отображение использования диска

$ du опции /путь/к/папке  

-a, --all - выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;
-B, --block-size - указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;
-c, --total - выводить в конце общий размер всех папок;
-d, --max-depth - максимальная глубина вложенности директорий;
-h, --human-readable - выводить размер в единицах измерения удобных для человека;
--inodes - выводить информацию об использованию inode;
-L, --dereference - следовать по всем символическим ссылкам;
-l, --count-links - учитывать размер файла несколько раз для жестких ссылок;
-P, --no-dereference - не следовать по символическим ссылкам, это поведение используется по умолчанию;
-S, --separate-dirs - не включать размер подпапок в размер папки;
--si - выводить размер файлов и папок в системе си, используется 1000 вместо 1024;
-s, --summarize - выводить только общий размер;
-t, --threshold - не учитывать файлы и папки с размером меньше указанного;
--time - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
-X, --exclude - исключить файлы из подсчёта;
-x, --one-file-system - пропускать примонтированные файловые системы;
--version - вывести версию утилиты.

du -h /var  

echo

echo - утилита bash, для вывода данных

echo опции строка  

-n - не выводить перевод строки;
-e - включить поддержку вывода Escape последовательностей;
-E - отключить интерпретацию Escape последовательностей.

если включена опция -e, можно использовать такие Escape последовательности для вставки специальных символов:

\c - удалить перевод строки;
\t - горизонтальная табуляция;
\v - вертикальная табуляция;
\b - удалить предыдущий символ;
\n - перевод строки;
\r - символ возврата каретки в начало строки.
Примеры

echo Linux Open Source Software Technologies  
echo -e "Linux \nopen \nsource \nsoftware \ntechnologies"  

file

file - отобразить тип файла

da2001@Metromint:~$ file vim.pdf   
vim.pdf: PDF document, version 1.5  
  
da2001@Metromint:~$ file vim.docx   
vim.docx: Microsoft Word 2007+  
  
da2001@Metromint:~$ file явки  
явки: UTF-8 Unicode text  

find

find - поиск файлов по критериям с возможностью выполнения определённых действий с результатами поиска
https://habr.com/ru/company/alexhost/blog/525394/
https://losst.ru/komanda-find-v-linux

find [папка] [параметры] критерий шаблон [действие]  

папка - каталог в котором будем искать
параметры - дополнительные параметры, например, глубина поиска, и т д
критерий - по какому критерию будем искать: имя, дата создания, права, владелец и т д.
шаблон - непосредственно значение по которому будем отбирать файлы.
Основные параметры
-P никогда не открывать символические ссылки
-L получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
-maxdepth максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
-depth искать сначала в текущем каталоге, а потом в подкаталогах
-mount искать файлы только в этой файловой системе.
-version показать версию утилиты find
-print выводить полные имена файлов
-type f искать только файлы
-type d поиск папки в Linux
Критерии поиска
-name - поиск файлов по имени
-perm - поиск файлов в Linux по режиму доступа
-user - поиск файлов по владельцу
-group - поиск по группе
-mtime - поиск по времени модификации файла
-atime - поиск файлов по дате последнего чтения
-nogroup - поиск файлов, не принадлежащих ни одной группе
-nouser - поиск файлов без владельцев
-newer - найти файлы новее чем указанный
-size - поиск файлов в Linux по их размеру
Найти все файлы txt в папке dir

find /dir -name '*.txt'  

Найти все файлы пользователя da2001

find / -user da2001  

Найти все файлы, принадлежащие группе sales

find / -group sales  

grep

grep - global regular expression print, сортировка и фильтрация текста

$ grep [опции] шаблон [имя файла...]  

или:

$ команда | grep [опции] шаблон  

опции - это дополнительные параметры, с помощью которых указываются различные настройки поиска и вывода, например количество строк или режим инверсии.
шаблон - это любая строка или регулярное выражение, по которому будет вестись поиск
файл и команда - это то место, где будет вестись поиск. Как вы увидите дальше, grep позволяет искать в нескольких файлах и даже в каталоге, используя рекурсивный режим.
возможность фильтровать стандартный вывод пригодится,например, когда нужно выбрать только ошибки из логов или найти PID процесса в многочисленном отчёте утилиты ps.

опции
-b - показывать номер блока перед строкой;
-c - подсчитать количество вхождений шаблона;
-h - не выводить имя файла в результатах поиска внутри файлов Linux;
-i - не учитывать регистр;
-r - рекурсивный поиск;
-l - отобразить только имена файлов, в которых найден шаблон;
-n - показывать номер строки в файле;
-s - не показывать сообщения об ошибках;
-v - инвертировать поиск, выдавать все строки кроме тех, что содержат шаблон;
-w - искать шаблон как слово, окружённое пробелами;
-e - использовать регулярные выражения при поиске;
-An - показать вхождение и n строк до него;
-Bn - показать вхождение и n строк после него;
-Cn - показать n строк до и после вхождения;
Примеры
ls | grep 'My Documents'

grep 'Class 1' Students.txt
Поиск по нескольким параметрам
grep -e 'Class 1' -e Todd Students.txt
Поиск слова word во всех файлах директории directory и вложенных директориях
grep -rn word /directory


head

head - head выводит начальные строки (по умолчанию — 10) из одного или нескольких документов. Также она может показывать данные, которые передает на вывод другая утилита

head опции файл  

опции — это параметр, который позволяет настраивать работу команды таким образом, чтобы результат соответствовал конкретным потребностям пользователя.
Файл — это имя документа (или имена документов, если их несколько). Если это значение не задано либо вместо него стоит знак «-», команда будет брать данные из стандартного вывода.
Чаще всего к команде head применяются такие опции:

-c (--bytes) — позволяет задавать количество текста не в строках, а в байтах. При записи в виде --bytes=[-]NUM выводит на экран все содержимое файла, кроме NUM байт, расположенных в конце документа.
-n (--lines) — показывает заданное количество строк вместо 10, которые выводятся по умолчанию. Если записать эту опцию в виде --lines=[-]NUM, будет показан весь текст кроме последних NUM строк.
-q (--quiet, --silent) — выводит только текст, не добавляя к нему название файла.
-v (--verbose) — перед текстом выводит название файла.
-z (--zero-terminated) — символы перехода на новую строку заменяет символами завершения строк.
Примеры
вывести первые 10 строк файла

head file-name.txt  

вывод из нескольких файлов

head file-name1.txt file-name2.txt  

отобразить название файла в выводе

head -v file-name.txt  

изменить количество строк в выводе

head -n 20 file-name.txt  

history

history - история введенных команд
Примеры
Вывод всей истории команд
history
Вывод команды с номером 154
!154
Вывод истории с возможностью прокрутки
history | less
Последние 5 команд
history -5
Повторить последнюю команду
!!
полезно, если забыл указать sudo
sudo !!
сохранить список в файл .bash_history
history -w
дополнить файл сохранённой истории команд
history -a
очистить историю
history -c
удалить команды 102 131
history -d 102 131


ln

ln - link, создание ссылок на файлы
Создать жесткую ссылку
ln target_file link_name
жесткую ссылку можно создать на только на файл, который находится в этой же файловой системе
жесткую ссылку нельзя создать на папку
Создать мягкую ссылку
ln -s target_file link_name
Обновить существующую мягкую ссылку
ln -sf new_file existing_soft_link
Показать оригинальный файл по цепочке ссылок
readlink -f soft_link


locate

locate - поиск файлов и каталогов по их именам
Команда locate выполняет поиск заданного шаблона в файле базы данных, сгенерированном командой updatedb. Найденные результаты отображаются на экране, по одному на строку.

Во время установки пакета mlocate создается задание cron, которое запускает команду updatedb каждые 24 часа. Это гарантирует, что база данных регулярно обновляется. Для получения дополнительной информации о работе cron проверьте файл /etc/cron.daily/mlocate.

Базу данных можно обновить вручную
sudo updatedb
найти файл с именем .bashrc
locate .bashrc
Если список результатов длинный, можно направить вывод в команду less:
locate .bashrc | less
Найти все md файлы
locate *.md
Ограничить поиск 10 результатами
locate -n 10 *.py
Поиск без учёта регистра
locate -i readme.md
Отобразить количество найденных файлов
locate -c .bashrc
Чтобы отобразить только имена файлов, которые существуют в данный момент
По умолчанию locate не проверяет, существуют ли найденные файлы в файловой системе. Если файл был удалён после последнего обновления базы данных и он соответствует шаблону поиска, файл будет включен в результаты поиска.
locate -e *.json
Поиск с применением регулярного выражения
locate -r -i "(\.mp4|\.avi)"


mkdir

mkdir - создание директорий
mkdir mydir
Создать несколько директорий
mkdir mydir1 mydir2 mydir3
Создание директории с указанием относительного пути
mkdir Downloads/torrents
Чтобы создать все директории, которые содержатся в пути, используется ключ -p:
mkdir -p subdir/somedir/mydir
Задать права доступа к папке при создании (синтаксис такой же как у chmod)
mkdir -m=765 mydir23


mv

mv - используется для перемещения одного или нескольких файлов (или директорий) в другую директорию, а также для переименования файлов и директорий
Опции
-b, --backup, --backup=МЕТОД - создать резервную копию существующих файлов, которые будут перезаписаны или удалены. Имя для резервной копии может создаваться по определенным правилам. В качестве значения МЕТОД можно указать:

  • none или off — не делать резервных копий, даже если включена опция --backup
  • numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt~2~).
  • existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple.
  • simple или never — делать обычные резервные копии (пример: myfile.txt~).
    -f или --force - при перезаписи существующих файлов не спрашивать разрешения пользователя.
    -i или --interactive - при перезаписи существующих файлов спрашивать разрешение пользователя на подтверждение операции.
    -n или --no-clobber - не перезаписывать существующие файлы.
    --strip-trailing-slashes - удалить завершающий символ слеш / (если он там есть) из имени файла-источника.
    -S СУФФИКС или --suffix=СУФФИКС - изменить символ суффикса, который добавляется к именам резервных копий (при использовании опции --backup). По умолчанию СУФФИКС равен значку тильды ~
    -t ДИРЕКТОРИЯ или --target-directory=ДИРЕКТОРИЯ - переместить все исходные файлы в директорию, которая указана в аргументе опции.
    -u или --update - перемещать только если исходный файл новее, чем файл назначения или если файл-назначения отсутствует.
    -v или --verbose - выводить информацию о каждом файле, который обрабатывает команда mv.
    -Z или --context - установить контекст (метки) SELinux для файлов назначения в значение по умолчанию.
    Примеры
    Переместить файл myfile1.txt в директорию mydir/ (директория должна существовать)
    mv myfile1.txt mydir/
    Переименовать файл
    mv myfile1.txt myfile2.txt
    Переименовать директорию
    mv mydir1 mydir2
    Создавать резервные копии существующих файлов
    Предположим, что нам нужно переименовать файл myfile1.txt в myfile2.txt, но файл myfile2.txt уже существует
    mv -b myfile1.txt myfile2.txt
    В результате сначала существующий файл myfile2.txt будет переименован в myfile2.txt~, то есть будет создана его резервная копия, и только потом файл myfile1.txt будет переименован в myfile2.txt.
    Вместо значка тильда ~ можно добавлять к именам резервных копий произвольный суффикс. Например, .bak
    mv -b -S ".bak" myfile1.txt myfile2.txt
    Переместить несколько файлов в директорию mydir/
    mv myfile1 myfile2 myfile3 mydir/
    Переместить все файлы из текущей директории в директорию mydir/
    mv * mydir/
    Переместить только те файлы, которых нет в директории назначения
    mv -n mydir1/* mydir2/
    Переместить только те файлы, которые новее
    mv -u mydir1/* mydir2/
    Если в имени файла есть пробелы их нужно экранировать или брать в ковычки
    mv "My file1.txt" "My file2.txt"
    Или
    mv My\ file1.txt My\ file2.txt

pwd

pwd - present working directory, отобразить текущую директорию

[da2001@co1 ~]$ pwd  
/home/da2001  

rm

rm - remove, удаление файлов и папок
-f или --force - игнорировать несуществующие файлы и аргументы. Никогда не выдавать запросы на подтверждение удаления
-i - выводить запрос на подтверждение удаления каждого файла.
-I - выдать один запрос на подтверждение удаления всех файлов, если удаляется больше трех файлов или используется рекурсивное удаление. Опция применяется, как более «щадящая» версия опции -i
-r или -R или --recursive - удаление директорий и их содержимого. Рекурсивное удаление.
-d или --dir - удалять пустые директории.
Примеры
Удалить файл
rm myfile.txt
Удалить несколько файлов
rm myfile1.txt myfile2.txt myfile3.txt
Удалить защищенный файл
rm -f myfile.txt
Удалить все файлы в текущей директории
rm *
Выдавать запрос перед удалением каждого файла
rm -i myfile*.txt
Выдать запрос на удаление один раз
rm -I myfile*.txt
Удалить директорию и её содержимое
rm -r mydir


rmdir

rmdir - удалить пустой каталог
rmdir test-dir
Удалить всю цепочку пустых каталогов
rmdir -p test/test-dir/


tail

tail - вывод нескольких последних строк файла. По умолчанию 10
-c - выводить указанное количество байт с конца файла;
-f - обновлять информацию по мере появления новых строк в файле;
-s - частота обновления файла, применяется совместно с опцией -f, по умолчанию 1 секунда;
-n - выводить указанное количество строк из конца файла;
--pid - используется с опцией -f, позволяет завершить работу утилиты, когда завершится указанный процесс;
-q - не выводить имена файлов;
--retry - повторять попытки открыть файл, если он недоступен;
-v - выводить подробную информацию о файле;
В качестве значения параметра -c можно использовать число с приставкой b, kB, K, MB, M, GB, G T, P, E, Z, Y
Вывод последних 10 строк
tail /var/log/syslog
Вывод последних 100 строк
tail -n 100 /var/log/syslog
Вывод новых строк по мере добавления их в файл
tail -f /var/log/syslog
Просмотр нескольких файлов
tail /var/log/syslog /var/log/Xorg.0.log
Изменить частоту обновления файла на 5 секунд
tail -f -s 5 /var/log/syslog


tar

Создать архив

tar -cvf archivename.tar /files-you-want-toarchive  

-c, --create create a new archive
-v, --verbose verbosely list files processed
-f, --file=ARCHIVE use archive file or device ARCHIVE

Создать архив со сжатием

tar -czvf archivename.tar.gz /files-you-want-toarchive  

-j, --bzip2 filter the archive through bzip2
-J, --xz filter the archive through xz
-z, --gzip, --gunzip, --ungzip filter the archive through gzip

Добавить файл в существующий архив

tar -rvf /root/homes.tar /etc/hosts  

-r, --append append files to the end of an archive

Обновить файлы в существующем архиве

tar -uvf /root/homes.tar /home  

-u, --update only append files newer than copy in archive

Просмотр содержимого архива

tar -tvf /root/homes.tar  

-t, --list list the contents of an archive

Извлечь файлы из архива в текущий каталог

tar -xvf /archivename  

-x, --extract, --get extract files from an archive

Извлечь файлы из сжатого архива

tar -xzvf archivename.tar.gz  

Извлечь файлы из архива в другой каталог

tar -xvf /archivename -C /tmp  

-C, --directory=DIR change to directory DIR

Извлечь определённый файл из архива

tar -xvf /root/etc.tar etc/hosts  

top

top - table of processes, консольная команда, которая выводит список работающих в системе процессов и информацию о них. По умолчанию она в реальном времени сортирует их по нагрузке на процессор.
С помощью ключей можно гибко настроить вывод информации о запущенных процессах

top - 09:14:09 up 3 days, 8 min,  1 user,  load average: 0.02, 0.02, 0.00  
Tasks: 164 total,   1 running, 163 sleeping,   0 stopped,   0 zombie  
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st  
MiB Mem :   1818.6 total,    569.6 free,    569.1 used,    679.9 buff/cache  
MiB Swap:   1024.0 total,   1024.0 free,      0.0 used.   1085.1 avail Mem   
  
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                              
      1 root      20   0  180100  14216   9176 S   0.0   0.8   0:09.25 systemd                                                                                                              
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.17 kthreadd                                                                                                             
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                                                               
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                                                           
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd                                                                                                 
      8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                                                         
.................  

существует более удобная утилита htop


ps

ps - process status, вывод информации о запущенных процессах
Некоторый опции
-A, -e, (a) - выбрать все процессы;
-a - выбрать все процессы, кроме фоновых;
-d, (g) - выбрать все процессы, даже фоновые, кроме процессов сессий;
-N - выбрать все процессы кроме указанных;
-С - выбирать процессы по имени команды;
-G - выбрать процессы по ID группы;
-p, (p) - выбрать процессы PID;
--ppid - выбрать процессы по PID родительского процесса;
-s - выбрать процессы по ID сессии;
-t, (t) - выбрать процессы по tty;
-u, (U) - выбрать процессы пользователя.

Опции форматирования:
-с - отображать информацию планировщика;
-f - вывести максимум доступных данных, например, количество потоков;
-F - аналогично -f, только выводит ещё больше данных;
-l - длинный формат вывода;
-j, (j) - вывести процессы в стиле Jobs, минимум информации;
-M, (Z) - добавить информацию о безопасности;
-o, (o) - позволяет определить свой формат вывода;
--sort, (k) - выполнять сортировку по указанной колонке;
-L, (H)- отображать потоки процессов в колонках LWP и NLWP;
-m, (m) - вывести потоки после процесса;
-V, (V) - вывести информацию о версии;
-H - отображать дерево процессов;

Примеры
Процессы текущей оболочки
ps
Все процессы кроме фоновых
ps -a
Вывести больше данных
ps -f
Опции можно комбинировать
ps -af


touch

touch - используется для изменения временных меток файлов, однако один из наиболее распространенных способов использования - создание нового пустого файла.
Обновить метки времени существующего файла или создать новый, если файл с таким именем не существует
touch file.txt
Обновить метки времени/создать несколько файлов
touch file1.txt file2.txt file3.txt
Обновить временные метки, если файл не существует НЕ создавать его
touch -c file.txt
Обновить только время доступа к файлу
touch -a file.txt
Обновить только время изменения файла
touch -m file.txt
Использовать временные метки другого файла
touch -r file.txt
Задать конкретное время доступа и модификации в формате YYMMDDhhmm
touch -t 202105251224 file.txt


time

time - время выполнения команды/скрипта

[da2001@co1 ~]$ time ls  
 connectedfile   link      newfiles   passwd        test       Видео       Загрузки      Музыка         'Рабочий стол'  
 hosts           newfile   oldfiles   symlinkfile   unhidden   Документы   Изображения   Общедоступные   Шаблоны  
  
real	0m0.002s  
user	0m0.001s  
sys	    0m0.001s  

which

which - команда отображает путь к исполняемому файлу запрашиваемой программы

[da2001@co1 ~]$ which time  
/usr/bin/time  

PATH

$PATH - переменная, в которой хранятся пути поиска исполняемых файлов

[da2001@co1 ~]$ echo $PATH  
/home/da2001/.local/bin:/home/da2001/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin  

Перенаправление ввода/вывода

Название       Использование при перенаправлении    Значение дискриптора  
STDIN          <           или          0<          0  
STDOUT         >           или          1>          1  
STDERR                                  2>          2  

> или 1> - перенаправление вывода. Если указано перенаправление в файл, файл будет перезаписан.
>> - допишет данные в конец файла
2> - перенаправление потока ошибок
2>&1 или &> - перенаправление вывода и потока ошибок в одно место ls test test2 > errout 2>&1
> /dev/null - перенаправление в пустоту


pipe |

pipe | - перенаправление вывода первой команды на вход второй команды

[da2001@co1 ~]$ cat /etc/passwd | grep da2001  
da2001:x:1000:1000:da2001:/home/da2001:/bin/bash  

uname

uname - утилита командной строки, которая печатает основную информацию об имени операционной системы и системном оборудовании
-s, ( kernel-name) печатает имя ядра. Значение по-умолчанию.
-n, ( nodename) печатает имя узла системы (имя хоста). Это имя, которое система использует при общении по сети. При использовании с опцией -n uname показывает тот же вывод, что и команда hostname.
-r, ( kernel-release) печатает выпуск ядра.
-v, ( kernel-version) печатает версию ядра.
-m, ( machine) печатает название аппаратного имени аппарата.
-p, ( processor) печатает архитектуру процессора.
-i, ( hardware-platform) печатает аппаратной платформы.
-o, ( operating-system) распечатает название операционной системы. В системах Linux это «GNU/Linux»
-a, ( all) при использовании опции -a uname ведет себя так же, как если бы были заданы опции -snrvmo.


wget

wget - загрузка файлов из сети
Примеры
Загрузка одного файла
wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Сохранить файл с другим именем
wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Скачать несколько файлов
wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
Взять адрес из файла
wget -i /wget/url.txt
Продолжить прерванную загрузку
wget -c http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Загрузка в фоне
-b - background, загрузка в фоне
-o - output-file, сохранение лога в файл

wget -b -o ~/wget.log http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Ограничение скорости загрузки
wget --limit-rate=100k ftp://ftp.iinet.net.au/debian/debian-cd/8.4.0/amd64/iso-dvd/debian-8.4.0-amd64-DVD-1.iso
k - килобит, m - мегабит, g - гигабит
Подключение по логину и паролю
wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
или
wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
Указать директорию загрузки
wget -P ~/Downloads/ http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz


zip/unzip

Создать архив из archive.zip файлов file1.txt file2.log
zip archive.zip file1.txt file2.log
Добавить в существующий архив папку с файлами
zip archive.zip -r /var/log/
Установить пароль на архив можно с помощью ключа -P, а ключ -e скроет пароль при вводе
zip archive.zip -Pe /var/log/
Распаковать архив в текущую директорию
unzip archive.zip
Распаковать в другую директорию
unzip archive.zip -d /tmp
Просмотреть список файлов в архиве без распаковки
unzip archive.zip -l
Распаковать определённый файлы архива
unzip archive.zip 1.txt 2.txt
Пример создания архива.
Заархивируем все файлы и папки в директории /var/log/ и директорию /var/spool/
zip -r -9 test-archive.zip /var/log/* /var/spool/* -x "/var/log/apt/*"
-r - архивировать рекурсивно
-9 - степень сжатия от 1 до 9. 0 - без сжатия.
test-archive.zip - имя архива
/var/log/* /var/spool/* - архивируемые директории через пробел
-x "/var/log/apt/*" - опция, позволяющая исключить указанную папку или файл из архива


findmnt

findmnt - показать точки монтирования
Просмотр устройств и точек их монтирования
findmnt --real

  • ключ --real появился недавно, в версии 2.32, кот. используется в CentOS 8 его еще нет, а в Mint 20, установлена версия 2.34, там уже есть.
    findmnt без опций покажет больше данных
    Отображать процесс монтирования/отмонтирования в реальном времени
    findmnt -p

mount

mount - монтирование файловых систем
-v - подробный режим;
-a, --all - примонтировать все устройства, описанные в fstab;
-F, --fork - создавать отдельный экземпляр mount для каждого отдельного раздела;
-f, --fake - не выполнять никаких действий, а только посмотреть что собирается делать утилита;
-n, --no-mtab - не записывать данные о монтировании в /etc/mtab;
-l, --show-labels - добавить метку диска к точке монтирования;
-c - использовать только абсолютные пути;
-r, --read-only - монтировать раздел только для чтения;
-w, --rw - монтировать для чтения и записи;
-L, --label - монтировать раздел по метке;
-U, --uuid - монтировать раздел по UUID;
-T, --fstab - использовать альтернативный fstab;
-B, --bind - монтировать локальную папку;
-R, --rbind - перемонтировать локальную папку
Показать все смонтированные ФС
mount
Смонтировать ФС, прописанные в /etc/fstab
sudo mount -a
Монтирование диска в папку
sudo mount /dev/sdb6 /mnt/
Монтирование с указанием файловой системы
sudo mount -t ext4 /dev/sdb6 /mnt
Монтирование только для чтения
sudo mount -r /dev/sdb6 /mnt
или
sudo mount -o ro /dev/sdb6 /mnt
Дополнительные опции монтирования
Запрет запуска исполняемых файлов в примонтированной папке
sudo mount -o noexec /dev/sdb6 /mnt
Перемонтировать раздел в режим только для чтения
sudo mount -o rw,remount /dev/sdb6 /mnt
Перемонтировать корень файловой системы в режим чтения-записи
sudo mount -o rw,remount /
Монтирование одной папки в другую
sudo mount --bind /mnt/ /media/
Монтирование образа
sudo mount ~/file.iso /mnt
Зеркало папки
sudo mount /dev/sdb1 /home/user/Видео
sudo mount --bind /home/user/Видео /home/user/Документы
в итоге /dev/sdb1 будет смонтирован сразу в две папки

umount

umount - размонтирование ФС
sudo umount /mnt
иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy
Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof
lsof -w /mnt
lsof -w /dev/sdb6
С опцией -l, файловая система будет отключена немедленно, несмотря на то, что она занята
sudo umount -l /mnt


cut

cut - вырезать часть текста
-b (--bytes=LIST) — номер байта, набор или диапазон байтов, подлежащих вырезанию.
-c (--characters=LIST) — символ, который следует вырезать. Также можно указывать набор либо диапазон символов.
-d (--delimiter=DELIM) — с помощью этой опции пользователь устанавливает свой разделитель вместо стандартного TAB.
-f (--fields=LIST) — перечень полей для вырезания.
-s (--only-delimited) — если была применена эта опция, cut не выводит строки, где нет разделителя.
--complement — задает байты, символы или поля, которые останутся в файле или тексте из стандартного ввода. Все остальное будет вырезано.
--output-delimiter=STRING — по умолчанию выходной разделитель соответствует входному. Эта опция позволяет задать другой выходной разделитель.
-z, --zero-terminated — вместо символа новой строки разделителем будет NULL.
для примеров создан файл

[da2001@co1 ~]$ cat cut_command_example.txt   
Winter: white: snow: frost  
Spring: green: grass: warm  
Summer: colorful: blossom: hot  
Autumn: yellow: leaves: cool  
  1. Работа с байтами (-b)
    вырезать из текста 1 байт
[da2001@co1 ~]$ echo "The sky was yellow as brass." | cut -b 1  
T  

вырезать несколько конкретных байт и диапазон

[da2001@co1 ~]$ echo "I looked at my watch; not eight o'clock." | cut -b 5,8,17,18-21  
odatch;  

также можно работать с файлами

[da2001@co1 ~]$ cut -b 1,9 cut_command_example.txt  
Ww  
Sg  
Sc  
Ay  

вырезать все байты начиная с 5 и до конца строки

[da2001@co1 ~]$ cut -b 5- cut_command_example.txt  
er: white: snow: frost  
ng: green: grass: warm  
er: colorful: blossom: hot  
mn: yellow: leaves: cool  

вырезать байты 1-16

[da2001@co1 ~]$ cut -b -16 cut_command_example.txt  
Winter: white: s  
Spring: green: g  
Summer: colorful  
Autumn: yellow:   
  1. Работа с символами аналогична работе с байтами за исключением того, что необходимо использовать ключ -c
[da2001@co1 ~]$ cut -c -16 cut_command_example.txt  
Winter: white: s  
Spring: green: g  
Summer: colorful  
Autumn: yellow:  
  1. Работа со столбцами (-d - разделитель, -f - номер столбца)
[da2001@co1 ~]$ echo "From the inn issued a smell of frying liver." | cut -d ' ' -f 1  
From  

первый столбец файла с разделителем :

[da2001@co1 ~]$ cat cut_command_example.txt   
Winter: white: snow: frost  
Spring: green: grass: warm  
Summer: colorful: blossom: hot  
Autumn: yellow: leaves: cool  
  
[da2001@co1 ~]$ cut -d ':' -f 1 cut_command_example.txt  
Winter  
Spring  
Summer  
Autumn  

вырезать несколько столбцов

[da2001@co1 ~]$ cut -d ':' -f 1,2,3 cut_command_example.txt  
Winter: white: snow  
Spring: green: grass  
Summer: colorful: blossom  
Autumn: yellow: leaves  

Команда cut также пригодится при работе с массивными CSV-документами. Ее синтаксис и опции в этом случае остаются неизменными. Например, при таком написании будут вырезаны первые два столбца файла с названием file_example.csv:

cut -d ',' -f 1,2 file_example.csv  

sort

sort - сортировка текста
Строки с цифрами размещаются выше других строк
Строки, начинающиеся с букв нижнего регистра размещаются выше
Сортировка выполняется в соответствии алфавиту
Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
-b - не учитывать пробелы
-d - использовать для сортировки только буквы и цифры
-i - сортировать только по ASCII символах
-n - сортировка строк linux по числовому значению
-r - сортировать в обратном порядке
-с - проверить был ли отсортирован файл
-o - вывести результат в файл
-u - игнорировать повторяющиеся строки
-m - объединение ранее отсортированных файлов
-k - указать поле по которому нужно сортировать строки, если не задано, сортировка выполняется по всей строке.
-f - использовать в качестве разделителя полей ваш символ вместо пробела
-R - сортировка в случайном порядке

[da2001@co1 ~]$ cat test.txt   
computer  
mouse  
LAPTOP  
data  
RedHat  
laptop  
debian  
laptop  

Сортировка по алфавиту

[da2001@co1 ~]$ sort test.txt   
computer  
data  
debian  
laptop  
laptop  
LAPTOP  
mouse  
RedHat  

Сортировка в обратном порядке

[da2001@co1 ~]$ sort -r test.txt   
RedHat  
mouse  
LAPTOP  
laptop  
laptop  
debian  
data  
computer  

Сортировка вывода по 9-й колонке

[da2001@co1 ~]$  ls -l | sort -k9  
total 16  
-rw-rw-r--. 2 da2001 da2001   0 May 24 09:59 connectedfile  
-rw-rw-r--. 1 da2001 da2001 114 May 28 13:49 cut_command_example.txt  
-rw-rw-r--. 1 da2001 da2001  59 May 24 15:58 errout  
lrwxrwxrwx. 1 da2001 da2001  10 May 24 09:59 hosts -> /etc/hosts  
drwxrwxrwx. 2 da2001 da2001   6 May 26 13:55 mydir  
drwxrw-r-x. 2 da2001 da2001   6 May 26 13:56 mydir2  
-rw-rw-r--. 2 da2001 da2001   0 May 24 09:59 newfile  

Сортировка 5-й колонки по числовому значению -n

[da2001@co1 ~]$  ls -l | sort -nk5  
lrwxrwxrwx. 1 da2001 da2001   7 May 24 10:08 symlinkfile -> newfile  
lrwxrwxrwx. 1 da2001 da2001  10 May 24 09:59 hosts -> /etc/hosts  
lrwxrwxrwx. 1 da2001 da2001  11 May 24 09:58 passwd -> /etc/passwd  
drwxrwxr-x. 2 da2001 da2001  37 May 24 08:55 newfiles  
-rw-rw-r--. 1 da2001 da2001  55 May 28 14:34 test.txt  
-rw-rw-r--. 1 da2001 da2001  59 May 24 15:58 errout  
-rw-rw-r--. 1 da2001 da2001  68 May 25 12:24 welcome  
drwxrwxr-x. 2 da2001 da2001  91 May 28 09:58 test  
-rw-rw-r--. 1 da2001 da2001 114 May 28 13:49 cut_command_example.txt  
drwxrwxrwx. 2 da2001 da2001 142 May 28 14:44 mydir  

Сортировка со скрытием дублирующихся значений -u

[da2001@co1 ~]$ sort -u test.txt  
computer  
data  
debian  
laptop  
LAPTOP  
mouse  
RedHat  

w

w - показать авторизованных пользователей в системе

[da2001@co1 ~]$ w  
 08:22:28 up 7 days, 23:16,  1 user,  load average: 0.00, 0.00, 0.00  
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT  
da2001   pts/0    192.168.1.8      08:22    2.00s  0.11s  0.00s w  

useradd

useradd - создать нового пользователя
основные параметры:

-c, --comment КОММЕНТАРИЙ     поле GECOS новой учётной записи  
-d, --home-dir ДОМ_КАТ        домашний каталог новой учётной записи  
-D, --defaults                показать или изменить настройки по умолчанию для useradd  
-e, --expiredate ДАТА_УСТ     дата устаревания новой учётной записи  
-f, --inactive НЕАКТИВНОСТЬ   период неактивности пароля новой учётной записи  
-g, --gid ГРУППА              имя или ID первичной группы новой учётной записи  
-G, --groups ГРУППЫ           список дополнительных групп новой учётной записи  
-K, --key КЛЮЧ=ЗНАЧЕНИЕ       заменить значение по умолчанию из /etc/login.defs  
-m, --create-home             создать домашний каталог пользователя  
-M, --no-create-home          не создавать домашний каталог пользователя  
-N, --no-user-group           не создавать группу с тем же именем что и у пользователя  
-o, --non-unique              разрешить создание пользователей с повторяющимися (не уникальными) UID  
-s, --shell ОБОЛОЧКА          регистрационная оболочка новой учётной записи  
-u, --uid UID                 пользовательский ID новой учётной записи  
-U, --user-group              создать группу с тем же именем что и у пользователя  

Создать пользователя linda, id 1201 (-u 1201), -m создать домашний каталог, добавить пользователя в группы sales и ops (-G sales,ops)

useradd -m -u 1201 -G sales,ops linda  

passwd

passwd - пароль учётной записи
основные параметры:

-d, --delete                  удалить пароль заданной учётной записи  
-e, --expire                  просрочить пароль заданной учётной записи  
-l, --lock                    заблокировать заданную учётную запись  
-n, --mindays МИННЕЙ        установить минимальное число дней перед сменой пароля в МИННЕЙ  
-S, --status                  показать состояние пароля заданной учётной записи  
-u, --unlock                  разблокировать заданную учётную запись  
-w, --warndays ПРЕДУП_ДНЕЙ    установить количество дней с выдачей предупреждения в ПРЕДУП_ДНЕЙ  
-x, --maxdays МАКСНЕЙ       установить максимальное число дней перед сменой пароля в МАКСНЕЙ  

Задать пароль для пользователя linda

passwd linda  

Изменить свойства пароля. Срок действия пароля истекает через 90 дней (-x 90). За три дня до истечения срока действия пользователь получит предупреждение (-w 3), и пароль необходимо использовать не менее 30 дней, прежде чем (-n 30) его можно будет изменить.

passwd -n 30 -w 3 -x 90 linda  

chage

chage - изменяет информацию об устаревании пароля пользователя
основные опции:

-d, --lastday ПОСЛ_ДЕНЬ       установить последний день смены пароля в ПОСЛ_ДЕНЬ  
-E, --expiredate ДАТА_УСТ     установить дату окончания действия учётной записи в ДАТА_УСТ  
-I, --inactive НЕАКТИВНОСТЬ   установить неактивность пароля после устаревания в значение НЕАКТИВНОСТЬ  
-l, --list                    показать «возраст» учётной записи  
-m, --mindays МИННЕЙ        установить минимальное число дней перед сменой пароля в МИННЕЙ  
-M, --maxdays МАКСНЕЙ       установить максимальное число дней перед сменой пароля в МАКСНЕЙ  
-W, --warndays ПРЕДУП_ДНЕЙ    установить количество дней с выдачей предупреждения в ПРЕДУП_ДНЕЙ  
sudo chage -l laura  
Last password change                                : Jun 03, 2021  
Password expires                                    : Sep 01, 2021  
Password inactive                                   : never  
Account expires                                     : never  
Minimum number of days between password change      : 0  
Maximum number of days between password change      : 90  
Number of days of warning before password expires   : 3  

groupadd

groupadd - создание группы
Создать группу sales

groupadd sales  

Создать группу prod и указать её GID

groupadd prod -g 1201  

usermod

usermod - изменяет учётную запись пользователя
Добавить пользователя linda в группу sales

usermod -aG sales linda  

Изменить основную группу пользователя на группу sales

usermod -g sales  

id

id - информация о пользователе

da2001@Metromint:~$ id da2001  
uid=1000(da2001) gid=1000(da2001) группы=1000(da2001),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(kvm),114(lpadmin),134(sambashare),136(wireshark),139(libvirt)  

wc

wc - подсчет количества строк, слов, символов, байт

-c, --bytes                 напечатать количество байт  
-m, --chars                 напечатать количество символов  
-l, --lines                 напечатать количество новых строк  
-w, --words                 напечатать количество слов  

запуск команды без параметров выдаст количество строк, слов, байт

da2001@Metromint:~$ cat test.txt   
Привет  
как  
дела        
da2001@Metromint:~$ wc test.txt   
 3  3 29 test.txt  

less

less - постраничный вывод текста на экран
Опций очень много, навигация по файлу осуществляется аналогично vim

-c, --squeeze-blank-lines   удалить лишние пустые строки  

Поиск по открытому файлу
/text - поиск слова text вперед
?text - поиск слова text назад