whoami #вывести имя под которым Вы зарегистрированы
date #вывести дату и время
time <имя программы> #выполнить программу или команду и получить информацию о времени,
#нужном для ее выполнения
who #определить кто из пользователей работает на машине
uname -a #вывести информацию о версии операционной системы
cat /etc/issue #показать версию операционной системы (12.04, 13.04 etc.)
lsb_release -a #название дистрибутива и версия
uname -m #узнать, сколько бит в linux ОС
free #вывести информацию по использованию памяти
df -h #вывести информацию о свободном и используемом месте на дисках
uptime #показывает текущее время, время, прошедшее после загрузки ОС, количество текущих
#пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут
top (htop) #выводит список работающих в системе процессов и информацию о них
ps axu | grep php #список процессов, в имени которых встречается php
ps aux | head -n 1; ps aux | grep :searchd #процессы с пояснением параметров сверху
netstat -lnp | grep :9000 #узнать, что висит на 9000 порту
netstat -luntp #показывает все открытые порты с использующими их приложениями
lsusb #информация об устройствах, подключенных через USB
lscpu #характеристики процессора
Здесь я только в кратце опишу основные команды. Про большинство команд можно узнать подробнее в интерактивном режиме, обратившись к справочной системе Linux с помощью команды man. Чтобы легче запомнить, от слова manual:
man <имя изучаемой команды>
Для выполнение некоторых команд, например задание прав доступа на системные файлы и многое другое, нужны права суперпользователя. Что бы выполнить команду от имени суперпользователя, нужно перед названием команды написать sudo(например: sudo service nginx restart). В некоторых debian системах, sudo может не быть установлен по умолчанию (но его можно установить apt-get install sudo). Для установки sudo нужно авторизоваться по root`ом:
su -
На запрос пароля нужно ввести пароль суперпользователя. После чего любая команда будет выполняться от суперпользователя root.
eugene@PCname:~$ su - Пароль:
root@PCname:~# <команда, которая выполнится от имени root>
Общие команды Linux
Тут представлен список полезных команд, которые не вошли в другие разделы.
sudo shutdown -h now #выключить компьютер сейчас
sudo shutdown -h 90 #выключить компьютер через 90 мин.
sudo reboot #перезагрузить компьютер
wget --convert-links -r http://www.linux.org/ #копирование сайта целиком и конвертирование ссылок для автономной работы
#копирование происходит на 5 уровней в глубину
!! #выполнить последнюю выполненную команду
history | tail -50 #показать последние 50 набранных команд
passwd #меняет пароль текущего пользователя
cal -3 #показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь)
ctrl + r #поиск по истории набранных комманд, чтобы выполнить снова (ctrl+r - чтобы перейти к след. результату))
Работа с файлами и директориями Linux
ls #показать список файлов в текущем каталоге (list)
ls -la <имя каталога> #список файлов в каталоге <имя каталога>, включая скрытые
pwd #выводит текущий путь (команда вывода текущей директории)
cd [каталог] #cменить текущий каталог (change directory)
cp <что_копировать> <куда_копировать> #копировать файлы (copy)
mv <что_перемещать> <куда_перемещать> #переместить или переименовать файл (move)
mkdir <каталог> #создать новый каталог (make directory)
rmdir <каталог> #удалить пустой каталог (remove directory)
rm <файлы> #удалить файлы (remove)
rm -rf <имя каталога> #удаление директории вместе с вложенными файлами
locate /var/www*index.php #найти все файлы с названием, заканчивающимся на index.php
#в директории /var/www
tail <имя файла> #выводит конец файла. Удобно при работе с логами и большими файлами
du . -bh | more #вывод на экран информации о размере файлов и каталогов, начиная с текущего каталога
sudo chmod 777 -R ~/Общедоступные #разрешение на чтение/запись/исполнение для всех на каталог ~/Общедоступные
# -R - рекурсивно, то есть и на все вложенные файлы и папки
sudo chown <имя пользователя> <имя файла> #задать владельца файла
>filename #делает filename пустым файлом, т.е. стирает содержимое
touch filename #создаёт пустой файл, также меняет время последнего изменения файла
Команды Linux, дающие информацию о системе
whoami #вывести имя под которым Вы зарегистрированы
date #вывести дату и время
time <имя программы> #выполнить программу или команду и получить информацию о времени,
#нужном для ее выполнения
who #определить кто из пользователей работает на машине
uname -a #вывести информацию о версии операционной системы
cat /etc/issue #показать версию операционной системы (12.04, 13.04 etc.)
lsb_release -a #название дистрибутива и версия
uname -m #узнать, сколько бит в linux ОС
free #вывести информацию по использованию памяти
df -h #вывести информацию о свободном и используемом месте на дисках
uptime #показывает текущее время, время, прошедшее после загрузки ОС, количество текущих
#пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут работы после загрузки,
#количество текущих пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут
top (htop) #выводит список работающих в системе процессов и информацию о них
ps axu | grep php #список процессов, в имени которых встречается php
ps aux | head -n 1; ps aux | grep :searchd #процессы с пояснением параметров сверху
netstat -lnp | grep :9000 #узнать, что висит на 9000 порту
netstat -luntp #показывает все открытые порты с использующими их приложениями
lsusb #информация об устройствах, подключенных через USB
lscpu #характеристики процессора
Как завершить какой-нибудь процесс? Если во время вывода top нажать k (от слова kill), то будет предложено
PID to kill:
нужно ввести идентификатор (PID) процесса и затем нажать enter. Это нечто вроде диспетчера задач в Windows.
Работа с архивами Linux
tar cf primer.tar /home/primer.txt #создать tar архив с именем primer.tar,
#содержащий /home/primer.txt
tar czf primer.tar.gz /home/primer.txt #cоздать tar-архив с сжатием Gzip по
#имени primer.tar.gz
tar xf primer.tar #распаковать архив primer.tar в текущую папку
tar xzf primer.tar.gz #распаковать tar-архив с Gzip
tar xjf primer.tar.bz #распаковать tar-архив с Bzip2
Примеры поиска текста и файлов в Linux
grep -rl 'что_ищем' /путь #искать файлы рекурсивно с текстом
#'что_ищем' по пути '/путь'
less ~/Документы/http.txt | grep -A 2 'skype' #поиск по файлу ~/Документы/http.txt,
#выведет строку совпадения + 2 следующие строки
tail -f -n100 ~/logs/php-error.log #очень удобная фича для прочтения логов
#в реальном времени выводит 100 последних строк файла
find . -name "*.php" -mtime -1 -print #рекурсивный поиск файлов по паттерну (маске) '*.php'
#которые изменялись за последние сутки
find /var/www/ -mtime -10 #поиск файлов которые были изменены за последние 10 дней
find /var/www/ -mtime -10 > filename.txt #записать вывод в файл
find . -perm 777 | xargs rm #найти все файлы с правами 777 и удалить их
find . -name cache | xargs chmod -R 777 #найти каталог cache и задать ему права 777
Выполнить куски кода в командной строке (php, python):
php -r "var_dump(strlen('hello'));"
python -c "print('hello');"
Это неполный список команд, которые уже очень пригодились мне. По мере изучения linux пост будет пополняться другими командами.