Оболочка Bash — шпаргалка для начинающих
В данной шпаргалке затрагиваются следующие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.
Оболочка Bash: введение
Оболочка, или шелл (shell) — это программа, в нашем случае названная «bash», что является сокращением от Bourne Again Shell. Оболочка принимает ваши команды и передаёт их операционной системе. Для взаимодействия с системой используются терминалы, такие как Навигация
В Linux файлы и каталоги имеют иерархическую организацию, то есть существует некий начальный каталог, называемый корневым. В нём содержатся файлы и подкаталоги, которые в свою очереди содержат файлы и свои подкаталоги.
pwd
Команда pwd, сокращение от print working directory , отображает текущее местоположение в структуре каталогов.
cd
Команда cd позволяет перейти в новый каталог.
mkdir
Команда mkdir создаёт новый каталог в текущем каталоге.
Основы работы с терминалом и BASH | Основные команды терминала. Первый скрипт на BASH.
Основные команды
man
Команда man отображает руководства по командам. Например, следующая команда выдаст всю информацию о команде cat:
cat
Команда cat считывает файл, переданный как аргумент, и выводит его содержимое по стандартному каналу вывода. Передача нескольких файлов в виде аргумента приведёт к выводу конкатенированного содержимого всех файлов.
echo
Команда echo выводит свои аргументы по стандартному каналу вывода.
$ echo Hello World
Hello World
Если вызвать echo без аргументов, будет выведена пустая строка.
head
Команда head читает первые 10 строк любого переданного текста и выводит их по стандартному каналу. Число выводимых строк можно изменить:
$ head -50 test.txt
tail
Команда tail работает аналогично команде head, но читает строки с конца:
$ tail -50 test.txt
Также можно просматривать добавляемые к файлу строки в режиме реального времени при помощи флага -f:
less
Команда less позволяет перемещаться по переданному файлу или куску текста, причём в обоих направлениях.
$ less test.txt
$ ps aux | less
Подробнее о назначении символа | будет рассказано ниже в разделе команды history.
true
Команда true всегда возвращает ноль в качестве выходного статуса для индикации успеха.
false
Команда false всегда возвращает не-ноль в качестве выходного статуса для индикации неудачи.
$?
$? — это переменная, которая содержит выходной статус последней запущенной команды. Под статусом обычно понимается $ true
$ echo $?
$ false
$ echo $?
1
grep
Команда grep занимается поиском переданной строки в указанном файле:
$ cat users.txt
user:student password:123
user:teacher password:321
$ grep ‘student` file1.txt
user:student password:123
grep также может принимать несколько файлов и регулярных выражений для уточнения формата текста.
#6. Команды bash и основные программы / Linux
Также можно ознакомиться с sed
Команда sed — это потоковый редактор, преобразующий входные текстовые данные. Обычно её используют для замены выражений так: s/regexp/replacement/g. Например, следующий код заменит все слова «Hello» на «Hi»:
$ cat test.txt
Hello World
$ sed ‘s/Hello/Hi/g’ test.txt
Hi World
Также вы можете ознакомиться с history
Команда history выводит историю командной строки. Обычно её используют вместе с командой grep для поиска конкретной команды. Например, следующий код найдёт все команды, содержащие строку g++:
$ history | grep g++
155 g++ file1.txt
159 g++ file2.txt
export
Команда export устанавливает переменные окружения для передачи дочерним процессам. Например, так можно передать переменную name со значением student:
ps
Команда ps выводит информацию о запущенных процессах.
$ ps
PID TTY TIME CMD
35346 pts/2 00:00:00 bash
Выводится четыре элемента:
- ID процесса (PID),
- тип терминала (TTY),
- время работы процесса (TIME),
- имя команды, запустившей процесс (CMD).
awk
Команда awk находит и заменяет текст в файлах по заданному шаблону: awk ‘pattern ‘ test.txt
wget
Команда wget скачивает файлы из Сети и помещает их в текущий каталог.
nc
Команда nc — это утилита для отладки сети. Также можно ознакомиться с ping
Команда ping тестирует сетевое подключение.
$ ping google.com
PING google.com (74.125.224.34) 56(84) bytes of data.
64 bytes from lax17s01-in-f2.1e100.net (74.125.224.34): icmp_req=1 ttl=57 time=7.82 ms
— google.com ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 8ms
rtt min/avg/max/mdev = 7.794/8.422/10.792/0.699 ms
Статистика в конце показывает количество подключений, совершённых до завершения команды, и время их выполнения.
git
Git — это популярная система контроля версий. Также можно ознакомиться с Переменные окружения
Переменные окружения — это именованные переменные, содержащие значения, используемые одним или несколькими приложениями.
Переменная PATH содержит список каталогов, в которых система ищет исполняемые файлы.
Переменная HOME содержит путь к домашнему каталогу текущего пользователя.
Коннекторы
Коннекторы позволяют запускать несколько команд одновременно.
Источник: dzen.ru
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
cheatsheets / Bash.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Latest commit 4f71f0c May 11, 2014
1 contributor
Users who have contributed to this file
333 lines (236 sloc) 13.4 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
Bash (Bourne again shell) командный процессор разработанный в рамках проекта GNU(GNU’s Not UNIX).
Если bash запущен как login-shell, то он выполняет:
- /etc/profile (если существует)
- ~/.bash_profile (если такого файла нет, перейти к следующему шагу)
- ~/.bash_login (если такого файла нет, перейти к следующему шагу)
- ~/.profile
Если bash запущен как обыкновенный интерактивный командный процессор, то при старте он выполняет только ~/.bashrc .
История запуска команд
Историю команд bash хранит в файле ~/.bash_history . Посмотреть историю введенных команд можно выполнив в bash history . По умолчанию bash хранит историю о последних 2000 команд ( echo $HISTFILESIZE ).
Псевдонимы команд это сокращения для часто используемых последовательностей команд или длинных команд.
Создать псевдоним alias =» . Отменить псевдоним назначенный командой unalias .
Псевдонимы команд пользователя обычно хранятся в файле ~/.bash_aliases .
Шаблоны в командах
- * — любая подстрока, в том числе пустая;
- ? — один любой символ;
- [a-z] — один любой символ из списка.
Например, отобразить все файлы Python в текущем каталоге:
ls -l *.py
Первый скрипт на Bash
Создадим файл скрипта:
touch hello.sh
Назначим права на выполнение:
chmod +x hello.sh
Откроем скрипт для редактирования и добавим текст:
#!/bin/bash echo «Hello world!»
Выполним скрипт, на экране должно отобразится Hello world! :
./hello.sh
Перенаправление потоков вывода
stdout | файл | > out.txt или 1> out.txt |
stderr | файл | 2> out.txt |
stdout | stderr | 1>> out.txt |
Пример. Отобразить содержимое каталога на экране и сохранить в файле:
ls -l >1 ), далее с помощью канала в файл. Канал сам по себе не может записать данные в файл, для этого можно использовать команду tee , которая принимает поток ввода и передает его на вывод в файл.
Каналы позволяют передать результат выполнения одной команды в другую, объединяя выполнение разных команд в последовательность. Для присоединения одной команды к другой используется символ | .
Например, прочитать содержимое файла и отобразить его с возможностью навигации вперед-назад на экране:
cat /var/log/syslog | less
Переменные в Bash не имеют типа как такового, но могут быть: числом, символом или строкой.
Создание, удаление и экспорт
Объявление переменных и отображение результата Hello world! :
VAR1=»Hello» VAR2=world! echo «$VAR1 $VAR2»
Сохранить ввод пользователя в переменную:
echo -n «Please, enter your name: » read NAME echo $NAME
Сохранить ввод пользователя в несколько переменных:
echo -n «Please, enter your firstname and lastname: » read FIRSTNAME LASTNAME echo «Hello $FIRSTNAME $LASTNAME!»
Конкатенация значений, отобразит список файлов в каталоге:
CMD=»ls» CMD+=» -l» $CMD
Можно сделать переменную доступной процессам-потомкам, для этого ее нужно экспортировать.
export MY_VAR
Удалить значение переменной можно командой unset , либо присвоив ей пустое значение:
unset MY_VAR
Вычисляемое выражение в переменных
Переменные могут содержать результат выполнения команды заключенный в выражение $() .
Например, создадим уникальное имени файла, при архивации данных:
FILENAME=backup-$(date +%Y%m%d).tar.gz tar -zcvf $FILENAME folder/
Другой способ получения результата выражения, заключать команду в обратные апострофы ` ` .
Например, остановить выполнение программы:
kill -9 `cat /var/run/script.pid`
Можно объявлять локальные переменные внутри функции.
Например, этот скрипт выведет Alice Matt Alice .
NAME=Alice function myname < local NAME=Matt echo $NAME >echo $NAME myname echo $NAME
Переменные среды окружения
У каждого запущенного процесса в UNIX есть своя среда окружения (environment). Среда окружения это набор переменных имя-значение которые доступны для чтения и изменения процессу.
$0 | имя запущенного скрипта |
$1 . $9 | имена позиционных агрументов переданных скрипту |
$$ | PID текущего процесса |
$* | все переданные параметры |
$# | количество переданных параметров |
$? | код завершения последней инструкции |
$! | номер последнего процесса запущенного в текущей сессии в фоновом режиме |
$_ | последняя вызванная команда |
$HOME | домашний каталог пользователя |
$PWD | текущий каталог |
$UID | идентификатор пользователя запустивщего сценарий |
$RANDOM | случайное число от 0 до 32767 |
$REPLY | последняя строка введенная с помощью read |
$SHELL | текущий командный процессор |
$PS1 | вид приглашения командного процессора |
$PS2 | вид приглашения «продолжения команды» |
$TERM | тип терминала пользователя |
$USER | имя пользователя |
$PATH | список каталогов для поиска запускаемых программ (разделяются двоеточием) |
Условный оператор if..else
if [ $USER = «alice» ]; then echo «Hello Alice!» elif [ $USER = «matt» ]; then echo «Hello Matt!» else echo «Hello friend!» fi
Оператор выбора select
С помощью оператора select можно реализовать консольный интрефейс выбора действия.
Например, выбрать какое действие необходимо выполнить:
OPTIONS=»start stop reload» select opt in $OPTIONS; do if [ «$opt» = «start» ]; then echo $opt exit elif [ «$opt» = «stop» ]; then echo $opt exit elif [ «$opt» = «reload» ]; then echo $opt exit fi done
Оператор множественного ветвления case in
ACTION=$1 case «$ACTION» in start) echo «Start server» ;; stop) echo «Stop server» ;; reload) echo «Reload server» ;; *) echo «No action»; esac
Циклы for, while и until
Цикл for позволяет делать обход последовательностей.
Например, вывести содержимое каталога:
for i in $( ls ); do echo item: $i done
Например, вывести по порядку числа от 1 до 10:
for i in `seq 1 10`; do echo $i done
Цикл while выполняется пока значение выражения возвращает истину.
COUNTER=0 while [ $COUNTER -lt 10 ]; do echo counter: $COUNTER let COUNTER=COUNTER+1 done
Цикл until выполняется пока выражение возвращает ложь.
COUNTER=20 until [ $COUNTER -lt 10 ]; do echo COUNTER $COUNTER let COUNTER-=1 done
Выражения для формирования условий
-d | истина, если указанное имя является именем каталога |
-е | истина, если файл существует |
-L | истина, если файл существует и является ссылкой |
-s | истина, если файл существует и не пустой (размер больше 0) |
-х | истина, если файл существует и является исполнимым |
-w | истина, если файл существует и доступен для записи |
-z переменная | истина, если строка, содержащаяся в переменной, является пустой (ее длина равна 0) |
-n переменная | истина, если строка, содержащаяся в переменной, не является пустой (ее длина больше 0) |
переменная -eq значение | равно |
переменная -ne значение | не равно |
переменная -lt значение | меньше |
переменная -gt значение | больше |
переменная -le значение | меньше или равно |
переменная -ge значение | больше или равно |
Функции в bash являются именнованными блоками кода и могут принимать входные параметры.
Например, функция вычисляющая сумму двух чисел:
function summ < local result=0 if [ $# -eq 2 ]; then echo $(($1 + $2)) return 0 else echo «Error! You must pass two numbers.» return 1 fi >SUMM=$(summ 10) echo $? # код завершения, то что вернул return echo $SUMM # значение которое вернула функция через echo
Сложить два числа:
A=1 B=2 echo $[$A + $B] # первый способ echo $((A + B)) # второй способ
- + — сложение
- — — вычитание
- * — умножение
- / — деление
- % — остаток от деления
Для вычисления дробных значений придется использовать дополнительные команды.
Например, вычислить дробное значение:
echo 1/2 | bc -l # вернет .50000000000000000000
Источник: github.com
Команды bash что это за программа
Комментарии
Популярные По порядку
Не удалось загрузить комментарии.
ВАКАНСИИ
Инженер по тестированию
Москва, от 3000 USD
Тестировщик
Волгоград, от 35000 RUB
Программист 1С
Москва, до 310000 RUB
ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ
Лучший хакерский курс с Kali Linux на русском языке
Если нужно получить доступ к серверу, поправить работоспособность чужой сети или побаловаться с чьим-то сайтом – Kali Linux вам в помощь.
6 сервисов для работы с блок-схемами
Зачастую, чтобы лучше понять задачу и быстрее ее реализовать, используют различные схемы, таблицы и диаграммы. В нашей подборке 6 сервисов для работы с ними.
15 прекрасных плагинов для Sublime Text
Встречайте список первой необходимости – 15 самых нужных плагинов для Sublime, которые сильно упростят жизнь разработчику.
Источник: proglib.io
Командная строка Ubuntu: основные команды bash
Для работы в Ubuntu пользователь может выбрать один из двух возможных вариантов интерфейса: графический либо интерфейс командной строки. Графический интерфейс (GUI — Graphical user interface) знаком большинству пользователей, в нем для выполнения действий нужно использовать различные элементы рабочего стола. Он имеет свои преимущества, которые выражаются главным образом в удобном и привычном формате подачи информации, а также в отсутствии необходимости знать какие-либо команды.
Однако многие пользователи Linux предпочитают работать в командной строке (CLI, Command Line Interface). Как правило, эти пользователи так или иначе связаны с программированием или системным администрированием, тем не менее знание основ bash будет полезно всем пользователям.
Командная строка позволяет выполнять команды значительно быстрее, чем при использовании GUI, при этом экономит ресурсы. Более того, зачастую команды не имеют своих аналогов в графическом интерфейсе и, благодаря этому, дают значительную свободу пользователям в своих действиях. При этом интерфейс командной строки встроен в ядро операционной системы, а значит, он доступен даже тогда, когда вы не можете воспользоваться графической оболочкой. Сами же команды одинаковы для всех операционных систем на базе Linux, будь то Ubuntu, CentOs, Fedora или какая-либо другая.
Что такое bash
Bash расшифровывается как Bourne again shell (что можно перевести как «Еще одна оболочка Борна»), название частично заимствованно от более ранней версии командной оболочки UNIX, которая называлась просто Bourne shell («Оболочка Борна» – по фамилии разработчика Стивена Борна).
Bash позволяет интерактивно взаимодействовать с компьютером, вводя определенные команды и получая на них соответствующий отклик. Также этот командный процессор позволяет выполнять скрипты (команды из файла), может производить автодополнение названий файлов и директорий, допускает использование переменных, операторов ветвления и цикла.
Далее в статье будут приведены самые простые и необходимые для работы в bash команды, которые помогут вам сориентироваться и начать самостоятельно использовать командную строку для своих задач, но сначала необходимо перейти к интерфейсу командной строки.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Вход в командную строку
Используя Ubuntu в качестве операционной системы, вы можете перейти к командной строке двумя путями, а именно через консоль или через терминал.
Если вы хотите зайти в командную строку через терминал, то для этого необходимо нажать Ctrl+Alt+F(1-6) – в зависимости от выбранного номера (F1, F2…) вы попадаете в первую, вторую или другую по счету виртуальную консоль (они независимы и запускаются во время загрузки Ubuntu), каждая из которых имеет интерфейс командной строки. Если вы нажмете Ctrl+Alt+F7, то перейдете в седьмую виртуальную консоль, которая имеет графический интерфейс.
Что касается терминала, то это графическая программа, которая эмулирует консоль. Вы можете найти ее в меню, выбрав «Приложения», затем «Стандартные», а затем «Терминал», либо нажав сочетание клавиш Ctrl+Alt+T. Вы сможете выполнять команды, продолжая находиться в графическом интерфейсе.
Также возможен вариант, когда вам необходимо подключиться к серверу, на котором установлена Ubuntu. В этом случае вам нужно воспользоваться специальной программой (например, puTTy): наберите нужный ip-адрес, а затем введите имя пользователя и пароль.
Примечание.
При вводе пароля в командную строку он не высвечивается – вам нужно просто набрать пароль и нажать Enter. Если пароль введен правильно, вы сможете продолжить работу в командной строке.
Пользователь и система
Используя bash, вы можете легко получить любую необходимую вам техническую информацию о пользователях и системе.
Если вы хотите идентифицировать, под каким пользователем авторизованы в данный момент, вам нужно ввести в командную строку следующую команду:
whoami
Если вам нужно узнать не только о вашем, но и о других пользователях, находящихся в данный момент в этой операционной системе, используйте команды:
В отличие от whoami, эти команды показывает более подробную информацию: кроме имени пользователя вы также узнаете о том, какая используется терминальная линия, время начала сеанса, IP-адрес и некоторые другие данные.
Что касается данных о системе, то с ними можно ознакомиться, используя команду uname. Сама по себе эта команда даст вам не так много информации – только название системы. Однако если вы будете использовать ключи, то сможете узнать гораздо больше.
Ключи – это специальные аргументы, которые пишутся через пробел после команды и начинаются с одного или двух дефисов. Они определяют параметры, которые будут применены к команде. Как правило, узнать о доступных ключах вы можете, написав команду и —help (либо -help): к примеру,
uname —help
У команды uname вы можете задать ключ -a (или —all), и тогда на экран будет выведена вся информация об операционной системе:
uname -a
Если вас интересуют конкретно данные о ядре, то наберите следующую команду:
uname -rv
В этом случае вы узнаете о релизе и версии ядра операционной системы.
Получить информацию обо всех процессах можно при помощи этой команды:
ps -a
А команда pstree выведет информацию в виде дерева процессов.
Узнать сетевое имя машины вы можете с помощью команды hostname.
Переход по директориям
В этом разделе вы познакомитесь с основными командами bash, которые позволят вам выполнять самые простые действия в командной строке.
Команда cd позволяет переходить из одной директории в другую. При этом если вы используете команду без ключей, то попадете в домашнюю директорию; для того, чтобы перейти в какую-либо конкретную директорию, необходимо просто прописать ее путь, к примеру:
cd /home/users/dir1
Вы также можете указывать команду cd с определенными ключами:
cd ../.. — переход на две директории выше;
cd — — переход в предыдущую директорию (в которой вы были до перемещения в нынешнюю).
Команда pwd укажет путь той директории, в которой вы в данный момент находитесь.
Создание, перемещение и удаление
Используйте команду mkdir для создания директории. Не забудьте указать имя:
mkdir dir1
Новая директория будет создана в той директории, где вы находитесь в данный момент, но вы также можете прописать какой-то другой путь для создания новой директории:
mkdir /home/users/dir1
Для создания файла вам нужно ввести команду touch и название будущего файла:
touch file1
В этом случае прописать путь, где нужно создать файл, тоже возможно:
touch /home/users/dir1/file1
Для перемещения директорий и файлов используется команда mv, после которой вы пишете название директории или файла, который хотите переместить, а затем место, куда хотите переместить:
mv file2 /home/users/dir2 mv dir1 /home/users/dir3
Обратите внимание, что команда mv также используется для переименования, поэтому если при отсутствии директории dir2 вы напишете такую команду:
mv dir1 dir2
то директория dir1 будет переименована в директорию dir2. Этот пример справедлив и для файлов, которым вы можете давать другие названия при помощи команды mv.
Для удаления файлов следует использовать команду rm, а для удаления директорий rmdir. Если вы хотите удалить каталог, используйте команду rm с ключами -rf:
rm -rf /home/users/
Еще одно действие, которое вы можете использовать, — это копирование при помощи команды cp. Синтаксис у этой команды такой же, как и у предыдущих, — вы просто пишете, что и куда хотите скопировать. Для копирования директории обязательно нужно использовать ключ -r, при этом если конечная директория (dir2) не существует, то она будет создана при копировании:
cp -r dir1 dir2
Информация о файлах, каталогах и процессах
Для вывода информации о содержании каталога используется команда ls. Если использовать ее без ключей, то она просто выведет информацию об имеющихся в данной (или указанной) директории файлах и директориях. Основные ключи, которые часто используются с этой командой:
-a — вам будут показаны все файлы директории, в том числе те, которые начинаются с . (точки);
-s — запрос информации о размерах файлов (или директорий);
-l — данные о файлах, в частности имя пользователя, который их создал, права доступа и время создания;
-h — перевод размера файлов в удобном для восприятия формат (Кбайт, Мбайт и т.д.).
Также ключи можно комбинировать, поэтому обычно для вывода размера содержимого используется команда:
ls -sh
Другой командой, которая поможет вам получить необходимую информацию, является команда du. К примеру, введя эту команду:
du -sk *
вы получите информацию о размерах и именах файлов.
Информацию о работающих процессах вы можете получить при помощи команды df. Лучше всего использовать ее сразу с ключом -h, чтобы данные были показаны в более удобном для чтения формате:
df -h
Поиск и использование регулярных выражений
Для поиска файлов в bash используется команда find. Ее синтаксис следующий: find + нужная директория (путь) + ключ (или несколько) + критерии ключа + (опционально) последующее действие над найденными файлами.
Со множеством ключей этой команды, которые значительно облегчают и сужают поиск, вы можете ознакомиться, введя в командную строку:
find —h
К примеру, следующая команда позволит вам найти все файлы, которые находятся в директории dir1, и имеют название file:
find /home/users/dir1 -name ‘file*’
Для поиска наиболее удобно пользоваться некоторыми регулярными выражениями, а именно:
* — обозначает любое количество символов, включая их отсутствие (например, по запросу file* будут найдены все файлы: file, file1, file829, fileabc и т.д.);
? — обозначает один символ (по запросу file? будут найдены файлы с одним символом после слова file: file1, file9, filea и т.д.; по запросу file?? будут найдены файлы с двумя символами: file12, file34, file92 и т.д.);
[] — обозначает подмножество значений, которые может принимать один символ (по запросу file[1-9] будут найдены файлы: file1, file2, file3 и так далее до file9; по запросу file[a-d] файлы filea, fileb, filec и filed).
Перенаправление и конвейер
Перенаправление вывода какой-либо команды задается символом > либо >>. Различие в том, что при использовании > вывод команды будет записан поверх содержимого файла, а при использовании >> вывод дописывается в конец файла.
Этим очень удобно пользоваться для логирования, если вы хотите записать какие-либо данные в файл. К примеру, эта команда запишет все найденные согласно указанными параметрам файлы в файл log (он автоматически появится в той директории, в которой вы работаете):
find /home/users -name ‘file*’ >> log
Что касается конвейера, то этот инструмент позволяет использовать вывод одной команды в качестве ввода другой команды. Для этого необходимо использовать символ |:
find /home/users -name ‘file*’ | sort -r
Если вы введете данную строку, то сначала будут найдены все файлы, которые соответствуют условию, а затем командой sort они будут отсортированы в обратном порядке (из-за использования ключа -r).
Содержимое файлов
Если вы хотите посмотреть содержимое файла, то можете обратиться к команде cat — в ответ на команду вы увидите все, что содержится в файле. Если данных слишком много, используйте конвейер и команду more — она позволит просматривать содержимое постранично:
cat file1 | more
Если вам нужно не только посмотреть содержимое файла, но и отредактировать его, тогда нужно использовать одну из утилит: nano либо vim. Это текстовые редакторы, при помощи которых вы можете открыть файл, изменить и сохранить его. Несмотря на кажущееся сходство, эти утилиты имеют ряд отличий; большинство пользователей сходится во мнении, что nano представляет собой более простой редактор, в то время как vim обладает большими возможностями.
С русскоязычной документацией nano вы можете ознакомиться по этой ссылке: http://help.ubuntu.ru/wiki/nano
А документация vim доступна в этом разделе: http://help.ubuntu.ru/wiki/vim
Заключение
Существует множество различных команд и ключей, которые можно использовать в bash. В данной статье мы остановились лишь на самых основных, базовых командах, при помощи которых вы сможете выполнять операции и получать необходимую информацию.
Источник: timeweb.com