Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:использование_терминала [2010/03/25 16:21] |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Использование терминала ====== | ||
- | Под Linux существуют GUI (графические интерфейсы пользователя), где вы можете с помощью мышки выполнить необходимую работу без чтения большого объёма документации. Но традиционное окружение Unix - это CLI (интерфейс командной строки), где вы вводите команды, чтобы сказать компьютеру о том, что нужно сделать. Такой подход является более гибким и обеспечивает больше возможностей, а также более быструю работу, но требует знания команд. | ||
- | |||
- | Существует множество разнообразных дистрибутивов Linux, но практически все они используют одни и те же команды, которые вводятся в терминале. | ||
- | Также существует великое множество графических интерфейсов (GUI), но они все работают по разному и мало подчинены стандартам. Опытные пользователи, работающие с разными дистрибутивами Linux, обычно запоминают команды, которые универсальны для всех Ubuntu и, как правило, работают во всех остальных системах. | ||
- | |||
- | Команды консоли могут приводить в растерянность новичка: | ||
- | <code>sudo gobbledegook blah_blah -w -t -f | ||
- | aWkward/ComBinationOf/mixedCase/underscores_strokes/and.dots</code> | ||
- | |||
- | Однако, даже опытные пользователи часто копируют команды из мануалов или гайдов себе в терминал. Они их просто не запоминают! | ||
- | Конечно, важно знать, как работать в терминале, и если вы умеете просто набирать текст или копировать его, вы справитесь с терминалом, работать там не сложнее. | ||
- | В этой статье собраны некоторые хитрые команды и комбинации клавиш, которые облегчат вам использование интерфейса консоли. | ||
- | |||
- | =====Как читать эту статью===== | ||
- | |||
- | * Все названия команд выделены **жирным**. | ||
- | * Команды, которые должны быть набраны, выделены **"жирным и кавычками"**. | ||
- | * Все команды, приведённые на этой странице, должны быть выполнены из командной строки в терминале. | ||
- | * **Помните, что терминал чувствителен к регистру.** Слова User, user и USER в Linux различаются. | ||
- | |||
- | =====Запуск терминала===== | ||
- | |||
- | ==== В Gnome (Ubuntu) ==== | ||
- | Терминал находится в Приложения -> Стандартные -> Терминал | ||
- | ==== В Xfce (Xubuntu) ==== | ||
- | Терминал находится в Приложения -> Система -> Терминал | ||
- | ==== В KDE (Kubuntu) ==== | ||
- | Терминал находится в Приложения -> Система -> Терминал (Konsole) | ||
- | |||
- | ===== Команды ===== | ||
- | ==== sudo: Выполнение команд с неограниченными привилегиями ==== | ||
- | * Перед большинством команд, перечисленных ниже, необходимо писать команду sudo. Это временно даёт права суперпользователя, которые необходимы для работы с файлами и каталогами, которые не принадлежат вашему аккаунту. Для использования sudo требуется ввести пароль. Только пользователи с такими административными привилегиями могут использовать эту команду. | ||
- | |||
- | ==== Команды для работы с файлами и папками ==== | ||
- | * Символ тильда (~) обозначает вашу домашнюю папку. Если вы //user//, то тильда (~) — это /home///user// . | ||
- | * **pwd:** Команда **pwd** ("print working directory") позволяет вам узнать, в какой директории вы находитесь в данный момент. Помните, однако, что эту же информацию Gnome Terminal всегда показывает в названии окна. | ||
- | * **ls:** Эта команда покажет вам все файлы в текущей директории. Если использовать эту команду с определёнными опциями, можно также включить отображение размера файлов, времени последнего изменения и прав на файлы. Например, **"ls ~"** покажет всё, что у вас есть в домашней папке. | ||
- | * **cd:** Команда cd меняет рабочую директорию. Когда вы только запускаете терминал, вы будете находиться в вашей домашней папке. Чтобы перемещаться по файловой системе, нужно использовать **cd**. Примеры: | ||
- | - Чтобы попасть в корневой каталог, выполните **"cd /"** | ||
- | - Чтобы попасть в домашнюю папку, выполните **"cd"** или **"cd ~"** | ||
- | - Чтобы переместиться на один каталог вверх, используйте **"cd .."** | ||
- | - Для возврата в предыдущую посещённую директорию, используйте **"cd -"** | ||
- | - Для перемещения через несколько директорий за раз, нужно написать полный путь папки, в которую вы хотите переместиться. Например, команда **"cd /var/www"** переместит вас в подкаталог /www каталога /var/. А команда **"cd ~/Рабочий\ стол"** переместит вас на рабочий стол. //*В данном случае "\" обозначает экранирование пробела.// | ||
- | * **cp:** Команда cp копирует файл. Например, команда **"cp text new"** создаст точную копию файла "text" и назовёт её "new", при этом "file" никуда не исчезнет. Для копирования директории необходимо воспользоваться командой **"cp -r directory new"**, где опция -r обозначает рекурсивное копирование. | ||
- | * **mv:** Команда **mv** перемещает файл в другое место или просто переименовывает файл. Например, команда **"mv file text"** переименует "file" в "text". **"mv text ~/Рабочий\ стол"** переместит "text" вам на рабочий стол, но не переименуют его. Чтобы всё-таки переименовать файл, нужно специально указывать ему новое имя. Вы можете заменять путь к вашей домашней папке на '~', чтобы ускоряет работу. Помните, что при использовании mv вместе с sudo, терминал так же привязывает '~' к вашей домашней папке. Однако если вы включаете сессию суперпользователя в консоли с помощью **sudo -i** или **sudo -s**, то '~' будет ссылаться на корень диска, а не на ваш домашний каталог. | ||
- | * **rm:** Эта команда удаляет файл. | ||
- | * **rmdir:** Команда **rmdir** удаляет пустую папку. Чтобы удалить папку вместе со всеми вложениями, используйте **rm -r** вместо этого. | ||
- | * **mkdir:** Эта команда создаёт директорию. Команда **"mkdir music"** создаст вам папку, которая будет называться "music". | ||
- | * **man:** Попробуйте эту команду, когда вы хотите прочитать встроенное описание другой команды. **"man man"** покажет вам описание самой этой команды. | ||
- | |||
- | ==== Команды информации о системе ==== | ||
- | * **df:** Эта команда показывает объём занятого дискового пространства на всех смонтированных разделах. **"df -h"** наиболее полезна, поскольку использует для отображения Мегабайты (M) и Гигабайты (G), а не блоки. **"-h"** означает "human readable" ("читабельный для человека"). | ||
- | * **du:** Команда **du** отображает объём дискового пространства, занятого конкретной папкой. Она может показывать информацию для всех поддиректорий отдельно или для папки в целом. | ||
- | <code>user@users-desktop:~$ du /media/floppy | ||
- | 1032 /media/floppy/files | ||
- | 1036 /media/floppy/ | ||
- | user@users-desktop:~$ du -sh /media/floppy | ||
- | 1.1M /media/floppy/</code> | ||
- | * **"-s"** означает "summary" (в целом), а **"-h"** означает "human readable" ("читабельный для человека"). | ||
- | * **free:** Эта команда отображает объём свободной и занятой оперативной памяти. **"free -m"** показывает информацию в Мегабайтах. | ||
- | * **top:** Команда **top** отображает информацию о вашей системе, запущенных процессах и системных ресурсах, включая загрузку CPU, использование RAM и swap и количество запущенных процессов. Чтобы остановить **top**, нажмите **"q"**. | ||
- | * **uname -a:** Команда **uname** с опцией **-a** выводит всю системную информацию, включая имя машины, версию ядра и другие детали. Самое полезное из этого — проверка версии ядра. | ||
- | * **lsb_release -a**: Команда **lsb_release** с опцией **-a** выводит информацию о версии Linux, которую вы используете. Например: | ||
- | <code>user@computer:~$ lsb_release -a | ||
- | No LSB modules are available. | ||
- | Distributor ID: Ubuntu | ||
- | Description: Ubuntu 6.06 LTS | ||
- | Release: 6.06 | ||
- | Codename: dapper</code> | ||
- | * **ifconfig:** Эта команда выводит отчёт о сетевых интерфейсах системы. | ||
- | |||
- | ==== Добавление нового пользователя ==== | ||
- | * Команда **"adduser newuser"** создаёт нового пользователя в вашей системе с именем **"newuser"**. Чтобы назначить ему пароль, используйте **"passwd newuser"**. | ||
- | |||
- | ===== Опции ===== | ||
- | Стандартное поведение команды обычно изменется, для этого используются опции команд, **--option**. К примеру, команда **ls** имеет опцию **-s**, использование которой приведёт к отображению помимо списка файлов их размеры. А добавление опции **-h**, опять же, сделает размеры "читаемыми". | ||
- | Опции могут быть сгруппированы, и команда **"ls -s -h"** может быть заменена на **"ls -sh"**. Большинство опций имеют свой длинный вариант, начинающийся с двух дефисов вместо одного. В таком виде всё та же команда будет выглядеть как **"ls --size --human-readable"**. | ||
- | ==== Man'ы и получение справки ==== | ||
- | <note important>команды **man**, **info** и **command --help** — самые главные инструменты в консоли.</note> | ||
- | Почти каждая команда и приложение в Linux имеет man-файл (мануал). Найти его очень просто: для этого нужно ввести **"man "command""**. Например, **"man mv"** покажет мануал команды **mv**. | ||
- | |||
- | Перемещаться по этому мануалу можно клавишами со стрелками, а выйти из него, нажав клавишу **"q"**. | ||
- | |||
- | Команда **"man man"** покажет мануал команды **man**. Это неплохо для начала освоения! | ||
- | |||
- | "man intro" — команда особенно полезная. Она отображает "Введение в пользовательские команды" — толково написанное, краткое и понятное введение в команды консоли Linux. | ||
- | |||
- | Также существуют справочные страницы, которые обычно глубже, чем мануалы. Попробуйте выполнить **"info info"** для прочтения введения в справку. | ||
- | |||
- | Некоторые разработчики программного обеспечения предпочитают справку мануалам (например, разработчики GNU), поэтому если вы встретите часто используемую программу, у которой нет страницы мануала, стоит найти справку. | ||
- | |||
- | Практически все команды понимают опцию **-h** (или **--help**), которая выводит краткое описание использование команды и её опций, а затем выходит в консоль. Попробуйте выполнить **"man -h"** или **"man --help"**, чтобы увидеть, как это работает. | ||
- | |||
- | <note warning>Бывает, что программа не интерпретирует опцию **-h** как вызов справки. В таком случае ознакомьтесь с man'ом и попробуйте длинную опцию **--help** перед **-h**.</note> | ||
- | |||
- | ==== Поиск по man'ам ==== | ||
- | Если вы не уверены, какая команда вам нужна, попробуйте поискать по текстам мануалов. | ||
- | * **man -k something-you-need** будет искать то, что вам нужно во всех мануалах. Попробуйте **"man -k nautilus"**, чтобы увидеть, как это работает. Кстати, это то же самое, что выполнить команду **apropos**. | ||
- | * **man -f something-you-need** будет искать только по названиям системных мануалов. Попробуйте **"man -f gnome"** для примера. Выполнение команды **whatis** приведёт к такому же результату. | ||
- | |||
- | ===== Другие полезные вещи ===== | ||
- | |||
- | ==== Более привлекательные man'ы ==== | ||
- | Пользователи, у которых установлен Konqueror, могут читать страницы мануалом и выполнять по ним поиск в веб-браузерном контексте, украшенном выбранными фоновыми рисунками. Для этого нужно набрать в строке адреса Konqueror'а **man:/command**. | ||
- | |||
- | ==== Копирование команд ==== | ||
- | Часто вам придётся следовать каким-либо инструкциям, которые требуют копирования команд в терминал. Наверное, вы удивитесь, когда обнаружите, что текст, скопированный вами с интернет-страницы при помощи комбинации клавиш ctrl+C, не вставлятся в терминал при нажатии ctrl+V. И что, неужели придётся перепечатывать все эти команды и имена файлов вручную? Нет, расслабьтесь! Вставить текст в терминал можно тремя способами: **ctrl+shift+V**, нажатием **средней кнопки мыши** или **правой кнопки мыши** и выбором строки **"Вставить"**. | ||
- | |||
- | ==== Экономия набора ==== | ||
- | |||
- | | **стрелка вверх** или **ctrl+p** | прокрутка недавно использованных команд вверх | | ||
- | | **стрелка вниз** или **ctrl+n** | прокрутка недавно использованных команд вниз | | ||
- | | **Enter** | выполнение выбранной команды | | ||
- | |** tab** | крайне удобная возможность - автозаподстановка команд и имён файлов. Если с выбранных символов начинается только одна команда, подставится именно она, а если их несколько, то по нажатию tab выведется список всех возможных вариантов.| | ||
- | | **ctrl+r** | поиск по командам, которые вы вводили раньше. Если вам нужно повторно выполнить очень длинную и сложную команду, вы можете ввести только её часть, а эта комбинация клавиш поможет найти команду целиком.| | ||
- | | **History** | Команда **history** выводит список всех команд, которые вы вводили. Каждой команде будет присвоен номер. Чтобы выполнить команду под номером x, просто введите **"x!"**. Если у вас получилась слишком длинная история, можно попробовать **"history I less"**, это сделает список прокручиваемым. | | ||
- | |||
- | ====Изменение текста==== | ||
- | |||
- | Здесь мышь не работает. Используйте стрелки влево/вправо, чтобы перемещаться по строке. | ||
- | |||
- | Ввод с клавиатуры будет добавлять символы. Существующий текст удаляться не будет. | ||
- | |||
- | | **ctrl+a** или **Home** | перемещает курсор в начало строки | | ||
- | | **ctrl+e** или **End** | перемещает курсор в конец строки | | ||
- | | **ctrl+b** | перемещает курсор в начало предыдущего или текущего слова | | ||
- | | **ctrl+k** | удаляет текст с текущей позиции курсора до конца строки | | ||
- | | **ctrl+u** | удаляет всю текущую строку | | ||
- | | **ctrl+w** | удаляет слово перед курсором | | ||
- | |||
- | ====Другие способы запуска терминала==== | ||
- | |||
- | Вы можете назначить горячие клавиши на запуск терминала. | ||
- | |||
- | Можно запустить больше одного терминала, либо в раздельных окнах, либо во вкладках одного. | ||
- | |||
- | |||
- | =====Ссылки===== | ||
- | |||
- | [[http://zeroed.ru/ubuntu/console|Убунтология: Консоль]] | ||
- | |||
- | [[https://help.ubuntu.com/community/UsingTheTerminal|Оригинал статьи]] | ||
- | |||
- | {{tag>Система Терминал Консоль Советы FIXME}} |