You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bash (Bourne again shell, каламбур «Born again» shell — «возрожденный» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.
Представляет собой командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение имен файлов и каталогов, подстановку вывода результата команд, переменные, контроль над порядком выполнения, операторы ветвления и цикла. Ключевые слова, синтаксис и другие основные особенности языка были заимствованы из sh. Другие функции, например, история, были скопированы из csh и ksh. Bash в основном соответствует стандарту POSIX, но с рядом расширений.
Горячие клавиши
Сочетание
Описание
Tab
Автодополнение строки за курсором
!!
Повторить последнюю команду
Ctrl+a
Перемещает курсор в начало строки (эквивалентно клавише Home)
Ctrl+b
Перемещает курсор на один символ назад (эквивалентно клавише ←)
Ctrl+r
Поиск по набранным ранее командам
Ctrl+c
Посылает сигнал SIGINT текущему заданию, который обычно (но не всегда) прекращает и закрывает его
Ctrl+d
Удаляет текущий символ (только если есть текст на текущей строке) (эквивалентно клавише Delete)
Ctrl+e
Перемещает курсор в конец строки (эквивалентно клавише End)
Ctrl+f
Перемещает курсор на один символ вперед (эквивалентно клавише →)
Ctrl+l
Очищает содержимое экрана (эквивалентно команде clear)
Ctrl+o
Выполняет найденную команду в истории, и выбирает следующую строку относительно текущей строки в истории для того, чтобы отредактировать
Ctrl+q
Возобновить вывод процесса
Ctrl+s
Приостановить вывод процесса (stop)
Ctrl+t
Обмен местами соседних символов
Ctrl+u
Очищает содержание строки до курсора и копирует его в буфер обмена экземпляра bash (kill ring)
Ctrl+w
Убирает слово до курсора и копирует его в буфер обмена экземпляра bash (kill ring)
Ctrl+z
Посылает сигнал SIGTSTP текущему заданию, который приостанавливает его выполнение, и возобновляет прием команд. Для возобновления его выполнения в фоновом режиме можно ввести команду bg. Для того, чтобы вернуть его из фонового режима или приостановки, можно выполнить fg
Ctrl+/
Прервать текущий процесс с дампом памяти (core dump), послав ему сигнал
Alt+>
переход к последней команде в истории
Alt+b
(назад) перемещает курсор назад на одно слово (эквивалентно клавише Ctrl+←)
Alt+d
Сокращает слово после курсора
Alt+f
(вперед) перемещает курсор вперед на одно слово (эквивалентно клавише Ctrl+→)
Alt+t
Меняет два слова перед курсором местами
Alt+.
Добавляет последний аргумент предыдущей команды
Alt+c
Заменить букву под курсором на заглавную
Alt+l
Заменить букву под курсором на строчную
Ctrl+xCtrl+x
Переносит курсор к началу строки от текущей позиции, и обратно
Ctrl+xCtrl+e
Редактирует текущую строку в программе $EDITOR, или vi, если не предопределено
Ctrl+xCtrl+v
Вывод на экран информации о версии текущего экземпляра bash
Системная информация
Команда
Описание
arch
отобразить архитектуру компьютера
uname -r
отобразить используемую версию ядра
hdparm -i /dev/hda
вывести характеристики жесткого диска
cat /proc/cpuinfo
отобразить информацию о процессоре
cat /proc/meminfo
проверить использование памяти
cat /proc/net/dev
показать сетевые интерфейсы и статистику по ним
cat /proc/mounts
отобразить смонтированные файловые системы
date
вывести системную дату
Выключение, перезагрузка и выход из системы
Команда
Описание
shutdown -h now
остановить систему
shutdown -h hours:minutes &
запланировать остановку системы на указанное время
shutdown -c
отменить запланированную по расписанию остановку системы
shutdown -r now
перегрузить систему
reboot
перегрузить систему
logout
выйти из системы
Файлы и директории
Команда
Описание
cd /home
перейти в директорию '/home'
cd
перейти в домашнюю директорию
pwd
показать текущую директорию
ls
отобразить содержимое текущей директории
ls -l
показать детализированое представление файлов и директорий в текущей директории
ls -a
показать скрытые файлы и директории в текущей директории
tree
показать дерево файлов и директорий, начиная от корня (/)
mkdir dir1
создать директорию с именем 'dir1'
mkdir -p /tmp/dir1/dir2
создать дерево директорий
rm -f file1
удалить файл с именем 'file1'
rmdir dir1
удалить директорию с именем 'dir1'
rm -rf dir1
удалить директорию с именем 'dir1' и рекурсивно все ее содержимое
mv dir1 new_dir
переименовать или переместить файл или директорию
cp file1 file2
сопировать файл file1 в файл file2
cp dir/* .
копировать все файлы директории dir в текущую директорию
cp -a dir1 dir2
копировать директорию dir1 в директорию dir2
ln -s file1 lnk1
создать символическую ссылку на файл или директорию
ln file1 lnk1
создать "жесткую" (физическую) ссылку на файл или директорию
touch -t 0712250000 fileditest
модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)
Поиск файлов
Команда
Описание
find / -name file1
найти файлы и директории с именем file1. Поиск начать с корня (/)
find / -user user1
найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
find /home/user1 -name "*.bin"
Найти все файлы и директории, имена которых оканчиваются на '. bin'. Поиск начать с '/ home/user1'
find /usr/bin -type f -atime +100
найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней
find /usr/bin -type f -mtime -10
найти все файлы в '/usr/bin', созданные или измененные в течении последних 10 дней
whereis halt
показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt'
which halt
отображает полный путь к файлу 'halt'
Дисковое пространство
Команда
Описание
df -h
отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства
ls -lSr | more
выдает список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр
du -sh dir1
подсчитывает и выводит размер, занимаемый директорией 'dir1'
du -sk * | sort -rn
отображает размер и имена файлов и директорий, с сортировкой по размеру
создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
установить дату окончания действия учетной записи пользователя user1
groupadd group_name
создать новую группу с именем group_name
groupdel group_name
удалить группу group_name
groupmod -n new_group_name old_group_name
переименовать группу old_group_name в new_group_name
Выставление/изменение полномочий на файлы
Команда
Описание
ls -lh
просмотр полномочий на файлы и директории в текущей директории
chmod ugo+rwx directory1
добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) - всем полные права. Аналогичное можно сделать таким образом "chmod 777 directory1"
chmod go-rwx directory1
отобрать у группы и всех остальных все полномочия на директорию directory1
создать rar-архив 'file1.rar' и включить в него файл test_file
rar a file1.rar file1 file2 dir1
создать rar-архив 'file1.rar' и включить в него file1, file2 и dir1
unrar x file1.rar
распаковать rar-архив
tar -cvf archive.tar file1
создать tar-архив archive.tar, содержащий файл file1
tar -tf archive.tar
показать содержимое архива
tar -cvfz archive.tar.gz dir1
создать архив и сжать его с помощью gzip
tar -xvfz archive.tar.gz
разжать архив и распаковать его
zip file1.zip file1
создать сжатый zip-архив
unzip file1.zip
разжать и распаковать zip-архив
APT - средство управление пакетами (Debian, Ubuntu и тп)
Команда
Описание
apt-get install package_name
установить / обновить пакет
apt-get update
получить обновленные списки пакетов
apt-get upgrade
обновить пакеты, установленные в систему
apt-get remove package_name
удалить пакет, установленный в систему с сохранением файлов конфигурации
apt-get purge package_name
удалить пакет, установленный в систему с удалением файлов конфигурации
apt-get clean
удалить загруженные архивные файлы пакетов
apt-get autoclean
удалить старые загруженные архивные файлы пакетов
Просмотр содержимого файлов
Команда
Описание
cat file1
вывести содержимое файла file1
tac file1
вывести содержимое файла file1 в обратном порядке
more file1
постраничный вывод содержимого файла file1
less file1
постраничный вывод содержимого файла file1, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п.
head -2 file1
вывести первые две строки файла file1
tail -2 file1
вывести последние две строки файла file1
Манипуляции с текстом
Команда
Описание
grep Aug /var/log/messages
из файла '/var/log/messages' отобрать и вывести строки, содержащие "Aug"
grep ^Aug /var/log/messages
из файла '/var/log/messages' отобрать и вывести строки, начинающиеся на "Aug"
grep Aug -R /var/log/*
отобрать и вывести строки, содержащие "Aug", во всех файлах, находящихся в директории /var/log и ниже
sed 's/stringa1/stringa2/g' example.txt
в файле example.txt заменить "string1" на "string2", результат вывести
sed '/^$/d' example.txt
удалить пустые строки из файла example.txt
sed '/ *#/d; /^$/d' example.txt
удалить пустые строки и комментарии из файла example.txt
sed -e '1d' result.txt
удалить первую строку из файла example.txt
sed -n '/string1/p'
отобразить только строки содержашие "string1"
sed -e 's/ *$//' example.txt
удалить пустые символы в в конце каждой строки
sed -e 's/string1//g' example.txt
удалить строку "string1" из текста не изменяя всего остального
sed -n '1,8p;5q' example.txt
взять из файла с первой по восьмую строки и из них вывести первые пять
sed -e 's/0*/0/g' example.txt
заменить последовательность из любого количества нулей одним нулем
cat -n file1
пронумеровать строки при выводе содержимого файла
cat example.txt | awk 'NR%2==1'
при выводе содержимого файла, не выводить четные строки файла
echo a b c | awk '{print $1}'
вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
echo a b c | awk '{print $1,$3}'
вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
sort file1 file2
отсортировать содержимое двух файлов
sort file1 file2 | uniq -u
отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
sort file1 file2 | uniq -d
отсортировать содержимое двух файлов, отображая только повторяющиеся строки
comm -1 file1 file2
сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1'
comm -3 file1 file2
сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
Сеть
Команда
Описание
ifconfig eth0
показать конфигурацию сетевого интерфейса eth0
ifup eth0
активировать (поднять) интерфейс eth0
ifdown eth0
деактивировать (опустить) интерфейс eth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0
выставить интерфейсу eth0 ip-адрес и маску подсети
разрешить имя www.yandex.ru хоста в ip-адрес и наоборот
ip link show
отобразить состояние всех интерфейсов
netstat -tupn
отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имен в ip-адреса и PID'ы и имена процессов, обеспечивающих эти соединения
netstat -tupln
отображает все сетевые соединения по протоколам TCP и UDP без разрешения имен в ip-адреса и PID'ы и имена процессов, слушающих порты
tcpdump tcp port 80
отобразить весь трафик на TCP-порт 80 (обычно - HTTP)
Трассировка маршрута до указанного хоста (www.ya.ru), аналог tracert в Windows. В некоторых дистрибутивах установлен по-умолчанию только traceroute6 и придется доустанавливать вручную.
Мониторинг и отладка
Команда
Описание
top
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)
ps -eafw
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
ps -e -o pid,args --forest
вывести PID'ы и процессы в виде дерева
pstree
отобразить дерево процессов
kill -9 98989
"убить" процесс с PID 98989 "на смерть" (без соблюдения целостности данных)
kill -TERM 98989
Корректно завершить процесс с PID 98989
lsof -p 98989
отобразить список файлов, открытых процессом с PID 98989
lsof /home/user1
отобразить список открытых файлов из директории /home/user1
strace -f -e open ls > /dev/null
вывести вызовы бибилотек
last reboot
отобразить историю перезагрузок системы
last user1
отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней
free -m
показать состояние оперативной памяти в мегабайтах
tail /var/log/dmesg
вывести десять последних записей из журнала загрузки ядра
tail /var/log/messages
вывести десять последних записей из системного журнала
Прочие команды
Команда
Описание
apropos …keyword
выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
man ping
вызов руководства по работе с программой, в данном случае, - ping