79 KiB
Материал для подготовки к 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
— не делать резервных копий, даже если включена опция --backupnumbered
или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
- Работа с байтами (
-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:
- Работа с символами аналогична работе с байтами за исключением того, что необходимо использовать ключ
-c
[da2001@co1 ~]$ cut -c -16 cut_command_example.txt
Winter: white: s
Spring: green: g
Summer: colorful
Autumn: yellow:
- Работа со столбцами (
-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 назад