Видео смотреть бесплатно

Смотреть 18 лет видео

Официальный сайт fresher 24/7/365

Смотреть видео бесплатно

WeLinux.ru

07.03.09 13:07

booleyКонсоль

Статья для новичков. "Бывалые" вряд ли найдут здесь что-то интересное.

У нас получилось и мы установили Ubuntu Linux. Что дальше? Множество советов касается каких-то 'консолей', что-то надо вводить.

В этой статье разберем несколько вопросов, касающихся этой темы.

1) что такое "консоль"
2) как в ней работать
3) основные команды (действительно основные)
4) полезные советы


Консоль, по сведениям из Википедии, один из интерфесов пользователя (на англ. UI).
Причем, надо отметить, текстовой интерфейс (в противоположность графическому - GUI), т.е. управление требует ввода команд.

В Линуксе существует множество "оболочек" (также они зовутся shell'ами). В Ubuntu по умолчанию установлена оболочка bash (Bourn Again SHell). Мы рассмотрим работу именно c этой оболочкой.

Просто так оболочку не запускают, ее выполняют через терминал. Стандарт в Ubuntu - gnome-terminal (Приложения -> Accesories (нужно точное название!)). Откройте его. В окне появится приглашение вида:
user@user-desktop:~ $_

Это означает что оболочка ждет ваших приказов, командир команд.
Разберем приглашение по частям.
  • user - имя пользователя
  • user-desktop - имя компьютера
  • ~ - на месте ~ показывается текущее местоположение(что значит ~ читайте ниже)
  • $ - приглашение ввода
@ и : - просто разделители.
Команды вводятся в виде:

команда [параметры]

То что "параметры" заключены в квадратные скобки означает то, что они не обязательны (в любом случае, сами скобки писать не надо).

Перейдем к перечислению команд. Для комфорта, придется запомнить несколько базовых команд.

man [имя команды] - наверное, самая важная и полезная из этих комманд. Она выводит справку по программе [имя команды], включая все параметры. Если вам говорят "читай маны", то это именно о 'man'.

cd [путь] - перейти из текущей папки в [путь]. Если не указать путь, покажет ваше текущее местоположение.

rm файл - удалить файл

nano файл - простой редактор, аля блокнот но в консоли (побольше о нем будет рассказано в другом посте)

sudo [command] - выполнить [command] от имении root (самого главного в системе).

ls [путь] - список файлов, лежащих в папке [путь].

less - команда постраничного вывода текста. В основном, используется с конвейером.

cat [file] - выводит содержимое файла [file]

grep [шаблон] - поиск по шаблону в строке поданной на вход.
Пример: Допустим, в папке ~ лежит три файла:
1
2
3
my.txt
hacker.code.avi
hacker.out
Нам нужны имена файлов, в которых содержится слово hacker. Легче всего это сделать конвейером (о нем ниже) - получаем команду ls ~ | grep hacker

Плавно перейдем к некоторым хитростям, которые серьезно упрощают жизнь в консоли.

Обозначения путей:
  • ~ - /home/username | ваша папка
  • . - текущая папка
  • .. - родительская папка (для ~ - /home)

Если нужно передать вывод одной программы в другую, используется конвейер:
command1 | command2
Т.е. вывод комманды command1 передается в command2.

Если нужно выполнить две команды, можно записать так:
command1 && command2

Bash поддерживает автодополнение по клавише Tab. То есть если в текущей папке лежит файл thelongiestfilenameinmyhomefolderandmoreandmore.txt и вы хотите его удалить. Руками вводить это длинное имя - долго. Мы пишем rm the и жмем <Tab>. Bash подставит окончание имени файла автоматически.

Теперь вы можете начать жить в консоли. Сначала в окне терминала, но может быть когда-нибудь вам станет проще написать в консоли
sudo apt-get update && sudo apt-get dist-upgrade
для тотального обновления системы, чем тыкать кнопки в Synaptic. Лично мне, автору, стало.
+9
exelens07.03.09 13:21# +1
Всем рекомендую обратить внимание на абзац про ТАБ!
Username07.03.09 21:17# +0
таб наше все) Хотя у меня одмин кореш лупит команды быстрее, чем я в копыте строчу. И без всяких табов, заметьте)
muhas07.03.09 23:20# +1
правильно, хотя я после zsh в башевые дополнения не хочу...
кстати, надо как за большой машиной буду про zsh и написать
Username08.03.09 10:59# +0
м, напиши, я однажды сидел под ней, чуть не сдох. Это нужно
greatperson07.03.09 14:28# +0
Не убедило. Встречал много гораздо более внятных "введений в консоль". Но устанавливать проги по-прежнему предпочитаю в GUI.
exelens07.03.09 15:21# +1
Гуи долго... Тыкать меню...
а тут
sudo apt_get install
и всё
Username07.03.09 21:18# +0
apt-get :-P
Minoru07.03.09 21:53# +0
aptitude! :D
Username07.03.09 21:19# +0
знаешь.. не соглашусь. Один недостаток у консольных способов установки прог - нужно знать точное имя пакета. Но и это лечится поправимо. Плюс, бывают откровенно говеные ГУИ менеджеры пакетов - пример - Адепт в кубунту и Ястовский менеджер в сусе.
ЗЫ ничо против самого Яста, против системы его пакетного менеджера
Minoru07.03.09 21:59# +0
нужно знать точное имя пакета

Можно использовать aptitude search, чтобы узнать имя пакета.
У меня в bash можно написать sudo aptitude install iceweas и нажать таб — имя будет дополнено. К тому же можно нажать tab ещё два раза и получить список пакетов, которые начинаются с уже дополненного слова (в общем, стандартное автодополнение bash). А ещё система довольно умна: к примеру, если я написал aptitude install, то поиск для автодополнения будет производится только среди неустановленных пакетов.
Minoru07.03.09 22:53# +0
М, ошибся: автодополнение идёт по всем пакетам, независимо от того, что я собираюсь делать с aptitude.
Но удобства это не убавляет.
Username08.03.09 11:02# +0
мммм это не отменяет удобства поиска того что нужно через ГУИ. Частенько, чтобы узнать где находится нужная so в консоли нужно поставить особую программу, да и ждать полгода, пока она составит индекс и скачает себе нужное(
Minoru08.03.09 11:50# +0
so? Поиск по файлам вроде apt-file делает (может быть, есть аналог и в aptitude) Впрочем, мне такой функционал не требовался, так что ничего конкретно сказать не могу, только то, что слышал краем уха. Да и кто тебе сказал, что в GUI искать проще, чем в консоли?

С другой стороны, спор лишён смысла — каждый использует то, что ему нравится. ;)
Iliander07.03.09 14:51# +1
Очередная статья полетела в закладки delicious :) Полезно будет нубам кидать, пусть если не маны, то хотя бы подобные статьи читать научаться... А там глядишь и до манов дойдет...
Kraplax07.03.09 15:41# +8
И снова я =)

@ и : - просто разделители.

@ - это не просто разделитель. Символ собаки пришел к нам из коммерции из английского языка. По-английски он читается как [at]. И означает, собственно, то же самое - предлог at. То есть запись в виде user@user-desktop означает "пользователь user на компьютере user-desktop". Отдельно про двоеточие не стоит говорить, просто скажите что после двоеточия пишется текущий путь, который, собственно, представлен в виде тильды. Кстати, значку ~ не помешает название.

sudo [command] - выполнить [command] от имении root (самого главного в системе).

Вообще-то стоит упомянуть, что нужно будет ввести пароль. Причем свой пароль, а не пароль администратора компьютера. Ну, и неплохо было бы добавить команду su в таком случае. Хотя, наверное не стоит - su переводит пользователя в "постоянный режим root" (то есть выполняется вход в систему от рута, а не просто одна команда от имени рута), что чревато тяжелыми последствиями у тех, кто забудет выйти.

Неплохо было бы сказать о других горячих клавишах, кроме Tab. Например ^C, ^D, ^Z, (Ctrl+C, Ctrl+D, Ctrl+Z). А там, глядишь, и fg команду упомянуть (как раз сразу после ^Z).

Если нужно выполнить две команды, можно записать так:
command1 && command2

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

~ - /home/username | ваша папка

Как-то стоит пояснить, что не просто ваша папка, а вообще символ тильды развернется в полный путь к папке текущего пользователя и в зависимости от того, под каким пользователем выполнить эту команду результат будет разный. Также стоит убрать в этой строке символ конвеера - он сбивает с толку. Лучше будет что-то вроде
~ - символ, онзачающий домашнюю директорию текущего пользователя и для каждого пользователя он будет свой (Для пользователя Kraplax будет /home/kraplax, а для booley - /home/booley).

Также стоит добавить, что почти каждая команда выдает краткую (по сравнению с man) справку о пользовании ей, если запустить ее вот так:
[команда] --help

А так статья очень хорошая. Самые базовые вещи. Приятно видеть что стараешься и такие нужные вещи обьясняешь, а главное постоянно исправляешься и результат улучшается.
l1feh4ck3r07.03.09 15:50# +1
Вот поставл бы много плюсов, да нет такой возможности )
Minoru07.03.09 16:01# +0
Хехе, как мы с тобой синхронно работаем :)
Я только припозднился чуток с правками.
Username07.03.09 21:21# +0
нащет эт - плюс пицот. Причем вообще по жизни, мало кто понимает смысла @, кличет собакой. А если послушать по-английски, как все красиво:
danya at dell-kubuntu - а? Даня дома, за ноутом Делл под кубунтой
Minoru07.03.09 15:57# +4
Привет, это снова я :)

Начну по списка правок:

Консоль, по сведениям из Википедии, один из интерфесов пользователя (на англ. UI).
Лучше было бы вместо второй запятой поставить тире.

(также они зовутся shell'ами)
Нет, они зовуться «shell» по-английски и «командная оболочка» по-русски :)
То, что в скобках, лучше заменить на просто «shell'ов».

В Линуксе существует множество "оболочек" (также они зовутся shell'ами). В Ubuntu по умолчанию установлена оболочка bash (Bourn Again SHell). Мы рассмотрим работу именно c этой оболочкой.

Просто так оболочку не запускают, ее выполняют через терминал.

Тавтология.

user@user-desktop:~ $_
Подчёркивание здесь лишнее. Можно было бы использовать тег blink, но здесь же нельзя напрямую юзать HTML?

$ - приглашение ввода
Не забудь сделать замечание о том, что если оболочка рутовая, приглашение будет заканчиваться шарпом («#»)

Для комфорта,
Лучше «Для комфортной работы в консоли».

наверное, самая важная и полезная из этих комманд.
«Наверное»?! Да как ты смеешь сомневаться!? :D
Кстати, сюда же и про info можно написать — в info-страницах часто джают примеры использования команды, а также сопутствующую информацию.

перейти из текущей папки в [путь]
В *nix нету «папок». Только «каталоги» или «директории». Об этом можно упомянуть отдельно, сославшись на «Введение в POSIX'ивизм» Алексея Федорчука aka alv.

Если не указать путь, покажет ваше текущее местоположение.
Да?
Текущее местоположение показывает команда pwd.
cd же без параметров перекидывает вас в ваш домашний каталог (aka ~); путь к нему хранится в $HOME.

В основном, используется с конвейером.
Это убрать. Новичок не знает о конвеерах пока что.
Да, и синтаксис less [файл].

grep [шаблон] - поиск по шаблону в строке поданной на вход.
Можно и grep [шаблон] [файл].

Допустим, в папке ~ лежит три файла:
Не советую использовать тильду, пока не объяснишь её значения.

| ваша папка
Это что значит? :)
Про «папки» читай выше :)

Если нужно выполнить две команды, можно записать так:
command1 && command2

Это не единственный способ. Раз уж взялся объяснять, то давай подробно :)
То есть следует сказать, что command2 выполнится только если первая завершится успешно. Ну и ещё упомянуть про command1; command2, когда command2 выполняется независимо от результата первой.

Теперь вообще о статье.

Мне понравилось. Достаточно неплохое введение (других не читал, так что сравнивать не с чем). Лучше объясняется только в уже упоминавшихся мною Introduction to Linux и «Введении в POSIX'ивизм» alv'а :)

P.S. Уже не по статье, но к booley: вот тебе придирки к «sudo apt-get update && sudo apt-get dist-upgrade»:
  1. Вместо apt-get советуют использовать aptitude;
  2. вместо этой конструкции лично я использую такую:
    sudo su -c "aptitude update && aptitude -y safe-upgrade"

Отличия от твоего варианта:
  1. Используется рекомендуемый разработчиками aptitude;
  2. второго запроса на пароль не будет (бывало, при использовании конструкции вроде твоей и долгом обновлении пакетов sudo успевало «забыть», что пароль я уже вводил, и спрашивало его опять);
  3. наличие параметра -y даёт возможность запустить команду и забыть о ней — всё будет сделано автоматически; кроме того, конструкцию можно завернуть в скрипт и использовать как отдельную команду (у меня так и сделано).
Minoru07.03.09 17:14# +0
Правившему мой пост: там после фразы «Отличия от твоего варианта» должен начинаться второй нумерованный список. Такое не позволяется?

Да, и где кнопка «Редактирование»? Она была, но её убрали...
exelens07.03.09 20:57# +0
Никто не правил =) почему то в первом случае [/li][/ol] не было
Minoru07.03.09 21:06# +0
И не должно было быть. ;)
Согласно задумке, во втором пункте %
Minoru07.03.09 21:09# +0
Комментарий обрезался %(

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

1. текст
2. текст
1. текст
2. текст
3. текст

Вот :)

А где, всё-таки, кнопка редактирования комментария?
exelens07.03.09 21:15# +0
Кнопку спрятал разработчик.
Minoru07.03.09 22:00# +0
Жаль :(
Minoru07.03.09 21:11# +0
Ух ты :) Ведущие пробелы в строке вырезаются. Занятно...
Список должен был выглядеть так:

1. текст
2. текст
___1. текст
___2. текст
___3. текст

Подчёркивания использовал, чтобы не удалился сдвиг.
Username07.03.09 21:22# +0
люблю русский язык. Пишите и читайте правильно.
muhas07.03.09 20:50# +1
порадовало ls | grep bla
ls *bla* делает тоже самое
к тому же grep может нарушить вид вывода ls.
Будьте проще, а то доведете новичьков до cat bla | less и подобным конструкциям...
короче, kiss ;)
Username07.03.09 21:24# +0
наверно от .bashrc зависит как ls выводит данные. Если в одну строку каждое имя - то да, одинаково. В разных дистрах по умолчанию вроде по-разному
muhas07.03.09 23:15# +0
я в основном не о выводе, а о лишних сущьностях - зачем добавлять еще один процесс если можно обойтись без него. grep кстати цвета похерит, а в соответствии с моим конфигом еще и слово разукрасит(подсветит) не целиком - только pattern по которому проводил отбор (хотя это тоже может быть целью, тогда применение grep оправдано)
Username08.03.09 11:02# +0
это само собой
PCSpeaker07.03.09 23:37# +0
(Приложения -> Accesories (нужно точное название!)

Приложения - Стандартные - Терминал
Username08.03.09 11:03# +0
Ctrl+Alt+F1 - и не важен ДЕ))
exelens08.03.09 11:21# +0
=) это не совсем то
Jayrome09.03.09 15:57# +0
> less - команда постраничного вывода текста. В основном используется с конвейером.

Про конвейер лучше здесь же пару слов сказать, что это такое. Или то, что внизу про него есть, подтянуть сюда.

Top блогов (все)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Top пользователей (все)
Топ пользователей Топ блогов
В сети: extra, DarkWizard, sdvn

Новенькие: al_ aka Xarek, NucleoFag, Kane, Митяй, etti_
welinux.ru
Идея сайта exelens; Движок 0byte, разработчик nvbn; Дизайн - Astramak

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн