Ubuntu консоль – Командная строка | Русскоязычная документация по Ubuntu

Содержание

Терминал и консоль | Русскоязычная документация по Ubuntu

Это рабочий вариант статьи, адаптированый для Lubuntu 14.04 LTS.

Итак, давайте сначала посмотрим, что из себя представляет этот самый терминал. Кликните мышкой по иконке Главного Меню и в разделе Стандартные выберите LXTerminal. Можно поступить проще, воспользовавшись комбинацией клавиш CtrlAltT. Запустив терминал вы увидите примерно такое окошечко:

Знакомьтесь, это и есть терминал. Он создан для того, чтобы выполнять текстовые команды, поэтому отложите свою мышку в сторону и пододвиньте поближе клавиатуру1).

Управление терминалом

Давайте выполним какую-нибудь командочку, например:

lsb_release -a 2> /dev/null | grep -P "(?<=Codename:)(.*)"

На выходе получим кодовое имя нашего дистрибутива:

Набирать такие команды с клавиатуры посимвольно немного неудобно, поэтому давайте сразу разберёмся с основами управления терминалом. Начнём с копирования/вставки. Стандартные сочетания клавиш

Ctrl+C и Ctrl+V в терминале не работают, вместо них используется старая добрая пара Ctrl+Insert с Shift+Insert или же сочетания с Shift: Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки. Что ж, теперь вы умеете целиком копировать команды из руководств.

Кстати, в большинстве руководств и инструкций вы встретите именно терминальные команды. Это связано с тем, что, графических оболочек очень много, и объяснить, как выполнить какое-то действие для каждой из них бывает очень непросто. А терминал — один для всех, и одна и та же команда работает во всех оболочках (естественно, кроме команд по настройке самой оболочки). К тому же, намного проще дать одну команду, чем объяснить где и как 10 раз нажать мышкой.

Однако, часто всё-таки команды приходится набирать вручную, а не вставлять откуда-то. И вот тут на помощь приходит великолепное свойство терминала, называемое автодополнением. Наберите в терминале символы apt-g, а потом нажмите клавишу Tab. Терминал автоматически дополнит за вас команду. Кстати, apt-get — это основная консольная утилита управления пакетами, но об этом после.

А теперь попробуйте набрать только

apt и нажать Tab. Ничего не происходит? А теперь нажмите Tab два раза подряд. Видите, терминал выдал вам список всех команд, начинающихся с apt.

Удобно, не правда ли? Особенно, если привыкнуть.

Автодополнение в терминале работает практически везде, и не только для команд, но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора, да и вообще, терминал без автодополнения — это не терминал.

Еще одна хитрость. Откройте терминал нажмите сочетание клавиш Ctrl+R и начните набирать нужную команду. Терминал автоматически подставит подходящие варианты из набранных ранее команд.

Работа с файлами

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

Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки:

Текущий каталог — это то, что между символами : и $. Кстати, обратите внимание, перед : стоит имя пользователя и имя компьютера, разделённые символом

@. Но когда вы запускаете терминал, то между : и $ стоит символ ~:

При запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ ~ — это синоним адреса домашней папки текущего пользователя2). Кстати, если вы ещё не знаете, полный адрес домашнего каталога выглядит как

/home/логин_пользователя

У меня это /home/user2.

Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда cd, выполните, например, команду

cd Музыка

Видите, текущее местоположение изменилось:

На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть Музыка и музыка — эта два совершенно разных имени.

После команды cd можно указывать как полные пути относительно корня, так и относительные, отсчитывающиеся от текущего каталога. В примере выше я использовал относительный путь. А вот полный:

cd /home/user2/Музыка

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

\. Вот так:

cd Каталог\ с\ плохими\ символами\ в\ имени\<\>

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

cd "Каталог с плохими символами в имени<>"

Но в этом случае автодополнение работать не будет.

Заменитель адреса домашнего каталога ~ можно использовать и при наборе путей, например:

cd ~/Музыка

А для перемещения непосредственно в домашний каталог достаточно просто набрать cd без аргументов.

Для перемещения на каталог выше можно использовать команду

cd ..

Вообще, две точки обозначают всегда родительский каталог, поэтому можно делать так:

cd ../..

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

cd -

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

ls:

Обычно командам можно передавать различные модификаторы, например:

Кстати, эта команда показывает различную дополнительную информацию о содержимом каталога.

Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно рассказывал о способе перемещения по каталогам и использования различных имен файлов в качестве аргументов. Например, команда cat показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла test.txt, лежащего в вашем домашнем каталоге, то вы могли бы выполнить команду

cat ~/text.txt

Получение справки

Начинающих пользователей Linux очень часто любят пугать так называемыми манами. Дело в том, что man — это система справки о командах для терминала. Пользоваться ей очень легко, просто наберите в терминале

man команда

Например:

man ls

Появится собственно текст справки3), разбитый на разделы. Перемещаться по нему можно с помощью стрелок и клавиш PgUp и PgDown, а для выхода просто нажмите Q.

Кроме man-страниц у многих утилит4) есть встроенная справка, которую обычно можно посмотреть, запустив программу с ключом --help:

утилита --help

Например:

ls --help

Есть и другие способы получения помощи, например похожая на man утилита info. Но чаще всего наиболее полную информацию о программе можно получить именно из man-страниц, а краткую справку — указав ключ --help при вызове5).

История введённых команд

Напоследок хочу лишь сказать, что терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторного исполнения введённых ранее команд. А посмотреть всю историю можно командой

history

У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и номер нужной команды:

А повторить предыдущую набранную команду можно просто написав два восклицательных знака !! Двигаться по истории набранных команд можно стрелочками вверх/вниз клавиатуры. Нажав один раз на стрелку вверх — терминал покажет последнюю набранную команду, два раза — предпоследнюю, и так далее. Если нужно вернуться назад — нажмите стрелочку вниз.

Мне кажется, что с непривычки уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга, существуют ещё тысячи полезных команд и интересных приёмов работы в терминале. С помощью терминала можно редактировать файлы, слушать музыку, смотреть видео и выполнять ещё массу повседневных операций, но описание всего этого выходит далеко за рамки данной статьи.

Разные полезности терминала

На всякий случай немного коснусь ещё одной темы. Бывает так, что вы что-то запустили в терминале и хотите прервать работу этого чего-то. Обычно это сделать очень просто, достаточно нажать на клавиатуре сочетание клавиш Ctrl+C6).

Есть и другие управляющие сочетания, например Ctrl+D посылает сигнал конца файла запущенному приложению, а без запущенных утилит делает тоже, что и терминальная команда exit. Ну а если вы хотите более подробно управлять работающими программами, то посмотрите на системный монитор htop, который, правда, нужно доустанавливать отдельно.

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

И напоследок, в качестве примера, рассмотрим простой консольный файловый менеджер. Помните, в одной из предыдущих глав мы установили в нашу систему Midnight Commander. Введите в терминале команду

mc

и увидите, что получится:

У пользователей постарше, успевших поработать в DOS, это окно может вызвать острый приступ ностальгии.

Консоль

Не путайте терминал с консолью. Для работы консоли графическая оболочка не нужна совсем. Именно так работают серверные версии Ubuntu. Терминал — это только одна из программ, которые эмулируют работу консоли. В «настоящую» консоль можно попасть набрав комбинацию клавиш Ctrl+Alt+Fx (где Fx — клавиши от F1 до F6). После этого нужно ввести свой логин и пароль (пароль никак отображаться не будет, ни звездочками, ни черточками — вообще никак). Обратно в графическую оболочку — Ctrl+Alt+F7.

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

Вы, наверное, подумали: а зачем эта консоль нужна, если есть терминал? Приведу только два примера:

  • при проблемах с драйвером видеокарты, графическая оболочка может не загрузиться совсем. Тогда вы попадете в консоль. Зная консольные команды, можно исправить проблему с драйвером, без необходимости переустановки системы;

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

top

посмотреть номер зависшего процесса и командой

kill -9 номер процесса

завершить зависший процесс.

На этом, пожалуй, закончим краткое введение в богатейший мир консольных команд Linux и рассмотрим еще некоторые особенности этой многогранной операционной системы:

help.ubuntu.ru

Базовый набор команд для работы в консоли Linux/Ubuntu — WebSofter

 

В данном посте приведен минимальный базовый список команд для уверенной работы в командной строке Linux/Ubuntu.

Порядок выполнения команд в Ubuntu

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

Безусловное последовательное выполнение — это когда одна за другой выполняются команды в той последовательности, в которой они записаны. Например, мы хотим выполнить сначала одну команду. Затем, когда она отработает (вернет управление в командную строку), нам нужно запустить вторую команду. Для этого служит символ точка с запятой ;. Таким образом, если вы выполните в терминале:

mycommand1; mycommand2; mycommand3

то сначала запустится первая команда mycommand1, а когда управление вернется в терминал, то запустится вторая и так далее.

Зависимое выполнение команд через оператор && — это означает, что команда mycommand2 будет выполнена только в том случае, если команда mycommand1 была выполнена успешно. Каждая следующая команда выполняется только при успешном выполнении предыдущей. К примеру:

mycommand1 && mycommand2 && mycommand3

Зависимое выполнение команд через оператор || — это означает, что команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку. К примеру:

mycommand1 || mycommand2 || mycommand3

то команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку.

reboot — перезагрузка операционной системы через консоль

Перезагружает систему через консоль. Форма записи обычная:

reboot

apt-get — управление приложениями через менеджер пакетов Ubuntu

apt-get позволяет устанавливать, обновлять, удалять приложения и пакетами ОС Ubuntu. Форма записи:

sudo apt-get install[uninstall, update] <package_name>

Очень полезно обновлять информации о доступных пакетов через команду:

sudo apt-get update

Зачастую, apt-get может и не установить какой-то пакет из репозитория, если мы не выполним обновление информации.

whoami — выводит логин текущего пользователя

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

whoami

aptitude — более совершенная версия команды apt-get

Это более совершенный менеджер пакетов. В частности, позволяет очень эффективно обновлять пакеты, сохраняя все зависимости:

sudo aptitude safe-upgrade

bash — команды оболочки командной строки Ubuntu

Это команды, который позволяют работать со средой окружения. К прими, на основе их можно написать целые скрипты с расширением *.sh и выполнять их:

bash myscript.sh

Есть переменные среды окружения Ubuntu, в которых система хранит те или иные данные. К примеру, командой echo можно вывести данные, хранящиеся в переменных $USER, $HOME, $PATH:

echo $USER[$HOME, $PATH]

Очень важно упомянуть в данном контексте 3 важных скрытых файла оболочки bash в корневой директории root:

  • .bashrc
  • .bash_profile
  • .profile

Данные файлы загружаются при каждом начале сессии загрузки командной строки или системы Ubuntu. Это файлы настроек начальной загрузки сессии пользователя и внутри них прописаны сценарии начальной загрузки системы.

ls — вывод списка всех файлов и директорий в указанном пути

Выводит весь список файлов и папок в определенной директории, которую мы укажем. Форма записи:

ls /dir/name

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

Чтобы показать и скрытые файлы нужно вывести через набор команды и ключа -a:

ls -a

К примеру, для вывода полной информации с правами доступа, владельцами и со скрытыми папками и файлами можно набрать комбинацию этой команды с ключами в виде:

ls -la /dir/name

mkdir — создание папки или директории по указанному пути

Позволяет создавать папку через командную строку в Ubuntu. Если требуется создавать вложенные папки, то они разделяются через прямой слэш (/):

mkdir my/new/dir

pwd — показывает текущую директорию, где находится пользователь

Форма записи:

pwd

Тоже самое можно увидеть, если вывести это через системную переменную $PWD, в котором Ubuntu этот путь и хранит:

echo $PWD

cd — команда перехода по папкам и директориям

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

cd ../

Для перехода в какую-то директорию в пределах текущей директории нужно выполнить:

cd ./folder/name

или

cd folder/name

а если хотим из текущей директории перейти сразу в какой-нибудь параллельный раздел, то надо указать абсолютный путь с указанием / в начале пути:

cd /usr/bin

cp — команда копирования файлов и папок в Ubuntu

Позволяет копировать указанный файл, принимаемый первым параметром в виде файла, указанный вторым параметром:

cp filename.txt filename_copy.txt

Если мы хотим копировать папки с содержимым, то надо еще указать ключ реверсного копирования -r:

websofter.ru

Консоль Linux - Переходим на Линукс

Переходим на Линукс  »  Консоль Linux

Консоль Linux абсолютно волшебный и удобный инструмент, позволяющий управлять всей системой короткими командами, причём можно сотворять абсолютно что угодно - от установки программ, до изменения оболочки, и в целом это экономит кучу времени, и это главная причина почему стоит пользоваться консолью.. (В Windows чтоб установить программу нужно прошёлкать сколько-то окон и поснимать галочки, чтоб лишнее не поставилось, здесь же одна команда и получаешь нужное, тоже можно получить и при установки deb пакетов или из центра программ или вообще собрать программу из исходников прям в системе - куча возможностей на любой вкус.)

Запустить консоль Linux можно запустив терминал (Ctrl+Alt+T зависит от сборки), находится он в
Пуск (Меню) → Администрирование → Терминал (Или слева при раскрытии меню, зависит от оболочки..)
Для KDE: Пуск (Kickoff) → Система → Терминал. Или в файловом менеджере Dolphin он всегда под рукой горячая клавиша F4.

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

Например перейдём в папку и напишем ./start-tor-browser

В Линуксе расширение файла может не быть, исполняемым может быть любой файл у которого стоят разрешения на выполнение (можно выставить правой клавишей в свойствах или chmod +x ./start-tor-browser) в Виндовс обычно исполняемые только .exe и ещё некоторые файлы.

Консоль Линукс

Управление консолью Linux

Часто понадобится запрашивать привилегии суперпользователя root для многих действий связанных с установкой, изменением файлов итп. Для этого предусмотрен механизм предоставления необходимого количества привилегий, но не более - sudo. Эта команда следует перед другими и вводится пароль пользователя для разрешения на запуск, вообще в Линуксе везде где производятся существенные изменения запрашивается пароль.

Имейте ввиду, в целях безопасности консоль Линукс не отображает вводимые пароли, но по факту они вводятся.

В редких случаях и это не советуется, можно запросить права суперпользователя и что-то сделать под ним не вводя каждый раз sudo, если поставить Debian или разные серверные дистрибутивы, в консоли нужно прописать su, но поскольку в сборках пароль суперпользователя не задан, то можно получить доступ к суперпользователю написав
sudo su

Если ввести любую команду, напрмиер, apt, то можно увидеть описание или apt и 2 раза TAB и увидеть только список функций. Если написать man apt попадаем в описание (мануал) к текущей функции. Ещё помощь можно получить в утилитах, к примеру если ввести ls --help..

При работе в консоли(терминале) в текстовым редактором nano, чтоб сохранить изменения нажмите закрыть Ctrl+X и подтвердите сохранение, отмена Ctrl+C (во многих случаях прервать любое действие эта команды Ctrl+C или q).

Ctrl+D отключиться (отлогиниться) от текущего пользователя, сервера. Повторное нажатие закрывает консоль..

В любой ситуации не теряйтесь обычно есть подсказки на экране, что жать..

Для копирования используется сочетание Ctrl+Shift+C, для вставки Ctrl+Shift+V (альтернатива мышка или Ctrl+Insert с Shift+Insert).

Можно ещё не мучить себя и использовать любой текстовой редактор с графическим режимом:

# решётка/диезик означает, что всё что дальше не выполнять - это комментарий
kate ~/.config/pulse
# открыть под суперпользователем:
kate sudoedit ~/.config/pulse

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

Историю команд можно посмотреть введя history, если нажимать стрелки вверх вниз, будут подставляться прошлые введённые команды. Повторить команду можно введя !! (два восклицательных знака, но стрелку вверх и энтер(ввод) быстрее..)

Команды консоли Linux

Никогда не выполняйте команд, назначения которых не понимаете. Команды консоли Linux, дают огромную власть, в том числе и удалить все файлы 1 командой..

sudo rm -rf /
# равноценно
echo "text" | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'

Линукс загружен в память и скорее всего будет работать не смотря на удаление системы до момента перезагрузки. Кстати это ещё одно отличие позволяющее обновлять систему на горячую - нет блокировки файлов системой, не требуется постоянных перезагрузок как в Windows.

Типичное использование консоли:

Было несколько раз на старых сборках, после обновления заглючивало оболочку и компьютер отказывался перезагружаться или выключаться, но из консоли подчинился:

# Выключить компьютер:
sudo halt или sudo init 0 или telinit 0 или shutdown -h now

# Перезагрузить:
sudo reboot или shutdown -r now

Изменение прав и/или владельца можно осуществить через Действия root (Root Actions Servicemenu). Подробнее права Линукс chmod описаны в соседней статье.. (-R рекурсивно пройти по всем файлам/каталогам внутри)

sudo chmod -R 755 /path/to/dir
sudo chown -R $USER:$USER /path/to/dir
# корректней, но группа может отдаваться пустой и она совпадает с пользователем: 
sudo chown -R $USER:$GROUP /path/to/dir

Иногда нужно выяснить какой дистрибутив, название и прочие данные:

cat /etc/*release
# посмотреть архитектуру:
arch или uname -m

Посмотреть диски в системе:

fdisk -l # покажет названия с отказом в доступе
sudo fdisk -l # выведет полную информацию

Установка, удаление программ:

# уствновить пакет/программу:
sudo apt install -y name

# удалить пакет/программу:
sudo apt remove -y name

# удалить пакет/программу вместе с его конфигурационными файлами:
sudo apt purge -y name

# ещё можно явно указанные неиспользуемые зависимости удалить:
sudo apt -y autoremove

-y - соглашаться со всеми вопросами установщика, он там обычно сообщает всякие глупости, мол нужно дополнительно будет поставить связанные библиотеки или приложение займёт столько то места на диске.. В основном используются install и remove. Можно перечислить сразу несколько пакетов для установки sudo apt install -y name1 name2...

Дописать в конец файла:

echo -e 'my \n text \n info \n' >> ~/.config/my.conf

Если вместо >> поставить >, то файл перезапишется.

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

# перезаписать файл:
echo "значение" | sudo tee /путь/к/файлу/файл.sh
# дописать в конец:
echo "значение" | sudo tee -a /путь/к/файлу/файл.sh
# параметр -i игнорировать ошибки.
#eщё вариантик:
sudo sh -c 'echo 127.0.0.1 localhost >> /etc/hosts'

echo может иметь иметь опции/параметры:

-e - включить поддержку вывода Escape последовательностей
-E - отключить интерпретацию Escape последовательностей
-n - не выводить перевод строки

Если включена -e, Escape последовательности для вставки специальных символов:

\b - удалить предыдущий символ
\c - удалить перевод строки
\n - перевод строки
\r - символ возврата каретки в начало строки
\t - горизонтальная табуляция
\v - вертикальная табуляция

Внутри sh скрипта флаг echo -e не нужен если указан интерпретатор для исполнения сценария(скрипта) #!/bin/sh, консоль использует более новый #!/bin/bash..

Скопировать фалы rsync:

Как-то словил проблему при копировании на диск с 5900 оборотов и меньшей максимальной скоростью диска, на 7200 оборотов (он на порядок быстрее), видимо переполнение буферов идёт или ещё что-то, винт разгоняет копирование свыше 120-160мб/с и принимающий начинает щёлкать головкой, в то время как на 5900 скоростей свыше 90мб/с не замечал. В итоге помогло ограничение скорости копирования. Выставил чуть меньше 90мб/с и вуаля никаких щелчков. Утилита очень полезна если необходимо передать файл на другой сервер или для передачи файлов с ломающегося диска с условием наличия бэкапа.

# rsync [опции] [источник] [приемник]
sudo rsync -a --progress /from/ /to/
sudo rsync -aPv --bwlimit=90000 /media/$USER/disk1/Music/ /media/$USER/disk2/Music/

В случае присутствия пробелов будут ошибки - возьмите в кавычки, я обычно такой формой пользуюсь:

sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/"
# или
sudo rsync -aPv --delete --bwlimit=140000 "/media/$USER/disk1/Подборка книг/" "/media/$USER/disk2/Подборка книг/"

-a, --archive - работа в режиме архивирования, сохраняются права доступа и информация о владельцах.
--partial - сохранять частично переданные файлы.
--progress - показать % выполнения во время передачи.
-P - эквивалент для --partial --progress (сохранять недокаченные файлы, показывать прогресс).
--ignore-existing - пропускать уже существующие на приёмнике disc2 (так можно немного ускорить, например для видео, они точно не меняются).
--delete - удалять те, которых нет на источнике disc1.
--bwlimit=KBPS - ограничение скорости копирования.
-v - показывать подробности.
-c - сравнивать файлы при помощи подсчёта контрольных сумм (по умолчанию по дате и размеру). Выполняется очень долго..
-n - ничего не делать, только показать что будет скопировано.

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

Навигация и операции с файлами

Возможно пригодится и знание базовых команд для перемещения и управления файлами..

  • pwd - показывает директорию в которой находитесь, иногда бывает нужна в случае сокращения в консоли, напрмиер домашняя папка отобразится как ~..
  • cd - переходит в указанную папку, например cd ~ ; cd /home/$USER
  • ls - линейно выводит список папок и файлов в текущей директории или указанной
    ls /home. Чтоб вывести построчно с указанием прав и владельца необходимо добавить аргумент -l. Чтоб увидеть скрытые файлы и папки -a. Отсортировать по размеру -S. Отсортировать по расширению -X.
    В итоге имеем команду ls -la или ls -la /путь/к/каталогу.
  • du * - считает размер директории, например du -hs * или du -hc /путь.
    Аргументы:
    -h - human-readable показывает вес файлов в Кб, Мб итд..
    -с - подсчитывает сумму..
    -s - показать только общий вес файлов..
    А вот как можно вывести в отсортированном виде du -hc * | sort -rn
  • find - Поиск файлов и директорий
    # найти в папке /home файлы по имени абрикос: 
    find /home -name "абрикос"
    
    # найти файлы принадлежащие пользователю user1: 
    find /home -user user1
    
    # найти файлы оканчивающиеся на txt: 
    find /home -name "*.txt"
    
    # найти файлы с правами 000 исключая имя public_ftp и удалить их: 
    find /home/ -perm 000 -not -name "public_ftp" -exec rm -rf {} \;
    
    # найти все папки и назначить права по умолчанию: 
    find /home - type d -exec chmod 755 {} \;
    
    # найти все файлы и назначить права по умолчанию: 
    find /home - type f -exec chmod 644 {} \;
    
    # найти только файлы по имени и выставить права: 
    find /home/ -name "xmlrpc.php" -type f -exec chmod 000 '{}' \;
    
    # скопировать все файлы в текущей директории содержащие в имени только цифры
    # [0-9] - регулярное выражение указывающие на массив из диапазона от 0 до 9: 
    find . -name [0-9] -exec cp {} ~/ todir \;
    
    # удалить пустые файлы: 
    find /home -type f -empty -exec rm {} \;
    
    # удалить пустые папки: 
    find /home -type d -empty -exec rmdir {} \;
    
    # удалить файлы *.gz в папках logs, по неопределённому пути в /home/: 
    find /home/*/logs -type f -name '*.gz' -delete
    
    # удалить файлы старше 365 дней 
    find /home -type f -mtime +365 -exec rm -f {} \;
    
    # вывести список файлов в которых встречается текст:
    grep -rl 'строка' ./
    # или
    find ./ -type f -exec grep -l 'строка' {} +
    
    # заменить текст в файлах: 
    find ./ -type f -readable -writable -exec sed -i "s/старый/новый/g" {} \;
    #g - заменяем не только первое вхождение 
    
    # функция понимает регулярные выражения, заменим все где число вначале: 
    find ./ -type f -readable -writable -exec sed -i "s/\dстарый/новый/g" {} \;
    
    # заменить текст в файле: 
    sed -i 's/старый/новый/g' file.txt
    
    # заменить текст в файле только в строках с 1 по 10: 
    sed -i '1,10 s/старый/новый/g' file.txt
    
    # заменить текст в файле везде кроме строк с 1 по 10: 
    sed -i '1,20 !s/старый/новый/g' file.txt
    

    Думаю примеров достаточно, за остальным в man find..

    Бывает необходимо найти где находится в системных папках та или иная утилита

    whereis find
    # или
    which find
    
  • cat - выводит содержимое файла, например cat /proc/bus/input/devices.

    Ещё можно заниматься извращениями, например, копирование содержимого файла Linux в другой файл cat файл1 > файл2
    Если файл был не пустым, он будет перезаписан, если воспользоваться >> будет дописан в конец файла2. Можно склеить два отдельных файла в один: cat файл1 файл2 > файл3

  • mkdir - создаёт директорию, например mkdir -p /путь/к/папке -p создаст рекурсивно все каталоги, если их нет иначе будет выдавать сообщение об ошибке, мол старшего каталога нет..
  • cp - копирует файл/папку, cp опции файл-источник файл-приемник, cp -r /что /куда
    -r - рекурсивно, все подкаталоги
    -a = -dR --preserve=ALL не будет следовать по ссылкам (копировать от туда все файлы), а только рекурсивно скопирует: ссылки, файлы, папки с сохранением атрибутов.
    # скопирует все файлы, начинающиеся на test:
    cp ~/test* ~/todir/
    
    # копировать директорию fromdir со всем содержимым в текущую директорию:
    cp -a /fromdir .
    
    # скопировать файл:
    cp ~/pic.png ~/to/
    
    # скопировать с переименованием или просто сделать копию:
    cp ~/pic.png ~/to/wallpaper.png
    cp pic.png pic2.png
    
    # скопировать группы файлов:
    cp *.txt /to/folder
    cp *.txt *.jpg "read me.doc" /to/folder
    

    При копировании группы файлов, последнее имя трактуется как место назначения, а все предшествующие файлы, как исходные объекты. В других командах, например mv и rm, также разрешены множественные аргументы.

  • mv - позволяет перемещать или переименовывать каталоги mv /что /куда
    mv /from /to
    # переместить файлы:
    mv /home/my/* /home/mynew/
    
    # переместить папку /my/ в /mynew/:
    mv /home/my/ /home/mynew/
    
    # переименование папки:
    mv /oldname /newname
    
    # переименование файла:
    mv oldname.txt newname.txt
    
    # перемещать группы файлов:
    mv *.txt /to/folder/
    mv *.txt *.jpg "read me.doc" /to/folder/
    
    # удалить:
    mv /folder /dev/null
  • rm - удаляет файл/папку, например rm -r /путь
    -r - рекурсивно пройти все вложенные папки
    -f - не запрашивать подтверждения операций
    # удалить папку со всем вложенным:
    rm -rf /backup/
    
    # удалить все объекты в папке:
    rm -rf /backup/*
    
    # удалить все файлы:
    rm -f /var/log/spooler-* \
    rm -f /var/log/messages-* \
    rm -f /var/log/secure-*

Специальные обозначения в консоли

Клавиша TAB во время набора текста - автозаполнение..

Поздравляю, с этого момента ты продвинутый пользователь Linux : )

fsen.ru

Краткое введение в терминалы и консоль / Habr

Тут живут драконы и нет ментейнеров (вместо эпиграфа)

Очень сжатое боевое описание «что есть псевдо-терминал» и «консоль».

Итак, во-первых, определимся с тем, что такое консоль: консоль это программа, которая принимает от пользователя кнопки, а от соединения с компьютером — буквы на экран и спец. команды по рисованию картинки на экране.

Терминал — обобщённое название как программы, так и специальной железки (таких больше нет в природе). Особое исключение — когда вы запускаете путти или ещё кого-то для подключения к последовательному порту коммутатора/рутера/модема (или даже сервера), то вы выступаете (точнее компьютер с путти выступает) в роли терминала (название «терминал» — потому что терминирует кабель (то есть висит на самом конце) ).

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

Когда запускается шелл, то он получает в своё распоряжение виртуальное устройство /dev/tty, которое у каждого процесса своё — это «обратная» часть терминала. Передняя часть в случае кабеля реализуется путти+компьютер, в случае консоли компьютера, специализированным ядерным драйвером (виртуальными консолями). Важно: драйвер эмулирует наличие терминала.

Существует интерфейс unix98 (/dev/ptmx), который позволяет создать парочку из «входа и выхода» для всех обратившихся программ. В этом случае одна половинка изображает из себя «обратную» половинку, а вторая — консоль. Используется, в частности, openssh'ем и x'овыми терминалками.

В этом месте много путаницы, но правило простое: с одной стороны тот, кто рисует, с другой — тот, кто говорит, что рисовать. С той стороны, с которой рисуют, с той же находится и пользователь с клавиатурой. Его данные поступают на противоположную сторону к программе.

В качестве самой частой программы со стороны «программы» выступает getty разных видов (mgetty, atetty и т.д.), задачей которой является выставление скорости работы канала и запуск команды login для ввода пароля.

В качестве передней части (рисующей байтики) выступает либо виртуальная консоль линукса, либо программа-терминалка (почти любая), либо находящийся за последовательным шнурком терминал (например, другой компьютер).

Каждое устройство по рисованию (терминал, виртуальная консоль и т.д.) имеют свой набор возможностей (поддерживаемых символов и команд). Тип терминала задаётся переменной TERM, но только в смысле, что он говорит программам, с каким терминалом они работают. Невозможно переменной TERM заставить терминал эмулировать другие терминалы — он про эту переменную ничего не знает.

Внезапное применение: KVM, XEN (и, я не уверен, но, кажется, OpenVZ) используют этот механизм для доступа к консоли виртуальных машин: в виртуальной машине создаётся специализированное устройство, взаимодействующее с демоном в dom0. С точки зрения domU — у него есть последовательное устройство для терминала. Чтобы на этом устройстве увидеть строчку login, нужно прописать в inittab строчку с вызовом getty и разрешить логин (/etc/securetty).

В dom0 демон видит последовательное устройство от domU, создаёт соответствующий псевдотерминал с помощью /dev/ptmx). Созданные устройства для подключения терминалов появляются в /dev/pts/*. Помимо этого consoled пишет в xenstore кому какой домен соответствует, специализированные терминалки (xenconsole) умеют это читать и выполнять. Когда даётся команда xl console (xm console), то она всего лишь вызывает xenconsole с заданным параметром.

Вместо xenconsoled можно использовать любую другую терминалку — хоть minicom, хоть cu, хоть socat, хоть putty. После подключения к консоли правильным является задать тип используемой консоли (set TERM=linux или set TERM=xterm, установка в vt100 даст чёрно-белый экран).

Ровно так же можно организовать подключение к машине по модему (если кто их ещё помнит) — модемы просто «удлиняют» последовательный порт на N километров. С одной стороны нужно настроить модем на автоответ и повесить mgetty (и не забыть про /etc/securetty), с другой стороны нужно набрать номер и получить обычное сообщение login.

Это было очень сжатое и которое описание псевдотерминалов. Полное почти невозможно, ибо для полного понимания как это работает нужно начинать с телетайпов и устройства механических печатных машинок.

Основным моментом, который нужно осознать, является то, что в tty всегда есть два участника, один из которых умеет рисовать (сам, или выбрасывая содержимое на экран так, чтобы терминалка пользователя это нарисовала), а другой — даёт команды что рисовать и принимает последовательности нажатия кнопок.

Основной материал для чтения: tldp.org/HOWTO/Text-Terminal-HOWTO.html

habr.com

Лучшие консольные программы Linux | Losst

В современных версиях операционной системы Linux уже все действия можно сделать через графический интерфейс, а терминал использовать совсем необязательно. Но в старых компьютерах или на серверах может быть недостаточно ресурсов для запуска сложных графических интерфейсов и приложений. Тогда на помощь приходят терминальные программы linux.

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

Содержание статьи:

1. Screen - терминал

Не всегда достаточно одного запущенного терминала, который доступен нам при подключении по ssh или в одном из интерфейсов TTY. Иногда нужно управлять несколькими сессиями одновременно, но нет возможности запустить графический интерфейс и несколько эмуляторов терминала.

apps

В таких случаях на выручку приходит утилита screen. Она позволяет очень просто управлять несколькими терминалами в одном TTY. Вы можете открывать новые окна терминала, переключаться между ними, копировать информацию и многое другое. Даже если сессия будет неожиданно разорвана из-за разрыва соединения ssh, программы не будут завершены и продолжат выполняться, а вы сможете восстановить соединение.

2. MidnightCommander - файловый менеджер

MidnightCommander или mc - это двухпанельный файловый менеджер для операционных систем Linux. Он очень похож на файловый менеджер FAR, известный пользователям Windows. Все рабочее пространство разделено на четыре части - это две панели, командная строка и строка, обозначающая назначение функциональных клавиш:

apps13

Для всех команд терминала текущей папкой считается активная панель и вы можете выполнять любые команды Linux. Для удобной навигации здесь есть множество горячих клавиш, которые очень похожи на Emacs. Для установки в Ubuntu наберите команду:

sudo apt install mc

3. Lynx - браузер

Lynx - это полнофункциональный консольный браузер. С помощью него вы можете просматривать интернет страницы. Это один из самых первых браузеров. Он выглядит очень по-простому, не поддерживает таблиц, css, javascript и других технологий. Но зато страницы загружаются очень быстро.

apps1

Навигация выполняется с помощью горячих клавиш, что позволяет использовать программу очень эффективно. Поддерживаются протоколы HTTP, FTP, Gopher, WAIS, NNTP.

4. Elinks - еще один браузер

Elinks - более новый браузер, он основан на Lynx, но поддерживает больше функций, здесь есть начальная поддержка стилей, поддержка JavaScript, таблиц, фрейомв. Есть даже поддержка цветовой палитры до 256 цветов.

apps2

Кроме того, поддерживается большее количество протоколов: HTTP, HTTPS, FTP,  IRC, mailto, telnet, nntp и Gopher. Работа со ссылками и горячие клавиши немного отличаются от lynx, но пользоваться браузером достаточно удобно. Для установки elinks в Ubuntu выполните команду:

sudo apt install elinks

5. Vim - текстовый редактор

Vim - это один из лучших текстовых редакторов для операционной системы Linux, не только среди консольных утилит, но и в целом. Программа имеет очень своеобразный интерфейс и режимы работы, которые позволяют набирать текст и выполнять его наиболее быстро и эффективно, не отрывая рук от клавиатуры:

apps3

Вы можете перемещаться по тексту с помощью клавиш h,j,k,l в командном режиме, а также выполнять быструю замену с помощью r. Для переключения командного режима и режима редактирования используется клавиша Esc. Смотрите подробнее как пользоваться Vim в отдельной статье.

6. Moc - аудиоплеер

Moc или Music on Console - это аудиоплеер для терминала Linux, очень простая программа, которая позволяет только слушать музыку. Интерфейс очень прост и похож на интерфейс Midnight Commander.

 

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

7. RTorrent - торрент клиент

Как следует из названия, rtorrent - это простой torrent клиент, который, как и другие приложения командной строки работает только через терминал. Программа нетребовательна к ресурсам имеет не очень удобный интерфейс, но работает достаточно быстро и стабильно.

apps4

Также поддерживается очень гибкая настройка программы через файл rtorrent.rc. Но синтаксис файла достаточно сложный.

Это очень простой, но полнофункциональный RSS ридер для Linux, программа полностью справляется со своей задачей, несмотря на то, что имеет только версию для терминала. Вы можете добавить несколько URL лент в конфигурационный файл программы, затем синхронизировать локальную базу данных с информацией на сервере.

apps5

Программа может запоминать уже прочитанные записи. Для установки в Ubuntu используйте такую команду:

sudo apt install newsbeuter

9. Mutt - клиент электронной почты

Mutt - это клиент электронной почты для операционной системы Linux. Он поддерживает очень много форматов создания сообщений, среди которых MBox и Maildr, а также протоколы, например: IMAP, POP3, вы можете просматривать почту из различных сервисов, например, mail.ru, gmail.com, yandex.ru и многих других по доступных протоколах.

apps7

 

Программа имеет очень простой, но в то же время удобный интерфейс, а также поддерживает шифрование и электронные подписи.

10. WeeChat - мессенджер

WeeChat - это отличный IRC клиент для операционных систем на базе ядра Linux. Кроме консольного интерфейса, здесь есть графический и веб-интерфейс. Программа поддерживает работу через прокси, ipv6, ssl, поиск текста и сообщений, а также проверку орфографии.

apps8

С помощью удобных сочетаний клавиш вы можете выполнить любые действия очень быстро. Также поддерживаются различные расширения на Python, Ruby и Perl, позволяющие очень сильно расширить возможности программы. Чтобы установить в Ubuntu выполните:

sudo apt install wee-chat

11. Calcurse - календарь

Консольные приложения Linux также не обходятся без инструментов планирования времени и календарей. Calcurse - это очень простой, но в то же время функциональный календарь и список заданий для Linux.

apps9

С помощью этой программы вы сможете отслеживать свои дела, которые нужно сделать, а также определенные события и встречи. Также здесь есть система напоминаний, с помощью которой вы сможете получить уведомления с сроках выполнения заданий и событиях.

12. Taskwarrior - список дел

Taskwarrior - это очень простой список задач для Linux. Вы можете создавать задания, очень быстро просматривать список доступных, обозначать уже выполненные, а также планировать дату завершения.

apps10

В связке с утилитой Timewarrior от того же разработчика, вы сможете засекать время, которое уходит на выполнение каждой задачи. Для установки taskwarrior в Ubuntu выполните:

sudo apt install taskwarrior

13. cacaview - просмотр изображений

Cacaview - это очень простой просмотрщик изображений с консольным интерфейсом. Рисунок выводится с помощью символов ASCII. На полноценный просмотр изображений тянет с трудом, но зато приблизительно оценить что изображено на самой картинке можно:

apps11

Для установки необходимо установить пакет caca-utils:

sudo apt install caca-utils

14. htop - монитор

htop - это монитор использования системных ресурсов в реальном времени с интерфейсом командной строки. Вы можете посмотреть сколько оперативной памяти занято, процент использования процессора, а также какие процессы используют больше всего ресурсов системы.

apps12

С помощью программы можно менять приоритеты процессов завершать их, выполнять поиск, фильтровать процессы по определенным параметрам, сортировать, а также смотреть потоки каждого процесса.

15. BitlBee

Это мессенджер с открытым исходным кодом, который позволяет пользователям общаться в таких сервисах, как IRC, чат-сетях, AIM, ICQ, NET Messenger, Yahoo!, XMPP, Google Talk, Twitter и Identica. Пользователи этих сервисов отображаются в виде каналов, после чего с ними можно общаться как с обычными пользователями IRC сети.

Возможно даже создание конференций. Программа выполнена в виде сервера и для подключения к ней необходимо использовать любой IRC клиент. Для установки наберите:

sudo apt install bitlbee

Выводы

В этой статье мы рассмотрели лучшие консольные программы linux. Они помогут вам в нужный момент полноценно работать с компьютером без графического интерфейса или даже заменят другие программы. Если вы знаете другие отличные консольные приложения, которые упущены в этой статье, напишите в комментариях!

losst.ru

Поддержка русского языка в консоли

Данная статья актуальна по крайней мере для тех, у кого нет поддержки русского в консоли в версиях *Ubuntu с 11.04 по 14.10, и особенно для пользователей Ubuntu Server этих же версий.

В 15.10 изменена система загрузки (sustemd) и описанное ниже средство не помогает. Смотрите раздел Решение для ubuntu 15.10 и более поздних.

В версиях 12.10 и 13.04 эта проблема вроде как была решена.

UPD: Русские фонты в сервере 14.04 также не работают без лекарства. Похоже отключенный FRAMEBUFFER - это хроническая болезнь серверной версии.

Многие замечали, что из версии в версию в Ubuntu у некоторых слетают русские фонты в консоли (куда можно попасть нажав CTRL+ALT+F1 - F6, а CTRL+ALT+F7 возвращает в графическую среду). Озаботившись причинами почему это происходит я (Sly_tom_cat) облазил кучу мест в поисках решения. Залез и в initrd и смотрел в скрипты upstart и в UDEV… что ни правил - не помогает. Особо порадовал комментарий разработчиков в одном из скриптов Udev1). Cуть там примерно такова: «надо бы делать как-то так, но мы попробовали - у нас не вышло. Так что, делаем как получится, а если юзерам нужны нормальные фонты - пускай выполнят setupcon и все будет Ok» :-O:-\

Но все-таки нет такого решения, которого не найти в Интернете. Причем нашел я его даже по русски 2)

Оказывается, всего навсего, нужно включить поддержку фреймбуфера на этапе инициализации ядра. Это в свою очередь разрешит выполнение нужных скриптов, которые загрузят фонты на самом раннем этапе инициализации ядра.
Для этого:
1. в любом текстовом редакторе с правами рута нужно в файл /etc/initramfs-tools/initramfs.conf добавить строчку FRAMEBUFFER=Y. Это также можно сделать выполнив следующие команды:

sudo -i
echo 'FRAMEBUFFER=Y' >> /etc/initramfs-tools/initramfs.conf
exit 

2. Обновить образ рамдиска периода инициализации ядра (initrd):

sudo update-initramfs -u

Поле этих манипуляций наконец начнут работать настройки сделанные командой3):

sudo dpkg-reconfigure console-setup

Кириллическими фонтами будет показываться все с самого начала - т.е. даже запрос на проверку дисков (возникающий в процессе инициализации ядра) будет выводится кириллицей, а не квадратами.

Возможно потребуется так же настроить и клавиатуру (раскладки, переключение раскладок и compose-key)4):

sudo dpkg-reconfigure keyboard-configuration

Покопавшись глубже можно обнаружить следующее:
В initrd/scripts/init-top/ лежат скрипты выполняющиеся в самом начале процесса инициализации ядра. И там мы видим все, что могло бы потребоваться для поддержки «правильных» фонтов

scripts/init-top/console_setup
scripts/init-top/keymap
scripts/init-top/blacklist
scripts/init-top/udev
scripts/init-top/framebuffer
scripts/init-top/ORDER
scripts/init-top/plymouth
scripts/init-top/all_generic_ide

Но, если заглянуть в файлы console_setup, keymap и framebuffer то в самом начале скрипта мы увидим такую строчку:

OPTION=FRAMEBUFFER

А покопавшись в скриптах инициализации можно понять, что OPTION обрабатывается так, что если значение переменной (что ей присвоено) не задано или не Y, то выполнение самого скрипта пропускается. Т.е. в нашем случае, если FRAMEBUFFER не равно Y, то ни один из скриптов, отвечающих за поддержку фонтов и раскладок клавиатуры, попросту не будут выполнятся в процессе инициализации ядра.
Но без FRAMEBUFFER не возможно загрузить шрифты с поддержкой национальных символов!
Примечательно то, что настройки раскладок клавиатуры все-таки будут применены в процессе загрузки ОС (уже после инициализации ядра). За это отвечает скрипт console-setup системы инициализации upstart, а вот консольные фонты скрипты upstart не настраивают.

Однако, это совсем не объясняет почему подобная проблема возникает не у всех. И как оказывается - она вылезает у любителей оптимизации системы, да еще и у пользователей серверной версии Ubuntu…

Что можно увидеть в любой инструкции по повышению скорости загрузки ОС?

Правильно - «уберите заставку при загрузке»: в файле /etc/default/grub в переменной GRUB_CMDLINE_LINUX_DEFAULT значение splash замените на nosplash или просто уберите) и выполните sudo update-grub. Ну, а пользователи серверной версии Ubuntu по умолчанию обделены таким «счастьем», как графическая заставка во время загрузки.

Так вот, оказывается, разработчики решили, что фреймбуфер нужен для рисования заставки и … и только для этого. Больше (оказывается) он никому, ни зачем, не нужен.:-D Поэтому, если заставку рисуем - то фреймбуфер разрешаем (а то как же - без него же не нарисовать заставку), а если заставку не рисуем, то и фреймбуфер включать незачем, не включаем…. Нет, позже, после инициализации ядра, фреймбуфер все-таки где-то активируется, но поезд уже ушел - фонты на этапе иницализации ядра не загрузились…. «а кому надо - те пусть вызывают setupcon …»;-)

В Ubuntu 15.10 имеется неисправленный баг с настройкой локали https://bugs.launchpad.net/ubuntu/+source/console-setup/+bug/1511975. Поэтому для настройки русского языка необходимо проделать следующее 1.

sudo dpkg-reconfigure console-setup

(настройки в файле /etc/default/console-setup)

/dev/tty[1-6]
UTF-8
Combined - Latin; Slavic and non-Slavic cyrillic
Let system select suitable font
8x16

2.

sudo dpkg-reconfigure keyboard-configuration

(настройки в файле /etc/default/keyboard)

Generic 105-key (Intl) (выберите вашу клавиатуру)
Russian
Russian (выберите вашу раскладку)
Control+Shift (выберите шорткат для смены раскладки)
No temporary switch
The default for the keyboard layout
No compose key

3.

sudo nano /lib/systemd/system/console-setup.service

Заменить последнюю строку

ExecStart=/usr/bin/loadkeys /etc/console-setup/cached.kmap.gz

на

ExecStart=/bin/setupcon

4.

sudo reboot

Поиск в сети порой дает много костыльных советов на данную тему. Особенно часто встречаются два из них:
1. костыль из костылей: «Прописать setupcon в /etc/rc.local» - мало того что это костыль, да еще и не помогает иногда 🙁
2. совсем эпический по своей дебильности костыль - персональный пакет для русского языка в консоли - console-cyrillic !!! …вызывает полное недоумение идея - «под каждый язык на свете создавать персональный пакет для консоли», когда по дефолту в UTF8 кодировке и основных консольных шрифтах есть все, что нужно для поддержки практически любого языка (по крайней мере европейского).

Если вам попадаются такие советы, не поленитесь - объясните людям их глубокое заблуждение и отправьте на эту страницу.

help.ubuntu.ru

Основные команды в консоли Linux

Основные команды в консоли Linux

Операционная система Linux очень нравится программистам и любителям «поковыряться», потому что в ней предусмотрено активное использование консоли, содержащей сотни команд. Если вы решили серьезно взяться за изучение этой гибкой ОС, следует для начала выучить в Линукс основные команды.

Зачем же существуют в Linux команды консоли? Вводя их в консоль, пользователь может оперативно совершать массу действий: открытие, перемещение и копирование файлов, просмотр различной информации и статистики, мониторинг и отладка, получение подробной информации о системе, видоизменение программной и визуальной части системы. И это лишь часть возможностей, которые вы получаете, благодаря этим командам.

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

Возможность видоизменять систему командами делает Linux очень универсальной оперативной системой. Вы можете настроить её под себя, изменив в ней всё что угодно.  Сначала команды могут показаться сложными, но хорошенько выучив их, вы значительно ускорите работу с компьютером и начнете получать истинное удовольствие, понимая, что всё в ней настроено вами под ваши нужды.

Помните, что для полноценной работы с консолью вам нужны права администратора. Ниже представлен список основных команд в консоли Linux и их расшифровка.

1. Простейшие действия

ls — выдать список файлов в текущем каталоге.

cd [каталог] — сменить текущий каталог. Если имя каталога не указывается, то текущим становится домашний каталог пользователя.

cp <что_копировать> <куда_копировать> — копировать файлы.

mv <что_перемещать> <куда_перемещать> — переместить или переименовать файл.

ln -s <на_что_сделать_ссылку> <имя_ссылки> — создать символическую ссылку.

rm <файлы> — удалить файлы.

mkdir <каталог> — создать новый каталог.

rmdir <каталог> — удалить пустой каталог.

rm -r <файлы и/или каталоги> (рекурсивное удаление) — удалить файлы или каталоги и их подкаталоги. ОСТОРОЖНЕЙ с этой командой, поскольку пока у Linux нет системы полного восстановления удаленных файлов (если вы не пользуетесь специальными программами для помещения удаленных файлов в специальный каталог, что-то вроде «корзинки» в ОС Windows).

cat <имя_файла> — вывод содержимого файла на стандартный вывод (по умолчанию — на экран).
Можно записать вводимый на экран текст с помощью следующей последовательности действий:

cat > <имя_файла> 



CTRL/d 

more <имя_файла> — просмотр содержимого длинного текстового файла по страницам.

less <имя_файла> — просмотр содержимого текстового файла с возможностью вернуться к предыдущим страницам. Нажмите q, когда захотите выйти из программы. «less» — аналог команды DOS «more», хотя очень часто «less» бывает более удобной чем «more».

pico <имя_файла> — редактировать текстовый файл с помощью текстового редактора pico.

lynx <html_файл или ссылка> — просмотр файла html или WWW ссылки с помощью текстового браузера Lynx.

tar -zxvf <файл> — распаковать архив tgz или tar.gz

find <каталог> - name имя_файла — найти файл с именем «имя файла» и отобразить результат поиска на экране. Поиск начинается с каталога <каталог>; «имя_файла» может содержать маску для поиска.

pine — хорошая текстово-ориентированная программа для чтения электронной почты.

mc — запустить программу управления файлами «Midnight Commander» (Выглядит как «Norton Commander», но по своим возможностям ближе к far).

./Имя_Программы — запустить на исполнение исполняемый файл в текущем каталоге, если текущего каталога нет в списке каталогов, указанных в переменной окружения PATH.

xterm (в X терминале) — запустить простой терминал в графической оболочке X-windows. Для того чтобы выйти из него, наберите »exit».

2. Стандартные команды и команды, дающие информацию по системе команд (всегда набираются в одной строке)

pwd — вывести имя текущего каталога.

whoami — вывести имя под которым Вы зарегистрированы.

date — вывести дату и время.

time <имя программы> — выполнить программу и получить информацию о времени, нужном для ее выполнения. Не путайте эту команду с date. Например: Я могу определить выполнить команду ls и узнать, как много времени требуется для вывода списка файлов в каталоге, набрав последовательность: time ls

who — определить кто из пользователей работает на машине.

rwho -a — определение всех пользователей, подключившихся к вашей сети. Для выполнения этой команды требуется, чтобы был запущен процесс rwho.

ruptime — какие машины работают в сети, и какие остановлены.

finger <имя_пользователя> — системная информация о зарегистрированном пользователе. Попробуйте: finger <ваш login-name>

uptime — количество времени, прошедшего с последней перезагрузки операционной системы.

ps a — вывести список текущих процессов в Вашем сеансе работы.

top — интерактивный список текущих процессов, отсортированных по использованию центрального процессора.

uname -a — вывести информацию о версии операционной системы.

free — вывести информацию по использованию памяти.

df -h — вывести информацию о свободном и используемом месте на дисках.

du . -bh | more — вывод на экран информации о размере файлов и каталогов, начиная с текущего каталога.

set|more — вывести текущие значения переменных окружения. (Не для всех shell. Для csh/tcsh — printenv | more, хотя set тоже покажет полезную информацию.)

echo $PATH — вывести значение переменной окружения «PATH» Команда echo может использоваться для вывода значений любых переменных окружения. Воспользуйтесь командами set или printenv для получения полного списка.

3. Работа с сетью

ssh — обеспечивает безопасное вхождение в удаленный сеанс работы с другой машиной, а также позволяет выполнить заданную команду на удаленной машине без вхождения в сеанс работы:

ssh [-l Ваше_имя_пользователя_на_удаленной_машине]<имя_удаленной_машины> — вхождение в сеанс на удаленной машине. Используйте имя машины или ее IP адрес. (Вы должны быть зарегистрированы на этой удаленной машине). Если Ваше_имя_пользователя одинаково на локальной и удаленной машинах, то его можно не набирать, т.е.:  ssh <имя_удаленной_машины> — позволит Вам войти в сеанс на удаленной машине

ssh <Ваше_имя_пользователя_на удаленной машине@><имя_удаленной_машины> <команда> — выполнит на удаленном компьютере заданную команду и передаст Вам на экран результат ее выполнения (При установлении соединения по ssh Вы должны будете ввести пароль, который Вы имеете на удаленном компьютере; при этом пароль будет передан по сети в зашифрованном виде, т.е. безопасным образом.)

scp — обеспечивает безопасное копирование файлов в сети:

scp <имя_файла_на_локальном_компьютере> <Ваше_имя_пользователя_на удаленной машине>@<имя_удаленной_машины>: — cкопирует файл с локального компьютера в Вашу корневую директорию на удаленном компьютере (наличие «:» в конце команды обязательно).

telnet <имя_удаленной_машины> — связаться по telnet с другой машиной. Войдите в сеанс работы после установления связи с помощью вашего пароля.

ftp <имя_удаленной_машины> — связаться по ftp с удаленным компьютером. Этот тип связи хорош для копирования файлов с/на удаленную машину.

Предпочтительно не пользоваться командами telnet и ftp, а использовать только ssh и scp, поскольку они обеспечивают безопасность сетевого соединения!

hostname -i — показывает IP адрес компьютера, на котором Вы работаете.

4. Некоторые команды администрирования

alias ls=»ls -Fskb —color» — создать alias-псевдоним для того чтобы одной командой можно было запустить более сложную комбинацию команд. Поместите создание alias в файл /etc/bashrc если вы хотите, чтобы эти псевдонимы были доступны всем пользователям вашей системы.

Для tcsh — формат определения alias другой:

linuxgid.ru

Leave a Reply