40 основных команд Linux, которые вы должны знать


Предыдущая | Следующая

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

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

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

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

1. ls

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

2. cat

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

3. cd

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

 

4. pwd

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

5. mkdir

Создать новые каталоги. Наиболее удобный ключ - это -p, который создает всю указанную структуру, если она еще не существует.

6. file

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

7. cp

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

8. mv

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

9. rm

Удалить файлы и каталоги. Конечно, очень полезная команда, которую вы должны знать, так как вы не можете удалить беспорядок без нее. Однако будьте осторожны при его использовании. Хотя в настоящее время вам действительно нужно работать над этим, чтобы нанести некоторый ущерб системе, вы все равно можете повредить себя - rm не удаляет файлы в какую-то воображаемую корзину для мусора, из которой вы можете выловить их позже, когда вы поймете, что сделали ужасная ошибка, и «я съел домашнее задание» никого не убедит. Удаление каталогов требует рекурсивной операции, поэтому мы снова имеем ключ -r.

10. ln

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

11. chmod

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

12. chown

Изменить владельца файла. Только пользователь root может изменить владельца файла. Чтобы рекурсивно изменить владельца всех файлов в каталоге, используйте его с -R.

13. find

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

14. locate

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

15. du

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

16. df

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

17. dd

Преобразуйте и скопируйте файл в соответствии с его страницей руководства. Не совсем ясное или наиболее полезное описание, и все же это все, что делает dd. Вы указываете ему источник и назначение, а также некоторые другие команды, и он копирует из одной в другую. Его мощь заключается в гибкости - вы можете сказать ему точный размер блока, он может копировать поврежденные данные, и он не разборчив в устройствах - если вы хотите перезаписать свой жесткий диск нулями прямо из / dev / zero, вы Добро пожаловать, чтобы сделать это. Он также широко используется для создания живых USB-накопителей из гибридных ISO-образов.

18. mount / umount

Эта пара заботится о монтировании и размонтировании файловых систем. Это может варьироваться от USB-накопителей до ISO-образов. Обычно только root имеет права монтирования.

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

19. more / less

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

20. head / tail

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

21. grep

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

22. sort

Сортирует строки текста по различным критериям. Среди более полезных есть -n, которая сортирует по числовому значению строки, и -r, которая переворачивает вывод. Примером того, где это может пригодиться, является сортировка вывода - например, если вы хотите, чтобы файлы сортировались в порядке убывания в соответствии с размером, вы бы объединили два варианта.

23. wc

Утилита подсчета слов в командной строке. И подсчет строк. И подсчет байтов. И подсчет персонажей.

24. diff

Показывает разницу между двумя файлами через построчное сравнение. Он показывает только измененные строки, сокращенное обозначение изменено как c, удалено как d и добавлено как a.

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

25. kill / xkill / pkill / killall

Все это служит для «уничтожения» процесса, то есть прекращения его. Разница в том, что они принимают в качестве входных данных. Kill хочет идентификатор процесса, xkill позволяет щелкнуть окно, чтобы закрыть его, в то время как killall и pkill принимают имя процесса, но имеют несколько разные параметры и слегка другое поведение. Обратите внимание, что они не принадлежат к одному и тому же пакету, и xkill, в частности, вряд ли будет установлен по умолчанию. Мы советуем вам исправить это для вашего удобства.

26. ps / pgrep

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

Совершенно не понятно, что команда делает.

27. top / htop

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

28. time

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

Команды Linux для BASH и пользовательской среды

29. su / sudo

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

30. date

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

31. alias

Эта команда создает или изменяет псевдонимы для других команд. Это означает, что вы можете давать имена новым командам (или группам команд) или «переименовывать» существующие. Это очень удобно для сокращения длинных цепочек команд, которые вы часто используете, или для придания более запоминающихся имен тем вещам, которые вы не используете часто и у которых возникают проблемы с запоминанием.

32. uname

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

33. uptime

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

34. sleep

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

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

35. useradd, userdel, usermod

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

36. passwd

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

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

37. man / whatis

Команда man выводит руководство для конкретной команды. Большинство приложений командной строки поставляются со страницей руководства. Whatis предоставляет сводную строку, взятую из соответствующих разделов руководства. Какие разделы руководства? Убедитесь сами в “man man”.

38. whereis

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

Команды Linux для сети

39. ip

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

40. ping

Пинги - это дейтаграммы ICMP ECHO_REQUEST, но это не важно. Важно то, что утилита ping является полезным диагностическим инструментом. Он позволяет вам быстро проверить, подключены ли вы к маршрутизатору или Интернету, и дает некоторое представление о качестве этого подключения.