В большинстве Unix систем имеется встроенная справка в которой описаны все доступные команды. Но для того чтобы воспользоваться этой справкой нужно как минимум знать название команд, для которых хотите получить справочную информацию. Однако большинство пользователей даже приблизительно не знаю что они хотят сделать или как называется данная команда, поэтому им такая справка мало чем поможет.
В данном справочнике команды Linux разбиты по категориям и с кратким описанием и примерами, что значительно облегчит пользователю найти то что ему нужно.
Файлы и директории
Файлы и директории
cd /home | перейти в директорию /home |
cd .. | перейти в директорию уровнем выше |
cd ../.. | перейти в директорию двумя уровнями выше |
cd | перейти в домашнюю директорию |
cd ~user | перейти в домашнюю директорию пользователя user |
cd - | перейти в директорию, в которой находились до перехода в текущую директорию |
pwd | показать текущую директорию |
ls | отобразить список файлов и директорий текущей директории |
ls -f | отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип |
ls -l | показать детализированное представление файлов и директорий в текущей директории |
ls -a | показать скрытые файлы и директории в текущей директории |
ls -al | форматированный список со скрытыми директориями и файлами |
ls *[0-9]* | показать файлы и директории содержащие в имени цифры |
tree | показать дерево файлов и директорий, начиная от корня (/) |
lstree | |
mkdir dir | создать директорию dir |
mkdir dir1 dir2 | создать две директории одновременно |
mkdir -p /tmp/dir1/dir2 | создать дерево директорий |
rmdir dir | удалить директорию с именем dir |
rm file | удалить file |
rm -r dir | удалить директорию dir |
rm -f file | удалить форсированно file |
rm -rf dir | удалить форсированно каталог dir с содержимым |
rm -rf dir1 dir2 | удалить форсированно две директории с содержимым |
mv file1 file2 | переименовать или переместить file1 в file2. Если file2 существующая директория - переместить file1 в директорию file2 |
cp file1 file2 | скопировать файл file1 в файл file2 |
cp dir/* . | копировать все файлы директории dir в текущую директорию |
cp -a /tmp/dir1 . | копировать директорию dir1 со всем содержимым в текущую директорию |
cp -a dir1 dir2 | копировать директорию dir1 в директорию dir2 |
cp -r dir1 dir2 | скопировать dir1 в dir2; создаст директорию dir2, если он не существует |
ln -s file link | создать символическую ссылку link на файл или директорию file |
ln file link | создать «жёсткую» (физическую) ссылку link на файл или директорию file |
touch file | создать файл |
touch -t 1509080000 file | модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm) |
Просмотр содержимого файлов
Просмотр содержимого файлов
cat file | вывести содержимое файла 'file' на стандартное устройство вывода |
cat > file | направить стандартный ввод в 'file' |
tac file | вывести содержимое файла 'file' в обратном порядке (последняя строка становиться первой и т.д.) |
more file | постраничный вывод содержимого файла 'file' |
less file | постраничный вывод содержимого файла 'file' с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п. |
head -5 file | вывести первые пять строк файла 'file'. По умолчанию выводится десять строк |
tail -5 file | вывести последние 5 строк файла 'file'. По умолчанию выводится десять строк |
tail -f file | вывести содержимое файла 'file' по мере появления в нём текста, начинает с последних десяти строк |
Поиск файлов
Поиск файлов
find / -name file | найти файлы и директории с именем 'file'. Поиск начать с корня (/) |
find / -user user | найти файл и директорию принадлежащие пользователю 'user'. Поиск начать с корня (/) |
find /home/user -name "*.bin" | найти все файлы и директории, имена которых заканчиваются на '.bin'. Поиск начать с '/home/user' |
find /home/backups -type f -atime +30 | найти все файлы в /home/backups, время последнего обращения к которым более 30 дней |
find /home/backups/ -type f -mtime -90 | найти все файлы в /home/backups/, созданные или изменённые в течении последних 90 дней |
find /home/backups/ -type f -mtime +90 -exec rm -rfv {} \; | найти и удалить старые файлы (старше 90 дней) в директории /home/backups |
find /home/backups/ -type f -mmin +120 -exec rm -rfv {} \; | найти и удалить старые файлы (старше 240 минут) в директории /home/backups |
find /www/html -type f -exec chmod 640 {} \; | установить права для всех файлов в директории /www/html |
find /www/html -type d -exec chmod 750 {} \; | установить права для всех поддиректорий в директории /www/html: |
find /www/html -name *.rpm -exec chmod 755 {} \; | найти все файлы и директории в каталоге /www/html, имена которых оканчиваются на '.rpm', и изменить права доступа к ним |
find / -xdev -name "*.rpm" | найти все фалы и директории, имена которых оканчиваются на '.rpm', игнорируя съёмные носители, такие как cdrom, floppy и т.п. |
find file -perm -u+s | найти в директории file все файлы с выставленным SUID |
find /dir -type d -empty | найти пустые каталоги в директории 'dir' |
find /dir -type d -empty -delete | найти и удалить пустые каталоги в директории 'dir' |
find /dir -type d -empty -print0 | xargs -0 rmdir -p | |
find /dir -type d -print0 | xargs -0 rmdir -p —ignore-fail-on-non-empty | |
whereis file | показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'file' |
which file | отображает полный путь к файлу 'file' |
locate "*.ps" | найти все файлы, содержащие в имени '.ps'. Предварительно рекомендуется выполнить команду 'updatedb' |
Дисковое пространство
Дисковое пространство
df -h | отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства. Ключ -h работает не во всех *nix системах |
ls -lSr |more | выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр |
du -sh dir | подсчитывает и выводит размер, занимаемый директорией 'dir'. Ключ -h работает не во всех *nix системах |
du -sk * | sort -rn | отображает размер и имена файлов и директорий, с соритровкой по размеру |
rpm -q -a --qf '{SIZE}t%{NAME}n' | sort -k1,1n | показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.) |
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n | показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.) |
Остановка системы
Остановка системы
shutdown -h now | остановить систему |
init 0 | |
telinit 0 | |
shutdown -h hours:minutes & | запланировать остановку системы на указанное время |
shutdown -c | отменить запланированную по расписанию остановку системы |
shutdown -r now | перегрузить систему |
reboot | |
logout | выйти из системы |
Выставление/изменение полномочий на файлы
Выставление/изменение полномочий на файлы
ls -lh | просмотр полномочий на файлы и директории в текущей директории |
ls dir | pr -T2 -w$COLUMNS | вывести содержимое директории dir и разделить вывод на три колонки |
chmod ugo+rwx dir | добавить полномочия на директорию dir ugo(User Group Other)+rwx(Read Write eXecute) - всем полные права. |
chmod 777 dir | |
chmod go-rwx dir | отобрать у группы и всех остальных все полномочия на директорию dir. |
chown user file | назначить владельцем файла file пользователя user |
chown -R user dir | назначить рекурсивно владельцем директории dir пользователя user |
chgrp group file | для файла file сменить групу на group |
chown user:group file | для файла file сменить владельца на user и групу на group |
find file -perm -u+s | найти в директории file все файлы с выставленным SUID |
chmod u+s file | назначить SUID-бит файлу file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла. |
chmod u-s file | снять SUID-бит с файла file. |
chmod g+s dir | назначить SGID-бит директории dir. |
chmod g-s dir | снять SGID-бит с директории dir. |
chmod o+t dir | назначить STIKY-бит директории dir. Позволяет удалять файлы только владельцам |
chmod o-t dir | снять STIKY-бит с директории dir |
Пользователи и группы
Пользователи и группы
groupadd name | создать новую группу с именем name |
groupdel name | удалить группу name |
groupmod -n new_name old_name | переименовать группу old_name в new_name |
useradd user | создать пользователя user |
useradd -c "Comments for user" -g moderator -d /home/moderator -s /bin/bash moderator | создать пользователя moderator, назначить ему домашний каталог /home/moderator, в качестве shell'а /bin/bash, включить его в группу moderator и добавить комментарий Comments for user |
userdel -r user | удалить пользователя user вместе с его домашним каталогом |
usermod -c "New comments" -g ftp -d /ftp/user -s /bin/nologin user | изменить атрибуты пользователя user |
passwd | сменить пароль для текущего пользователя |
passwd user | сменить пароль пользователя user (это доступно только для root) |
chage -E 2015-12-31 user | установить дату окончания действия учётной записи пользователя user |
pwck | проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow |
grpck | проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group |
newgrp [-] name | изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышол из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd |
Архивирование и сжатие файлов
Архивирование и сжатие файлов
bunzip2 file.bz2 | разжимает файл file.gz |
gunzip file.gz | |
gzip file | сжимает файл file |
bzip2 file | |
gzip -9 file | сжать файл file с максимальным сжатием |
rar a file.rar file_name | создать rar-архив file.rar и включить в него файл file_name |
rar a file.rar file1 file2 dir | создать rar-архив file.rar и включить в него файлы file1, file2 и директорию dir |
unrar x file.rar | распаковать rar-архив file.rar |
tar -cvf archive.tar file | создать tar-архив archive.tar, содержащий файл file |
tar -cvf archive.tar file1 file2 dir | создать tar-архив archive.tar, содержащий файлы file1, file2 и директорию dir |
tar -tf archive.tar | показать содержимое архива archive.tar |
tar -xvf archive.tar | распаковать архив archive.tar |
tar -xvf archive.tar -C /tmp | распаковать архив archive.tar в /tmp |
tar -cvfj archive.tar.bz2 dir | создать архив и сжать его с помощью bzip2 (ключ -j работает не во всех *nix системах) |
tar -xvfj archive.tar.bz2 | разжать архив и распаковать его (ключ -j работает не во всех *nix системах) |
tar -cvfz archive.tar.gz dir | создать архив и сжать его с помощью gzip |
tar -xvfz archive.tar.gz | разжать архив и распаковать его |
zip file.zip file | создать сжатый zip-архив file.zip и включить в него файл file |
zip -r file.zip file1 file2 dir | создать сжатый zip-архив file.zip и включить в него нескольких файлов и/или директорий |
unzip file.zip | разжать и распаковать zip-архив file.zip |
Создание резервных копий (backup)
Создание резервных копий (backup)
dump -0aj -f /backup/home.bak /home | создать полную резервную копию директории /home в файл /backup/home.bak |
dump -1aj -f /backup/home0.bak /home | создать инкрементальную резервную копию директории /home в файл /backup/home0.bak |
restore -if /backup/home0.bak | восстановить из резервной копии /backup/home0.bak |
rsync -rogpav --delete /home /backup | синхронизировать /backup с /home |
rsync -rogpav -e ssh --delete /home ip_address:/tmp | синхронизировать через SSH-туннель |
rsync -az -e ssh --delete ip_address:/home/public /home/local | синхронизировать локальную директорию с удалённой директорией через SSH-туннель со сжатием |
rsync -az -e ssh --delete /home/local ip_address:/home/public | синхронизировать удалённую директорию с локальной директорией через SSH-туннель со сжатием |
dd bs=1M if=/dev/hda | gzip | ssh user@ip_address 'dd of=hda.gz' | сделать "слепок" локального диска в файл на удалённом компьютере через SSH-туннель |
tar -Puf backup.tar /home/user | создать инкрементальную резервную копию директории /home/user в файл backup.tar с сохранением полномочий |
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_address 'cd /home/share/ && tar x -p' | копирование содержимого /tmp/local на удалённый компьютер через SSH-туннель в /home/share/ |
( tar c /home ) | ssh -C user@ip_address 'cd /home/backup && tar x -p' | копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup |
tar -c /tmp/source | (cd /tmp/backup ; tar -x ) | копирование одной директории /tmp/source в другую /tmp/backup с сохранением полномочий и линков |
ind /home/user -name '*.txt' | \ xargs cp -av --target-directory=/home/backup/ --parents |
поиск в /home/user всех файлов, имена которых оканчиваются на '.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 |