Консольные команды linux ubuntu. Основные консольные команды Linux. Файлы и директории

Во всех операционных системах, в том числе и в Linux, термин "команда" означает либо утилиту командной строки, либо определённую возможность, встроенную в командную оболочку системы. Тем не менее, для самих пользователей это различие не имеет особого значения. В конце концов, и те и другие команды терминала Linux вызываются одинаково. Вы вводите слово в вашем эмуляторе терминала и получаете результат выполнения команды.

Я уже писал о командах терминала Linux, но тогда затронул лишь несколько самых интересных, самых полезных команд, рассчитывая на то, что пользователь уже достаточно знаком с возможностями терминала. Но нужно сделать ещё одну статью, рассчитанную на новичков, тех, кто только делает свои первые шаги в освоении Linux.

И вот она. Её цель - собрать основные простые и сложные команды Linux, которые должен знать каждый пользователь, чтобы наиболее эффективно управлять своей системой. Для удобности запоминания опций команд я в скобках добавил слова, от которых они произошли - так намного проще, на себе проверено.

Это не значит, что я перечислю все команды - я постараюсь охватить всё самое полезное, то, что может пригодиться в повседневной жизни. Чтобы было удобнее читать, разделим этот список на категории команд по назначению. Большинство рассмотренных здесь утилит не требуют дополнительной установки, они будут предустановлены в любом дистрибутиве Linux, а если не будут, то их несложно найти в официальных репозиториях.

1. ls

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (L ist) и -a (A ll). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов.

2. cat

Печатает содержимое файла, переданного в параметре, в стандартный вывод. Если передать несколько файлов, команда склеит их. Также можно перенаправить вывод в ещё один файл с помощью символа ">". Если нужно вывести только определенное количество строк, используйте опцию -n (N umber).

3. cd

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров - возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу.

4. pwd

Печатает на экран текущий каталог. Это может быть полезно, если ваша командная строка Linux не выводит такую информацию. Эта команда будет востребована в Bash программировании, где для получения ссылки на каталог выполняется скрипт.

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (P arents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют.

6. file

Показывает тип файла. В Linux файлы не обязаны всегда иметь расширения для того, чтобы с ними работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Эта маленькая утилита решает проблему.

7. cp

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (R ecursive) или -a (A rchive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

8. mv

Перемещение или переименование файлов и каталогов. Примечательно, что в Linux это одна и та же операция. Переименование - это перемещение файла в ту же папку с другим именем.

9. rm

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r. Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает. Действия оператора rm необратимы. Поверьте, ваши оправдания в духе "rm съела мою курсовую" никому не будут интересны.

10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки - это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

Изменяет права доступа к файлу. Это чтение, запись и выполнение. Каждый пользователь может изменять права для своих файлов.

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

Поиск в файловой системе, файлах и папках. Это очень гибкая и мощная команда Linux не только из-за своих способностей ищейки, но и благодаря возможности выполнять произвольные команды для найденных файлов.

14. locate

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

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (H uman), которая преобразует размеры файлов в легко читаемый формат, -s (S ummarize), которая выводит минимум данных, и -d (D epth), устанавливающая глубину рекурсии по каталогам.

16. df

Анализатор дискового пространства. По умолчанию вывод достаточно подробный: перечислены все файловые системы, их размер, количество использованного и свободного пространства. Для удобства есть опция -h, делающая размеры легко читаемыми.

17.dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой. Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от f ollow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

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

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (N umeric), по числовому значению, и -r (R everse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом "с", удалнные - "d", а новые - "а".

Кстати, я подготовил ещё одну подробную статью, в которой описан именно c помощью терминала.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill - достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор.

27. top / htop

Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo - это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +"%j %V", выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (A ll), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

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

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Команды Linux для управления пользователями

35. useradd / userdel / usermod

Эти команды консоли Linux позволяют вам добавлять, удалять и изменять учетные записи пользователей. Скорее всего, вы не будете использовать их очень часто. Особенно если это домашний компьютер, и вы являетесь единственным пользователем. Управлять пользователями можно и с помощью графического интерфейса, но лучше знать об этих командах на всякий случай.

36. passwd

Эта команда позволяет изменить пароль учетной записи пользователя. Как суперпользователь вы можете сбросить пароли всех пользователей, даже несмотря на то, что не можете их увидеть. Хорошая практика безопасности - менять пароль почаще.

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

Показывает полный путь к исполняемому файлу программы. Также может показать путь к исходникам, если они есть в системе.

Команды Linux для управления сетью

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip. В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита - ip. Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

Консоль Linux абсолютно волшебный и удобный инструмент, позволяющий управлять всей системой короткими командами, причём можно сотворять абсолютно что угодно - от установки программ, до изменения оболочки, и в целом это экономит кучу времени, и это главная причина почему стоит пользоваться консолью.. (В Windows чтоб установить программу нужно прошёлкать сколько-то окон и поснимать галочки, чтоб лишнее не поставилось, здесь же одна команда и получаешь нужное, тоже можно получить и при установки deb пакетов или из центра программ или вообще собрать программу из исходников прям в системе - куча возможностей на любой вкус.)

Запустить консоль Linux можно запустив терминал (Ctrl+Alt+T зависит от сборки), находится он в
Пуск (Меню) → Администрирование → Терминал (Или слева при раскрытии меню, зависит от оболочки..)
Для KDE: Пуск (Kickoff) → Система → Терминал. Или в файловом менеджере Dolphin он всегда под рукой горячая клавиша F4.

Полезной опцией является тот момент, что в консоли можно запустить любое приложение и оно будет туда складывать свой вывод, таким образом можно ловить ошибки приложений..

Например перейдём в папку и напишем./start-tor-browser

В Линуксе расширение файла может не быть, исполняемым может быть любой файл у которого стоят разрешения на выполнение (можно выставить правой клавишей в свойствах или chmod +x ./start-tor-browser ) в Виндовс обычно исполняемые только.exe и ещё некоторые файлы.

Управление консолью Linux

Часто понадобится запрашивать привилегии суперпользователя root для многих действий связанных с установкой, изменением файлов итп. Для этого предусмотрен механизм предоставления необходимого количества привилегий, но не более - sudo . Эта команда следует перед другими и вводится пароль пользователя для разрешения на запуск, вообще в Линуксе везде где производятся существенные изменения запрашивается пароль.

Имейте ввиду, в целях безопасности консоль Линукс не отображает вводимые пароли, но по факту они вводятся.

В редких случаях и это не советуется, можно запросить права суперпользователя и что-то сделать под ним не вводя каждый раз sudo , если поставить Debian или разные серверные дистрибутивы, в консоли нужно прописать su , но поскольку в сборках пароль суперпользователя не задан, то можно получить доступ к суперпользователю написав
sudo su

Если ввести любую команду, напрмиер, apt , то можно увидеть описание или apt и 2 раза TAB и увидеть только список функций. Если написать man apt попадаем в описание (мануал) к текущей функции. Ещё помощь можно получить в утилитах, к примеру если ввести ls --help ..

При работе в консоли(терминале) в текстовым редактором nano , чтоб сохранить изменения нажмите закрыть Ctrl+X и подтвердите сохранение, отмена Ctrl+C (во многих случаях прервать любое действие эта команды Ctrl+C или q ).

Ctrl+D отключиться (отлогиниться) от текущего пользователя, сервера. Повторное нажатие закрывает консоль..

В любой ситуации не теряйтесь обычно есть подсказки на экране, что жать..

Для копирования используется сочетание Ctrl+Shift+C , для вставки Ctrl+Shift+V (альтернатива мышка или Ctrl+Insert с Shift+Insert).

Можно ещё не мучить себя и использовать любой текстовой редактор с графическим режимом:

# решётка/диезик означает, что всё что дальше не выполнять - это комментарий kate ~/.config/pulse # открыть под суперпользователем: kate sudoedit ~/.config/pulse

Kate умеет сохранять системные файлы по факту сохранения, т.е. просто открывайте в нём любые интересующие файлы и при сохранении вводите пароль и в дамках, консоль не нужна...

Историю команд можно посмотреть введя history , если нажимать стрелки вверх вниз, будут подставляться прошлые введённые команды. Повторить команду можно введя !! (два восклицательных знака, но стрелку вверх и энтер(ввод) быстрее..)

Команды консоли Linux

Никогда не выполняйте команд, назначения которых не понимаете. Команды консоли Linux , дают огромную власть, в том числе и удалить все файлы 1 командой..

Sudo rm -rf / # равноценно echo "text" | perl -e "$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see"

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

Типичное использование консоли:

Было несколько раз на старых сборках, после обновления заглючивало оболочку и компьютер отказывался перезагружаться или выключаться , но из консоли подчинился:

# Выключить компьютер: sudo halt или sudo init 0 или telinit 0 или shutdown -h now # Перезагрузить: sudo reboot или shutdown -r now

Изменение прав и/или владельца можно осуществить через Действия root (Root Actions Servicemenu). Подробнее права Линукс chmod описаны в соседней статье.. (-R рекурсивно пройти по всем файлам/каталогам внутри)

Sudo chmod -R 755 /path/to/dir sudo chown -R $USER:$USER /path/to/dir # корректней, но группа может отдаваться пустой и она совпадает с пользователем: sudo chown -R $USER:$GROUP /path/to/dir

Иногда нужно выяснить какой дистрибутив , название и прочие данные:

Cat /etc/*release # посмотреть архитектуру: arch или uname -m

Посмотреть диски в системе:

Fdisk -l # покажет названия с отказом в доступе sudo fdisk -l # выведет полную информацию

Установка, удаление программ:

# уствновить пакет/программу: sudo apt install -y name # удалить пакет/программу: sudo apt remove -y name # удалить пакет/программу вместе с его конфигурационными файлами: sudo apt purge -y name # ещё можно явно указанные неиспользуемые зависимости удалить: sudo apt -y autoremove

Y - соглашаться со всеми вопросами установщика, он там обычно сообщает всякие глупости, мол нужно дополнительно будет поставить связанные библиотеки или приложение займёт столько то места на диске.. В основном используются install и remove . Можно перечислить сразу несколько пакетов для установки sudo apt install -y name1 name2...

Дописать в конец файла:

Echo -e "my \n text \n info \n" >> ~/.config/my.conf

Если вместо >> поставить > , то файл перезапишется.

Правильно записывать в файлы, для которых нужны права суперпользователя, можно так:

# перезаписать файл: echo "значение" | sudo tee /путь/к/файлу/файл.sh # дописать в конец: echo "значение" | sudo tee -a /путь/к/файлу/файл.sh # параметр -i игнорировать ошибки. #eщё вариантик: sudo sh -c "echo 127.0.0.1 localhost >> /etc/hosts"

echo может иметь иметь опции/параметры:

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

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

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

Внутри sh скрипта флаг echo -e не нужен если указан интерпретатор для исполнения сценария(скрипта) #!/bin/sh, консоль использует более новый #!/bin/bash..

Скопировать фалы rsync:

Как-то словил проблему при копировании на диск с 5900 оборотов и меньшей максимальной скоростью диска, на 7200 оборотов (он на порядок быстрее), видимо переполнение буферов идёт или ещё что-то, винт разгоняет копирование свыше 120-160мб/с и принимающий начинает щёлкать головкой, в то время как на 5900 скоростей свыше 90мб/с не замечал. В итоге помогло ограничение скорости копирования. Выставил чуть меньше 90мб/с и вуаля никаких щелчков. Утилита очень полезна если необходимо передать файл на другой сервер или для передачи файлов с ломающегося диска с условием наличия бэкапа.

# rsync [опции] [источник] [приемник] sudo rsync -a --progress /from/ /to/ sudo rsync -aPv --bwlimit=90000 /media/$USER/disk1/Music/ /media/$USER/disk2/Music/

В случае присутствия пробелов будут ошибки - возьмите в кавычки, я обычно такой формой пользуюсь:

Sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/" # или sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/"

A, --archive - работа в режиме архивирования, сохраняются права доступа и информация о владельцах.
--partial - сохранять частично переданные файлы.
--progress - показать % выполнения во время передачи.
-P - эквивалент для --partial --progress (сохранять недокаченные файлы, показывать прогресс).
--ignore-existing - пропускать уже существующие на приёмнике disc2 (так можно немного ускорить, например для видео, они точно не меняются).
--delete - удалять те, которых нет на источнике disc1.
--bwlimit=KBPS - ограничение скорости копирования.
-v - показывать подробности.
-c - сравнивать файлы при помощи подсчёта контрольных сумм (по умолчанию по дате и размеру). Выполняется очень долго..
-n - ничего не делать, только показать что будет скопировано.

Линукс постоянно радует такими мелочами, в системе по умолчанию есть большинство нужного, а Виндовс беги ищи, устанавливай - трать время..

Навигация и операции с файлами

Возможно пригодится и знание базовых команд для перемещения и управления файлами..

  • pwd - показывает директорию в которой находитесь, иногда бывает нужна в случае сокращения в консоли, напрмиер домашняя папка отобразится как ~..
  • cd - переходит в указанную папку, например cd ~ ; cd /home/$USER
  • ls - линейно выводит список папок и файлов в текущей директории или указанной
    ls /home . Чтоб вывести построчно с указанием прав и владельца необходимо добавить аргумент -l . Чтоб увидеть скрытые файлы и папки -a . Отсортировать по размеру -S . Отсортировать по расширению -X .
    В итоге имеем команду ls -la или ls -la /путь/к/каталогу .
  • du * - считает размер директории, например du -hs * или du -hc /путь .
    Аргументы:
    -h - human-readable показывает вес файлов в Кб, Мб итд..
    -с - подсчитывает сумму..
    -s - показать только общий вес файлов..
    А вот как можно вывести в отсортированном виде du -hc * | sort -rn
  • find - Поиск файлов и директорий
    # найти в папке /home файлы по имени абрикос: find /home -name "абрикос" # найти файлы принадлежащие пользователю user1: find /home -user user1 # найти файлы оканчивающиеся на txt: find /home -name "*.txt" # найти файлы с правами 000 исключая имя public_ftp и удалить их: find /home/ -perm 000 -not -name "public_ftp" -exec rm -rf {} \; # найти все папки и назначить права по умолчанию: find /home - type d -exec chmod 755 {} \; # найти все файлы и назначить права по умолчанию: find /home - type f -exec chmod 644 {} \; # найти только файлы по имени и выставить права: find /home/ -name "xmlrpc.php" -type f -exec chmod 000 "{}" \; # скопировать все файлы в текущей директории содержащие в имени только цифры # - регулярное выражение указывающие на массив из диапазона от 0 до 9: find . -name -exec cp {} ~/ todir \; # удалить пустые файлы: find /home -type f -empty -exec rm {} \; # удалить пустые папки: find /home -type d -empty -exec rmdir {} \; # удалить файлы *.gz в папках logs, по неопределённому пути в /home/: find /home/*/logs -type f -name "*.gz" -delete # удалить файлы старше 365 дней find /home -type f -mtime +365 -exec rm -f {} \; # вывести список файлов в которых встречается текст: grep -rl "строка" ./ # или find ./ -type f -exec grep -l "строка" {} + # заменить текст в файлах: find ./ -type f -readable -writable -exec sed -i "s/старый/новый/g" {} \; #g - заменяем не только первое вхождение # функция понимает регулярные выражения, заменим все где число вначале: find ./ -type f -readable -writable -exec sed -i "s/\dстарый/новый/g" {} \; # заменить текст в файле: sed -i "s/старый/новый/g" file.txt # заменить текст в файле только в строках с 1 по 10: sed -i "1,10 s/старый/новый/g" file.txt # заменить текст в файле везде кроме строк с 1 по 10: sed -i "1,20 !s/старый/новый/g" file.txt

    Думаю примеров достаточно, за остальным в man find..

    Бывает необходимо найти где находится в системных папках та или иная утилита

    Whereis find # или which find

  • cat - выводит содержимое файла, например cat /proc/bus/input/devices .

    Ещё можно заниматься извращениями, например, копирование содержимого файла Linux в другой файл cat файл1 > файл2
    Если файл был не пустым, он будет перезаписан, если воспользоваться >> будет дописан в конец файла2. Можно склеить два отдельных файла в один: cat файл1 файл2 > файл3

  • mkdir - создаёт директорию, например mkdir -p /путь/к/папке -p создаст рекурсивно все каталоги, если их нет иначе будет выдавать сообщение об ошибке, мол старшего каталога нет..
  • cp - копирует файл/папку, cp опции файл-источник файл-приемник, cp -r /что /куда
    -r - рекурсивно, все подкаталоги
    -a = -dR --preserve=ALL не будет следовать по ссылкам (копировать от туда все файлы), а только рекурсивно скопирует: ссылки, файлы, папки с сохранением атрибутов. # скопирует все файлы, начинающиеся на test: cp ~/test* ~/todir/ # копировать директорию fromdir со всем содержимым в текущую директорию: cp -a /fromdir . # скопировать файл: cp ~/pic.png ~/to/ # скопировать с переименованием или просто сделать копию: cp ~/pic.png ~/to/wallpaper.png cp pic.png pic2.png # скопировать группы файлов: cp *.txt /to/folder cp *.txt *.jpg "read me.doc" /to/folder

    При копировании группы файлов, последнее имя трактуется как место назначения, а все предшествующие файлы, как исходные объекты. В других командах, например mv и rm, также разрешены множественные аргументы.

  • mv - позволяет перемещать или переименовывать каталоги mv /что /куда
    mv /from /to # переместить файлы: mv /home/my/* /home/mynew/ # переместить папку /my/ в /mynew/: mv /home/my/ /home/mynew/ # переименование папки: mv /oldname /newname # переименование файла: mv oldname.txt newname.txt # перемещать группы файлов: mv *.txt /to/folder/ mv *.txt *.jpg "read me.doc" /to/folder/ # удалить: mv /folder /dev/null
  • rm - удаляет файл/папку, например rm -r /путь
    -r - рекурсивно пройти все вложенные папки
    -f - не запрашивать подтверждения операций
    # удалить папку со всем вложенным: rm -rf /backup/ # удалить все объекты в папке: rm -rf /backup/* # удалить все файлы: rm -f /var/log/spooler-* \ rm -f /var/log/messages-* \ rm -f /var/log/secure-*

Специальные обозначения в консоли

  • ~/ - означает домашнюю директорию текущего пользователя.
  • $USER - подставить имя текущего пользователя.
  • ./ - указание на текущий каталог
  • ../ - указание на каталог выше, перейти в каталог выше cd .. или cd ../
  • * - Знак подстановки, означает любые символы, например у нас есть ряд файлов для распаковки или не хочется писать всё целиком (актуально если нет графической оболочки, например, при удалённом управлении..)
    # разархивирование: tar -Jxvf arch-17.40-492261.tar.xz tar -Jxvf arch-17*.tar.xz # показать только размер: du *.tar.xz
  • > - перезаписать файл, точнее отправить вывод команды в файл echo "Привет" > /путь/файл.txt
  • >> - дописать в конец
  • {} - подставляет имя каждого файла
  • \ - в конце строки сообщает, что нужно рассматривать следующую строку как одну цепочку команд..

Клавиша TAB во время набора текста - автозаполнение..

/usr/bin/lsb_release -ircd # Узнать версию дистрибутива Linux;

uname -a # Показать версию ядра Linux;

uname -m # Отобразить архитектуру компьютера;

hostname # Показать сетевое имя компьютера;

uptime # Время работы системы без перезагрузки и выключения;

shutdown # Выключение\перезагрузка. Примеры:
- shutdown -r now # Перезагрузка;
- shutdown -h 20:00 # Выключить питание в 20:00;
- shutdown -h now # Выключение;

init 0 # Выключение;

halt # Выключение;
logout # Выйти из системы; # Показывает log-файл загрузки ОС;
cat /proc/cpuinfo # Показать полную информацию о модели процессора (частота, поддерживаемые инструкции и т.д.);
cat /proc/meminfo # Показать расширенную информацию о занимаемой оперативной памяти;

lshal # Показать список всех устройств и их параметров;
lspci -tv # Показать обнаруженные PCI-устройства;
lsusb -tv # Показать обнаруженные USB-устройства;
lsmod # Список всех модулей загруженных в ядро;
modprobe # Загрузка модулей в ядро, пример: # Пример смены root-окружения на /mnt: chroot /mnt . После этого коневой раздел, примонтировнный к /mnt, будет использоваться как родной;
ldd # Список библиотек, необходимых для конкретной программы. Вывести список библиотек, необходимых для работы ssh: ldd /usr/bin/ssh ;
whereis # Показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к конкретному файлу. Пример: whereis halt ;
crontab # Обеспечивает возможность выполнения определённых задач по расписанию. Подробнее по ссылке cron ;

swapoff # Отключение swap-разделов. Отключаем swap (данные перемещаются в оперативную память): swapoff -a ;

swapon # Включение swap-разделов. Включаем swap: swapon -a ;

date # Просмотр и изменение даты\времени. Примеры:

- date # Показывает текущую дату и время;

- date 041217002007.00 # Установить системные дату и время. Формат: ММДДЧЧммГГГГ.СС;

Файловые операции

pwd # Выводит текущий путь;
ls # Выводит список файлов и каталогов. Пример вывода форматированного списка всех файлов и директорий, включая скрытые: ls -laX ;
cd # Переход по директориям. Примеры:
- cd # Переход в домашнюю директорию;
- cd /home # Пример перехода в /home;
- cd .. # Переход в директорию уровнем выше;
- cd ~user # Перейти в домашнюю директорию пользователя user ;
touch # Создание пустого файла если нет. Пример: touch test.txt ;
rm # Удаление. Примеры:
- rm test.txt # Удаление файла;
- rm -rf temp # Удаление директории temp с вложенными файлами;
cp # Копирование. Примеры:
- cp test.txt /home/test.txt # Копирует test.txt из текущей директории в /home ;
- cp -la /dir1 /dir2 # Копирование директорий;
ln # Cоздание символической ссылки. Пример: ln -s /var/test.txt /home/test.txt - создать символическую ссылку к файлу /var/test.txt в директории /home;
mkdir # Создание директории. Пример: mkdir temp ;
rmdir # Удаление директории. Пример: rmdir temp ;
mv # Перемещение\Переименование. Пример переименования директории: mv /dir1 /dir2 (аналогично с файлами);
locate # Поиск. Пример поиска везде всех файлов с именем test.txt: locate test.txt ;
find # Поиск. Примеры:
- find /home/it -name test.txt # Найти файлы и директории с именем test.txt в /home/it и вложенных;
- find /home/it -name "*.txt" # Найти все файлы и директории в /home/it и вложенных, имена которых оканчиваются на ".txt";
- find /usr/bin -type f -atime +100 # Найти все файлы в "/usr/bin", время последнего обращения к которым более 100 дней;
- find /usr/bin -type f -mtime -10 # Найти все файлы в "/usr/bin", созданные или изменённые в течении последних 10 дней;
stat # Отображение всей доступной информации об указанном файле. Пример: stat test.txt ;
file # Определяет тип файла. Пример: file test.txt ;
chmod # Права доступа, подробнее по ссылке chmod ;
chown # Меняет владельца файла, пример: chown www:www test.txt ;
mc # Файловый менеджер ;

Архивация

tar - архиватор. Примеры:
- tar cf test.tar /home/test.txt # Создать tar-архив с именем test.tar содержащий /home/test.txt;
- tar czf test.tar.gz /home/test.txt # Cоздать tar-архив с сжатием Gzip по имени test.tar.gz;
- tar cjf test.tar.bz2 /home/test.txt # Cоздать tar-архив с сжатием Bzip2 по имени test.tar.bz;
- tar xf test.tar # Распаковать архив test.tar в текущую папку;
- tar xzf test.tar.gz # Распаковать tar-архив с Gzip;
- tar xjf test.tar.bz # Распаковать tar-архив с Bzip2;

Управление процессами

top # Диспетчер процессов;
ps # Показывает процессы. Примеры:

- ps axjf # Просмотр всех работающих процессов;

- ps -eF # Список процессов с полной строкой запуска;
- ps -U user # Cписок задач, порожденных пользователем user;
pgrep # Поиск процессов. Показать PID процесса sshd: pgrep -l sshd ;
lsof # lsof /home Показывает список процессов, которые используют /home;

fuser -m # Узнать, какой процесс занял устройство. Пример: fuser -m /mnt ;
kill # Убивает процесс. Примеры:

- kill 4712 «Убить» процесс с PID 4712:;

- kill -9 4712 # Принудительно завершает указанный процесс (выполнять если не помогает kill 4712 );

killall # Убивает процессы по имени. Примеры:

- killall x-www-browser # «Убить» процессы x-www-browser ;

- killall -u user # Завершить процессы, порожденные пользователем user;
nice # Позволяет отобразить или настроить приоритет задачи. Примеры:

- nice -4 mc # Запуск mc с приоритетом = текущий+4 ;

renice # Изменение приоритета процесса. Примеры:
- renice 4 -p 11597 # Установить значение приоритета для процесса mc (PID=11597) равным 4;

Оперативная память

free # Информация о состоянии памяти. free -m - показать состояние оперативной памяти в мегабайтах;
dmidecode # Информация о "железе". Информация о кол-ве разъемов оперативной памяти, и вставленных модулях: dmidecode --type 17 . Подробнее о dmidecode по ссылке dmidecode ;

Жесткий диск

du # Информация о размере директории. du -sh /home/it/ выводит на экран размер директории /home/it/ ;
fdisk # Информация о разделах жестких дисков. Информация о всех подключенных жестких и сменных дисках: fdisk -l . Подробнее: fdisk ;
blkid # Выводит UUID всех доступных накопителей информации в системе;
df # Показывает размер свободного места на разделах. Пример: df -h ;
mount # Монтирование. Примеры:
- mount # Показывает полную информацию о примонтированных устройствах;
- mount /dev/sda1 /mnt # Монтирует раздел /dev/sda1 к точке монтирования /mnt;
- umount /mnt # Отмонтирует раздел от точки монтирования /mnt;
badblocks # Проверка на бэд-блоки. badblocks -v /dev/sda1 проверить раздел sda1 на наличие bad-блоков;
fsck # Проверка файловой системы. fsck /dev/sda1 - проверить/восстановить целостность linux-файловой системы раздела sda1;
mkfs # Форматирование, подробнее по ссылке mkfs ;
smartctl # Проверка SMART. smartctl -A /dev/hda - контроль состояния жёсткого диска /dev/hda через SMART, подробнее по ссылке smart ;

hdparm # Информация о жестких дисках, Примеры:
- hdparm -I /dev/sda # Информация о диске /dev/sda ;
- hdparm -tT /dev/sda # Показывает производительность жесткого диска;

Сеть

ping # Пинг. Пропинговать ya.ru и вывести результат: ping ya.ru ;
ifconfig # Утилита настройки сети. Примеры:
- ifconfig # Показать параметры всех активных сетевых интерфейсов;
- ifconfig -a # Показать все сетевые интерфейсы;
- ifconfig eth0 up # Запустить сетевой интерфейс eth0;
- ifconfig eth0 down # Отключить сетевой интерфейс eth0;
- ifconfig eth0 hw ether 00:01:02:03:04:05 # Смена MAC адреса;
- ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # Выставить интерфейсу eth0 IP-адрес и маску подсети;

- ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 # Задать дополнительный IP адрес сетевому интерфейсу eth0;
iwlist scan # просканировать эфир на предмет, доступности беспроводных точек доступа;
iwconfig # Утилита настройки беспроводных сетевых интерфейсов.
- iwconfig wlan0 # Показать конфигурацию беспроводного сетевого интерфейса wlan0;
- iwconfig wlan0 mode ad-hoc # Указываем тип сети - ad-hoc;
- iwconfig wlan0 channel 2 # Указываем частотный канал;
- iwconfig wlan0 essid inet # Указываем имя сети. Подробнее о настройке раздачи интернета по wi-fi здесь: iwconfig ;
route # Настройка маршрутов. Примеры:
- route -n # Выводит на экран таблицу маршрутизации;
- route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с IP-адресом 192.168.1.1 (для удаления меняем add на del);
netstat # Текущие сетевые соединения. Пример:

- netstat -tup # Отобразить активные сетевые соединения: ;

- netstat -an | grep LISTEN # Показывает список всех открытых портов;
- netstat -anp -udp -tcp | grep LISTEN # Посмотреть список приложений, которые открывают порты;
ethtool # Информация о текущем режиме сетевого соединения и поддерживаемых. Примеры:

- ethtool eth0 отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения;
- ethtool -s eth0 speed 100 duplex full autoneg off # Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;
tcpdump # Утилита сканирования сетевого трафика. Пример: tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80;
iptables # Утилита настройки файервола;
ssh # Подключение к удаленному компьютеру по ssh. Пример: ssh 10.10.10.4 . Подробнее: ssh ;
wget # Утилита закачки. wget -c http://www.example.com/file.iso загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии;

whois # Узнать информацию о домене, пример: whois сайт ;

dig # Проверка доменных имён. Примеры по ссылке: dig ;

Текст

Печать

lpstat # Просмотр списка принтеров. Получить список всех доступных принтеров lpstat -a ;
lp # Команда отправки на печать. Подробнее: ;
lpr # Команда отправки на печать. Пример: lpr -P Kyocera_Kyocera_FS-4020DN test.txt ;

lprm - # Удаление очереди печати;

Пользователи и группы

id # Показывает сводную информацию по текущему пользователю (логин, UID, GID, группы);

adduser # Добавление нового пользователя. Пример добавления пользователя it: adduser it ;

passwd # Меняет пароль текущего пользователя;

groupadd # Добавление новой группы. Пример: groupadd ITgr ;

usermod # Изменения настроек пользователя. usermod -a -G ITgr it добавляет пользователя it в группу ITgr;

userdel # Удаление пользователя. Пример: userdel it ;

groupdel # Удаление группы. Пример: groupdel ITgr ;

users # Отображает краткий список пользователей работающих в системе в данный момент;

exit # Завершить сеанс текущего пользователя;

last # Отобразить регистрации пользователей в системе;

Разное

watch # Каждые n-секунд команда watch запускает нужную комаду. Пример: watch -n 5 "cat /proc/loadavg" Каждые пять секунд будет выводится результат команды просмотра средней загруженности компьютера;

screen # Оконный менеджер. Подробнее по ссылке: screen ;
dc # Калькулятор;
cal # Календарь. Примеры:
- cal -3 # Покажет предыдущий, текущий и последующий месяц;
- cal 2015 # Календарь 2015-го года;
sleep # Задержка на указанный промежуток времени, в примере 10 сек: sleep 10 ;
history # Показывает пронумерованный список команд, которые выполняли в этом и предыдущем сеансе;

script # Cоздать журнал своей консольной сессии. Сохраняется все что вводили, и все, что выдавалось на экран. Пример: script history.txt . Чтобы прекратить запись, введите exit ;

which # Отобразить полный путь исполняемого файла, например which ifconfig ;

wall # Вывести сообщение на все терминалы пользователей, пример: wall hello ;

reset # Сбросить настройки терминала и очистить его;

clear # Очищает экран терминала;

beep # Воспроизвести звуковой сигнал;

Справка

man # Справка;
man ls # Справка по команде ls;

* Для некоторых команд нужны полные права;

** Для некоторых команд требуется установка дополнительного программного обеспечения.

7. Команда rm

Команда rm используется для удаления каталога или файла. Например, используйте rm -r /tmp/backup для удаления всего в этом каталоге. Конечно, вы должны проявить осторожность , если вознамерились что-то удалить безвозвратно.

8. Команда mkdir

mkdir используется в Linux для создания нового каталога. Например, команда mkdir my_new_dir создаст новый каталог с именем my_new_dir. Аргумент -p можно использовать для того, чтобы команда типа mkdir -p mydir2/mysubdir2/threedirsdeep автоматически создавала родительские директории, ежели таковые не существуют.

9. Команда rmdir

Если вам нужно удалить каталог, используете команду rmdir . Например, rmdir my_dir . Подробнее о команде rmdir можете прочитать .

10. Команда touch

Команда touch подобна команде mkdir, только используется для создания файлов. С ее помощью вы можете создать пустой файл. Например, команда touch ~/Public/index.html создаст пустой файл index.html в каталоге Public.

11. Команда ln

Эта команда используется для создания ссылок на файлы или каталоги. Например, если вам нужно чтобы при обращении к каталогу /var/www фактически происходил переход в каталог /tmp , выполните следующую команду:

Ln -s /var/www/ /tmp/

Для того, чтобы разорвать эту символическую ссылку, используйте команду

Unlink /tmp/www

Вы должны быть очень осторожны с заданием полных путей и завершающих слэшей при создании и удалении символических ссылок.

12. Команда sudo

sudo - очень важная, но потенциально опасная программа. Поэтому при попытке ее использования вы можете получить ответ вида Permission denied , Authorization failed или еще что-то в таком же роде.

Например, предположим, что в каталоге /var/www запрещена запись для обычных пользователей. В таком случае чтобы создать пустой файл index.html в каталоге /var/www , используйте команду sudo touch /var/www/index.html .

13. Команда head

Если вы хотите просмотреть несколько начальных строк файла (любого типа), можете воспользоваться командой head. Хорошим практическим примером может служить

Head -20 /var/log/syslog

По этой команде на stdout будут выведены первые 20 строк файла rsyslogd . По умолчанию команда head выводит на экран первые 10 строк.

14. Команда tail

Она подобна команде command, но выводятся 10 (по умолчанию) последних строк указанного файла. Вот пример того, как вывести на экран 30 последних строк протокола работы ядра.

Tail -30 /var/log/kern.log

15. Команда chmod

Это тоже очень важная команда, используемая для изменения режима доступа к файлам и каталогам. Полное ее описание очень длинно, я здесь дам только самую краткую справку о ней.

Существуют три основных вида разрешений на доступ: право читать (read), право писать (write) и право исполнять (execute). Каждое из этих разрешений обозначается числом:

  • 4 для разрешения читать (просматривать) файл или каталог
  • 2 для разрешения писать , то есть вносить изменения с содержание файла или каталога
  • 1 для разрешения исполнять

То есть если вы хотите установить на файл право чтения и записи, вы должны выполнить команду

Chmod 666 my_file_name

Если вы хотите сделать скрипт исполняемым, нужно выполнить команду

Chmod +x my_script_name

Здесь (прим.переводчика: речь, конечно, идет о том сайте, где опубликована оригинальная статья) скоро будет опубликовано полное описание команды chmod, с рассказом о всех деталях ее использования.

16. Команда md5sum

Иногда вам нужно проверить, был ли файл каким-то образом изменен. Для этого можно использовать команду md5sum, которая хотя и не является самой надежной, но, безусловно, используется наиболее часто.

Простой пример нахождения контрольной суммы ISO-файла:

User@host:~$ md5sum ~/OS/slitaz-5.0-rc3.iso ~/OS/slitaz-5.0-rc3.iso

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

17. Команда locate

Это основная команда для поиска файлов и каталогов в Linux. Поскольку ее работа основана на использовании базы данных, вы вначале должны создать такую базу с помощью команды sudo updatedb , что займет у вас несколько минут.

Типичный пример поиска с помощью этой команды выглядит примерно так:

Locate -i *chromium*

Команда позволяет использовать символы-заменители, а параметр -i позволяет игнорировать регистр символов.

18. Команда df

Эта команда используется в тех случаях, когда требуется проверить использование дискового пространства в Linux-системе. Наиболее часто используемый вариант выглядит так, как показано в следующем примере, с применением параметра -h .

19. Команда du

Если вы хотите узнать, сколько места на диске занимает какой-то файл или каталог, используйте команду du .

Пример применения этой команды по отношению к отдельному файлу выглядит следующим образом:

Du -sh /boot/vmlinuz-4.10.10

В случае целой директории с учетом ее содержимого применяем такую команду:

Du -sh /opt/google/chrome/

Параметр -s используется для того отключить вывод слишком подробной информации, а параметр -h приводит к тому, что информация выдается в более удобном для чтения виде.

20. Команда free

Команда free выводит на экран количество свободной и используемой оперативной памяти в системе, а также данные об использования swap-пространства.

21. Команда zip

Без сомнения вы часто создаете zip-архивы и извлекаете информацию из таких архивов. Для таких операций используются команды zip и unzip .

Скорее всего эти утилиты не установлены в вашей системе по умолчанию. В Ubuntu их можно установить с помощью команды apt .

Sudo apt-get install zip unzip

Синтаксис создания zip-архива

Zip -9r my_archive.zip file_1 file_2 folder_1 folder_2 folder_3

Если используется параметр -9 , zip пытается максимально сжать файлы. Параметр -r используется для рекурсивного архивирования.

Команда unzip по умолчанию извлекает файлы из архива в текущую рабочую директорию (pwd ). Если вы хотите, чтобы извлекаемое содержимое архива попало в определенный каталог, используйте такую команду

Unzip my_archive.zip -d /path/to/my_directory

Существует альтернативный вариант утилиты для работы с архивами, о котором вы можете прочитать в статье 7zip Linux - create, extract and edit 7z archives .

22. Команда ifconfig

ifconfig является сокращением от interface configuration , так что эта команда может делать множество вещей, связанных с настройками сети.

Начинающий пользователь чаще всего будет использовать эту команду для выяснения того, какой сетевой интерфейс подключен и какой у него IP-адрес.

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

Ifconfig -a

23. Команда uname

Эта команда выведет основную информацию о вашей системе, как-то название ОС, версию ядра, имя хоста, системное время, архитектуру ОС и так далее. Пример:

Uname -a Linux acer 4.10.10 #2 SMP Mon Apr 24 00:48:20 IST 2017 x86_64 x86_64 x86_64 GNU/Linux

Подробнее о ее параметрах вы можете узнать из соотвествующей страницы man .

24. Команда history

Как следует уже из названия, команда history выводит список ранее использованных команд, что очень полезно в тех случаях, когда вы хотите понять, что вы ранее сделали неправильно.

Вы также можете быстро найти ранее введенные команды с помощью комбинации клавиш Ctrl + R .

25. Команда man

С помощью этой команды вы можете узнать детали использования других команд.

Почти каждая команда в Linux имеет соответствующую man-страницу. Чтобы быстро просмотреть страницу man с описанием любой команды, введите man any_command . Например:

Man ifconfig

Бонус: команды завешения работы

Вы уже устали? Тогда заканчивайте работу и останавливайте вашу систему с помощью следующих консольных команд:

  • shutdown -h now - выключить питание немедленно.
  • shutdown -h +10 - остановить систему через 10 минут.
  • reboot перезагрузить систему немедленно.

Вам может потребоваться использовать команду sudo для запуска перечисленных команд, если вы не суперпользователь. Важно также отметить, что современная команда shutdown есть просто символическая ссылка на демон инициализации systemd .

Заключение

Это пока что все относительно базовых команд Linux, надеюсь, что вам понравилось это длинное, но несколько скучноватое руководство.

Если у вас остались вопросы или предложения по перечисленным командам, пожалуйста, напишите их в комментариях к статье.

Примечание переводчика: Приведенные выше описания команд очень краткие и поверхностные. Между тем на нашем сайте вы легко найдете более полное описание любой из перечисленных выше команд, просто задав в поле "Поиск по сайту" (это поле находится в верхней части любой страницы, сразу под логотипом) что-то вроде "команда chmod " (замените имя команды на нужное).

  1. && . Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias . Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd . Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear . Очищает окно терминала от всех сообщений.
  5. history . Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man . Отображает руководство по программам и командам . Введите man имя_пакета или man ваша_команда.
  7. whatis . Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.

Для выполнения множества действий в системе, например для установки и удаления программ, вам понадобятся права администратора, или суперпользователя root, как его называют в Linux.

  1. sudo . Эта команда даст вам права суперпользователя. Введите sudo перед нужной командой (например, sudo apt upgrade), чтобы выполнить её от имени администратора. Система спросит у вас пароль.
  2. sudo su . После этой команды все введённые вами команды будут исполняться от имени суперпользователя, пока вы не закроете терминал. Используйте её, если вам нужно выполнить много команд с правами администратора.
  3. sudo gksudo . Команда для запуска с правами администратора приложения с графическим интерфейсом. Например, если вы хотите переместить или изменить системные файлы, введите sudo gksudo nautilus (укажите тот файловый менеджер, которым пользуетесь).
  4. sudo !! . Эта команда запустит ранее введённую команду с правами администратора. Полезно, если вы набрали команду без sudo .

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

Установку и удаление приложений в Linux выполняют пакетные менеджеры. В Ubuntu и пакетный менеджер называется apt, в Fedora - dnf, в Arch и Manjaro - pacman. Они загружают приложения из сетевых репозитариев, источников пакетов. Давать им команды следует с правами суперпользователя.

apt (Debian/Ubuntu/Mint)

  1. sudo apt install имя_пакета. Установить нужный пакет.
  2. sudo apt-add-repository адрес_репозитария. Добавить сторонний репозитарий.
  3. sudo apt update . Обновить сведения о пакетах.
  4. sudo apt upgrade . Обновить все пакеты до самых свежих (выполнять после apt update).
  5. sudo apt remove имя_пакета. Удалить ненужный пакет.
  6. sudo apt purge имя_пакета. Удалить ненужный пакет со всеми зависимостями, если хотите освободить больше места.
  7. sudo apt autoremove . Удалить все ненужные зависимости, бесхозные пакеты и прочий мусор.

dnf (Red Hat/Fedora/CentOS)

  1. sudo dnf install имя_пакета. Установить нужный пакет.
  2. sudo dnf config-manager --add-repo адрес_репозитария. Добавить сторонний репозитарий.
  3. sudo dnf upgrade . Обновить все пакеты до самых свежих.
  4. sudo dnf remove имя_пакета. Удалить ненужный пакет.
  5. sudo dnf autoremove . Удалить все ненужные зависимости.

pacman (Arch/Manjaro)

  1. sudo pacman -S имя_пакета. Установить нужный пакет.
  2. sudo yaourt -S имя_пакета. Установить пакет из AUR, если его нет в основном репозитарии.
  3. sudo pacman -Sy . Обновить сведения о пакетах.
  4. sudo pacman -Syu . Обновить все пакеты до самых свежих.
  5. sudo pacman -R имя_пакета. Удалить ненужный пакет.
  6. sudo pacman -Rs имя_пакета. Удалить ненужный пакет со всеми зависимостями.

Вы можете устанавливать и удалять сразу несколько пакетов, просто перечисляя их через пробел.

sudo apt install firefox clementine vlc

Если вы хотите установить какой-то пакет, но не знаете его точного названия, введите несколько первых букв имени пакета и дважды нажмите Tab. Пакетный менеджер покажет все пакеты, названия которых начинаются одинаково.

  1. kill . Эта команда служит для принудительного завершения процессов. Нужно ввести kill PID_процесса. PID процесса можно узнать, введя top .
  2. xkill . Ещё одна команда для завершения процессов. Введите её, затем щёлкните по тому окну, которое нужно закрыть.
  3. killall . Убивает процессы c определённым именем. К примеру, killall firefox .
  4. top . Отображает перечень запущенных процессов, сортируя в зависимости от потребления ресурсов CPU. Своего рода терминальный «Системный монитор».

Просмотр и изменение файлов

  1. cat . Когда команда используется с одним текстовым файлом (вот так: cat путь_к_файлу), она отображает его содержимое в окне терминала. Если указать два и больше файлов, cat путь_к_файлу_1 путь_к_файлу_2 , она склеит их. Если ввести cat путь_к_файлу_1 > новый_файл, она объединит содержимое указанных файлов в новый файл.
  2. chmod . Позволяет изменять права доступа к файлу. Может пригодиться, если вы хотите внести изменения в системный файл.
  3. chown . Изменяет владельца файла. Следует выполнять с правами суперпользователя.
  4. file . Выводит информацию об указанном файле.
  5. nano . Открывает простой текстовый редактор. Можно создать новый текстовый файл или открыть существующий: nano путь_к_файлу.
  6. rename . Переименовывает файл или несколько файлов. Команду можно использовать и для файлов по маске.
  7. touch . Изменяет дату последнего открытия или модификации указанного файла.
  8. wget . Загружает файлы из интернета в терминальную папку.
  9. zip . Распаковывает и сжимает архивы.

Создание и удаление файлов и папок

  1. mkdir . Создаёт новую папку в текущей терминальной папке или в указанной папке: mkdir путь_к_папке.
  2. rmdir . Удаляет указанную папку.
  3. rm . Удаляет файлы. Может удалить как отдельный файл, так и группу, соответствующую определённым признакам.

Копирование и перемещение файлов

  1. cp . Создаёт копию указанного файла в папке терминала: cp путь_к_файлу. Или вы можете указать назначение cp путь_к_файлу путь_для_копии.
  2. mv . Перемещает файл из одной папки в другую. Вы можете указать имя для перемещаемого файла. Забавно, но в Linux эта команда может использоваться и для переименования файлов. Просто укажите ту же папку, где находится файл, и другое имя.

Поиск файлов

  1. find . Поиск файлов по определённым критериям, таким как имя, тип, размер, владелец, дата создания и модификации.
  2. grep . Поиск текстовых файлов, содержащих определённые строки. Критерии очень гибко настраиваются.
  3. locate . Поиск файлов и папок, чьи названия подходят запросу, и отображение их путей в файловой системе.

  1. lsblk . Эта команда демонстрирует, какие диски есть в вашей системе и на какие разделы они поделены. Также команда отображает имена ваших разделов и накопителей, в формате sda1, sda2 и так далее.
  2. mount . Монтирует накопители, устройства или файловые системы , чтобы вы могли с ними работать. Обычно устройства подключаются автоматически, как только вы щёлкнете по ним в файловом менеджере. Но иногда может понадобиться примонтировать что-то вручную. Вы можете подключать что угодно: диски, внешние накопители, разделы и даже ISO-образы. Эту команду нужно выполнять с правами суперпользователя. Чтобы примонтировать имеющийся диск или раздел, введите mount sdX .
  3. umount . Демонтирует файловые системы. Команда umount sdX отключит файловую систему внешнего носителя, чтобы вы могли извлечь его.
  4. dd . Эта команда копирует и преобразовывает файлы и разделы. У неё множество различных применений. Например, dd if=/dev/sda of=/dev/sdb сделает точную копию раздела sda на разделе sdb. dd if=/dev/zero of=/dev/sdX затрёт содержимое указанного носителя нулями, чтобы информацию было невозможно восстановить. А dd if=~/Downloads/ubuntu.iso of=/dev/sdX bs=4M сделает загрузочный носитель из скачанного вами образа с дистрибутивом.

Команды Linux для управления пользователями

  1. useradd . Регистрирует нового пользователя. Введите useradd имя_пользователя, и пользователь будет создан.
  2. userdel . Удаляет учётную запись и файлы пользователя.
  3. usermod . Изменяет учётную запись пользователя. Может переместить домашнюю папку пользователя или назначить дату, когда учётная запись будет заблокирована.
  4. passwd . Изменяет пароли учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.

Команды Linux для управления сетью

  1. ip . Многофункциональная команда для работы с сетью. Команда ip address show выводит сведения о сетевых адресах, ip route управляет маршрутизацией и так далее. Давая команды ip link set ethX up , ip link set ethX down , можно включать и выключать соединения. У команды ip много применений, так что перед её использованием лучше ознакомиться с руководством или ввести ip --help
  2. ping . Показывает, подключены ли вы к сети, и помогает определить качество связи.

И ещё кое-что

Напоследок - главные команды Linux. Они выводят на экран корову, которая может разговаривать с вами (не спрашивайте, что употребляют разработчики).

  1. cowsay что_угодно. Корова произнесёт то, что вы ей скажете.
  2. fortune | cowsay . Корова выдаст умную (или не очень) мысль или цитату.
  3. cowsay -l . Выводит список всех животных, которые могут быть отображены в терминале. Если вы вдруг не любите коров.
  4. fortune | cowsay -f животное_из_списка. Животное на ваш выбор начинает сыпать цитатами, иногда уместными.
  5. sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru . Заставит весь зоопарк говорить по-русски. Без этого животные цитируют Твена и Уайльда .

Это далеко не все команды Linux. Если вам нужно узнать в деталях параметры и способы применения команд Linux, вы можете воспользоваться встроенным руководством. Наберите man ваша_команда или ваша_команда --help .