This page has been robot translated, sorry for typos if any. Original content here.

Термінал і його використання для Mac OS X

По темі:


З кожним роком кількість світчер зростає. Причому на Mac переходять не тільки з Windows, дуже часті випадки переходу з Unix.

І якщо для більшості користувачів Unix, які звикли до консольних командам, робота з терміналом в Mac OS X не доставляє ніякого дискомфорту, то для мігрантів з Windows ситуація виглядає дещо інакше.

Велика частина таких користувачів рідко використовує можливості ядра Unix, не бачачи в цьому ніякої необхідності.

Природно, такий користувач цілком може обійтися і без терміналу, але знання хоча б основних команд в деяких ситуаціях може значно полегшити життя будь-якого володаря комп'ютера під керуванням Mac OS X, a кому-то просто допоможе розширити свій кругозір і краще зрозуміти обрану ним операційну систему.

З огляду на, що цей невеликий огляд орієнтований на людей, які ніколи не мали раніше навіть мінімального досвіду роботи з Unix-подібними системами, ми почнемо з самих азів, поступово переходячи від простого до складного.

Для початку варто згадати головну команду для будь-якої людини, що почуває себе не дуже впевнено, побачивши командного рядка: man. Це - довідка. Додавши до man ім'я потрібної вам команди, ви отримаєте досить повну інформацію про неї. Для прикладу введіть man man, і ви побачите в терміналі повнішу документацію по цій команді.

Для виходу використовуйте клавішу Q.

Так, варто зауважити, що більшість команд в Unux-системах, які не потребують виведення інформації користувачеві, в разі свого успішного завершення взагалі нічого не показують. У тих випадках, коли призначення команди не полягає в поданні інформації - на екран виводяться тільки помилки і попередження про порушення нормального виконання команди.

основи навігації

команда cd. Одна з основних команд, що дозволяють здійснювати навігацію по різним тек. Якщо, відкривши термінал, ви відразу хочете опинитися в певній директорії, скажімо, в Documents, досить набрати в терміналі cd Documents.

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 пароль, пароль адміністратора.

reboot - перезавантаження комп'ютера

shutdown -h now - команда, вимикає ваш комп'ютер без тимчасової затримки і непотрібних питань.

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

Звичайно, далеко не всі користувачі використовують можливості терміналу в повсякденному житті. Кому-то це здається древнім і віджилим анахронізмом, кого-то відштовхує необхідність запам'ятовувати досить великий список необхідних команд, в той час, коли більшість необхідних завдань можна виконати за допомогою звичайної миші. Але, раз почавши працювати з терміналом, ви самі досить швидко оціните можливості, які він вам надає.