42 команды Linux: обязательный минимум

Материал из Вики ИТ мехмата ЮФУ
Версия от 12:53, 15 октября 2009; Константин Денин (обсуждение | вклад) (cp, mv, rm)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Файлы и каталоги, пользователи и группы, права доступа

pwd

Команда pwd (print working directory) выводит полный путь к текущему каталогу.

$pwd
/home/adam
$

cd

С помощью команды cd (change directory) можно перемещаться по дереву каталогов. Для этой команды необходим один параметр — целевой каталог. Можно использовать относительный путь (относительно текущего каталога) и абсолютный (относительно корня). Абсолютный всегда начинается с корня и дальше по иерархии каталогов (/home/adam), а относительный — с одного из подкаталогов текущего каталога либо строки «..», которая обозначает переход в родительский каталог (как обычно, через «/» можно повторять эту комбинацию, перемещаясь всё выше по дереву каталогов).

$cd /usr/bin
$pwd
/usr/bin

С помощью тильды (~) можно ссылаться на домашнюю папку текущего пользователя.

$cd ~/video
$pwd
/home/adam/video

Чтобы перейти домашний каталог можно также (помимо ~) использовать cd без параметров.

$cd
$pwd
/home

ls

ls отобразить содержимое текущей директории в алфавитном порядке
ls -F отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип
ls -l показать детализированное представление файлов и директорий в текущей директории
ls -a показать скрытые файлы и директории в текущей директории
ls *[0-9]* показать файлы и директории содержащие в имени цифры
ls -t показать файлы, отсортировав их по времени последнего обновления
ls -r показать файлы, отсортировав их в обратном порядке от выбранного

mkdir

mkdir (make) создает каталог. Ей передается один параметр — путь к каталогу.

Примеры
mkdir dir1 создать директорию с именем 'dir1'
mkdir dir1 dir2 создать две директории одновременно
mkdir -p /tmp/dir1/dir2 создать дерево директорий

cp, mv, rm

cp - копировать (copy), требует два параметра — имена файлов: «что» копировать и «куда».

Примеры
cp file1 file2 сопировать файл file1 в файл file2
cp dir/* . копировать все файлы директории dir в текущую директорию
cp -a /tmp/dir1 . копировать директорию dir1 со всем содержимым в текущую директорию

mv - перемещение (move) или переименование (переименование — это тоже перемещение, только в тоже место), параметры как и у команды cp.

Примеры
Переименование: mv dir1 new_dir
Перемещение: mv file1 file2 file3 dir/
Не забывайте для надёжности ставить завершающий "слеш" в случаях, описываемых вторым примером!

rm - удаление (remove) файлов и каталогов.

Примеры
rm -f file1 удалить файл с именем 'file1'
rmdir dir1 удалить директорию с именем 'dir1'
rm -rf dir1 удалить директорию с именем 'dir1' и рекурсивно всё её содержимое
rm -rf dir1 dir2 удалить две директории и рекурсивно их содержимое

С этими командами могут использоваться следующие ключи:

  • -f — форсирует (force) задавание лишних вопросов, например если файл только для чтения, система потребует подтверждение на удаление;
  • -i — работа в интерактивном режиме, система будет спрашивать разрешение на каждое действие;
  • -b — создает резервную копию файла (для команд cp и mv);
  • -r — рекурсивный режим (для команд cp и rm).

По возможности не используйте переменные среды внутри потенциально необратимых команд, например удаления или перемещения!

$ ls
directory1 directory2 directory3 example.txt all_about_console.txt

$ cp -R directory2/ directory3/
$ ls directory3/
directory2

$ rm -r directory3/
$ ls
directory1 directory2 example.txt all_about_console.txt

Замечание. rm -r удалит все, даже непустые каталоги.

rmdir

rmdir (remove удаляет каталог. Ей передается один параметр — путь к каталогу. rmdir можно применять только к пустым каталогам.

$ rmdir directory/
$ ls
example.txt all_about_console.txt

ln

ln -s fileName lnk создать символическую ссылку lnk на файл fileName или директорию
ln file1 lnk1 создать "жёсткую" (физическую) ссылку на файл fileName или директорию

id

id выводит информацию об указанном пользователе USERNAME или текущем пользователе, который запустил данную команду и не указал явно имя пользователя. По умолчанию выводятся подлинные числовые идентификаторы пользователя (UID) и группы (GID), действующие (именные) идентификаторы пользователей и групп, а также идентификаторы других групп, в которых состоит пользователь.

id [OPTION]... [USERNAME]

$ id
uid=500(aleksander) gid=500(aleksander) группы=500(aleksander),19(proc),22(cdrom),71(floppy), 80(cdwriter),81(audio),83(radio)
$
-g, --group выводит только подлинный числовой идентификатор группы
-G, --groups выводит все подлинные числовые идентификаторы групп, в которых состоит пользователь
-n, --name выводит действующие имена пользователей или групп. Используется совместно с опциями -ugG
-r, --real выводит подлинные числовые идентификаторы пользователей или групп. Используется совместно с опциями -ugG
-u, --user выводит только подлинный числовой идентификатор пользователя

chmod

chmod изменяет режим доступа к файлу.

chmod <права доступа> <имя_файла> — изменить права доступа к файлу <имя_файла>.

Примеры

chmod a+r fileName установить права доступа на чтение для файла fileName для всех (all=user+group+others)
chmod o-x fileName отобрать право доступа на исполнение файла fileName у всех кроме пользователя и группы
chmod ugo+rwx fileName дать всем пользователям полномочия полные права на файл fileName
chmod a+rwx fileName добавить всем пользователям полномочия полные права на файл fileName
chmod go-rwx fileName отобрать у всех, кроме владельца все полномочия на файл fileName
chmod g=r fileName разрешить группе только читать файл

chown

chown — смена владельца указанного файла. Требуется доступ root.

chown user fileName назначить владельцем файла fileName пользователя user
chown -R user directory назначить рекурсивно владельцем директории directory пользователя user
chown user:group fileName сменить владельца и группу-владельца файла fileName

locate

locate "*.ps" — найти все файлы, содержащие в имени '.ps'.

find

find поиск файлов в текущем каталоге. Если указать путь, можно искать везде.

find <каталог> -name <имя_файла> — найти файл с именем <имя_файла> и отобразить результат поиска на экране. Поиск начинается с каталога <каталог>; <имя_файла> может содержать маску для поиска.

Примеры

find / -name file1 найти файлы и директории с именем file1. Поиск начать с корня (/)
find / -user user1 найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
find /home/user1 -name "*.bin" Найти все файлы и директории, имена которых оканчиваются на '. bin'. Поиск начать с '/ home/user1'
find /usr/bin -type f -atime +100 найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней
find /usr/bin -type f -mtime -10 найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней
xargs cp -av --target-directory=/home/backup/ --parents поиск в /home/user1 всех файлов, имена которых оканчиваются на '.txt', и копирование их в другую директорию
tar cv --files-from=- | bzip2 > log.tar.bz2 поиск в /var/log всех файлов, имена которых оканчиваются на '.log', и создание bzip-архива из них

Текстовые файлы

cat, cat > ..., cat >> ...

Команда cat может использоваться для создания или просмотра содержимого файлов.

cat <имя_файла> — вывод содержимого файла на стандартный вывод (по умолчанию — на экран).

Если использовать ключ -n, строки будут пронумерованы:

$cat -n file.txt
1 Very interesting text.

cat > перенаправляет поток ввода в файл и отображает поток ввода на стандартном потоке вывода. При этом, если файл не существовал, он создается, а если существовал, то перезаписывается. После окончания ввода следует нажать CTRL+<D>:

cat > <имя_файла> 
.
.
.
CTRL+<D>

Так же эту команду можно использовать для объединения файлов, например:

cat file1 file2 file3 file4 file5 > file.iso

Чтобы записать вводимый текст в конец существующего файла следует использовать cat >>:

cat >> <имя_файла> 
.
.
.
CTRL+<D>

Примеры

cat /proc/cpuinfo отобразить информацию о процессоре
cat /proc/interrupts показать прерывания
cat /proc/meminfo проверить использование памяти
cat /proc/swaps показать файл(ы) подкачки
cat /proc/version вывести версию ядра
cat /proc/net/dev показать сетевые интерфейсы и статистику по ним
cat /proc/mounts отобразить смонтированные файловые системы
cat file1 вывести содержимое файла file1 на стандартное устройство вывода
[operation: sed, grep, awk, grep и т.п.] > result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
[operazione: sed, grep, awk, grepи т.п.] >> result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан
cat -n file1 пронумеровать строки при выводе содержимого файла
awk 'NR%2==1' при выводе содержимого файла, не выводить чётные строки файла

less, ...|less

less file1 постраничный вывод файла file1 на устройство вывода, но с возможностью пролистывания (вверх-вниз), поиска по содержимому.

grep, ...|grep

Примеры
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 и ниже

head

head -2 file1 вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк

tail

Примеры
tail -2 file1 вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
tail -f /var/log/messages выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста
tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра
tail /var/log/messages вывести десять последних записей из системного журнала

look

look reference Быстрый поиск (сортированный) словаря по префиксу

cut

cut -d: -f1,3 /etc/passwd Поставить в соответствие идентификаторам пользователей их входные имена

sort

Примеры
sort file1 file2 отсортировать содержимое двух файлов
uniq отсортировать содержимое двух файлов, не отображая повторов
uniq -u отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
uniq -d отсортировать содержимое двух файлов, отображая только повторяющиеся строки
uniq -u симметрическая разность неотсортированных файлов

uniq

join

Примеры
join -t'\0' -a1 -a2 file1 file2 Объединение отсортированных файлов
join -t'\0' file1 file2 Пересечение отсортированных файлов
join -t'\0' -v2 file1 file2 Разность отсортированных файлов
join -t'\0' -v1 -v2 file1 file2 Симметрическая разность отсортированных файлов

wc

wc — печатает число строк, слов и байт в файлах.

wc [ОПЦИЯ]... [ФАЙЛ]...

Печатает число переводов строк, слов и байт для каждого ФАЙЛА и их итоговое количество, если было задано несколько ФАЙЛОВ. Если ФАЙЛ не задан или задан как -, читает стандартный ввод.

Опции

-c, --bytes

печать числа байтов

-m, --chars

печать числа символов

-l, --lines

печать числа строк

-L, --max-line-length

печать количества символов в самой длинной строке

-w, --words

печать количества слов

--help

вывести справку и закончить работу

--version

вывести информацию о версии и закончить работу

Процессы

ps

Примеры
ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
ps -e -o pid,args --forest вывести PID'ы и процессы в виде дерева
pstree отобразить дерево процессов

top

top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)

kill

Примеры
kill -9 98989 "убить" процесс с PID 98989 "на смерть" (без соблюдения целостности данных)
kill -TERM 98989 Корректно завершить процесс с PID 98989
kill -1 98989 заставить процесс с PID 98989 перепрочитать файл конфигурации

Сеть

ping

ping [имя_машины] Есть или нет контакта с другой машиной (в качестве параметре имя машины или IP адрес), нажмите <Ctrl>-C когда вся требуемая информация будет получена.

traceroute

traceroute www.slackware.com Каждый из хостов будет показан, вместе со временем ответа

nslookup

nslookup linuxforum.org

ssh

Примеры
ssh -g -L 8080:localhost:80 root@$HOST Перенаправить соединения к $HOSTNAME:8080 наружу к $HOST:80
ssh -R 1434:imap:143 root@$HOST Перенаправить соединения от $HOST:1434 к внутр. imap:143
ssh $USER@$HOST command Запустить команду command на удаленном хосте $HOST от имени пользователя $USER
ssh -f -Y $USER@$HOSTNAME xeyes Запустить GUI команду на удаленном хосте $HOST от имени пользователя $USER

Разное

man

man ping вызов руководства по работе с программой, в данном случае, - ping

date

Примеры
date вывести системную дату
date 041217002007.00 установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)

cal

cal вывести форматированный календарь на текущий месяц
cal 2010 вывести таблицу-календарь на 2010-ый год

uname

Примеры
uname -m отобразить архитектуру компьютера
uname -r отобразить используемую версию ядра

hostname

hostname отобразить имя компьютера

which

which halt отображает полный путь к файлу 'halt'

env

env [ПАРАМЕТР]... [-] [ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ]... [КОМАНДА [АРГУМЕНТЫ]...] исполняет команду с изменением окружения

tar

Примеры
tar -Puf backup.tar /home/user создать инкрементальную резервную копию директории '/home/user' в файл backup.tar с сохранением полномочий
ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' копирование /home на удалённый компьютер через ssh-туннель в /home/backup-home
(cd /tmp/backup ; tar xf - ) копирование одной директории в другую с сохранением полномочий и линков
tar -cvf archive.tar file1 создать tar-архив archive.tar, содержащий файл file1
tar -cvf archive.tar file1 file2 dir1 создать tar-архив archive.tar, содержащий файл file1, file2 и dir1
tar -tf archive.tar показать содержимое архива
tar -xvf archive.tar распаковать архив
tar -xvf archive.tar -C /tmp распаковать архив в /tmp
tar -cvfj archive.tar.bz2 dir1 создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах)
tar -xvfj archive.tar.bz2 разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)
tar -cvfz archive.tar.gz dir1 создать архив и сжать его с помощью gzip
tar -xvfz archive.tar.gz разжать архив и распаковать его

gzip

Примеры
gzip file1 сжимает файл 'file1'
gzip -9 file1 сжать файл file1 с максимальным сжатием

gunzip

gunzip file1.gzразжимает файл 'file1.gz'