1. History команда для просмотра списка ранее введенных команд в bash
history 20 - вывод первых 20-ти комманд
history -c — очистить историю команд, удалив все записи
history -d n — удалить из истории запись под номером n
history -a — дописать команды, введенные в текущей сессии bash, в конец файла $HISTFILE
сохранить дату и время для каждой команды в истории, для этого в конец .bashrc дописываем:
$ nano ~/.bashrc
export HISTTIMEFORMAT='%d.%m.%Y %H:%M:%S '
$ bash
2. Вывод описания whatis имя...
3. Команда who - Вывести список пользователей, работающих в системе
4. Команда ln - Устанавливает ссылку в файловой системе (символьную или жесткую).
Если второй операнд является уже существующим каталогом, то ссылки создаются внутри него. В случае, если второй аргумент отсутствует, ссылка создается в текущем каталоге с именем источника.
ln [-fs] файл_или_каталог ... [ссылка_или_каталог]
5. Команда chmod - Сменить права доступа файлам или каталогам, владельцем которых являетесь вы.
chmod [-R] ### файл_или_каталог
chmod [-R] [ugoa][+-=][rwxst] файл_или_каталог
6. Команда split - Разбить файл или поток на файлы указанного размера в строках и байтах
split [-l строк] [-b байтов[km]] [файл [выходной_префикс]]
7. Команда wc - Подсчет строк, слов и байтов
wc [-clw] [файл...]
-c Подсчет байтов
-l Подсчет строк
-w Подсчет слов
8. Команды grep, egrep - Поиск строк по заданным образцам
grep [-cinv] образец [файл...]
egrep [-cinv] образец [файл...]
grep 'Hello world' ./example.cpp
-c Вывести только общее число строк
-i Не учитывать регистр букв
-n Перед каждой строкой выводить ее номер
-v Учитывать только строки, не соответствующие образцу
-r (рекурсивный поиск) поиск выполняется в текущем каталоге и всех вложенных подкаталогах
[квадратные скобки] они используются чтобы проверить на соответствие одному из указанных символов
grep "Class [123]" Students.txt
[-] знак дефиса означает диапазон значений. Это могут быть как буквы, так и цифры
grep "Class [1-3]" Students.txt
^ каретка используется для поиска строк, которые начинаются с указанного шаблона. Команда ниже выведет все строки, которые начинаются с буквы "А".
grep "^A" Students.txt
[^] но между квадратными скобками смысл каретки меняется. Здесь он исключает из поиска следующие за ней символы или диапазон символов.
grep "Class [^1-2]" Students.txt
$ знак доллара означает конец строки. Команда выведет только те строки, в конце которых встречает указанный шаблон.
grep "1$" Students.txt
.точка обозначает один любой символ. Чтобы указать несколько любых символов, можно написать символ точку нужное количество раз.
grep "A.a" Students.txt
ПОИСК В GZ ФАЙЛАХ БЕЗ РАЗАРХИВИРОВАНИЯ
Как и было сказано выше, мы можем искать файлы внутри архива командой zgrep. Есть аналогичная команда, которая отличается тем, что вывод передается grep для фильтрации.
$ zcat file.gz | grep word-to-search
ВЫБРАТЬ E-MAIL ИЗ ФАЙЛА
Иногда приходится искать e-mail адреса из какого-либо файла. Делать это вручную достаточно затратно в плане времени. И тут нам на помощь приходит команда grep с регулярным выражением необычной на первый взгляд формы.
$ grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' emails.txt
ВЫБРАТЬ IP АДРЕС
Выбор IP адресов немного сложнее, так как мы не можем просто взять строку из цифр, разделённых точкой. Вернее, можем, но это не будет валидным IP адресом. А вот команда ниже выведет нам список правильных IP адресов.
$ grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" /var/log/auth.log
ИГНОРИРОВАТЬ РЕГИСТР
По умолчанию, grep чувствительна к регистру, что немного мешает поиску, так как мы должны точно указать регистр букв при поиске. Эта проблема решается путем добавления ключа i к команде поиска.
grep -i string filename
ПОИСК С УЧЁТОМ РЕГИСТРА
Что если нам нужно найти строку, где первая буква может быть, как заглавной, так и строчной? Grep с ключом i тут не поможет. Самый простой способ реализовать это показана ниже.
grep [Ss]tring filename
НАЙТИ ТОЧНОЕ СООТВЕТСТВИЕ
В запросах выше нам возвращались все строки, в которых содержалось слово apple. Чтобы избежать такого можно прописать команду ниже.
grep "\<apple\>" fruits.txt
НАЙТИ И ЗАМЕНИТЬ
Для поиска и замены одного текста другим командой grep, нужно запустить её, а вывод передать команде sed. Команда ниже заменить все вхождения строки "string1", на "string2" во всех файлах в текущей директории.
grep -rl 'string1' ./ | xargs sed -i 's/string1/string2/g'
9. Tar - Архивация на внешних устройствах или в файлах
tar [-]c|r|t|u|x[wvz][f файл] файл_или_каталог...
c Создать
r Дописать файлы в конец архива
t Вывести листинг архива
u Добавить файл, если его в архиве нет
x Извлечь указанные файлы из архива (по умолчанию — все)
Создать архив test.tar из каталогов a и b:
tar cvf test.tar a b
10. Find - Поиск файлов[8] в указанном списке каталогов согласно выражению
find каталог... выражение
-name файл Поиск по имени, заданному образцом (возможно использование метасимволов)
-perm права_доступа Поиск по правам доступа в виде 3-хзначного восьмеричного числа (9 младших бит моды). Если первым символом прав является '-', используются младшие 11 бит
-type [b|c|d|p|f] Истинно, если тип файла — специальный блок-ориентированный, специальный байт-ориентированный каталог, FIFO-канал или обычный файл, соответственно
-links число_связей Истинно, если файл имеет указанное число_связей
-user пользователь Владельцем файла является пользователь
-group группа Файл принадлежит группе
-size размер[с] Размер файла равен числу блоков (по 512 байт), указанному в аргументе размер. Если после числа стоит с, — размер указан в байтах
-atime дней К файлу в последние дней осуществлялся доступ. Сама команда find тоже переустанавливает atime
-mtime дней Файл модифицировался в течение дней
-ctime дней У файла в течение дней производилась смена атрибутов
-exec команда Истинно, если при выполнении команды был возвращен код 0. Аргумент {} заменяется именем текущего файла
-ok команда Аналогично -exec, но перед исполнением команды требуется подтверждение
-print Всегда истинно. Печатает имя файла на стандартный вывод
-newer файл Истинно, если текущий файл модифицировался позже, чем файл
(выражение) Истинно, если все атомарные выражения в выражении истинны
11. Команды which и type - Выводят полный путь до команды, если она находится в пути поиска $PATH, причем which — исполняемый файл, а type — встроенная команда некоторых интерпретаторов
which команда
type команда
12. Работа с сетевыми подключениями
Команда ps - Вывод информации о состоянии процессов
curl & wget
ping -c 4 google.com
tracepath example.com
mtr howtogeek.com
host 208.43.115.82
whois example.com
ifconfig eth0
Проверка обработки скорости запроса
ab -n 100 -c 10 http://192.168.0.107:8082/