Очень полезные команды Linux (2)
Команда | Описание |
---|---|
RPM пакеты (Fedora, Red Hat и тому подобное) | |
rpm -ivh package.rpm | установить пакет с выводом сообщений и прогресс-бара |
rpm -ivh - - nodeps package.rpm | установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей |
rpm -U package.rpm | обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен |
rpm -F package.rpm | обновить пакет только если он установлен |
rpm -e package_name.rpm | удалить пакет |
rpm -qa | отобразить список всех пакетов, установленных в системе |
rpm -qa | grep httpd | среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени “httpd” |
rpm -qi package_name | вывести информацию о конкрентном пакете |
rpm -qg “System Environment/Daemons” | отобразить пакеты входящие в группу пакетов |
rpm -ql package_name | вывести список файлов, входящих в пакет |
rpm -qc package_name | вывести список конфигурационных файлов, входящих в пакет |
rpm -q package_name - - whatrequires | вывести список пакетов, необходимых для установки конкретного пакета по зависимостям |
rpm -q package_name - - whatprovides | show capability provided by a rpm package |
rpm -q package_name - - scripts | отобразит скрипты, запускаемые при установке/удалении пакета |
rpm -q package_name - - changelog | вывести историю ревизий пакета |
rpm -qf /etc/httpd/conf/httpd.conf | проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла. |
rpm -qp package.rpm -l | отображает список файлов, входящих в пакет, но ещё не установленных в систему |
rpm - - import /media/cdrom/RPM-GPG-KEY | ипортировать публичный ключ цифровой подписи |
rpm - - checksig package.rpm | проверит подпись пакета |
rpm -qa gpg-pubkey | проверить целостность установленного содержимого пакета |
rpm -V package_name | проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета |
rpm -Va | проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью! |
rpm -Vp package.rpm | проверить пакет, который ещё не установлен в систему |
rpm2cpio package.rpm | cpio - - extract - - make-directories *bin* | извлечь из пакета файлы содержащие в своём имени bin |
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm | установить пакет, собранный из исходных кодов |
rpmbuild - - rebuild package_name.src.rpm | собрать пакет из исходных кодов |
YUM – средство обновления пакетов(Fedora, RedHat и тому подобное) | |
yum install package_name | закачать и установать пакет |
yum update | обновить все пакеты, установленные в систему |
yum update package_name | обновить пакет |
yum remove package_name | удалить пакет |
yum list | вывести список всех пакетов, установленных в систему |
yum search package_name | найти пакет в репозитории |
yum clean packages | очисть rpm-кэш, удалив закачанные пакеты |
yum clean headers | удалить все заголовки файлов, которые система использует для разрешения зависимостей |
yum clean all | очисть rpm-кэш, удалив закачанные пакеты и заголовки |
DEB пакеты (Debian, Ubuntu и тому подобное) | |
dpkg -i package.deb | установить / обновить пакет |
dpkg -r package_name | удалить пакет из системы |
dpkg -l | показать все пакеты, установленные в систему |
dpkg -l | grep httpd | среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени “httpd” |
dpkg -s package_name | отобразить инфрмацию о конкретном пакете |
dpkg -L package_name | вывести список файлов, входящих в пакет, установленный в систему |
dpkg - - contents package.deb | отобразить список файлов, входящих в пакет, который ешё не установлен в систему |
dpkg -S /bin/ping | найти пакет, в который входит указанный файл. |
APT – средство управление пакетами (Debian, Ubuntu и тому подобное) | |
apt-get install package_name | установить / обновить пакет |
apt-cdrom install package_name | установить / обновить пакет с cdrom’а |
apt-get update | получить обновлённые списки пакетов |
apt-get upgrade | обновить пакеты, установленные в систему |
apt-get remove package_name | удалить пакет, установленный в систему с сохранением файлов конфигурации |
apt-get purge package_name | удалить пакет, установленный в систему с удалением файлов конфигурации |
apt-get check | проверить целостность зависимостей |
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 на стандартное устройство вывода. По-умолчанию выводится десять строк |
tail -f /var/log/messages | выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста. |
Манипуляции с текстом | |
cat file | grep -i “Criteria” > result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый |
cat file | grep -i “Criteria” » result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан |
grep Aug /var/log/messages | из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие “Aug” |
grep ^ Aug /var/log/messages | из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, начинающиеся на “Aug” |
grep [0-9] /var/log/messages | из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие цифры |
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 |
echo ‘test’ | tr ‘[:lower:]’ ‘[:upper:]’ | преобразовать символы из нижнего регистра в верхний |
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 -n ‘5p;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}’ | вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции |
paste file1 file2 | объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m |
paste -d ‘+’ file1 file2 | объединить содержимое file1 и file2 в виде таблицы с разделителем “+” |
sort file1 file2 | отсортировать содержимое двух файлов |
sort file1 file2 | uniq | отсортировать содержимое двух файлов, не отображая повторов |
sort file1 file2 | uniq -u | отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода) |
sort file1 file2 | uniq -d | отсортировать содержимое двух файлов, отображая только повторяющиеся строки |
comm -1 file1 file2 | сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1’ |
comm -2 file1 file2 | сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2’ |
comm -3 file1 file2 | сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах |
Преобразование наборов символов и файловых форматов | |
dos2unix filedos.txt fileunix.txt | конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки) |
unix2dos fileunix.txt filedos.txt | конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки) |
recode ..HTML < page.txt > page.html | конвертировать содержимое тестового файла page.txt в html-файл page.html |
recode -l | more | вывести список доступных форматов |
Анализ файловых систем | |
badblocks -v /dev/hda1 | проверить раздел hda1 на наличие bad-блоков |
fsck /dev/hda1 | проверить/восстановить целостность linux-файловой системы раздела hda1 |
fsck.ext2 /dev/hda1 | проверить/восстановить целостность файловой системы ext2 раздела hda1 |
e2fsck /dev/hda1 | |
e2fsck -j /dev/hda1 | проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же |
fsck.ext3 /dev/hda1 | проверить/восстановить целостность файловой системы ext3 раздела hda1 |
fsck.vfat /dev/hda1 | проверить/восстановить целостность файловой системы fat раздела hda1 |
fsck.msdos /dev/hda1 | |
dosfsck /dev/hda1 | |
Форматирование файловых систем | |
mkfs /dev/hda1 | создать linux-файловую систему на разделе hda1 |
mke2fs /dev/hda1 | создать файловую систему ext2 на разделе hda1 |
mke2fs -j /dev/hda1 | создать журналирующую файловую систему ext3 на разделе hda1 |
mkfs -t vfat 32 -F /dev/hda1 | создать файловую систему FAT32 на разделе hda1 |
fdformat -n /dev/fd0 | форматирование флоппи-диска без проверки |
mkswap /dev/hda3 | создание swap-пространства на разделе hda3 |
swap-пространство | |
mkswap /dev/hda3 | создание swap-пространства на разделе hda3 |
swapon /dev/hda3 | активировать swap-пространство, расположенное на разделе hda3 |
swapon /dev/hda2 /dev/hdb3 | активировать swap-пространства, расположенные на разделах hda2 и hdb3 |
Создание резервных копий (backup) | |
dump -0aj -f /tmp/home0.bak /home | создать полную резервную копию директории /home в файл /tmp/home0.bak |
dump -1aj -f /tmp/home0.bak /home | создать инкрементальную резервную копию директории /home в файл /tmp/home0.bak |
restore -if /tmp/home0.bak | восстановить из резервной копии /tmp/home0.bak |
rsync -rogpav - - delete /home /tmp | синхронизировать /tmp с /home |
rsync -rogpav -e ssh - - delete /home ip_address:/tmp | синхронизировать через SSH-туннель |
rsync -az -e ssh - - delete ip_addr:/home/public /home/local | синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием |
rsync -az -e ssh - - delete /home/local ip_addr:/home/public | синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием |
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’ | сделать “слепок” локального диска в файл на удалённом компьютере через ssh-туннель |
tar -Puf backup.tar /home/user | создать инкрементальную резервную копию директории ‘/home/user’ в файл backup.tar с сохранением полномочий |
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’ | копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/ |
( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’ | копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home |
tar cf – . | (cd /tmp/backup ; tar xf – ) | копирование одной директории в другую с сохранением полномочий и линков |
find /home/user1 -name ‘*.txt’ | \ xargs cp -av - - target-directory=/home/backup/ - - parents | поиск в /home/user1 всех файлов, имена которых оканчиваются на ‘.txt’, и копирование их в другую директорию |
find /var/log -name ‘*.log’ | tar cv - - files-from=- | bzip2 > log.tar.bz2 | поиск в /var/log всех файлов, имена которых оканчиваются на ‘.log’, и создание bzip-архива из них |
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 | создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск |
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 | восстановить MBR с флоппи-диска на /dev/hda |