10 команд Unix, которые должен знать каждый пользователь Mac и Linux

Графический интерфейс — это здорово — мы бы не хотели жить без него. Но если вы пользователь Mac или Linux и хотите максимально эффективно использовать свою операционную систему (и нажатие клавиш), вы обязаны познакомиться с командной строкой Unix. Наведите и щелкните, когда вам нужно сделать что-то один или два раза. Но если вам нужно повторить эту задачу много раз, командная строка — ваш спаситель.

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

Не волнуйтесь, если Команды Unix кажутся волшебными заклинаниями, или загадочные внутренности системы кажутся вам недоступными. Их не так сложно изучить, и эта статья даст вам 10 основных команд, которые вам понадобятся для начала работы. Вскоре эти загадочные строки станут второй натурой.

Основы оболочки

Оболочка командной строки Unix примерно эквивалентна командному окну в Microsoft Windows (cmd или PowerShell). . Команды, которые мы рассмотрим ниже, будут работать в любой Unix-подобной системе, включая Linux, Darwin (основа MacOS), FreeBSD и даже Windows с чем-то вроде Git Bash или новой оболочкой Bash в Windows 10. Параметры и результат различаются. немного, но у вас не должно возникнуть проблем с их пониманием.

Во-первых, вы должны открыть оболочку, иногда называемую окном терминала. Часто дистрибутивы Unix помещают это в меню администрирования или системы. В MacOS вы найдете терминал в Приложения> Утилиты> Терминал. Когда вы запустите его, вы увидите примерно следующее:

IDG

Этот экран из MacOS 10.11 типичен для большинства оболочек в графическом интерфейсе. В верхней части окна мы видим тип оболочки, в данном случае Bash (Bourne Again Shell, которая является оболочкой по умолчанию в MacOS и большинстве дистрибутивов Linux), и размер окна. Внутри окна находится приглашение, в данном случае настроенное для отображения имени компьютера ( Mercury ), имени текущего рабочего каталога (здесь тильда, ~ , который является сокращением для домашнего каталога пользователя), имя пользователя и, наконец, символ приглашения ( $ ). Обратите внимание, что ваше приглашение будет меняться по мере того, как вы перемещаетесь по файловой системе или если вы становитесь другим пользователем на своем компьютере (например, root или суперпользователем для выполнения административных команд). В приглашении отображается эта информация, поэтому вы можете легко определить, где и кто вы находитесь, на любой машине.

Стоит знать, что существует две основных разновидности оболочки Unix: Bourne и оболочка C. Борн и компания были производными от AT&T Unix, а оболочка C — от Калифорнийского университета в Беркли и BSD Unix.. Как правило, производные оболочки Bourne и C подходят для интерактивной работы в терминале. Стандартная оболочка POSIX, оболочка Korn, — это та оболочка, которую вы хотели бы использовать для написания собственных программ в оболочке, называемых сценариями. Мы используем оболочку Bash для примеров в этом руководстве.

Среда оболочки

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

IDG

Не беспокойтесь о понимании всех переменных среды сейчас, но знайте, что они есть. Вы уже должны распознать несколько переменных. Например, SHELL =/bin/bash сообщает нам, что мы используем оболочку Bash. HOME =/Users/nunez указывает расположение домашнего каталога пользователя. Вы можете изменять или создавать переменные среды, и вы будете часто это делать. Вот пример установки переменной среды с именем FOO и отображения ее значения:

IDG

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

Команды Unix

Независимо от того, какую оболочку вы используете, всякий раз, когда вы вводите команду в оболочке, вы вызываете выполнение программы Unix. Философия проектирования Unix состоит в том, чтобы создавать программы, которые хорошо справляются с одной задачей, и связывать (или «соединять») их вместе для выполнения полезной работы. Давайте посмотрим на простой пример для подсчета количества файлов в каталоге/etc (мы увидим, как перейти в каталог/etc позже):

IDG

Эта последовательность команд иллюстрирует две важные концепции: трубопровод и параметры. Команда ls (эквивалентная команде dir в Windows) отображает содержимое каталога, а wc (word count) количество слов. Заметили вертикальную полосу между ними? Это трубочный персонаж. Канал принимает выходные данные первой команды и направляет их в качестве входных данных для второй команды. Вы можете связать любое количество команд вместе в Unix, соединив одну с другой с помощью каналов.

Второе, на что следует обратить внимание, — это параметры, предоставляемые каждой команде. В Unix параметры традиционно начинаются с одного символа тире, - . Эти параметры командной строки изменяют поведение команды. В этом примере параметр -l для ls означает вывод содержимого каталога в «длинном» формате, а –l для wc означает подсчет «строк» ​​вместо слов. На английском языке эта команда может быть прочитана:

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

Часто эти параметры командной строки переопределяют значения по умолчанию, установленные в среде. Если вы хотите изменить способ поведения команды на постоянной основе, вы можете установить переменную среды автоматически при входе в систему. Многие команды позволяют комбинировать параметры в одной строке — например, ls -la — а другие нет. Вы можете узнать обо всех параметрах команды, просмотрев ее руководство или «справочные страницы» (которые мы обсудим ниже).

Изучение и использование параметров командной строки — большая часть эффективности в командной строке Unix. У некоторых команд так много опций, что документация занимает десятки страниц. Не позволяй этому беспокоиться сейчас. Часто для выполнения данной задачи требуется всего несколько параметров, а многие параметры используются только при написании программ на языке оболочки.

Руководство

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

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

IDG

Руководства разделены на восемь разделов, которые немного различаются в зависимости от того, используете ли вы Unix типа BSD/Linux/Mac или System V. Полезно начать с чтения введения к каждому разделу, и вы можете сделать это с помощью заклинания вроде man -s 1 intro , что означает поиск в разделе 1 страницы руководства под названием « intro »:

IDG

Если вы не уверены в какую команду вы ищете, вы можете попробовать параметры -f и -k . man –f command сообщит вам функцию команды, если вы знаете ее имя, а man –k hint перечислит имена соответствующих команд на основе одного или нескольких ключевых слов. Обе опции будут искать во встроенной базе данных (если она была настроена; обычно она есть) и возвращать все совпадения. Например, man –k bzer отобразит страницы руководства, которые начинаются со строки bz :

IDG

Файловая система

Есть много команд, связанных с файловой системой Unix, поскольку она является ядром операционной системы. Мы видели один из них ранее: ls , в котором перечислены файлы в каталоге:

IDG

Команда ls может быть наиболее часто используемой командой из всех, и у нее есть много параметров для настройки ее вывода. Один из вариантов вы сразу захотите узнать о ls -a (перечислить все). Это покажет файлы с точкой (файлы или каталоги, имена которых начинаются с точки или точки), которые скрыты по умолчанию. Эти файлы или каталоги обычно содержат информацию о конфигурации или файлы журнала для системы Unix. Файл .bash_history, например, регистрирует все команды, которые вы вводите в командной строке.

IDG

Другая команда, которая вам понадобится прямо сейчас, — это команда cd , которая ты используешь менять каталоги. Это похоже на ту же команду в Windows, но с важным отличием. В Unix все диски (устройства) отображаются как один диск. В то время как в Windows у вас могут быть ваши изображения на внешнем жестком диске, который отображается как E :, в Unix это может быть/home/user/pictures. Доступ ко всем файлам в системе Unix осуществляется по пути, который начинается с/(корневой каталог), и вы можете монтировать разные жесткие диски в разных точках файловой системы в соответствии с вашими потребностями.

Ранее вы начинаете блуждать по файловой системе, позвольте мне представить вам еще одну команду, которая вам понадобится: pwd (распечатать рабочий каталог). Поскольку в растущей файловой системе потенциально есть много мест, где можно потеряться, эти команды позволяют быстро определить, где вы находитесь. Давайте переключим каталоги в место, где хранятся файлы конфигурации системы, и проверим наше местоположение:

IDG

Обратите внимание, что вы можете использовать команду cd без аргументов, чтобы быстро вернуться в домашний каталог. Еще один совет: ~ можно использовать как ярлык для ссылки на ваш домашний каталог как в Bash, так и в оболочке C.

На этом этапе вы знаете, как перемещаться по файловой системе и составлять список содержимого каталогов. Теперь нам нужен способ чтения хранящихся в них файлов. В наши дни в большинстве систем для этого есть команда less . less будет отображать файл постранично и позволит вам перемещаться с помощью команд Vi (нажмите j для перемещения вниз, k для перемещения вверх, h для получения справки и q для выхода из файла).

Давайте посмотрим, что внутри наш файл/etc/passwd, введя less/etc/passwd :

IDG

В файле passwd перечислены учетные записи пользователей в системе Unix, а также их идентификаторы пользователей и групп, их домашний каталог и путь к соответствующей команде. или оболочки. В MacOS, однако, вы найдете только учетные записи системных служб в passwd. Это потому, что пользователи-люди настроены в разделе «Пользователи и группы» в системных настройках MacOS.

Дисковое пространство

Исчерпание дискового пространства — это постепенный процесс, который может занять годы, но может застать вас врасплох. Есть две команды, которые вы можете использовать, чтобы проверить свободное пространство и определить, какие файлы занимают ваш диск: du (использование диска) и df (свободное пространство на диске). Оба они принимают параметр -h (читается человеком). Чтобы получить Чтобы понять, насколько заполнен ваш диск, используйте команду df :

IDG

А пока сфокусируйтесь на столбцах % iused и , установленных на . Это показывает, что мой домашний di Дом священника заполнен на 92 процента, так что мне, вероятно, следует его очистить. Но как мне узнать, где используется все пространство? Для этого предназначен du :

IDG

В этом примере я использовал заклинание, ограничивающее вывод до первых 10 строк. В противном случае du перечислит все каталоги на машине, что может оказаться слишком большим для понимания. Из этого списка вы можете увидеть, сколько места занимает каждый каталог. Вы также можете увидеть, как, объединив несколько команд вместе, мы могли бы легко собрать сценарий, который будет перечислять 10 самых популярных каталогов по использованию пространства. Команда, которая нам нужна для сортировки вывода, — это, конечно, команда sort .

Поскольку версия sort для MacOS не может обрабатывать удобочитаемый вывод du , я использовал параметр -m для du , чтобы отобразить использование диска в мегабайтах ( используйте параметр -g или -k для отображения в гигабайтах или килобайтах). Параметры -n и -r для sort сортируют вывод по цифрам и в обратном порядке, поэтому самые большие каталоги будут отображаются вверху списка.

Суперпользователи, su и sudo

Ряд команд относится к системному администрированию. Попробуйте ввести man -s 8 intro , чтобы познакомиться с ними. Я дам вам одну важную команду для системного администрирования: su . Это означает «суперпользователь» и относится к административному пользователю или учетной записи root. Все файлы, принадлежащие системе, принадлежат этому пользователю, и вам необходимо стать этим пользователем для выполнения администрирования.

Связанная команда, sudo , позволяет вы, чтобы стать суперпользователем для одной команды. Зачем использовать sudo вместо su ? Потому что лучшая практика гласит, что вы не будете бегать как пользователь root, имея право случайно нанести непоправимый вред. Вы всегда будете хотеть делать все, что можете, как обычный пользователь, и становиться суперпользователем только тогда, когда вам нужно. То, как именно вы получите привилегии суперпользователя, будет зависеть от вашего дистрибутива Unix. Давайте посмотрим, как su работает в MacOS:

IDG

А? Я уверен, что ввел пароль правильно. Здесь произошло то, что мой текущий пользователь, nunez , не имеет разрешения на su . В некоторых системах Unix это означает, что пользователь должен находиться в группе wheel , а в других системах (включая MacOS) пользователь должен находиться в файле sudoers . .

Давайте закончим добавлением nunez в sudoers , что даст вам возможность редактировать файлы в командной строке. . Опытные пользователи хвалят редакторов Emacs и Vi, и я призываю вас попробовать их, но здесь мы будем использовать Nano. Nano легко изучить и использовать, и в MacOS и многих дистрибутивах Linux он уже установлен.

Оцените статью
techsly.ru
Добавить комментарий