Шпаргалка по командам linux shell
Файловые команды
$ ls – список файлов и каталогов в текущей директории
$ ls -l – просмотреть права доступа на файлы и каталоги в текущей директории
$ ls -al – форматированный список со скрытыми каталогами и файлами
$ cd dir – сменить текущую директорию на dir (вложенную в текущую)
$ cd – сменить на домашний каталог
$ pwd – показать текущий каталог
$ mkdir dir – создать каталог dir в текущей директории
$ rm file – удалить file
$ rm -r dir – удалить каталог dir
$ rm -f file – удалить принудительно файл file
$ rm -rf dir – удалить принудительно каталог dir со всеми содержащимися в нем файлами
$ cp file1 file2 – скопировать файл file1 в файл file2
$ cp -r dir1 dir2 – скопировать dir1 в dir2; создаст каталог dir2, если он не существует
$ mv file1 file2 – переименовать (аргумент file2, не является именем существующего каталога) или переместить file1 в file2, если file2 существующий каталог.
$ ln -s file link – создать символическую ссылку link к файлу file
$ touch file – создать file
$ cat > file – направить стандартный ввод в file
$ more file – вывести содержимое file
$ head file – вывести первые 10 строк файла file
$ tail file – вывести последние 10 строк файла file
$ tail -f file – при использовании специального ключа -f утилита tail следит за файлом: новые строки, добавляемые в конец файла другим процессом, автоматически выводятся на экран в реальном времени. Это особенно удобно для слежения за логами.
Управление процессами
$ ps – вывести краткий список текущих активных процессов
$ ps -AlF – вывести краткий список текущих активных процессов, включив выдачу всех данных
$ top – выводит список работающих в системе процессов и информацию о них. По умолчанию она в реальном времени сортирует их по нагрузке на процессор.
$ htop – улучшенный монитор работающих в системе процессов.
$ kill pid – убить процесс с id pid
$ ps axu | grep name_proc – найти информацию о процессе с именем name_proc
$ killall proc – убить все процессы с именем proc *
$ bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
$ fg – выносит на передний план последние задачи
$ fg n – вынести задачу n на передний план
Права доступа на файлы
$ chmod 0755 file – сменить права file на 0755
Примеры:
$ chmod 777 – чтение, запись, исполнение для всех
$ chmod 755 – rwx для владельца, rx для группы и остальных.
SSH
$ ssh user@host – подключиться к host как user
$ ssh -p port user@host – подключится к host на порт port как user
$ ssh-copy-id user@host – добавить публичный ключ на host для пользователя user
$ sshfs -p port user@host:/folder /media/server -o reconnect – монтирование директории '/folder' сервера как удалённой директории (требуется установка sshfs) в директорию /media/server
$ fusermount -u /media/server - размонтирование удаленной директории
оборудование
$ sudo iw dev – узнать имя беспроводного интерфейса
Поиск
$ grep pattern files – искать pattern в files
$ grep -r pattern dir – искать рекурсивно pattern в dir
$ command | grep pattern – искать pattern в выводе command
$ locate name_file – найти все файлы с именем name_file. моментально выводит список путей до этого файла в файловой системе, используя собственную базу данных для хранения имен файлов.
$ locate name_file -n 10 – найти первые 10 файлов с именем name_file. Параметр -q позволяет скрыть сообщения об ошибках.
$ locate name_file -i – писк файлов без учета регистра.
$ locate name_file -c – знать количество файлов, соответствующих заданному прототипу поиска.
$ updatedb – обновить базу данных '/var/lib/mlocate/mlocate.db' для хранения имен файлов.
$ find . name_file – поиск файлов с именем name_file в рабочем каталоге. требуется значительный период времени для получения результата.
$ find / -name 'my*' – поиск файлов в корневом каталоге, название которых начинается на 'my'.
$ find . -name 'php.ini' -exec sed -i 's/log_errors = Off/log_errors = On/g' "{}" \; – поиск всех файлов php.ini от текущего каталога и замена текста в каждом найденном файле.
$ find / -mmin -1 -print – вывести список файлов во всей файловой системе, изменённых в течение последней минуты.
$ find / -size +100M -print – вывести список файлов во всей файловой системе, чей размер больше 100 Мб.
Системная информация
$ date – вывести текущую дату и время
$ cal – вывести календарь на текущий месяц
$ uptime – показать текущий аптайм
$ w – показать пользователей онлайн
$ whoami – имя, под которым вы залогинены
$ finger user – показать информацию о user
$ uname -a – показать информацию о ядре
$ cat /proc/cpuinfo – информация ЦПУ
$ cat /proc/meminfo – информация о памяти
$ man command – показать мануал для command
$ df – показать инф. о использовании дисков
$ du – вывести размер файлового пространства, занимаемого текущим каталогом.
$ free – использование памяти и swap
$ whereis app – возможное расположение программы app
$ which app – какая app будет запущена по умолчанию
Архивация
$ tar cf file.tar files – создать tar-архив с именем file.tar содержащий files
$ tar xf file.tar – распаковать file.tar
$ tar czf file.tar.gz files – создать архив tar с сжатием Gzip
$ tar xzf file.tar.gz – распаковать tar с Gzip
$ tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2
$ tar xjf file.tar.bz2 – распаковать tar с Bzip2
$ gzip file – сжать file и переименовать в file.gz
$ gzip -d file.gz – разжать file.gz в file
MYSQL
$ mysqldump -u user -p database > dump.sql - сделать дамп базы
$ mysql -u user -p database < dump.sql - залить дамп базы
Сеть
$ ping host – пропинговать host и вывести результат
$ whois domain – получить информацию whois для domain
$ dig domain – получить DNS информацию domain
$ dig -x host – реверсивно искать host
$ wget file – скачать file
$ wget -c file – продолжить остановленную закачку
$ sudo arp-scan --interface=wlp2s0 --localnet – сканирование локальной сети, используя сетевой интерфейс wlp2s0
$ ls /sys/class/net – вывести список сетевых интерфейсов
Установка пакетов
Установка из исходников:
$ ./configure
$ make
$ make install
$ dpkg -i pkg.deb – установить пакет (Debian) 'pkg.deb', находящийся в текущей директории
$ rpm -Uvh pkg.rpm – установить пакет (RPM)
Команда apt:
$ sudo apt-get install пакет - установка пакета
$ sudo apt-get install пакет1 пакет2 - установка нескольких пакетов
$ sudo apt-get remove пакет - удаление пакета. удаляет пакет полностью только в том случае, если ни один из его файлов не был изменен после установки, иначе измененные файлы остаются нетронутыми. Естественно, конфигурационные файлы меняются почти всегда, поэтому apt-get оставляет после себя кучу мусора.
$ sudo apt-get purge - удаление пакета полностью вместе с измененными файлами.
$ sudo apt-get update - обновление индекса всех пакетов в системе
$ sudo apt-get upgrade - обновление всех пакетов в системе
$ sudo apt-get check - проверка наличия нарушенных зависимостей
$ sudo apt-cache show пакет - просмотр информации о пакете
$ apt-cache search маска - поиск пакета (sudo apt-cache search php | grep zip)
$ sudo apt-get install --reinstall пакет - вернуть пакет к начальному состоянию
$ apt-get --help – получение справки
Пользователи
$ cat /etc/passwd – посмотреть список пользователей
$ sed 's/:.*//' /etc/passwd – отфильтровать вывод файле /etc/passwd, если необходим вывод только имен пользователей.
$ chown -R admin:adminweb /var/www/sitenamecom/data/www/ – рекурсивно изменить владельца для файлов и директорий в директории '/var/www/sitenamecom/data/www/'. Пользователя (admin) и группы (adminweb) можно указать цифирями (1058:1060).
Горячие клавиши PuTTY
Копирование и вставка текста
Для копирования текста из консоли PuTTY нужно просто выделить текст - он автоматически скопируется в буфер обмена. Для вставки текста в консоль используется сочетание клавиш Shift+Insert, либо можно просто нажать в консоли правой кнопкой мыши.
Редактирование вводимой команды
Tab – автодополнение имени файла или директории
Ctrl+E – переместить курсор в конец вводимой строки
Alt+F – переместить курсор к следующему слову во вводимой строке
Alt+B – переместить курсор к предыдущему слову во вводимой строке
Ctrl+U – удалить все символы слева от курсора
Ctrl+K – удалить все символы справа от курсора
Ctrl+T – поменять последние два символа перед курсором
Alt+BackSpace, Ctrl+W – удалить слово, предшествующее курсору
Прокрутка текста
Shift+PageUp – прокрутка текста вверх
Shift+PageDown – прокрутка текста вниз
Ctrl+PageUp – построчная прокрутка текста вверх
Ctrl+PageDown – построчная прокрутка текста вниз
Дополнительно
Ctrl+C – прервать исполнение текущей команды
Ctrl+L – очистить экран
примеры
$ systemctl status fail2ban.service – просмотр детализированной информации о сервисе
$ egrep -c '(vmx|svm)' /proc/cpuinfo – узнать, поддерживает ваш процессор аппаратную виртуализацию (0 - не поддерживает)
$ sudo chmod 777 -f /path/to/dir/ -cvR – рекурсивное изменение прав доступа к директории и вложенными в нее файлами (-c - выводить информацию обо всех изменениях; -v - выводить максимум информации; -R - включить поддержку рекурсии;)
$ tail -f /var/log/name.log – просмотр логов в реальном времени
$ grep -r "needle string" /path/to/dir/ – рекурсивный поиск строки во всех файлах директории
$ sudo rm -r -f /path/to/dir/ – рекурсивное удаление директории