echo [что_вывести]- вывод строки в STDOUT (например,echo $DTвыведет в консоль значение переменной $DT)echo [что_вывести] >&2— вывод строки в STDERRpwd— вывести путь к текущей директорииwhoami— вывести логин текущего пользователя
cd [путь]— перейти в заданную папкуcd ..— перейти на уровень вышеcd ../..— перейти на 2 уровня вышеcd— перейти в домашний каталогcd -— перейти в предыдущий каталог (полезно, когда нужно уйти в другой каталог, а потом вернуться обратно)ls— показать файлы и директории в текущей директорииls -a— показать файлы и директории, включая скрытыеls -1— вывод файлов и папок, каждое название с новой строкиmkdir [имя]— создать директорию в текущейrm [путь]— удалить файлrm -rf [путь]— удалить папку (-r— рекурсивно удалить всё содержимое,-f— не запрашивать подтверждение удаления для каждого файла/папки)mv [имя1_или_путь1] [имя2_или_путь2]— переместить\переименоватьcp [что_копировать] [куда_копировать]— скопировать файлfind [где_искать] -name [имя_что_искать]— поиск файлов по имени в заданной папке (в имени можно использовать*)
cat [путь_к_файлу]— вывод содержимого файлаsort— сортирует строки, поданные на входsort -r— сортировка в обратном порядкеsort -n— воспринимать сортируемые строки как числаsort -u— удалить неуникальные строкиwc -l— число строк в файлеwc -w— число слов в файлеwc -c— число символов в файлеtail -n 20 [путь_к_файлу]илиtail -20 [путь_к_файлу]— вывод последних 20 строк файла (если количество не задано, будет выведено 10 строк)awk '{ print $3 }'— разбить строку на фрагменты по разделителюTABилипробели вывести третий фрагментawk -F / '{ print $1 }'— разбить строку на фрагменты по заданному разделителю (/)
Утилита grep ищет в файлах участки текста, соответствующие шаблону pattern, где pattern может быть как обычной строкой, так и регулярным выражением.
grep [pattern] [путь к файлу]— поиск в заданном файлеgrep [pattern]— поиск в тексте, поданном на вход (например в результате выполнения предыдущей команды в цепочке)
Полезные ключи:
-R— поиск в папке и во всех вложенных папках-v— ищет строки, не соответствующие шаблону-i— поиск без учета регистра символов-l— вместо найденных строк вывести пути к файлам, где были найдены совпадения-o— выводить только часть строки соответствующую шаблону, а не всю строку с подсвеченной частью-h— не выводить имя файла перед найденной строкой-C <число>— вывести N соседних строк для каждой найденной строки
Вот хорошая статья про grep с примерами.
xargs [команда]— запуск указанной команды с передачей ей аргументов, поданных на вход (см. далее пример про docker)xargs -L 2 [команда]— запуск указанной команды несколько раз, каждый раз ей будут переданы очередные два аргумента, поданные на вход команде xargs (вмсето 2 можно указать другое число)xargs -P 10— запустить выполнение в указанное число (в примере 10) потоков. может значительно ускорить процесс :)ps aux— вывести список запущенных процессов всех пользователейkill [id_процесса]— завершить процесс (id можно узнать предыдущей командой)nohup [что_запускать]&— запустить команду, чтобы она продолжала выполняться в фоновом режиме после выхода пользователя из системы (внимание, в конце символ&)
curl [url]- скачивание файла с заданного адреса и вывод на экранcurl -o [название_файла] [url]- скачивание файла с заданного адреса и сохранение в файлcurl -L [url]- если при получении страницы вернулся редирект (код 301 или 302), то скачать файл еще раз с нового адресаcurl -I [url]- получить только http-заголовки для заданного адресаcurl -H [заголовок: значение] [url]- передача своего http-заголовкаscp [путь] [пользователь]@[сервер]:[путь_на_удаленном_сервере]- скопировать файл со своего компьютера на удаленный серверscp [пользователь]@[сервер]:[путь_на_удаленном_сервере] [путь]- скопировать файл с удаленного сервера на свой компьютер
Удаление docker-образов, содержащих в названии "<none>"
docker images | grep "<none>" | awk '{print $3}' | xargs -L 1 docker rmi
В этом примере:
- команда
docker imagesвыведет все docker образы; - этот список строк будет подан на вход команде
grep "<none>", которая отфильтрует строки, содержащие подстроку"<none>"; - отфильтрованный список строк будет подан на вход команде
awk '{print $3}', которая разобьет каждую строку на фрагменты по разделителюTABи выведет третий фразмент (хэш-сумму образа); - хэш-суммы образов будут поданы на вход команде
xargs -n1 docker rmi, которая для каждого значения выполнит командуdocker rmi(получится набор командdocker rmi <hash-1>,docker rmi <hash-2>, ...docker rmi <hash-N>)