Шпаргалка по Bash
Консоль — удобный и быстрый инструмент управления компьютером. Вводим команду текстом, получаем результат или сообщение об ошибке с указанием в чём ошибка.
Ввод начинается с указания программы (которую вызываем) и может быть дополнен аргументами и ключами, указывающими программе что именно нужно сделать или как нужно работать. Пример с аргументом: ls build/css
— вызываем утилиту ls
, указываем ключ build/css
— будет показано содержимое указанной в аргументе папки. Пример с ключом: git --version
— взвываем программу git
, передаем ключ --version
— будет показана версия программы (если установлена).
Работая с консолью, мы всегда «находимся» в какой-то папке (она указана в приглашении командной строки). Если там написано ~
, то мы в папке пользователя (зависит от настроек Windows, чаще всего это C:/Users/ВАШЕИМЯПОЛЬЗОВАТЕЛЯ/
), если там /d/projects
, мы в папке D:/projects
.
Файловая система
Просмотр содержимого папки
ls # показать содержимое папки ls -a # то же, но показывать и скрытые файлы и папки ls -a -1 # то же, но в один столбец ls -hF -1 --sort=extension # показать содержимое папки «красиво, в один столбец» ls build/css # показать содержимое папки ТЕКУЩАЯ_ПАПКА/build/css ls /d/projects # показать содержимое папки D:/projects
Переход по папкам
Пользователь всегда находится в какой-то папке, она (или полный путь) всегда показана до области ввода команд.
cd projects # переход в папку projects, которая есть в текущей папке cd /d/projects # windows: переход в папку projects, расположенную по адресу D:/projects cd /c/Program\ Files # windows: переход в C/:Program Files cd .. # переход к родительской папке cd - # переход к последней рабочей папке cd !$ # переход в новосозданную папку (после mkdir)
Чтобы не набирать имя папки целиком, наберите первые пару символов и нажмите Tab — произойдет автодополнение (если нет двух папок, начинающихся с введенных символов, иначе будут показаны сами эти папки). Справедливо для любой команды.
Создание папок и файлов
mkdir project # создать папку с именем «project» mkdir project project/css project/js # создать несколько папок mkdir -p project/{css,js} # то же, что выше touch index.html # создать файл touch index.html css/style.css js/script.js # создать файлы (папки css/ и js/ должны уже существовать)
Копирование файлов
cp index.html catalog.html # копирование файла index.html в тот же каталог с переименованием в catalog.html cp index.html old/ # копирование файла index.html в папку old/ (все произойдет в текущей папке) cp temp/ temp2/ -r # дублирование каталога
Переименование или перемещение файлов
mv index.html old # перемещение файла в папку mv index.html old/new_name.txt # перемещение файла в папку с переименованием файла mv order.txt orderNew.txt # переименовать файл
Удаление папок и файлов
rm ghost.png # удалить файл rm -rf old # удалить папку и всё из нее
Разные мелочи
Подборка команд, показывающих бОльшую скорость работы с консолью, чем с GUI или просто удобных команд. Многие из них могут быть реализованы различными путями с GUI, что ничуть не умаляет удобства консоли.
rm -rf node_modules && npm i # выполнение первой части команды (до &&) и, при отсутствии ошибок, второй части (после &&) pwd # «где я?» cat ~/.bash_profile # вывести в консоль содержимое файла ls -a >> file.txt # записать в file.txt результат вывода команды ls -a echo 'some text' >> readme.md # дописать строку в конец файла df -h # показать статистику использования пространства на дисках grep -i -n --color 'carousel' index.html css/style.css # найти слово carousel в двух указанных файлах (с игнором регистра), вывести строки с этим словом и номера строк (искомое слово подсветить) grep word -r project # найти слово word во всех файлах в папке project find . -iname '*ind*' # найти в текущей папке (и подпапках) все файлы, имена которых содержат ind и показать списком
Алиасы
Для команд можно создавать алиасы (короткие синонимы команд). Для этого в папке пользователя (OSX: /Users/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.bash_profile
, Windows: C:/Users/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.bash_profile
) нужно вписать строки, наподобие alias pro='cd /d/projects'
(одна строка в файле — один алиас). Если файла .bash_profile
нет, его можно создать. Это обычный текстовой файл.