Руководство для начинающих по командной строке Linux

14

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

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

1. Что такое домашний каталог в Linux?

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

Домашние каталоги находятся в домашнем каталоге. Например, мой домашний каталог / home / himanshu . Обратите внимание, что домашний каталог пользователя имеет то же имя, что и его имя для входа. Если вы являетесь пользователем Windows, вы можете думать о домашнем каталоге Linux как о конкретном каталоге пользователя, который обычно находится внутри C: Documents and Settings или C: Users .

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

2. Как проверить настоящий рабочий каталог?

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

Вот пример:

Руководство для начинающих по командной строке Linux

PWD вывод команды, как показано на скриншоте выше, указывает на то, что пользователь находится в данный момент в Pictures каталог, который находится внутри Himanshu директории, которая , в свою очередь , является подкаталог домашнего каталога. В этом случае himanshu @ ubuntu : ~ / Pictures $ — это приглашение командной строки.

3. Как переключать каталоги?

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

Например, если ваш текущий рабочий каталог — / home / himanshu / pictures , и вы хотите перейти в / home / himanshu / pictures / vacations , то вы можете просто запустить команду: cd vacations . В этом случае оболочка командной строки будет искать каталог отпусков внутри изображений . Путь относительно текущего рабочего каталога также известен как относительный путь.

Но если вы хотите переключиться на / home / cdnews , вам нужно будет выполнить команду: cd / home / cdnews . Полный путь к каталогу, который начинается с косой черты (/), также известен как его абсолютный путь. Чтобы быстро переключиться в предыдущий каталог в дереве, запустите: cd .. , или, если вы хотите переключиться в предыдущий рабочий каталог, запустите cd —

4. Как просмотреть содержимое каталога?

Используйте команду ls, чтобы просмотреть содержимое каталога. Если команда запускается без аргументов, она отображает содержимое текущего рабочего каталога.

Вот пример:

Руководство для начинающих по командной строке Linux

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

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

5. Как просмотреть содержимое файла?

Используйте команду cat для просмотра содержимого файла. Эта команда ожидает в качестве аргумента имя файла. Как видно на скриншоте ниже, команда cat отображает содержимое файла arg.c. Однако есть ограничение. Если файл большой, вывод может быть слишком большим для экрана оболочки командной строки.

Руководство для начинающих по командной строке Linux

В этом случае вы можете использовать команду less вместе с командой cat : cat (filename) | меньше . символ представляет собой канал, который перенаправляет вывод команды cat команде less , что, в свою очередь, позволяет вам перемещаться по содержимому файла с помощью клавиш со стрелками на клавиатуре для прокрутки вверх и вниз. Чтобы выйти из режима отображения, нажмите клавишу q .

6. Как создать новый файл?

Используйте сенсорную команду, чтобы создать новый файл. Команде требуется имя файла в качестве аргумента. Например, чтобы создать файл с именем test.log в текущем рабочем каталоге, просто выполните команду: touch test.log .

Чтобы создать новый файл в месте, отличном от текущего рабочего каталога, используйте абсолютный путь. Например, коснитесь /home/himanshu/practice/test.log .

Совет : чтобы записать что-либо во вновь созданный файл, используйте редактор командной строки, например Vi или Vim.

7. Как переименовать / скопировать / удалить файл?

Используйте команду mv, чтобы переименовать файл. Например, чтобы переименовать файл log.txt в new_log.txt , выполните команду: mv log.txt new_log.txt . Как всегда, если файл отсутствует в текущем рабочем каталоге, используйте абсолютный путь.

Вы также можете использовать команду mv для перемещения файла из одного места в другое. Это эквивалент операции вырезания и вставки через графический интерфейс. Например, чтобы переместить файл log.txt (находящийся в текущем каталоге) в / home / himanshu , выполните команду: mv log.txt / home / himanshu .

Чтобы скопировать файл из одного каталога в другой, используйте команду cp . Подобно команде mv , cp также требует источника и назначения. Например, cp log.txt / home / himanshu создаст копию log.txt (с тем же именем) в каталоге / home / himanshu .

Чтобы удалить файл, используйте команду rm . Эта команда ожидает в качестве аргумента имя файла. Например, rm log.txt удалит текстовый файл, если он присутствует в текущем каталоге, а rm /home/himanshu/practice/log.txt удалит текстовый файл, присутствующий в каталоге практики .

Чтобы удалить каталоги, используйте параметр командной строки -r с командой rm . Например, команда rm -r / home / himanshu / practice / удалит каталог практики со всеми его подкаталогами и файлами.

8. Как искать файлы?

Для поиска файлов в заданном каталоге используйте команду find . Команда требует в качестве аргумента путь к каталогу и имя файла. Например, чтобы найти файл с именем inheritance.cpp в каталоге / home / himanshu / , используйте команду find следующим образом:

Руководство для начинающих по командной строке Linux

Я использовал sudo в приведенной выше команде find, чтобы удалить определенные ошибки разрешений. Вы можете пропустить это.

Если путь к каталогу не указан, команда find выполняет поиск в текущем рабочем каталоге.

Вы также можете использовать подстановочные знаки с командой find, чтобы получить от нее максимальную отдачу. Например, если вы хотите выполнить поиск во всех файлах .c, находящихся в каталоге / home / himanshu / practice , используйте команду find, как показано ниже. Символ «*» — это подстановочный знак, который может представлять любое количество символов. Например, tech * может обозначать tech, cdnews, techreport и т. Д.

Руководство для начинающих по командной строке Linux

9. Как искать текст в файлах?

Для поиска текста в файлах используйте команду grep . Команда ожидает в качестве аргументов ключевое слово и имя файла и выводит строки, содержащие это ключевое слово. Например, для поиска во всех строках файла /home/himanshu/practice/wazi/gdb/test.c , содержащих ключевое слово ptr , используйте команду grep следующим образом:

Руководство для начинающих по командной строке Linux

Используйте параметр командной строки -n, если вы хотите, чтобы grep отображал номера строк в выводе.

Руководство для начинающих по командной строке Linux

Совет : Чтобы выполнить поиск по ключевому слову во всех файлах в текущем каталоге, используйтеподстановочный знак * в качестве имени файла.

Обратите внимание, что, в отличие от команды find, команда grep по умолчанию не выполняет поиск в подкаталогах. Однако вы можете включить эту функцию, используя параметр командной строки -R при запуске команды grep .

10. Что такое функция автозаполнения?

При работе в командной строке Linux ввод длинных путей, имен файлов и т. Д. Может казаться обузой. Используйте клавишу табуляции, чтобы легко автоматически заполнить эти длинные имена и пути. Например, чтобы написать / home , вы можете просто написать / ho и нажать tab. Оболочка командной строки автоматически дополнит имя за вас.

В приведенном выше примере оболочке было легко угадать имя home, потому что в каталоге / не было другого подобного кандидата. Но если оболочка встречает похожие имена при автозавершении, она отображает эти имена, и вам нужно будет написать еще несколько букв, чтобы оболочка узнала правильное имя.

Вот пример:

Руководство для начинающих по командной строке Linux

Оболочка отобразила все имена, которые она может использовать для автозаполнения. Если, например, вы хотите написать cdnews , вам нужно будет ввести как минимум c, чтобы устранить двусмысленность. После этого вы можете снова нажать клавишу табуляции, чтобы автозаполнить имя.

11. Что такое root?

Root — единственный пользователь, который контролирует всю систему Linux. Он способен делать то, что обычные пользователи не могут, например, менять владельца файлов, добавлять или удалять файлы из системных каталогов и многое другое. Как вы можете догадаться, учетная запись root в основном используется только системными администраторами.

Каталог верхнего уровня в системе Linux, представленный косой чертой ( / ), известен как корневой каталог. Это тот же каталог, который содержит домашний каталог, который также содержит пользовательские каталоги. Однако не следует путать / с домашним каталогом пользователя root, который находится в / по имени root .

12. Что такое страницы руководства?

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

Руководство для начинающих по командной строке Linux

Далее мы основываемся на основных командах выше, чтобы обсудить метаданные файлов, разрешения, временные метки, а также некоторые новые инструменты, такие как tee и Vim …

13. Как получить доступ к метаданным файла, таким как размер, разрешения и многое другое?

Используйте команду ls с параметром -l для отображения метаданных файла в выводе. Например:

Руководство для начинающих по командной строке Linux

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

+ РАЗРЕШЕНИЯ, КОТОРЫЕ РАСПРОСТРАНЯЮТСЯ НА ВЛАДЕЛЬЦА
|
| + РАЗРЕШЕНИЯ, КОТОРЫЕ РАСПРОСТРАНЯЮТСЯ НА ВСЕХ ОСТАЛЬНЫХ ПОЛЬЗОВАТЕЛЕЙ
| |
| | + КОЛИЧЕСТВО ЖЕСТКИХ ССЫЛОК
| | |
| | | + РАЗМЕР ФАЙЛА + ДАТА / ВРЕМЯ ПОСЛЕДНЕГО ИЗМЕНЕНИЯ
_ | _ _ | _ | _ | ___ ________ | __
D RWX R-X R-X 3 HIMANSHU HIMANSHU 4096 3 ИЮЛЯ, 14:26 РАБОЧИЙ СТОЛ
__ ________ ________ ______
| | | |
| | | + ИМЯ ФАЙЛА / КАТАЛОГА
| | |
| | + ГРУППА, КОТОРОЙ ПРИНАДЛЕЖИТ ФАЙЛ
| |
| + ВЛАДЕЛЕЦ ФАЙЛА
|
+ РАЗРЕШЕНИЯ, КОТОРЫЕ ПРИМЕНЯЮТСЯ К ЧЛЕНАМ ГРУППЫ, КОТОРОЙ ПРИНАДЛЕЖИТ ФАЙЛ

Первый символ представляет тип файла. Например, в строке, показанной выше, d указывает, что это каталог. Другие значения могут быть:  для обычного файла, s для файла сокета, l для файла ссылки и т. Д.

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

Совет: используйте параметркомандной строки -h вместе с -l, чтобы отобразить размер файла в удобочитаемом формате.

14. Как изменить права доступа к файлам?

Используйте команду chmod, чтобы изменить права доступа к файлам. Есть два способа использования этой команды. Первый метод, также известный как буквенный метод , использует знаки + ,  и = для добавления, удаления и назначения разрешений. Буквы a , o , u и g обозначают всех, других, владельца и группу соответственно.

Например, команда chmod u = rwx somefile назначает разрешения на чтение, запись и выполнение владельцу файла somefile . Точно так же команда chmod o + w somefile добавляет разрешение на запись для других, chmod gr somefile удаляет разрешение на чтение из группы, к которой принадлежит файл, а команда chmod a + x somefile добавляет разрешение на выполнение для всех.

Указание a не является обязательным, это означает, что установка разрешений, таких как + x или -r, без указания владельца, группы или другого, автоматически применяет его ко всем.

Второй метод — это числовой метод , в котором вместо r , w и x используются 4 , 2 и 1 . Значения складываются в наборы по 3, чтобы получить трехзначное число, обозначающее разрешения.

Например, команда chmod 761 somefile дает права доступа rwx, rw и r владельцу, группе и другим пользователям соответственно. Здесь 7 представляет собой сумму чисел, соответствующих r, w и x. Аналогично, 6 представляет собой сумму чисел, соответствующих r и w, а 1 представляет x.

15. Как изменить временные метки файлов?

Используйте сенсорную команду, чтобы изменить временные метки файла. Есть три типа меток времени , связанных с файлом: время доступа , время изменения и с изменением времени . Хотя первые два не требуют пояснений, третий представляет время последнего изменения информации inode или метаданных, относящихся к файлу. Используйте команду stat для отображения этих отметок времени:

Руководство для начинающих по командной строке Linux

Чтобы изменить время доступа к файлу на текущее время, используйте команду touch с параметром -a : touch -a somefile . Точно так же опция -m изменяет время модификации файла на текущее время.

Чтобы изменить временные метки файла на время, отличное от текущего, используйте параметр командной строки -t . Например, команда touch -t 201407020900.01 -a somefile изменяет метку времени доступа к somefile на 2014/07/02 09:00:01 . Вы также можете передать конкретную дату и время в удобочитаемой форме. Используйте для этого параметр командной строки -d . Вот некоторые примеры:

TOUCH -D «2013-01-10 10:00:07» -A SOMEFILE

TOUCH -D «СЛЕДУЮЩЕЕ ВОСКРЕСЕНЬЕ» -M SOMEFILE

TOUCH -D «3 ЧАСА НАЗАД» -A SOMEFILE

16. Как определить типы файлов?

Используйте команду file для определения типов файлов. Как показано в примере ниже, команда ожидает в качестве аргумента имя файла. Вы также можете использовать подстановочный знак * вместо имени файла, чтобы отобразить тип файла для каждого файла в текущем каталоге: файл *

Руководство для начинающих по командной строке Linux

17. Я скачал исполняемый файл, но он не запускается, почему?

В Linux (и других системах * nix), является ли файл исполняемым или нет, зависит исключительно от его разрешений, а не от его расширения или содержимого. Когда файл загружается, его исходные разрешения неизвестны, и, следовательно, ему предоставляется набор разрешений по умолчанию, который определяется umask.

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

18. Как вывести количество новых строк, слов и байтов в файлах?

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

Руководство для начинающих по командной строке Linux

В выходных данных, показанных выше, 5 представляет количество строк, 12 представляет количество слов и 52 представляет количество байтов. Вы также можете использовать параметры командной строки -l , -w и -c , чтобы отдельно выводить количество строк, слов и байтов соответственно.

19. Как отобразить использование диска файлами и каталогами?

Используйте команду du, чтобы отобразить использование диска файлами и каталогами. Вот пример:

Руководство для начинающих по командной строке Linux

Примечание. Параметркомандной строки -h используется для создания размера в удобочитаемом формате.

Здесь важно отметить, что команда du выводит резидентный размер файла, который может отличаться от фактического размера , отображаемого командой ls -l . Причина этой разницы — либо свободное пространство, либо разреженные файлы.

Чтобы отобразить общий размер каталога, а также всех его подкаталогов, используйте параметр -s , а -S можно использовать для отображения отдельных размеров. Чтобы отобразить объем доступного дискового пространства в файловой системе, содержащей определенный файл или каталог, используйте команду df .

Руководство для начинающих по командной строке Linux

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

Руководство для начинающих по командной строке Linux

20. Как сравнить два файла?

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

Руководство для начинающих по командной строке Linux

Используйте команду diff для сравнения этих файлов:

Руководство для начинающих по командной строке Linux

Расшифровка вывода, показанного выше, 5c5 означает, что пятая строка somefile изменена и должна быть заменена пятой строкой файла anotherfile . Соответствующая строка из первого файла помечена символом < , а строка из второго файла отмечена символом > .

Примечание. Помимо c , который обозначает измененную строку, команда diff также указывает, какие строки необходимо добавить ( a ) и удалить ( d ) для сопоставления файлов, которые сравниваются.

21. Как просмотреть несколько первых и последних строк файла?

Используйте команды head и tail для быстрого просмотра первых и последних нескольких строк файла. Эти команды пригодятся, когда вы просто хотите быстро заглянуть внутрь файла. Например, команда head -n2 somefile отображает первые 2 строки файла somefile . Аналогичным образом команда tail -n3 somefile отображает последние 3 строки файла.

Не только строки, вы также можете быстро просмотреть указанное количество байтов с помощью этих команд. Для этого используйте параметр командной строки -c вместо -n . По умолчанию, когда количество строк не указано, обе команды отображают 10 строк в выводе.

22. Как сохранить и сразу просмотреть вывод команды?

Используйте команду tee, чтобы одновременно записать вывод любой другой команды в стандартный вывод, а также в один или несколько файлов. Например, ls | Команда tee ls-dump отображает вывод команды ls на консоли и сохраняет вывод в файле ls-dump .

Хотя команда tee в основном используется для одновременного сбора и анализа журналов, ее также можно использовать для ускорения рабочего процесса. Например, эхо «Командная строка Linux» | Команда tee file1> file2 записывает строку в оба файла за один раз.

23. Как сжать и распаковать файл?

Работа в Linux требует от вас работы с такими архивами, как .tar , .tar.gz , .bz2 и другими. Чтобы создавать, а также распаковывать эти архивы, вы можете использовать команду tar .

Например, команда tar -cvf Practice.tar Practice / сжимает папку с практикой и создает архив .tar с именем Practice.tar . Параметр командной строки -c указывает команде tar создать архив, -v отображает файлы, добавленные в tarball, а -f указывает имя файла.

Чтобы распаковать архив .tar, созданный выше, используйте команду tar -xvf Practice.tar . Параметр командной строки -x указывает команду на извлечение архива. Эта команда распаковывает файл в текущем каталоге. Используйте параметр -C, чтобы указать другой целевой каталог.

Чтобы создать архивы .tar.gz и .tar.bz2 , добавьте дополнительные параметры командной строки -z и -j соответственно. Команда для распаковки этих архивов такая же, как и для файлов .tar . Используйте параметр командной строки -t (вместе с v и f ), если вы просто хотите вывести список содержимого архива.

Совет. Для работы сфайлами .zip используйте команду zip .

24. Как редактировать файл с помощью редактора Vim?

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

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

В Vim есть два режима работы: командный режим и режим вставки . Редактор открывает файл в командном режиме, где вы можете перемещать курсор с помощью клавиш со стрелками на клавиатуре, но не можете редактировать файл, пока вы не нажмете i — активируя режим вставки, как показано ниже.

Руководство для начинающих по командной строке Linux

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

Руководство для начинающих по командной строке Linux

Чтобы сохранить файл, введите команду : w и нажмите Enter .

Руководство для начинающих по командной строке Linux

Чтобы выйти из редактора, введите команду : q и нажмите Enter или : wq, чтобы сохранить и выйти за один раз.

Примечание. Чтобы быстро скопировать или удалить строку, переключите редактор в командный режим , переместите курсор на нужную строку и введите yy или dd соответственно. Чтобы вставить, нажмите p в командном режиме.

Заворачивать

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

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