Файлы и каталоги

 

 

awk - обработка и фильтрация текста

awk [опции] 'условие{действие}'


Опции:

-F - каой разделитель полей, используется для разбиения текста на колонки;
-f -прочитать данные не из стандартного вывода, а из файла;
-v - присвоить значение переменной, например foo=bar;
-d - вывести значения всех переменных awk по умолчанию;
-D - режим отладки, позволяет вводить команды интерактивно с клавиатуры;
-e  - выполнить указанный код на языке awk;
-o - вывести результат работы программы в файл;

 

Функции действий

print(строка) - вывод чего либо в стандартный поток вывода;
printf(строка) - форматированный вывод в стандартный поток вывода;
system(команда) - выполняет команду в системе;
length(строка) - возвращает длину строки;
substr(строка, старт, количество) - обрезает строку и возвращает результат;
tolower(строка) - переводит строку в нижний регистр;
toupper(строка) - переводить строку в верхний регистр.

 

Переменные и операторы

$ - ссылка на колонку по номеру.
FNR - номер обрабатываемой строки в файле;
FS - разделитель полей;
NF - количество колонок в данной строке;
NR - общее количество строк в обрабатываемом тексте;
RS - разделитель строк, по умолчанию символ новой строки;
BEGIN - выполнить команду до обработки данных
END - выполнить команту после обработки даных


 

Примеры:

1. Вывести  6.2, 5 колонки вывода ls -l.
2. Вывести тоже самое из файла my_file.

1. #ls -l | awk '{print $6, $2, $5}'
2. #awk '{print $6, $2, $5}' my_file

 

Добавить к первому столбцу вывода ls текст "my text"

#ls -l | awk '{print "my text"$1}'

 

Если разделитель не пробелы, а допустим ":"

#ls -l | awk -F":" '{print $1}'

 

Если в выводе неизвестное количество полей, то последнее поле можно указать переменной NF, а предпоследнее NF-1

#ls -l | awk '{print $(NF-1)}'

 

Найти значение "192.168" в выводе команде "ip a" и вывести 2-ой столбец 

#ip a | awk '/192.168/{print $2}'

 

Напечатать первое поле каждой записи, второе поле которой содержит/не содержит "ia" в фале my_file

#awk '$2 ~ /ia/ {print $1}' my_file

#awk '$2 !~ /ia/ {print $1}' my_file

 

Напечатать первое поле той записи, у которой третье поле больше 50, а четвертое поле меньше 30:

#awk '$3 > 50 && $4 < 30 {print $1}' my_file

 

Вывести все поля вывода, кроме первого и третьего поля:

#cat file | awk '{$1=""; $3=""; print $0}'

 

Посчитать сумму чисел в определенном столбце. Предположим, что мы хотим посчитать сумму переданных данных, которые в логе находятся в 10-ом столбце:

#cat /appache2/log.1 | awk '{totalBytes+=$10} END {print totalBytes}'

 

cat / tac - просмотр содержимого файла в прямом / обратном направлении

cat [опции] файл1 файл2


Опции:

-b - нумеровать только непустые строки;

-E - показывать символ $ в конце каждой строки;

-n - нумеровать все строки;

-s - удалять пустые повторяющиеся строки;


Примеры:

Прочитать и пронумеровать file1 file2 и записать вывод в file3

#cat -n file1 file2 > file3

 

Прочитать file с конца в начало

#tac file

 

cp - копирование файлов

cp [опции] /путь_к_источнику /путь_назначения


Опции:

-v, --verbose - максимально подробный вывод

-r, --recursive - копировать папку рекурсивно;

-x, --one-file-system - рекурсивное копирование не должно выходить за пределы этой файловой системы

-f, --force - удалить файл назначения перед попыткой записи в него если он существует;

-i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;

-u, --upgrade - скопировать файл, только если он был изменён;

-n, --no-clobber - не перезаписывать существующие файлы;

--preserve - переносить указанные атрибуты с файла источника в файл назначения, возможные значения: mode, ownership, time‐stamps, context, links, xattr, all;

-p - сохранять владельца, временные метки и флаги доступа при копировании, аналогично --preserve=mode,ownership,timestamps;

--parents - сохранять путь, указанный в файле источнике, в папке назначения;

--attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;

-b, --backup - создать резервную копию файла назначения если он существует;

--copy-contents - копировать содержимое для специальных файлов (сокеты, файлы устройств);

-P, --no-dereference - копировать сами символические ссылки, а не то на что они указывают;

-L, --dereference - копировать не символические ссылки, а то, на что они указывают;

-l, --link - создавать жесткие ссылки вместо копирования;

-s, --symbolic-link - не выполнять копирование файлов в Linux, а создавать символические ссылки;

-a - режим резервного копирования, при котором сохраняются все атрибуты, ссылки, а также выполняется резервное копирование папок


Дополнительно:

mode - права доступа, сюда входит чтение, запись, выполнение и дополнительные флаги;
ownership - владелец и группа;
time‐stamps - временные метки, такие как дата обновления, дата создания и дата последнего доcтупа;
context - контекст SELinux;
links - сохранение жестких ссылок;
xattr - дополнительные атрибуты, которые настраиваются с помощью команды chattr;
all - всё выше перечисленное.

 

 

cut - вырезать часть текста

cut [опции] файл

Команда удаляет секции текста, которые были обозначены при помощи байтов, символов или полей, разделенных знаками "-" и ":"


Опции:

-b - номер или диапазон байтов, подлежащих вырезанию.

-c - символ, который следует вырезать.

-d - с помощью этой опции пользователь устанавливает свой разделитель вместо стандартного TAB.

-f - перечень полей для вырезания.

-s - если была применена эта опция, cut не выводит строки, где нет разделителя.

--complement -  задает байты, символы или поля, которые останутся в файле или тексте из стандартного ввода. Все остальное будет вырезано.


Примеры:

Вырезать из вывода команды байты 1,3,5 (для символов аналогично)

#echo "Hello" | cut -b 1,3,5
#echo "Hello" | cut -c 1,3,5
Hlo

 

Вырезать из вывода команды байты с 1 по 4

#echo "Hello" | cut -b 1-4
Hell

 

Вырезать из текста байты с 5 до конца строки / первые 3 байта

#cut -b 5- /etc/file

#cut -b -3 /etc/file

 

Вырезать из файла слова с 1-го по 3-ий, разделенные пробелом

#cut -d ' ' -f1-3 /tmp/file

#cut -d ' ' -f1,2,3 /tmp/file

 

 

diff- сравнение файлов

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

Команда diff служит для сравнения двух файлов. 

В выводе команды отличающиеся строки помечаются символами > и <:
> - отличие строк во втором файле (нет такой в первом файле или не идентичны)
< - отличие строк в первом файле (нет такой во втором файле или не идентичны)

и буквами:
a - добавлена;
d - удалена;
c - изменена.


Опции:

-i - игнорировать регистр

-l - разделить на страницы и добавить поддержку листания

-y - выводить в две колонки

-r - рекурсивное сравнение папок

-b - не учитывать пробелы;

-B - не учитывать пустые строки.

  

 

df / du - занятое место ФС

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

Основное использование:
df -Th - занятое место на диске с указанием типа файловой системы
df -ih - занятое место под i-ноды


du [опции] /путь_к_папке

Опции:

-a - выводить размер для всех файлов, а не только для директорий;
--exclude - исключения из вывода
-c - выводить в конце общий размер всех папок;
-d, --max-depth - максимальная глубина вложенности директорий;
-h - выводить размер в единицах измерения удобных для человека;
-S - не включать размер подпапок в размер папки;
-s - выводить только общий размер;
--time - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
-x - пропускать примонтированные файловые системы;


Примеры:

Вывести общий размер каталога var / подкаталогов var, отсортировать по размеру

#du -sh /var

#du -sh /var/*  | sort -rh

  

Вывести размер файлов каталога /var и подкаталогов с файлами каталога /var, исключив каталоги и файлы, содержащие "log". Отсортировать по размеру и вывести 20 самых больших файлов.

Вариант 1: #du -sh --exclude "log" /var/* | sort -rh | head -n 20

Вариант 2: #du -a --max-depth 1 --exclude "log" /var/ | sort -nr | head -n 20

 

 

find - поиск файлов

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

 

Полезные параметры:

-xdev - не спускаться по директориям на других файловых системах

-maxdepth число - спускаться на максимум число (неотрицательное целое число) уровней директорий

-mindepth уровни - mindepth 1 означает обрабатывать все файлы, кроме начальных точек

-gid n - числовой ID группы файла равен n.

-group gname - файл принадлежит группе gname

-ilname шаблон - как -lname, но совпадение не чувствительно к регистру

-inum n - файл имеет номер иноды n.

-links n - файл имеет n ссылок.

-nogroup - нет групп, соответствующих числовому ID группы, к которой принадлежит файл.

-nouser - нет пользователя, соответствующему числовому ID пользователя, которому принадлежит файл.

-type тип - тип файла: b (блочный), с (символьный), d (директория), f (файл), l (символьная ссылка), s (сокет)

-uid n - числовой ID пользователя файла равен n.

-used n - последний раз к файлу был совершён доступ n дней после последнего изменения его статуса.

-user uname - файл принадлежит пользователю uname


 

Поиск по имени

find / -name a.out – найти начиная с корня имена файлов, содержащие a.out
find /home -name "*.txt" – найти в /home файлы по маске *.txt
find / -name "*.tmp" -exec rm {}+ - найти файлы по маске *.tmp и удалить их
find / -name "*.tmp" -exec pwd \; - найти файлы по маске *.tmp и вывести путь


Поиск по размеру файла

find /home/ -size +100М -size -150М – найти файлы в home размером от 100 до 150 МБ
find / -size +1G - найти файлы больше одного Гбайта [c - байты, k - килобайты, М - мегабайты]


Поиск по дате создания, измениния, последнего доступа

find / -type f -newermt "2023-10-19 00:47" ! -newermt "2023-10-19 00:53" - поиск измененных файлов в промежутке 2023.10.19 00:47 - 00:53

find / -mtime +50 -mtime -100 - найти файлы, измененные от 50 до 100 дней назад
find / -atime 50 - найти файлы, открые ровно 50 дней назад
find / -ctime 10 - найти файлы, созданные 10 дней назад
find . -cmin +1 -cmin -10 - найти файлы в текущей дирректории, созданные от 1-ой до 10 минут назад (если опции amin или mmin - то это соответственно открытые и измененные)


Поиск изменненых файлов, после выполнения какой-либо команды

Перед выполнением команды создаем файл, например /tmp/metka Выполняем команду, например useradd Vasya. Теперь, чтобы найти, какие файлы изменились в ОС, выполняем:

find / -type f -newer /tmp/metka ! -path '/proc/*' ! -path '/run/*' ! -path '/sys/*'

т.е. мы находим файлы (-type f) начиная с корня, которые новее (-newer) файла /tmp/metka при этом исключив (! -path ..) не нужные каталоги (процессы) из вывода.


Разное

find / -iname FiLe -xdev - поиск FiLe без учета регистра и не спускаться по директориям на других файловых системах.
find / -type f -name name_file - найти только файлы name_fale. -type d - тоже самое, только директории.
find . -size Ос (find / -empty) – найти файлы нулевого размера в текущей директории
find / -type f -user John - найти только файлы (без каталогов), владелец которых John
find / -maxdepth 1 -name file - ограниить глубину поиска файла file текущим каталогом

  

 

grep - поиск в выводе команды и в файлах

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

Основные опции:
-i - не учитывать регистр;
-r - рекурсивный поиск в каталоге;
-n - показывать номер строки в файле;
-o - вывести только найденое согласно шаблона поиска;
-e - использовать регулярные выражения при поиске;
-v - имитация условия NOT;
-An - показать вхождение и n строк до него;
-Bn - показать вхождение и n строк после него;
-Cn - показать n строк до и после вхождения;


Примеры использования

поиск слова user без учета регистра в файле passwd

#grep -i "user" /etc/passwd

 

поиск слова user во всех файлах каталога /etc/ и его подкаталогах

#grep -r "user" /etc/

 

поиск точного совпадения abc. В данный вывод не попадет например abcd

#grep -w "abc" /etc/passwd

 

выделение цветом найденого слова

#grep --color "user" /etc/passwd

 

поиск в файлах, начинающихся на "messages", слова "err" без учета регистра

#grep -i err /var/log/messages*

 

С помощью флагов -A, -B или -C со значением num можно выводить строки выше или ниже (или и то, и другое) совпавшей строки. -A строка которая следует сразу после соответствующей строки поиска, -B - перед строкой, -C до и после соответствующей строки.

Следующий пример выводит две строки до и одну после найденого совпадения

#grep -B2 -A1 -i err /var/log/messages*

 

grep NOT (не) - поиск строк, не содержащих слова "user"

#grep -v "user" /var/log/messages

 

grep AND (и)  - поиск строк в passwd, содержащих в одной строке "user" и "nologin"

#cat /etc/passwd | grep -E "user" | grep -E "nologin"

или

#grep -E "user" /etc/passwd | grep -E "nologin"

 

grep OR (или) - поиск строк, содержащих одно из значений "user" или "nologin"

#grep -e "user" -e "nologin" /etc/passwd

или

#cat /etc/passwd | grep -e "user" -e "nologin"

 

 

ln- жесткие и символьные ссылки

ln [опции] файл_источник файл_ссылки

Опции:

-s – создать символическую ссылку


Cоздать символическую / жесткую ссылку link_file в каталоге /tmp на файл /etc/passwd 

#ln -s /etc/passwd /tmp/link_file

#ln /etc/passwd /tmp/link_file

 

Найти все символические / жесткие ссылки на файл file1

#find / -lname "file1"

#find / -samefile file1

 

Символические ссылки:

- Могут ссылаться на файлы и каталоги;
- После удаления, перемещения или переименования файла становятся недействительными;
- Права доступа и номер inode отличаются от исходного файла;
- При изменении прав доступа для исходного файла, права на ссылку останутся неизменными;
- Можно ссылаться на другие разделы диска;
- Содержат только имя файла, а не его содержимое

По сути символьные ссылки - это аналог ярлыка в ОС Windows

 

Жесткие ссылки:

- Работают только в пределах одной файловой системы;
- Нельзя ссылаться на каталоги;
- Имеют ту же информацию inode и набор разрешений что и у исходного файла;
- Разрешения на ссылку изменяться при изменении разрешений файла;
- Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.

 

 

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

ls [опции] путь

Опции:

-a показывать все файлы, в том числе скрытые
-l использовать широкий формат
-d не выводить содержимое поддерикторий
-n, --numeric-uid-gid как -l, но выдавать числовые UID и GID
-lt сортировать и показывать по ctime (времени последнего изменения файла)
-r, --reverse  обратный порядок сортировки
-lh печатать размеры в удобном для человека виде
-i, --inode показывать иноду каждого файла
-R, --recursive рекурсивно показывать каталоги
-S сортировать по размеру файлов, большие сначала
-1 перечислять по одному файлу на строке.


 

$ ls -l - подробный вывод с разрешениями для файлов

drwxr-xr-x  4 a1   root    4096 дек 27 18:36  apt

расшифровка вывода команды ls -l

d - директория (- обычный файл, l -символическая ссылка, b - блочное устройство, с - символьный файл, p - тунели, s - сокеты)
rwx - разрешения для владельца, группы, всех остальных,
а1 - владелец
root - группа
4096 - размер
дек 27 18:36 - время модификации файла
apt - каталог или файл, описанный в этом примере

 

Примеры:

$ ls -l - подробный вывод с разрешениями для файлов
$ ls -l | more - постраничный подробный вывод
$ ls -a /var/log - просмотр всех файлов и каталогов в соответствующем каталоге
$ ls -a /var/log/b* - просмотр всех файлов и каталогов в каталоге /var/log/ начинающихся на b с выводом содержимого поддиректорий
$ ls -d /var/log/b* - просмотр всех файлов и каталогов в каталоге /var/log/ начинающихся на b без вывода содержимого поддиректорий
$ ls -a /var/log/*ba* - просмотр всех файлов и каталогов в каталоге /var/log/ содержащие "ba" в имени

 

mkdir - создать каталог

mkdir [опции] директория

Опции:

-v - выводить сообщение о каждой создаваемой директории
-m - устанавливает права доступа для создаваемой директории
-p - cоздать все директории, которые указаны внутри пути
Кроме этого можно использовать диапазоны {A..Z} и {1..n}


Создать директорию /dir с правами 700

#mkdir -m 700 /dir

 

Создать все директории по пути /dir1/dir2/dir3. При создании выводить подробную информацию.

#mkdir -pv /dir1/dir2/dir3

В результате будут созданы все 3 каталога, т.е. будет создан каталог dir1, в каталоге dir1 каталог dir2, в каталоге dir2 каталог dir3.

 

Создать директории dir_A1, dir_A2 ... dir_C1, dir_C2

#mkdir -pv dir_{A..C}{1..2}

 

Создать директории dir1 - dir3 и в каждой поддиректории каталоги inA - inD

#mkdir -pv dir{1..3}/in{A..D}

 

more, less - постраничный просмотр

more [опции] файл

less [опции] файл

Опции аналогичные:

-n - отображение вывода по n строк
+n - отображать вывод с n-ой строки
+/искомое_слово - начинать вывод с искомого слова

Горячие клавиши:

! команда - выполнить команду

v - открыть в редакторе

f,b - переход на страницу вперед, назад


Найти в файлк file фразу search и начать вывод с неё

#more +/search file

или

#cat file | more +/search

 

 

mv - переместить (переименовать) файл или каталог

mv [опции] исходный_файл куда

Опции:

-f - не задавать вопросы
-i - выводить запрос по каждому файлу
-v - подробная информация по операции с файлами
-b - создать резервную копию, если файл существует (по-умолчанию создается "имя_файла~")
-S - изменить суффикс имени резервной копии (например "имя_файла~" на "имя_файла.bak")
-u - перемещать только если исходный файл новее или если файл-назначения отсутствует
-n - не перезаписывать файлы, если они существуют

Примечание: при перемещении атрибуты файлов и каталогов не меняются (права, дата модификации и т.п.)


Удалить файлы и каталоги по маске dir, не задавать вопросы и вывести подробную информацию

#rm -rfv dir*

 

  

rm - удалить файл или каталог

rm [опции] файл

Опции:

-f - не задавать вопросы при удалении
-i - выводить запрос по каждому файлу
-r - рекурсивное удаление
-v - подробная информация по удаленным файлам


Удалить файлы и каталоги по маске dir, не задавать вопросы и вывести подробную информацию

#rm -rfv dir*

 

  

rsync - синхронизация файлов и каталогов

rsync [опции] источник приемник

Опции:

-v - Выводить подробную информацию о процессе копирования;
-r - рекурсивно:
-q - Минимум информации;
-c, --checksum - Проверка контрольных сумм для файлов;
-a - Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
-b - Создание резервной копии;
-u - Не перезаписывать более новые файлы;
-l - Копировать символьные ссылки;
-L - Копировать содержимое ссылок;
-H - Копировать жесткие ссылки;
-p - Копирует все права на приемную сторону точь в точь с оригиналом.;
-g - Сохранять группу;
-t - Сохранять время модификации;
-x - Работать только в этой файловой системе;
-e - Использовать другой транспорт, например, ssh;
-z - Сжимать файлы перед передачей;
-W - копировать весь файл без rsync-алгоритма (увеличивает скорость)
--ignore-existing - Игнорировать те файлы, которые уже существуют
--delete - Удалять файлы которых нет в источнике;
--exclude - Исключить файлы по шаблону;
--recursive - Перебирать директории рекурсивно;
--no-recursive - Отключить рекурсию;
--stats - Выводить подробную статистику, позволяя оценить, насколько эффективен алгоритм rsync
--progress - Выводить прогресс передачи файла;


Примеры:

Синхронизация файлов и каталогов домашей дирректории пользователя a1 в директорию /backup/a1 

#rsync -rvh --progress /home/a1/* /backup/a1

 

Синхронизация с удаленным сервером (и с удаленного сервера) используя ssh под пользователем root 

#rsync -r --progress /home/a1/* Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.1:/backup/a1

#rsync -r --progress Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.1:/backup/a1/* /home/a1/ 

 

Если на удаленным сервере настроен и работает rsync сервер, то можно и так:

#rsync -r --progress /home/a1/* rsync://192.168.1.1/backup/a1

 

Синхронизировать с подсчетам контрольных сумм исходных файлов (по умолчанию синхронизация по дате модификации). Бывает полезно, когда какие-либо файлы меняются без измения даты модификации:

#rsync -c --progress /home/a1/* /backup/a1

 

Скопировать все файлы, начинающиеся на fi, исключить file1, размер файлов меньше 200 КБ, ограничить скорость передачи, удалить те файлы на стороне приемнике, которых нет в источнике, после синхронизации удалить исходные файлы, использовать порт 23.

#rsync --include 'fi*' --exclude 'file1' --max-size='200k' --bwlimit=100 --delete --remove-source-files -e 'ssh -p 23' /home/a1/* /backup/a1

 

 

sort, nl, head, tail - сортировка, нумерация, вывод заголовков и окончаний

sort - сортировка строк

sort [опции] файл
команда | sort [опции]

Опции:
-n - сортировка строк linux по числовому значению
-r - сортировать в обратном порядке
-k - указать поле по которому нужно сортировать строки
-b - не учитывать пробелы
-d - использовать для сортировки только буквы и цифры
-u - игнорировать повторяющиеся строки
-m - объединение ранее отсортированных файлов

- строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
- строки с цифрами размещаются выше других строк
- строки, начинающиеся с букв нижнего регистра размещаются выше

 

Примеры: 

Отсортировать вывод команды ls -l по второму столбцу в обратном порядке

#ls -l | sort -rk2

#ls -l | sort -rnk2 (сортировка по числовому значению)


nl - нумерация строк

nl [опции] файл
команда | nl [опции]

Опции:
-t - нумеровать только непустые строки
-b - какие нумеровать строки (а - все, t - не пустые)
-v - с какого числа начать нумерацию
-i - шаг увеличения нумерации

 

Пронумеровать непустые строки файла file, нумерации начать с 5, увеличивая значение каждого следующего номера на 3

#cat file | nl -t -v5 -i3
#cat file | nl -b a # нумеровать все строки 


head, tail - заголовки и окончания

head или tail [опции] файл
команда | head (tail) [опции]

Команда head выводит начальные строки (по умолчанию — 10) вывода, соотвественно tail - последние строки.

Опции:
-n - количество выводим строк
-b - количество текста в байтах

  

   

tar - архивирование/разархивирование

Основное: просто запомнить для упаковки используется опция c - Create, а для распаковки - x - eXtract. По-умолчанию tar создает архив без сжатия. 


tar [опции] архив путь 

 Опции:

x - извлечь файлы из архива
c - создать архив
j - сжать архив с помощью Bzip
z - сжать архив с помощью Gzip
r - добавить файлы в конец архива
v - показать подробную информацию о процессе работы
C - распаковать в указанную папку
f - файл для записи архива

 

Создать не сжатый / сжатый в gzip архив archive.tar / archive.tar.zip каталога /root

#tar -cvf archive.tar /root

#tar -zcvf archive.tar.zip /root

 

Разархивировать не сжатый / сжатый gzip archive.tar архив в текущую папку

#tar -xvf archive.tar

 

Исключение файлов по маске 

#tar --exclude='sess*' -czvf archive.tar.zip /root

 

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

#tar -tf archive.tar | less

 

  

touch - создать файл, изменить время создания, доступа, модификации 

touch [Опции] Файл


Опции:

-a - изменение времени доступа к указанному файлу.

-m - изменяет время модификации.

-c - определяет, что объект с указанным именем создан не будет.

-r - позволит использовать время доступа и модификации указанного файла.

-t - предназначена для изменения даты и времени путем ручного ввода.

-d - использует дату и время, заданные в виде строки.


Примеры:

Создать файл file 

#touch file

 

Создать file1 … file4

#touch file1 file2 file3 file4
или
#touch file{1..4}

 

Создать файл с датой создания 2023.08.24 15-03. Соблюдаем правило ГМдчм (год, месяц, день, час, минута)

#touch -t 202308241503 filename

 

Изменить дату создания существующего файла

#touch -с -t 202308241503 filename

  

tr - удалить, изменить вывод 

tr [ключ] набор1 набор2


Ключи:

-с - сначала получить дополнение НАБОРА1.

-d - удалить знаки из НАБОРА2, не превращать.

-s - замещать последовательность знаков, которые повторяются, из перечисленных в последнем НАБОРЕ, на один такой знак

-t - сначала сократить НАБОР1 до размеров НАБОРА2


Наборы

[:alnum:] Все буквы и цифры
[:alpha:] Все буквы
[:blank:] Все горизонтальные пробельные символы
[:cntrl:] Все управляющие знаки
[:digit:] Все цифры
[:graph:] Все печатаемые знаки, исключая пробел
[:lower:] Все маленькие буквы
[:print:] Все печатаемые знаки, включая пробел
[:punct:] Все знаки пунктуации
[:space:] Все вертикальные и горизонтальные пробельные знаки
[:upper:] Все большие буквы
[:xdigit:] Все шестнадцатиричные цифры
[=ЗНАК=] Все знаки, эквивалентные ЗНАКУ


Примеры:

Удалить : из выводимого текста

#tr -d ':'

 

Заменить все х на y

#tr 'x' 'y'

 

Удалить все буквы в нижнем регистре

#tr -d [:lower:]

 

  

vimdiff - сравнение файлов в редакторе vim 

vimdiff файл1 файл2 файл3 ...

Наглядный пример сравнения двух файлов chrony.conf и chrony_tmp

vimdiff

 

Ctrl + w + w - перемещение между окнами
] + c - следующая строка, в которой есть различия
[ + с - предыдущая строка, в которой есть различия
do - (diff obtain), получить текст из другого окна, которого не хватает в текущем  (сначала перейдите к выделенному)
dp - (diff put), записать текст из текущего окна в другое.
:diifupdate - повторное сравнение

Если есть свернуты строки для удобства редактирования (как правило это одинаковые строки), для их разворачивания и сворачивания необходимо переместить курсор напротив "+" и нажать:
z + o - развернуть 
z + c - саернуть 

 

 

 

 

 

Еще в этой категории: « Сеть usermod »