Основные команды Linux: делаем первые шаги в командной строке
![]()

Чтобы начать работать в терминале Linux, не нужно быть гуру администрирования — достаточно знать список базовых команд для навигации, поиска и работы с файлами. В этой статье мы разберём основные команды Linux и рассмотрим их функции, чтобы помочь вам освоиться в командной строке и более эффективно использовать возможности этой ОС.
- Навигация
- Поиск
- Работа с папками
- Работа с файлами
- Переименование, перемещение и копирование
Навигация
После подключения к серверу Linux вы оказываетесь в домашней директории пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:
Она выведет текущую рабочую директорию (print working directory).
Если вам нужно перейти в другую директорию, для этого используется команда cd (change directory) с указанием пути к нужной вам директори:
cd /home
Говоря о навигации, нельзя не упомянуть сокращения для обозначения некоторых директорий Linux:
текущая директория, в которой вы сейчас находитесь. Например, чтобы найти документ с именем hello.txt в текущей директории, можно использовать команду:
find . -name hello.txt
директория, расположенная на уровень выше текущей. Если вы находитесь в /home/user , то комбинация .. будет обозначать папку /home . То есть, чтобы вернуться на один уровень назад, достаточно выполнить команду:
домашняя директория текущего пользователя. Например, запустить скрипт some-script.sh из домашней директории, когда вы находитесь в другой, можно с помощью команды:
sh ~/some-script.sh
предыдущая посещённая директория. Представим, что вы перешли в /home , потом вам потребовалось изменить настройки в /etc . Чтобы вернуться назад, достаточно использовать команду:
Для навигации с помощью команды cd есть два формата указания пути к нужной директории: абсолютный и относительный.
Абсолютный путь — это полный путь от корневого каталога сервера «/» . Например, вот такой:
/var/www/data/username/data/www/example.com/
Также к абсолютным относятся пути, в которых используется ~ — указание на домашний каталог текущего пользователя. Например, при доступе к файлу ~/.bash_profile он всегда будет открываться из одного и того же места: вместо ~ будет использоваться значение переменной окружения $HOME, которое не меняется.
Относительный путь — это неполный путь. Он указывается относительно какого-то объекта: например, текущей рабочей директории. То есть в начале отсутствует символ корневого каталога «/» .
./docs/files/file.txt file.txt
Представим, что мы сейчас работаем с файлами в /var/www/data/username . Нам нужно отредактировать содержимое в директории на уровень выше — /var/www/data . Чтобы управлять данными в этой директории, нам не обязательно постоянно указывать полный путь к ним — можно работать с относительным, начиная его с «../» .
Также относительные пути используются, когда нужно выполнить операцию над файлом или папкой в директории, в которой мы сейчас работаем. Для выполнения команды достаточно указать имя, и система поймёт, что мы имеем в виду объект из текущего каталога.
Чтобы отобразить список содержимого каталога, можно использовать команду ls (list). Она покажет названия объектов в текущем каталоге:
Если дополнить её ключом -al , команда покажет типы данных, разрешения и скрытые объекты. Например, в этом случае она выведет в терминал подробный список содержимого /etc:
ls -al /etc
Чтобы немного упростить себе жизнь, можно использовать консольные файловые менеджеры для Linux, например mc .
apt -y install mc
yum -y install mc
Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать объекты. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться с помощью двойного клика, использовать кнопки в нижней части панели.

Поиск
С помощью команды find можно найти на сервере директорию или файл по набору условий. Структура команды проста:
find [где искать] [как искать] [что искать]
Например, мы знаем название скрипта hello.txt , но не знаем, где именно на сервере он лежит. Найти его поможет команда:
find / -name "hello.txt"
- / указывает, что искать надо, начиная с корневой директории сервера. Если вам известно, где может лежать искомое, можно задать путь точнее.
- «hello.txt» — имя файла, который нам нужно найти. Если известна только часть имени, можно указать сокращённый вариант: «hello*» , «*.txt»
Кроме -name , команда find имеет множество опций, которые позволяют уточнить условия поиска. Вот список наиболее полезных параметров:
Позволяет указать тип искомых данных: -type f — файлы, -type d — директории
Позволяет вывести файлы с определённым уровнем доступа. Например, — perm 777
Отображает только пустые файлы или папки
Позволяет искать данные среди файлов, принадлежащих конкретному пользователю: -user root
Позволяет искать данные среди файлов, принадлежащих определённой группе пользователей: -group www-data
Позволяет задать условие относительно времени изменения:
- -mtime 7 — менявшиеся в течение последних 7 дней;
- -mtime +7 — менявшиеся более чем 7 дней назад;
- -mtime -14 — менявшиеся менее чем 14 дней назад.
Позволяет задать условие относительно времени последнего доступа, аналогично mtime
Позволяет уточнить размер (или диапазон размера)
Позволяет применить к найденным файлам команду COMMAND
Больше информации о возможностях команды find можно узнать в документации. Здесь на помощь пользователям приходит команда man — используя её, вы сможете получить полную справочную информацию о любой команде Linux:
man find
Из встроенных инструментов поиска можно также отметить утилиту whereis . Она предназначена для поиска бинарных и системных файлов и директорий служб. Следующий пример выведет список всех объектов, имеющих прямое отношение к php :
whereis php
Работа с папками
Для создания новых директорий в системе Linux используется команда mkdir с указанием пути. Например, команда ниже создаст директорию /new в /home/user :
mkdir /home/user/new
Если нужно создать сразу несколько вложенных папок, можно использовать параметр -p . В таком случае все несуществующие директории, указанные в пути, будут созданы автоматически. Представим, что нам нужно создать вложенные папки docs/photos/2020-08-17 в текущей директории — тогда команда будет выглядеть так:
mkdir -p docs/photos/2020-08-17
Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:
mkdir docs pictures games
Удалить директорию можно с помощью команды rmdir с указанием пути. При этом она будет удалена только в случае, если она пуст (можно использовать параметр —ignore-fail-on-non-empty , чтобы удалить ее в любом случае). Для удаления нескольких вложенных папок можно аналогично использовать параметр -p . Например, команда ниже удалит /photos и все папки внутри нее:
rmdir -p docs/photos
Для удаления есть более эффективный инструмент — команда rm , о ней расскажем чуть позже.
Работа с файлами
Создание
Для создания новых файлов в ОС Linux есть несколько полезных команд.
Самый простой способ, одновременно создающий и файл, и недостающие папки — команда touch . Для этого ей достаточно только передать полный путь. Например, создадим в директории docs папку copies , а внутри неё — copies-list.txt :
touch docs/copies/copies-list.txt
Несуществующая папка copies создастся автоматически.
Если нужно создать сразу несколько файлов, можно просто перечислить их через пробел:
touch file1.txt file2.txt file3.txt file4.txt file5.txt
Ещё один способ — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Тогда редактор автоматически создаст его и откроет для редактирования. Однако все папки придётся создать заранее, а файл придётся сохранить (даже пустой), иначе он не будет создан.
Команда ниже создаст new-file.txt с помощью редактора vi :
vi new-file.txt
Для сохранения и выхода в vi нужно нажать клавишу Esc , ввести сочетание :wq и нажать Enter . Для выхода без сохранения нужно также нажать Esc , ввести сочетание :q! и нажать Enter .
Также создать пустой файл можно с помощью команды cat или команды echo:
cat > new-file.txt echo > new-file.txt
Редактирование
Для редактирования используются консольные текстовые редакторы. Самые известные — vi и nano . В некоторых дистрибутивах vi заменён на vim ( vi improved, улучшенный vi ) или vim.tiny
Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.

А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки, а вопрос «как выйти из Vim?» стал практически культовым среди пользователей Linux-систем.
Запуск редактора без аргументов откроет его в режиме справки:

Чтобы закрыть Vim (без сохранения), введите сочетание :q!
Если указать редактору путь к файлу, он откроет его для редактирования. Если его не существовало, то он будет создан:
vi new-file.txt
При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.
Чтобы начать ввод, нужно перейти в режим редактирования с помощью клавиши I . Чтобы вернуться в режим просмотра, нажмите Esc .
Перемещение по тексту выполняется с клавиатуры:
- перемещение в начало текста: Esc + дважды G
- перемещение в конец текста: Shift + G
- перемещение по строке горизонтально: стрелки ← →
- перемещение по строкам вертикально: стрелки ↑ ↓
- отображение номеров строк: Esc , введите :set number , нажмите Enter
- перемещение по номерам строк: Esc , введите : номер строки, нажмите Enter
Для выхода с сохранением файла нажмите Esc и введите :wq!
Текстовый редактор vim — краткое руководство
Более современной и удобной альтернативой Vim считается редактор nano . Современные дистрибутивы Linux включают его по умолчанию, но на ранних версиях устанавливать придётся вручную:
apt -y install nano
yum -y install nano
Вызов nano без аргументов откроет пустой редактор. Можно начать ввод (при сохранении вам будет предложено указать имя и сохранить файл) или вызвать режим помощи со списком доступных команд с помощью сочетания Ctrl + G .

Для сохранения нажмите Ctrl + O — редактор предложит ввести имя файла: введите имя и нажмите Enter . Если файл существовал и имя изменять не требуется, просто нажмите Enter .
Для выхода из редактора нажмите Ctrl + X .
Чтение
Бывает, что нам нужно получить какую-то информацию из файла без необходимости редактировать его. В таком случае необязательно использовать текстовый редактор — в Linux есть и более простые инструменты.
Например, команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:
cat example.txt

Однако, если мы заведомо знаем, что в файле большой объём информации, нет смысла выводить его целиком. Например, команды head и tail могут вывести часть содержимого с начала или конца соответственно. Если добавить к ним ключ -n , можно уточнить, сколько строк текста нужно вывести:
head -n 3 example.txt

tail -n 3 example.txt

Помимо прочего, команда tail очень удобна для чтения логов с ключом -f . В таком режиме она открывает файл в режиме ожидания и выводит все добавляемые данные. Это может пригодиться для тестирования или дебаггинга.
Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:
less example.com
В режиме чтения команда less можно перемещаться, искать текст и многое другое. Все командные последовательности и горячие клавиши можно вывести с помощью параметра —help :
less --help
Для выхода из режима чтения введите q и нажмите Enter .
Удаление
Для удаления используется команда rm . Она крайне опасна — неправильное применение грозит удалением всего содержимого сервера. Поэтому, как говорится, семь раз отмерь, один раз отрежь: категорически важно перепроверять путь, который вы указываете для удаления.
Самая простая версия команды rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter :
rm new-file.txt
Для полного же уничтожения всего и вся к команде добавляются параметры -rf . Первый отвечает за рекурсивное удаление данных (т.е. удаление вложенных файлов и папок), второй позволяет отключить подтверждение при удалении. Например, следующая команда удалит папку photos , размещённую в docs , и всё её содержимое:
rm -rf docs/photos
Эта команда приобрела некоторую популярность из-за того, что её используют ради шутки над неопытными администраторами и пользователями, которые только начинают своё знакомство с системой Linux. Им под тем или иным предлогом предлагают выполнить из терминала команду rm -rf [/] (без квадратных скобок). Она удаляет всё содержимое сервера от корня. Результат — все данные безвозвратно теряются, а сервер перестаёт работать.
Скачивание и загрузка
Для передачи файлов на сервер и скачивании их с с сервера есть много способов. Самый простой — использование программ wget , curl или утилиты scp .
-
wget позволяет скачивать данные на сервер. Она поддерживает HTTP, HTTPS и FTP протоколы.
wget [как скачать] [откуда скачать]
Скачать файл по ссылке в вашу текущую рабочую директорию можно с помощью команды:
wget https://ru.wordpress.org/latest-ru_RU.tar.gz
С помощью параметра -P можно указать путь, куда нужно сохранить скачиваемое:
wget -P /var/www/example.com https://ru.wordpress.org/latest-ru_RU.tar.gz
Полный список параметров wget можно посмотреть с помощью команды man :
man wget
curl [как скачать] [откуда скачать / куда загрузить]
- Ubuntu и Debian:
apt -y install curl - CentOS:
yum -y install curl
Для работы с curl нужно знать название и расположение файлов, которые необходимо скачать/загрузить. Например, так будет выглядеть команда на скачивание по ссылке:
curl -O https://ru.wordpress.org/latest-ru_RU.tar.gz
В примере мы скачиваем архив latest-ru_RU.tar.gz по ссылке и сохраняем его в текущую рабочую директорию с таким же именем — за это отвечает ключ -O . Если использовать опцию -o , можно задать своё имя ( wp.tar.gz ) для сохраняемого файла:
curl -o wp.tar.gz https://ru.wordpress.org/latest-ru_RU.tar.gz
Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:
curl -T filename.txt https://example.com/downloads/filename.txt
Здесь filename.txt из текущей рабочей директории загружается на сайт example.com в директорию downloads и сохраняется с именем filename.txt . Пример подразумевает, что у нас есть права на запись в указанный каталог.
Остальные возможности curl можно узнать в справочной информации с помощью команды:
man curl
scp [откуда копируем] [куда копируем]
Например, для передачи filename.txt с нашего сервера на удалённый сервер 1.2.3.4 в директорию new-documents пользователя username можно использовать в терминале следующую команду:
scp ~/documents/filename.txt username@1.2.3.4:/home/username/new-documents
В процессе система запросит у нас пароль пользователя username для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную директорию. Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:
scp username@1.2.3.4:/home/username/documents/filename.txt ~/new-documents/
Здесь мы в качестве источника для получения копии указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере. С помощью scp аналогичным образом можно копировать данные между двумя удалёнными серверами:
scp username1@1.2.3.4:/home/username1/documents/filename.txt username2@2.3.4.5:/home/username2/new-documents
Запуск исполняемых bash-скриптов
Чтобы запустить скрипт script.sh на сервере Linux, нужно выполнить два шага:
-
Настроить права на запуск файла для пользователей с помощью команды chmod :
chmod +x ./script.sh
./script.sh
В некоторых случаях нужно использовать команду sh либо указывать путь к исполняемому файлу командной оболочки:
sh ./script.sh
/bin/bash ./script.sh
Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой в терминале, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.
Весь список существующих алиасов системы можно вывести с помощью команды alias :

Создать свой постоянный алиас можно с помощью файла .bashrc , размещённого в домашнем каталоге вашего пользователя. Нужно открыть его для редактирования:
vi ~/.bashrc
В соответствующем разделе нужно добавить ваш алиас в следующем формате:
alias [короткая команда]='[исходная команда]'
Например, если нам потребуется создать псевдоним для скрипта выше, настройки будут выглядеть так:
alias myScript='sh /путь/к/скрипту/script.sh'
Чтобы после добавления алиас сразу стал доступен, предварительно нужно обновить командную оболочку с помощью команды:
source ~/.bashrc
После этого вы сможете вызывать ваш скрипт с помощью короткой команды.
Скрипт можно добавить в расписание планировщика cron , чтобы он запускался регулярно.
Как настроить cron по ssh
Переименование, перемещение и копирование файлов и папок
Скопировать файл в терминале Linux можно с помощью команды:
cp [что копируем] [куда копируем]
К примеру, вы можете сделать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию nginx.conf :
cp nginx.conf nginx.conf.copy
Директории копируются аналогично. При необходимости скопировать каталог со всем содержимым (рекурсивно) нужно добавить к команде ключ -r :
cp -r /docs /files
Здесь мы создаём копию docs со всем её содержимым с именем files .
Переместить файл также просто, для этого используем в терминале команду mv :
mv [что переместить/переименовать] [куда переместить/как назвать]
Например, следующая команда переместит файл file.txt в директорию new :
mv file.txt docs/new
Переименовать файл тоже не составит труда. В Linux переименование аналогично перемещению в ту же самую папку, но с новым именем. Например, команда ниже переименует file.txt (в директории /docs/new/) в todolist.txt:
mv /docs/new/file.txt /docs/new/todolist.txt
В этом примере file.txt переименовывается в todolist.txt
Аналогично можно перемещать и переименовывать директории.
Теперь, когда вы знаете базовые команды для работы с терминалом Linux, самое время познакомиться с файловой системой.
Как перейти в папку в терминале Linux
Для того чтобы начать работать с операционной системой Linux в терминале нужно выучить несколько основных команд. Например, нужно научиться перемещаться по файловой системе, открывать папки, переходить на уровень выше, открывать папку пользователя и возвращаться назад. В этой инструкции мы рассмотрим все эти аспекты. Здесь вы узнаете, как перейти в нужную папку в терминале Linux и какие команды для этого понадобятся.
Как перейти в нужную папку в терминале Linux
Чтобы перейти в любую папку в терминале Linux нужно использовать команду « cd » (от англ. change directory). Для этого просто указываем команду « cd » и через пробел вводим путь к нужной папке. Например, чтобы перейти в папку « my_folder » нужно выполнить:

После команды « cd » можно указывать относительный путь, как в примере выше, или абсолютный, который начинается с символа « / ». Например, для того чтобы перейти в корневой каталог файловой системы нужно ввести:

Аналогичным образом мы можем переходить и в другие папки. Вводим команду « cd » и путь к папке. Например, чтобы перейти в папку « /etc » вводим вот такую команду:
cd /etc

Обратите внимание , при вводе названия папки можно использовать автоматическое дополнение. Для этого нужно ввести команду « cd », начать ввод имени папки и нажать на клавишу Tab . В результате система предложит правильное название и вам останется только нажать ввод. Также можно нажать клавишу Tab дважды и посмотреть список всех папок, которые находятся в текущем каталоге.

Также при навигации бывает очень полезной команда « pwd » (от англ. present working directory). Она позволяет узнать, в каком каталоге мы сейчас находимся.

Просто вводим « pwd » и получаем путь к текущему каталогу.
Как перейти в папку выше в терминале Linux
Очень часто при навигации по файловой системе возникает необходимость перейти в папку на один уровень выше. Для этого используем команду « cd » и через пробел вводим две точки. Выглядит это вот так:

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

Обратите внимание , для того чтобы просмотреть содержимое текущего каталога нужно использовать команду « ls » (от англ. «list»).
Как перейти в папку пользователя в терминале Linux
Также регулярно возникает необходимость вернуться в папку пользователя. Сделать это можно несколькими способами. Самый простой вариант, это ввести команду « cd » без указания названия папки, например:

Также вы можете ввести команду « cd ~ ». Знак тильда (~) в терминале Linux заменяется на путь к домашней папке пользователя. Поэтому команда « cd ~ » позволяет перейти именно в нее.

Если же нужно перейти в домашний каталог другого пользователя, то после знака тильда (~) нужно ввести username этого пользователя.

Например, чтобы перейти в каталог пользователя « testuser » команда должна выглядеть как « cd ~testuser ».
Как перейти назад в терминале Linux
Также команду « cd » можно использовать для того, чтобы вернуться к предыдущей папке (вернуться назад). Для этого нужно ввести « cd » и знак дефиза. Выглядит это вот так:

Файловый менеджер в терминале Linux
Если вы начинающий пользователь Linux, и вам пока не удается эффективно работать, используя исключительно текстовые команды терминала, то вы можете установить файловый менеджер. Например, можно установить Midnight Commander. Данный файловый менеджер работает непосредственно в терминале Linux и обеспечивает классический двухоконный интерфейс для работы с файлами и каталогами.
Для того чтобы установить Midnight Commander (mc) нужно выполнить:
sudo apt-get install mc
add-apt-repository ppa: eugenesan / ppa apt-get update apt-get install mc -y
sudo yum install mc

После установки программу Midnight Commander можно запускать при помощи короткой команды « mc ».

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

Чтобы открыть папку в Midnight Commander можно использовать двойной клик левой кнопкой мышки. Также вы можете выделять папки с помощью стрелок на клавиатуре и открывать их нажатием на клавишу Enter.
С помощью клавиш F1-F10 в Midnight Commander можно выполнять такие команды как:
- F1 – Help – Помощь.
- F2 – Menu – Меню программы.
- F3 – View – Просмотр.
- F4 – Edit – Редактирование.
- F5 – Copy – Копирование.
- F6 – RenMov – Переименование и перемещение.
- F7 – MkDir – Создание папок.
- F8 – Delete – Удаление.
- F9 – PullDn – Работа с выпадающим меню.
- F10 – Quit – Выход.
- Как удалить папку в Linux через терминал (консоль)
- Как открыть файл в терминале Linux
- Как создать файл в Linux через терминал
- Как скопировать файл в Linux через терминал
- Как удалить файл в Linux через терминал
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
Ubuntu перейти в папку с названием на русском языке
- запустите (предварительно установив, если не установлен, и есть такая возможность) какой-нибудь файловый менеджер: mc , lfm , vifm , ranger и т.п.
- если установлен vim (не vi !) и надо отредактировать какой-то файл, то можно им и воспользоваться как файловым менеджером: vim . — программа запустится в режиме netrw (по умолчанию этот скрипт, вроде бы, установлен в ubuntu), где можно будет «перейти» к любому файлу/каталогу. нажатие enter будет интерпретировано для каталога — как cd , для файла — открытие его для редактирования.
- если установлен emacs , можно воспользоваться его пакетом dired — directory editor.
- на самый крайний (зато абсолютно универсальный) случай можно воспользоваться конструкцией cd «$(. )» , где вместо . должна идти команда, возвращающая имя нужного каталога (кавычки нужны для тех случаев, когда в названии каталога есть пробелы). это может быть, например, команда ls | sed -n 2p , где 2 — номер нужного каталога в выдаче ls . посмотреть пронумерованную выдачу ls можно, например, так:
$ ls | nl 1 bin 2 boot 3 dev 4 etc .
т.е., для перехода в каталог boot надо выполнить:
$ cd "$(ls | sed -n 2p)"
Отслеживать
ответ дан 15 сен 2015 в 19:46
aleksandr barakin aleksandr barakin
68k 218 218 золотых знаков 79 79 серебряных знаков 221 221 бронзовый знак
Кстати, прочитал сегодня, что вы все голоса тратите на разбор неоцененных ответов. Спасибо, это очень ценное дело. Я вот не успеваю уже туда заглядывать. И за обновление статистики тоже спасибо!
19 янв 2016 в 14:41
подход в ответе пытается обойти проблему, вместо того чтобы её решить — настроить обычное окружение, чтобы Unicode нормально воспринимался, например, можно смотреть на русские (китайские, японские, какие хотите) буквы в С.UTF-8 локали. Из вопроса не ясно в чём проблема (может кто-то зашёл по ssh на систему и у них locale не настроилась и поэтому POSIX locale используется по умолчанию и соответственно только ASCII позволяет вводить).
19 июн 2016 в 15:08
@jfs, с удовольствием прочитаю и проголосую за ваш вариант ответа.
19 июн 2016 в 18:12
для ответа в вопросе не хватает деталей (он слишком общий и поздно уже его менять). Цель моего комментария, чтобы люди слишком не увлекались решениями, представленными в вашем ответе, а решали корневую проблему (Ubuntu замечательно Unicode поддерживает). Например, хотя у меня не отображается как флаг (шрифт наверно не стоит подходящий), но Chromium понимает, что это один символ, а не два или 8.
19 июн 2016 в 19:21
Менять что-то не всегда есть возможность. Например, вы решаете проблему через TeamViewer. У клиента немецкая расскладка, он в свою очередь подоючен к KVM, где настройки норвежские. Вот тут вспомнишь еще не один хак.
Основы работы в командной оболочке Linux
Командная строка, оболочка, консоль — эти термины используются для обозначения взаимодействия человека-оператора с операционной системой с применением стандартных устройств ввода-вывода, обеспечивающих ввод команд и получение результатов их выполнения. В операционных системах семейства Linux подобное взаимодействие обеспечивается специальным программным продуктом — оболочкой ( shell ) . Наиболее распространенной из них, является оболочка проекта GNU bash ( B ourne A gain SH ell ). bash основывается на оболочке Bourne ( sh ) созданной Стефеном Борном и включает в себя свойства множества других оболочек — C ( csh ) , Korn ( ksh ) , tc ( tcsh ) . bash была написана Брайаном Фоксом (Brian Fox ) и в настоящее время поддерживается Четом Рейми ( Chet Ramey ).
Свойства оболочки bash делают ее наиболее универсальным и удобным средством взаимодействия с ОС Linux:
— bash обеспечивает редактирование командной строки. Курсор может быть перемещен в любую позицию команды для изменения ее содержания.
— bash поддерживает режим истории команд, позволяя отображать и изменять ранее введенные команды. Оболочка bash также имеет несколько переменных, значения которых влияют на сохранение и повторный вызов ранее введенных команд.
— bash обеспечивает завершение частично введенных слов для имен переменных, пользователей, хостов, команд и файлов.
— bash обеспечивает гибкое управление процессами, позволяя приостанавливать их, перезапускать, переключаться между задачами переднего плана и фоновыми, и даже продолжать выполнение задачи при завершении родительского процесса.
— bash позволяет использовать функции и псевдонимы, выполнять арифметические операции и вводить арифметические выражения в качестве команд.
— bash позволяет создавать целые наборы последовательно выполняемых команд (сценарии или скрипты) с использованием гибкого и функционального языка программирования данной оболочки.
— bash имеет гибкие настройки, обеспечивающие изменение внешнего вида командной строки.
Оболочка bash может выполняться как в интерактивном, так и в неинтерактивном режимах. В первом случае программа bash взаимодействует с пользователем, во втором — используется для выполнения скриптов ( специально подготовленных текстовых файлов с последовательностью команд) .
Команда оболочки Linux — это строка символов из имени команды и аргументов, разделенных пробелами. Аргументы предоставляют команде дополнительные параметры, определяющие ее поведение. Например, команда
echo 12345
выведет на экран строку символов 12345, введенных в качестве аргумента команды.
Команды, являющиеся частью оболочки называются встроенными. Естественно, они могут отличаться для различных оболочек. Кроме того, в качестве команд используются имена исполняемых файлов. В качестве аргументов, командам передаются ключи или опции , состоящие из тире и одного или нескольких символов. Пример такой команды:
ls — команда для отображения информации о файлах.. При вводе без аргументов, эта команда просто отобразит список файлов в текущем каталоге. При вводе с параметром -l — список в длинном формате — с отображением атрибутов, владельцев, даты и времени.
При использовании нескольких ключей, их можно объединить. Ниже приведенные варианты команд идентичны :
Как получить подсказку по использованию команды Linux
При работе в командной оболочке Linux, в большинстве случаев, можно получить справочную информацию по использованию конкретной команды, введя ее имя с параметром —help :
ls —help — отобразить справку для команды ls . В большинстве случаев, для получения справочной информации, допускается использование ключа -h
ls -h В операционных системах семейства Linux, более подробную справочную информацию можно получить из комплекта документации, известного как man-страницы , поскольку он доступен по команде man . Этот комплект включает в себя 8 разделов, содержащих справочную информацию, которую можно вывести на экран с использованием команды man
Перечень разделов man-страниц :
1 — Команды уровня пользователя.
2 — Системные вызовы. Документация о библиотечных системных вызовах, как open, read, exec и т. п. Данный раздел обычно используется программистами.
3 — Библиотеки. Этот раздел также предназначен для программистов и содержит справочную информацию о библиотеках прикладных программ ( abs, rint и т.п.)
4 и 5 — Форматы системных и пользовательских файлов. Содержит документацию о различных форматах файлов, как например, файл passwd
6 — Игры. Описание игр, поставляемых с установленной системой.
7 — Драйверы. Документация к драйверам, как например ip или ipv6
8 — Поддержка системы. Документация с информацией о командах для системного администрирования ( init, fdisk, ifconfig и т.п.).
man 1 ls — отобразить справку для команды ls из первого раздела документации ( в нем хранится информация о командах уровня пользователя ).
На практике, если требуется справка именно о команде, номер раздела опускают. В таком случае, поиск будет выполнен по всем разделам, начиная с первого до совпадения с аргументом, заданным в команде man :
man ls — отобразить справку для команды ls из первого раздела документации, где она будет найдена.
Иногда отсутствие номера раздела в команде man даже предпочтительнее. Например, справка по команде
man 1 init — отобразить справку для команды init из первого раздела документации, завершится сообщением об отсутствии справочной информации, потому, что данная команда относится к командам поддержки системы и информация о ней содержится в 8-м разделе.
Для поиска справочной документации во всех разделах, используется опция -a :
man -a passwd — отобразить справку для аргумента passwd из всех разделов, где она будет найдена: В результате, отобразится справка по команде passwd из первого раздела и описание формата файла паролей passwd из пятого.
В качестве аргумента для строки поиска в команде man можно использовать шаблон:
man -a ip* — отобразить справку для всех параметров, начинающихся с ip из всех разделов справочной документации.
При просмотре справочной документации, отображаемой по команде man используются клавиши:
стрелка вверх/вниз — переход на строку вверх/вниз.
PgUp/PgDown — переход на страницу вверх/вниз.
Enter — переход на строку вниз.
Пробел — переход на страницу вниз
Q — выход из справки.
Также, удобным средством поиска справочной информации являются утилиты apropos и whatis , позволяющие выполнить поиск по ключевому слову в базе данных документации. Первая из них выводит те строки, которые содержат строку поиска в в именах справочных страниц и кратких описаниях, а вторая – показывает однострочные описания справочных страниц, которые имеются в начале каждой страницы. С параметрами по умолчанию команды выдадут различающуюся информацию. Например, команда whatis tar , выдаст информацию имеющую отношение к утилите архивирования tar , а команда apropos tar — выдаст информацию и об утилите tar , и, кроме этого, справочные данные, где строка “tar” является частью слова, например “s tar t”. Использование утилиты apropos на первый взгляд кажется не очень эффективным, однако, это не так. Например, команда apropos net позволит быстро получить краткую справку по сетевым утилитам, присутствующим в данной системе. В данных командах можно использовать параметр -s указывающий номер раздела справочной системы, в котором будет выполняться поиск:
apropos –s 1 net — выполнить поиск только в первом разделе man.
При поиске обе утилиты используют индексные базы данных, которые обновляются с помощью программы mandb ( или традиционной текстовой базы данных, создаваемой программой makewhatis ), поэтому поиск выполняется очень быстро. Дополнительные параметры командной строки, используемые apropos и whatis можно получить с помощью команды man .
Общие рекомендации для начинающих работать с командной строкой.
Работа в командной строке Linux имеет некоторые принципиальные отличия по сравнению с работой в среде Windows.
Во-первых, не забывайте, что строчные и заглавные буквы для Linux — это разные символы. В операционной системе Windows каталог TEMP и каталог Temp — это один и тот же каталог, в Linux — это два разных. То же самое касается команд, их ключей, имен пользователей ,паролей и т.п.
    Во-вторых, справка по команде с параметром —help и справка из man-страницы различаются. Последняя, как правило, более подробная, с примерами и ссылкой на связанные разделы документации.
В-третьих, доступный список команд и результат их выполнения зависит от ваших прав в системе. Как правило, потенциально опасные для целостности системы команды, и команды, влияющие на работу других пользователей, не доступны обычному пользователю. Полными правами по отношению к системе имеет только один пользователь ( суперпользователь )- root . Обычно, учетная запись данного пользователя используется только для изменения настроек системы, и в большинстве дистрибутивов Linux, после установки системы, нет возможности работать под root ‘ом в графической среде, в сеансах удаленного подключения, или даже при локальном входе в систему, как это сделано в Ubuntu . Такой подход позволяет предотвратить разрушение системы при ошибках пользователя, и вполне оправдан, однако существуют случаи, когда без прав root не обойтись. Для получения прав пользователя root ( суперпользователя, superuser ) , которому доступны все возможные команды, используйте команду su . Она позволяет сменить текущего пользователя. Если пользователь не задан, то подразумевается root. .
Для выполнения отдельно взятой команды от имени суперпользователя root или другого пользователя используется команда sudo :
sudo ifconfig — выполнить команду ifconfig от имени суперпользователя root
sudo su — Комбинация sudo и su — выполнить команду su от имени суперпользователя root. Данный вариант команды позволяет пользователю перейти в учетную запись root без сохранения текущей пользовательской среды (знак «-«).
Команда sudo может использоваться для интерактивного режима суперпользователя root (пользователя с администраторскими правами). Обычно этот прием используется для тех случаев, когда с правами суперпользователя нужно выполнить не одну команду, а несколько.
sudo -i — перейти в интерактивный режим с правами суперпользователя. Все последующие команды будут выполняться с наивысшими привилегиями, пока не будет завершен данный сеанс командой exit
Обычно, использование команды sudo предпочтительнее, чем использование su и, при дополнительных настройках системы, позволяет легко отдавать отдельным пользователям только строго необходимые привилегии.
Основная часть настроек sudo хранится в файле /etc/sudoers и задает правила, определяющие, какие пользователи, каких компьютеров, какие команды могут выполнять с вводом или без ввода пароля. Администратор системы может на какое-то время передать полномочия суперпользователя root любому пользователю, не передавая ему пароль от учетной записи root .
Начинающих пользователей Linux обычно пугает работа в командной оболочке из-за необходимости набирать слишком длинные строки команд, имена каталогов или файлов. Однако, в большинстве случаев, в таком наборе нет необходимости. При работе в среде командной оболочки очень удобно использовать режим подстановки имен с помощью клавиши Tab . Например, для получения списка файлов каталога /home/everyone пользователю необходимо набрать команду
Однако, оболочка позволяет обойтись без полного набора пути. Если после набора ls /h нажать клавишу Tab , то в командной строке будет подставлена недостающая часть имени каталога — ome , и в строке ввода отобразится
Аналогично, не нужно набирать полностью оставшуюся часть пути, а только e и Tab . Если существуют частично совпадающие имена файлов или каталогов, то подстановка выполняется только для общей части имени. Если в каталоге /home имеются подкаталоги everyone1 и everyone2 то после нажатия клавиши Tab выполнится подстановка общей части everyone и на экране отобразится список из возможных вариантов ввода — everyone1 и everyone2 . Остается только ввести недостающую часть имени ( 1 или 2 ). Тот же прием используется и при наборе команд. Например, если набрать в качестве команды символ e и нажать Tab то отобразится список всех доступных команд, начинающихся с буквы e , если затем набрать символ c и снова нажать Tab , то будет выставлена подстановка имени до echo , или если есть другие варианты — подстановка общей части и возможные варианты имени.
Как управлять выводом на экран.
  Для просмотра текста, ушедшего за пределы видимости экрана, используются комбинации клавиш SHIFT и PAGE UP или PAGE DOWN (в зависимости от направления просмотра).
Для приостановки вывода на экран — CTRL-S , отмена приостановки — CTRL-Q
Для вывода большого объема текста на экран в постраничном режиме используется команда less , в цепочке с основной командой. Объясню на примере. Пусть у нас есть текстовый файл mytxt размером на 10 экранов. Для вывода текста на экран (стандартный вывод) можно воспользоваться командой cat имя файла
cat mytxt
После выполнения этой команды вы увидите быстро промелькнувший текст и последний (десятый) экран вывода. Можно, конечно, воспользоваться комбинациями клавиш SHIFT-PAGEDOUN или SHIFT-PAGEUP для просмотра текста, но существует возможеость воспользоваться и командой less .
cat mytxt | less
Символ | означает объединение в цепочку выполнения команды выдачи текста cat и команды управления постраничным выводом less . В результате, после отображения на экране первой страницы текста , вывод будет приостановлен до нажатия
PAGE DOWN или ENTER (построчное перемещение). Для завершения постраничного вывода нажмите клавишу Q .
  В цепочки можно объединять несколько команд. Например, вам понадобилось вывести на экран в постраничном режиме все строки, содержащие слово mail. Для поиска можно воспользоваться командой
grep
Итоговая цепочка из трех команд:
cat mytxt | grep mail | less
  Для большинства дистрибутивов Linux вместо less можно использовать more .
Иногда удобно использовать одновременно несколько терминалов, переключаясь между ними (например, когда необходимо смотреть информацию журнала в одном окне и управлять процессами и настройками в другом).
Для переключения используется комбинация клавиш CTRL — ALT — F1. F6 (от первого терминала до 6-го или далее). Для переключения в графическую оболочку используется одна из комбинаций, которая может отличаться для разных дистрибутивов. Например, CTRL-ALT-F7 .
Чтобы запустить еще один графический сервер на этом же компьютере, используйте команду startx 1 — :1 . У вас добавится новый графический терминал. Чтобы перейти во второй графический терминал, нажмите Alt+F8 . , а чтобы вернуться в первый — Alt+F7 . Таким образом можно открывать до 64 графических терминалов. (startx 2 — :2 и т.д).
Для завершения сеанса работы в командной оболочке используется команда exit .
Вы можете создать журнал своей консольной сессии, в котором будет отображено все, что вы вводили с клавиатуры, и все, что выдавалось на экран терминала.
Для этого используется команда
script имя файла журнала
Чтобы прекратить запись в журнал введите команду exit .
Для просмотра истории ранее введенных команд используются стрелки Вверх/Вниз. При вводе набранной или вызванной из истории команды положение курсора относительно строки ввода значения не имеет.
Кроме того, в домашнем каталоге пользователя, имеется файл истории вводимых команд для данной оболочки, например .bash_history . Для отображения его содержимого на экране можно воспользоваться командой history .
Для просмотра информации в конечной части файлов ( например, журналов ) используется команда tail :
tail /var/log/mrssages — отобразить последние 10 строк ( значение по умолчанию ) из файла журнала /var/log/messages.
tail –n 100 /var/log/mrssages — отобразить последние 100 строк из файла журнала /var/log/messages.
Как перезагрузить или выключить компьютер.
  Одно и то же действие в Linux очень часто можно выполнить несколькими способами. В большинстве дистрибутивов Linux для перезагрузки или выключения компьютера используется shutdown . Команда имеет много опций, позволяющих выполнить перезагрузку в определенное время, быструю перезагрузку без проверки файловой системы, имитировать и отменять уже запущенный (ждущий своего времени) процесс перезагрузки.
Полный список опций можно получить по shutdown —help
Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
  Для выключения питания (halt):
shutdown -h now
В большинстве дистрибутивов можно использовать короткие команды:
reboot — перезагрузка
halt — выключение
Можно также воспользоваться изменением уровня запуска системы командой init , когда-то бывшей основой инициализации системы System V (SysV). И хотя SysV считается устаревшей, в большинстве современных дистрибутивов, реализована поддержка совместимости с ней. В SysV команда init позволяла управлять запуском и завершением процессов в системе с использованием скриптов, хранящихся в /etc/inittab. Каждому уровню запуска соответствовал свой набор скриптов, в частности, уровень 0 реализовывал выключение питания компьютера, а уровень 6 — перезагрузку. Соответственно, в большинстве ОС семейства Linux и сейчас можно использовать команды
для выключения:
init 0
для перезагрузки:
init 6
Команду init можно использовать в тех операционных системах, где используется система инициализации SysV или обеспечивается полная совместимость с ней, для изменения уровней запуска.
Уровни:
1 — Однопользовательский режим. Доступ разрешен только пользователю root.
2 — Многопользовательский режим без поддержки сетевых функций.
3 – Многопользовательский режим с поддержкой сети.
4 — Зарезервировано.
5 — С использованием графической оболочки.
Если вам нужно завершить графическую оболочку (например, когда инсталляция некоторых приложений требует ее закрытия) введите:
Графическая оболочка закроется, и система перейдет на уровень запуска 3. Для возврата на уровень 5 введите:
Уровень запуска системы по умолчанию определяется значением initdefault из файла /etc/inittab. Для запуска системы с поддержкой графической оболочки она выглядит так:
Если 5 заменить на 3, то графическая оболочка при старте системы запускаться не будет.
Все выше сказанное относится к системам инициализации SysV (SystemV), которая много лет использовалась во всех дистрибутивах Linux для загрузки рабочей среды с помощью скриптов init . Однако, начиная с 2012г, наметился постепенный переход на systemd новую систему инициализации, изначально разработанную для дистрибутива Fedora, начиная с Fedora 14.8 . Попросту говоря, systemd — это демон инициализации других демонов в Linux, пришедший на замену используемому ранее скрипту инициализации (/sbin/init). Главная его особенность — распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы. Реализация systemd значительно отличается не только логикой, но и принципами управления процессом запуска, набором программных модулей и конфигурационных файлов. Файла /etc/initd больше нет, и для определения уровня запуска в systemd используются символические ссылки, например:
— для состояния init 3
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
— для состояния init 5
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
Команды init N в дистрибутивах с использованием systemd пока поддерживаются, но очевидно, что ее время заканчивается.
Управление процессами в Linux.
Посмотреть список процессов в Linux можно с помощью команды ps . Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущем сеансе пользователя. Полный список опций можно получить стандартно — выполнив
Для получения сведений об использовании ресурсов компьютера можно воспользоваться командой top

В верхней части окна выводятся суммарные данные о состоянии системы — текущее время, время с момента загрузки системы, число пользователей в системе, число процессов в разных состояниях, данные об использовании процессора и памяти.
Команда kill
Эти же действия (принудительное завершение процесса и изменение его приоритета) можно выполнить и без команды top.
Если в команде kill номер сигнала не задан, то используется значение SIGKILL, т.е предыдущую команду можно было ввести как kill PID:
kill 11597
При завершении процесса завершаются и порожденные им процессы.
Для завершения процесса по его имени используется команда killall:
killall mc — завершить процесс, в имени которого есть «mc»
killall -u user — завершить процессы, порожденные пользователем user
Изменение приоритетов — команды nice и renice
Для изменения приоритета процессов используются команды nice и renice. При запуске процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки ( shell ) . Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:
nice — команда
nice -4 mc — запустит mc с приоритетом = 8+4=12
Команда renice используется для изменения приоритета уже запущенного процесса:
renice -p PID
renice 4 -p 11597 — установить значение приоритета для процесса mc (PID=11597) равным 4.
После выполнения, renice выдаст строку результата:
11597: old priority 12, new priority 4 — старый приоритет 12, новый приоритет 4
Задание нулевого и отрицательного числа приоритета возможно только с правами root.
Перечень наиболее часто используемых команд:
Команды для работы с файлами и каталогами:
pwd – отобразить путь текущего каталога
cd – перейти в указанный каталог
ls – отобразить список файлов каталога, с ключом -l показывает дополнительные сведения о файлах.
cp – копирование файлов/папок
mv – перемещение файлов/папок
mkdir – создать папку
rm – удалить файлы/папки, с ключом -r удаляет и все вложенные папки, с ключом -f — удаляет открытые файлы или каталоги
rmdir – удаление пустой папки
chmod – изменить права доступа к файлу
chown — сменить владельца файла или каталога
find — найти файл. Задается исходный путь для поиска и шаблон поиска, find / -name .X* — искать от корневого каталога файлы, содержащие в имени символы .X
which — отобразить полный путь исполняемого файла, доступного в данной оболочке, например — which ifconfig
touch — изменить временные отметки файла. Удобно использовать для создания пустых файлов – touch myfile создаст пустой файл myfile .
Эти команды обычно используется от имени суперпользователя ( с командой sudo ).
reboot – перезагрузка системы
poweroff – выключение компьютера
reset – очищает окно терминала
passwd – сменить свой пароль, а суперпользователю — поменять пароль любого пользователя
users — отобразить список пользователей, вошедших в систему.
yum , dnf , apt , rpm — установка, удаление или обновление программного обеспечения в дистрибутивах на базе пакетов RPM (Red Hat Package Manager) – RedOS, Mageia, и т.п.
dpkg , apt , apt-get — установка, удаление или обновление программного обеспечения в дистрибутивах на базе Debian – Astra, Mint, Ubuntu и т.п.
ps – отобразить список текущих активных процессов
lsof — отобразить список открытых файлов процесса или пользователя
strace — отобразить список системных вызовов
last — отобразить историю перезагрузок и регистраций пользователей в системе
kill – послать сигнал процессу, обычно используется для принудительного завершения работы процесса.
killall – завершение работы всех процессов, имена которых заданы параметром командной строки
top – отображение списка текущих процессов и интерактивное управление ими.
ifconfig – конфигурация сетевых интерфейсов
route — таблица маршрутизации
ifup / ifdown — включить /выключить сетевой интерфейс
ip — просмотр или изменение параметров конфигурации протокола IP
netstat — отобразить состояние сетевых соединений
arp, ping, nslookup, traceroute — наиболее часто используемые команды сетевой диагностики.