?

Log in

No account? Create an account

Terminal в Mac OS

Terminal - учимся работать
28.03.2009 - 02:07 опубликовано MacScaner
http://www.macpages.ru/news/terminal-uchimsya-rabotat

Для многих не секрет, что Mac OS X относиться к семейству Unix подобных. Соответственно мы имеем в распоряжении всю мощь этой легендарной системы, но у новичков много по этому моменту вопросов, вот не которые из них я попробую описать. И так давайте посмотрим разницу команд на примере маршрутизации, вот так выглядит команда исполняемая в среде windows < route -p add 233.32.240.0 mask 255.255.255.0 Ваш ip-адрес в локальной сети > и вот так в Mac OS X < sudo route add -net 233.32.240.0 -netmask 255.255.255.0 Ваш ip-адрес в локальной сети > после выполнения команды система попросит пароль администратора, это нормально (пригодиться всем кто использует VPN соединения и хочет пользоваться локальными ресурсоми своей сети).

Основные команды
cd ~ команда, при помощи которой вы переходите в свою директорию. Для примера, если вы решаете перейти в каталог, где расположены ваши документы, то следующая команда будет выглядеть так: cd ~/Documents.
cd - позволяет вернуться в предыдущую директорию.
cd .. - позволяет вам подняться в вышестоящую директорию.
ls - выдает список имен файлов в указанной директории
ls -f - показывает файлы с их расширением.
ls -a - перечисляет все файлы, включая скрытые.
ls -lo - кроме перечисления существующих файлов показывает также их права доступа и дату их создания. Если вы хотите, чтобы были перечислены только файлы, начинающиеся с определенной буквы, например, с Z, наберите ls Z*. Учтите, команда чувствительна к регистру, и если какие-то файлы имеют в начале заглавную Z, а вы набрали обычную z, вы их просто не увидите.
mkdir - создает новую директорию. Для примера: набрав команду : mkdir new, вы создадите новую директорию с названием new.
rm - удалить файл.
rmdir - удалить директорию.

Примеры
rm new.txt - команда удалит файл new.txt.
rmdir new - удаляет директорию с именем new.
Если вы хотите удалить директорию, которая не является пустой, вы либо должны в начале удалить все ее содержимое, либо использовать команду rm -R
rm -R new - удаляет директорию new со всем ее содержимым.
clear - очищает экран терминала. В принципе, иногда достаточно просто сделать «правый клик» на окне терминала и выбрать в контекстном меню - Clear Scrollback.
script - позволяет сохранить в текстовый файл все введенные вами с клавиатуры символы. На практике - чрезвычайно удобная опция, позволяющая вам получить полнейший протокол всей вашей сессии. В файле также будет указаны ее точные дата и время.
Script done on Sat Feb 10 18:21:32 2007
файл будет сохранен с именем typescript в вашей домашней директории.
bc - команда, которая выведет на экран терминала простейший консольный калькулятор.
df - простая команда, которая покажет вам объемы вашего дискового пространства, включая сетевые диски.
du - список всех папок, имеющихся на вашем системном разделе.

Копирование
Копирование файлов и папок, осуществляется при помощи команды cp. Допустим, вы хотите скопировать файл note.txt с рабочего стола в каталог Documents. В этом случае потребуется набрать в терминале cp note.txt ~/Documents
Необходимо учитывать, что если файл с таким же именем существует на новом месте, он будет удален и заменен скопированным файлом без предупреждений и возможности восстановления.
Если при этом вы желаете не просто скопировать файл, а скопировать и сохранить его уже с новым названием (для примера возьмем в качестве нового названия new.txt), то требуемая команда будет выглядеть следующим образом - cp note.txt ~/Documents/new.txt. И в вашей папке появится файл new.txt, являющийся копией файла note.txt с рабочего стола.
Для того, чтобы скопировать нужный файл в исходный каталог, но уже с новым именем, достаточно будет набрать cp note.txt new.txt
cp -R Documents "Documents backup" - команда, посредством которой вы сохраняете резервную копию всей вашей директории Documents. Кавычки необходимы, так как в названии директории присутствует пробел.
sudo cp -Rp /Users "/Users backup" - команда позволяет скопировать всю директорию /Пользователи (включая все домашние папки, находящиеся внутри), сохраняя при этом как можно больше файловой информации (принадлежность, права и т.д., но не ветвь ресурса) с названием Users backup. Вы должны выполнять эту команду из под учетной записи администратора, так, в данном примере используется sudo, позволяющая получить временный доступ с правами root. Если вы выполняете команду из-под учетной записи пользователя, вас попросят ввести пароль администратора.
ditto - позволяет скопировать директорию, но с сохранением атрибутов скрытых файлов.
ditto Documents "Documents backup" - копирует всю директорию под именем "Documents" и называет копию директории "Documents backup".
mv - переименование файлов. Для примера, набрав в терминале mv new old, вы переименуете файл или директорию с названием new в old. А следующей командой: mv old ~/Documents - вы переместите его из текущей директории в вашу директорию Documents.

Поиск
find - поиск файлов, соответствующих заданным вами критериям.
Примеры
find / -name (имя файла без скобок) - команда осуществит поиск нужного вам файла по всей файловой структуре, включая все смонтированные диски (в том числе и сетевые) и отобразит полный путь к нему.
find -x/ -name (имя файла без скобок) - то же самое, но поиск будет осуществляться исключительно на загрузочном диске вашей системы.
find . -name '*имя файла*' (с сохранением указанного синтаксиса) - поиск будет осуществлен в текущем каталоге и всех его подкаталогах.
find . -mtime (здесь нужная вам цифра, вводить без скобок) - эта команда, как и предыдущая, осуществляет поиск в текущем каталоге и всех его подкаталогах, но ее отличие в том, что указав, к примеру, цифру 3 (find . -mtime -3) команда выдаст вам все файлы, которые были изменены в течение последних трех дней. Указав 0, команда найдет только те файлы, дата которых была изменена.

Процессы
ps -x - команда, выдающая в терминале список процессов текущего пользователя.
ps -ax - показывает список всех процессов
ps - aux - показывает список всех процессов, запущенных в системе на данный момент, а также дополнительную информацию о них, включая загрузку процессора, время и пр.
top - выдает список основных задействованных процессов и постоянно обновляемую информацию о них. Нагрузка на процессор, размер задействованной памяти, время и пр.
top -us5 - то же самое, но с сортировкой процессов, по объему их нагрузки на процессор.
kill - команда, "убивающая" зависший процесс или посылающая ему сигнал.
sync - команда, принудительно записывающая содержимого дискового кэша на жесткий диск.

Пример:
набираем в терминале команду top, в появившемся списке процессов выбираем нужный, скажем, процесс 2200, (в моем случае им оказался совершенно ненужный мне AppleSpell) нажимаем Q для выхода из меню - и после kill 2200. Еще раз набираем top - и убеждаемся, что больше упомянутый 2200-го процесс больше не фигурирует в списке запущенных процессов.
lsof - команда, показывающая список открытых файлов в вашей системе, и файлов, к которым в данный момент обращаются прикладные программы, для примера, если у вас запущен торрент клиент, команда покажет даже те файлы, которые вы скачиваете в данный момент, или раздаете. Естественно, чтобы увидеть полный список нужно обладать правами администратора.
sudo lsof - список открытых файлов, включая всю систему. Требуется пароль администратора.
И наконец, команда sudo lsof -i - команда, позволяющая вам увидеть все открытые сетевые соединения в вашей системе.

Работа с текстом
pico и nano - простейшие текстовые редакторы для терминала. Довольно ограничены по функционалу. Для выхода из pico или nano нажмите сочетание CTRL+X
more или less - отображает содержимое текстового файла по одной странице. Для перехода на следующую нажмите пробел. Не работает с документами Word, PDF, RTF и любыми файлами отличным от txt формата.
emacs - GNU Emacs - довольно продвинутый редактор, разработанный под X Window и теряющий часть своего функционала при запуске в терминале. Но несмотря на это, позволяет видеть одновременно несколько файлов, перемещать текст между файлами и редактировать во время работы команд оболочки. Программа, вполне заслуживающая отдельного обзора, поэтому здесь мы не будем подробно останавливаться на нюансах его настройки и использования.

Системные и сетевые команды
diskutil - выдает список всех возможных команд для операций с вашим жестким диском. От просто просмотра командой diskutil list до таких операций, как монтирование разделов, починка всем знакомых «пермишонов» или формата. Говоря проще, перед вами все опции (на самом деле их даже больше) уже знакомой вам Disk Utility с той разницей, что все действия вы выполняете через интерфейс командной строки. Вот пример лишь нескольких команд, предлагаемых вам diskutil
diskutil resizeVolume - позволяет изменять размер выбранного раздела
diskutil partitionDisk - позволяет совершать операции над диском и его отдельными разделами. Форматирование, выбор файловой системы и пр.
diskutil eraseDisk - стирает информацию с вашего жесткого диска.
diskutil info / - выводит информацию о загрузочном разделе вашего диска. Его имя, тип файловой системы, общий размер, количество общего и свободного пространства и пр.
diskutil info /Volumes/здесь имя раздела - то же самое, но для любого другого, смонтированного, но незагрузочного раздела вашего жесткого диска.
sudo diskutil repairPermissions / - еще одна команда для «починки пермишнов» на загрузочном диске с вашей MacOS X. При ее выполнении от вас потребуют ввести пароль администратора.
sudo passwd root - команда, которая может вам понадобиться только в одном случае - если вы забыли root пароль, пароль администратора.
ifconfig - команда, которая дает больше возможностей для контроля параметров ваших сетевых соединений, но имеет один ощутимый минус по сравнению с настройкой через панель System Preference - после перезагрузки компьютера, сделанные вами изменения часто теряются.
ftp - утилита и одновременно протокол (File Transfer Protocol) для передачи файлов. После установления связи с другой машиной (ftp-сервером) вам, скорее всего, будет предложено ввести свое имя (login) и пароль (password) на этой машине. После подключения, Вы сможете с помощью команды "cd <имя директории>" перемещаться по директориям машины-сервера, с помощью "ls" просматривать содержимое выбранных каталогов, с помощью команды "get <имя файла>" перекачивать файлы с сервера на клиентскую машину (в данном случае клиентом будет узловая машина), а с помощью команды "put <имя файла>", наоборот, переслать файл с клиентской машины на сервер. Для окончания сеанса связи служит команда "quit". Если вы хотите, чтобы передача данных происходила в фоновом режиме, можно воспользоваться командой dlftp <имя ссылки>.
host - выполняет поиск с помощью службы DNS по заданному имени или IP адресу и выдает информацию о конкретном узле Интернета.
nslookup - Выполняет "поиск имени узла" по заданному IP адресу.
dig - несет те же функции.
telnet - команда, запускающая утилиту и протокол для подключения к удаленной системе.
rlogin - команда расшифровывается как Remote login и инициирует сессию с удаленной системой. По сравнению с ssh - небезопасна в использовании.
rsh (Remote shell) - исполняет команду на удаленной системе.
rcp (Remote copy) - копирование файлов между двумя машинами через сеть. Как и предыдущие r* команды, небезопасна в использовании и по возможности от нее стоит лучше воздержаться в пользу ssh.
ssh (Secure shell) - устанавливает сеанс связи и выполняет команды на удаленной системе. Выступает в качестве защищенной замены для таких команд как telnet, rlogin, rcp и rsh
write - команда запускает утилиту, которая позволяет передать текст сообщения на другой терминал. Работает в интерактивном режиме, поэтому, как правило, не употребляется в сценариях.
finger - Возвращает информацию о пользователях в сети. По требованию эта команда может выводить содержимое ряда файлов, указанного пользователя. В крупных сетях данная служба часто отключается по соображениям безопасности.
whois - команда, отвечающая за поиск в Domain Name System - DNS. При использовании ключа -h вы указываете, на какой именно из существующих whois серверов будет отправлен ваш запрос.
команда ping, в отличие от множества уже приведенных здесь команд, знакома и большинству Windows - пользователей. Чаще всего она применяется как инструмент для диагностики соединений, ее задача - передача пакета ICMP echo_request.
reboot - перезагрузка компьютера.
shutdown -h now - команда, выключающая ваш компьютер без временной задержки и ненужных вопросов.

Две последние команды выполняются исключительно из-под аккаунта администратора.

Comments