42 команды Linux: обязательный минимум — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(cp, mv, rm)
 
(не показано 7 промежуточных версий 3 участников)
Строка 3: Строка 3:
 
Команда '''pwd''' (print working directory) выводит полный путь к текущему каталогу.
 
Команда '''pwd''' (print working directory) выводит полный путь к текущему каталогу.
  
<pre>adam@laptop:~$pwd
+
<pre>$pwd
 
/home/adam
 
/home/adam
adam@laptop:~$</pre>
+
$</pre>
  
 
===cd===
 
===cd===
С помощью команды '''cd''' (change directory) можно перемещаться по дереву каталогов. Для этой команды необходим один параметр — целевой каталог. Можно использовать относительный путь (относительно текущего каталога) и абсолютный (относительно корня). Абсолютный всегда начинается с корня и дальше по иерархии каталогов (/home/adam), а относительный начинается сразу с имени каталога в который требуется перейти.
+
С помощью команды '''cd''' (change directory) можно перемещаться по дереву каталогов. Для этой команды необходим один параметр — целевой каталог. Можно использовать относительный путь (относительно текущего каталога) и абсолютный (относительно корня). Абсолютный всегда начинается с корня и дальше по иерархии каталогов (/home/adam), а относительный с одного из подкаталогов текущего каталога либо строки «..», которая обозначает переход в родительский каталог (как обычно, через «/» можно повторять эту комбинацию, перемещаясь всё выше по дереву каталогов).
  
<pre>adam@laptop:~$cd /usr/bin
+
<pre>$cd /usr/bin
adam@laptop:/usr/bin$pwd
+
$pwd
 
/usr/bin</pre>
 
/usr/bin</pre>
  
Чтобы перейти в домашнюю папку можно вместо пути поставить символ тильда (~).
+
С помощью тильды (~) можно ссылаться на домашнюю папку текущего пользователя.
  
<pre>adam@laptop:/usr/bin$cd ~
+
<pre>$cd ~/video
adam@laptop:~$pwd
+
$pwd
/home/adam</pre>
+
/home/adam/video</pre>
  
Чтобы перейти в  домашний каталог пользователя, можно ввести ключ в виде ~имя_пользователя.
+
Чтобы перейти домашний каталог можно также (помимо ~) использовать cd без параметров.
  
<pre>adam@laptop:~$cd ~zoidberg
+
<pre>$cd
adam@laptop:/home/zoidberg$pwd
+
$pwd
/home/zoidberg</pre>
 
 
 
Любой каталог к UNIX всегда содержит каталог «.» и «..». Одна точка — это «ссылка» (не жесткая, и не символическая) на текущий каталог, а две точки — это «ссылка» на родительский каталог.
 
 
 
<pre>adam@laptop:~$cd ..
 
adam@laptop:/home$pwd
 
 
/home</pre>
 
/home</pre>
  
 
===ls===
 
===ls===
 +
{| {{prettytable}} 
 +
| ls
 +
| отобразить содержимое текущей директории в алфавитном порядке
 +
|-
 +
| ls -F
 +
| отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип
 +
|-
 +
| ls -l
 +
| показать детализированное представление файлов и директорий в текущей директории
 +
|-
 +
| ls -a
 +
| показать скрытые файлы и директории в текущей директории
 +
|-
 +
| ls *[0-9]*
 +
| показать файлы и директории содержащие в имени цифры
 +
|
 +
|-
 +
| ls -t
 +
| показать файлы, отсортировав их по времени последнего обновления
 +
|-
 +
| ls -r
 +
| показать файлы, отсортировав их в обратном порядке от выбранного
 +
|}
 +
 
===mkdir===
 
===mkdir===
 
'''mkdir''' (make) создает каталог. Ей передается один параметр — путь к каталогу.
 
'''mkdir''' (make) создает каталог. Ей передается один параметр — путь к каталогу.
  
<pre>adam@laptop:~/Documents/polishlinux.org/examples$ mkdir directory
+
{| {{prettytable}} 
adam@laptop:~/Documents/polishlinux.org/examples$ ls
+
|+ Примеры
directory example.txt all_about_console.txt</pre>
+
| mkdir dir1
 +
| создать директорию с именем 'dir1'
 +
|-
 +
| mkdir dir1 dir2
 +
| создать две директории одновременно
 +
|-
 +
| mkdir -p /tmp/dir1/dir2
 +
| создать дерево директорий
 +
|}
  
 
===cp, mv, rm===
 
===cp, mv, rm===
 
'''cp''' - копировать (copy), требует два параметра — имена файлов: «что» копировать и «куда».
 
'''cp''' - копировать (copy), требует два параметра — имена файлов: «что» копировать и «куда».
  
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| cp file1 file2
 +
| сопировать файл file1 в файл file2
 +
|-
 +
| cp dir/* .
 +
| копировать все файлы директории dir в текущую директорию
 +
|-
 +
| cp -a /tmp/dir1 .
 +
| копировать директорию dir1 со всем содержимым в текущую директорию
 +
|}
 +
 
'''mv''' - перемещение (move) или переименование (переименование — это тоже перемещение, только в тоже место), параметры как и у команды cp.
 
'''mv''' - перемещение (move) или переименование (переименование — это тоже перемещение, только в тоже место), параметры как и у команды cp.
 +
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| Переименование:
 +
| mv dir1 new_dir
 +
|-
 +
| Перемещение:
 +
| mv file1 file2 file3 dir/
 +
|-
 +
| '''Не забывайте для надёжности ставить завершающий "слеш" в случаях, описываемых вторым примером!'''
 +
|}
  
 
'''rm''' - удаление (remove) файлов и каталогов. <!--Наверное, здесь не стоит различать файлы и каталоги-->
 
'''rm''' - удаление (remove) файлов и каталогов. <!--Наверное, здесь не стоит различать файлы и каталоги-->
 +
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| rm -f file1
 +
| удалить файл с именем 'file1'
 +
|-
 +
| rmdir dir1
 +
| удалить директорию с именем 'dir1'
 +
|-
 +
| rm -rf dir1
 +
| удалить директорию с именем 'dir1' и рекурсивно всё её содержимое
 +
|-
 +
| rm -rf dir1 dir2
 +
| удалить две директории и рекурсивно их содержимое
 +
|}
  
 
С этими командами могут использоваться следующие ключи:
 
С этими командами могут использоваться следующие ключи:
Строка 53: Строка 117:
 
* -r — рекурсивный режим (для команд cp и rm).
 
* -r — рекурсивный режим (для команд cp и rm).
  
<pre>adam@laptop:~/Documents/polishlinux.org/examples$ ls
+
'''По возможности не используйте переменные среды внутри потенциально необратимых команд, например удаления или перемещения!
 +
'''
 +
<pre>$ ls
 
directory1 directory2 directory3 example.txt all_about_console.txt
 
directory1 directory2 directory3 example.txt all_about_console.txt
  
adam@laptop:~/Documents/polishlinux.org/examples$ cp -R directory2/ directory3/
+
$ cp -R directory2/ directory3/
adam@laptop:~/Documents/polishlinux.org/examples$ ls directory3/
+
$ ls directory3/
 
directory2
 
directory2
  
adam@laptop:~/Documents/polishlinux.org/examples$ rm -r directory3/
+
$ rm -r directory3/
adam@laptop:~/Documents/polishlinux.org/examples$ ls
+
$ ls
 
directory1 directory2 example.txt all_about_console.txt</pre>
 
directory1 directory2 example.txt all_about_console.txt</pre>
  
'''Замечание.''' rm -r удалит все, даже не пустые каталоги.
+
'''Замечание.''' rm -r удалит все, даже непустые каталоги.
  
 
===rmdir===
 
===rmdir===
 
'''rmdir''' (remove удаляет каталог. Ей передается один параметр — путь к каталогу. rmdir можно применять только к пустым каталогам.
 
'''rmdir''' (remove удаляет каталог. Ей передается один параметр — путь к каталогу. rmdir можно применять только к пустым каталогам.
  
<pre>adam@laptop:~/Documents/polishlinux.org/examples$ rmdir directory/
+
<pre>$ rmdir directory/
adam@laptop:~/Documents/polishlinux.org/examples$ ls
+
$ ls
 
example.txt all_about_console.txt</pre>
 
example.txt all_about_console.txt</pre>
  
 
===ln===
 
===ln===
 +
{| {{prettytable}} 
 +
| ln -s fileName lnk
 +
| создать символическую ссылку lnk на файл fileName или директорию
 +
|-
 +
| ln file1 lnk1
 +
| создать "жёсткую" (физическую) ссылку на файл fileName или директорию
 +
|}
 +
 
===id===
 
===id===
 +
'''id''' выводит информацию об указанном пользователе USERNAME или текущем пользователе, который запустил данную команду и не указал явно имя пользователя. По умолчанию выводятся подлинные числовые идентификаторы пользователя (UID) и группы (GID), действующие (именные) идентификаторы пользователей и групп, а также идентификаторы других групп, в которых состоит пользователь.
 +
 +
id [OPTION]... [USERNAME] 
 +
 +
<pre>$ id
 +
uid=500(aleksander) gid=500(aleksander) группы=500(aleksander),19(proc),22(cdrom),71(floppy), 80(cdwriter),81(audio),83(radio)
 +
$</pre>
 +
 +
{| {{prettytable}} 
 +
| -g, --group
 +
| выводит только подлинный числовой идентификатор группы
 +
|-
 +
| -G, --groups
 +
| выводит все подлинные числовые идентификаторы групп, в которых состоит пользователь
 +
|-
 +
| -n, --name
 +
| выводит действующие имена пользователей или групп. Используется совместно с опциями -ugG
 +
|-
 +
| -r, --real
 +
| выводит подлинные числовые идентификаторы пользователей или групп. Используется совместно с опциями -ugG
 +
|-
 +
| -u, --user
 +
| выводит только подлинный числовой идентификатор пользователя
 +
|}   
 +
 
===chmod===
 
===chmod===
 +
'''chmod''' изменяет режим доступа к файлу.
 +
 +
chmod <права доступа> <имя_файла> — изменить права доступа к файлу <имя_файла>.
 +
 +
'''Примеры'''
 +
{| {{prettytable}} 
 +
| 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===
 +
chown — смена владельца указанного файла. Требуется доступ root.
 +
 +
{| {{prettytable}} 
 +
| chown user fileName
 +
| назначить владельцем файла fileName пользователя user
 +
|-
 +
| chown -R user directory
 +
| назначить рекурсивно владельцем директории directory пользователя user
 +
|-
 +
| chown user:group fileName
 +
|сменить владельца и группу-владельца файла fileName
 +
|}
 +
 
===locate===
 
===locate===
 +
locate "*.ps" — найти все файлы, содержащие в имени '.ps'.
 +
 
===find===
 
===find===
 +
find поиск файлов в текущем каталоге. Если указать путь, можно искать везде.
 +
 +
find <каталог> -name <имя_файла> — найти файл с именем <имя_файла> и отобразить результат поиска на экране. Поиск начинается с каталога <каталог>; <имя_файла> может содержать маску для поиска.
 +
 +
'''Примеры'''
 +
{| {{prettytable}} 
 +
| 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 дней
 +
|-
 +
| 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-архива из них
 +
|} 
  
 
==Текстовые файлы==
 
==Текстовые файлы==
 
===cat, cat > ..., cat >> ...===
 
===cat, cat > ..., cat >> ...===
<!--Не хватает cat >> ... !!! и поменять порядок cat > и cat-->
+
Команда '''cat''' может использоваться для создания или просмотра содержимого файлов.  
Эта команда может использоваться для создания файлов. Строго говоря, эта '''cat''' перенаправляет поток ввода в файл и отображает поток ввода на стандартном потоке вывода.
 
  
<pre>adam@laptop:~$cat > file.txt
+
cat <имя_файла> — вывод содержимого файла на стандартный вывод (по умолчанию — на экран).
Very interesting text.</pre>
 
  
Для просмотра содержимого файла, нужно ввести тоже самое но без оператора >.
+
Если использовать ключ -n, строки будут пронумерованы:
 +
<pre>$cat -n file.txt
 +
1 Very interesting text.</pre>
  
<pre>adam@laptop:~$cat file.txt
+
'''cat >''' перенаправляет поток ввода в файл и отображает поток ввода на стандартном потоке вывода. При этом, если файл не существовал, он создается, а если существовал, то перезаписывается. После окончания ввода следует нажать CTRL+<D>:
Very interesting text.</pre>
+
<pre>cat > <имя_файла>
 +
.
 +
.
 +
.
 +
CTRL+<D></pre>
  
Если использовать ключ -n, строки будут пронумерованы.
+
Так же эту команду можно использовать для объединения файлов, например:
 +
<pre>cat file1 file2 file3 file4 file5 > file.iso</pre>
  
<pre>adam@laptop:~$cat -n file.txt
+
Чтобы записать вводимый текст в конец существующего файла следует использовать '''cat >>''':
1 Very interesting text.</pre>
+
<pre>cat >> <имя_файла>
 +
.
 +
.
 +
.
 +
CTRL+<D></pre>
  
Так же эту команду можно использовать для объединения файлов, например:
+
'''Примеры'''
 +
{| {{prettytable}} 
 +
| 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 на стандартное устройство вывода
 +
|-
 +
| cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt
 +
| общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
 +
|-
 +
| cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt
 +
| общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан
 +
|-
 +
| cat -n file1
 +
| пронумеровать строки при выводе содержимого файла
 +
|-
 +
| cat example.txt | awk 'NR%2==1'
 +
| при выводе содержимого файла, не выводить чётные строки файла
 +
|}
  
<pre>cat file1 file2 file3 file4 file5 > file.iso</pre>
+
===less, ...|less===
 +
less file1 постраничный вывод файла file1 на устройство вывода, но с возможностью пролистывания (вверх-вниз), поиска по содержимому.
  
===less, ...|less===
 
 
===grep, ...|grep===
 
===grep, ...|grep===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| 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===
 +
head -2 file1 вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
 +
 
===tail===
 
===tail===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| tail -2 file1
 +
| вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
 +
|-
 +
| tail -f /var/log/messages
 +
| выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста
 +
|-
 +
| tail /var/log/dmesg
 +
| вывести десять последних записей из журнала загрузки ядра
 +
|-
 +
| tail /var/log/messages
 +
| вывести десять последних записей из системного журнала
 +
|}
 +
 
===look===
 
===look===
 +
look reference Быстрый поиск (сортированный) словаря по префиксу
 +
 
===cut===
 
===cut===
 +
cut -d: -f1,3 /etc/passwd Поставить в соответствие идентификаторам пользователей их входные имена
 +
 
===sort===
 
===sort===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| sort file1 file2
 +
| отсортировать содержимое двух файлов
 +
|-
 +
| sort file1 file2 | uniq
 +
| отсортировать содержимое двух файлов, не отображая повторов
 +
|-
 +
| sort file1 file2 | uniq -u
 +
| отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
 +
|-
 +
| sort file1 file2 | uniq -d
 +
| отсортировать содержимое двух файлов, отображая только повторяющиеся строки
 +
|-
 +
| sort file1 file2 | uniq -u
 +
| симметрическая разность неотсортированных файлов
 +
|}
 +
 
===uniq===
 
===uniq===
 +
 
===join===
 
===join===
 +
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| 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 — печатает число строк, слов и байт в файлах.
 +
 +
wc [ОПЦИЯ]... [ФАЙЛ]...
 +
 +
Печатает число переводов строк, слов и байт для каждого ФАЙЛА и их итоговое количество, если было задано несколько ФАЙЛОВ. Если ФАЙЛ не задан или задан как -, читает стандартный ввод.
 +
 +
====Опции====
 +
-c, --bytes
 +
:печать числа байтов
 +
-m, --chars
 +
:печать числа символов
 +
-l, --lines
 +
:печать числа строк
 +
-L, --max-line-length
 +
:печать количества символов в самой длинной строке
 +
-w, --words
 +
:печать количества слов
 +
--help
 +
:вывести справку и закончить работу
 +
--version
 +
:вывести информацию о версии и закончить работу
  
 
==Процессы==
 
==Процессы==
 
===ps===
 
===ps===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| ps -eafw
 +
| отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
 +
|-
 +
| ps -e -o pid,args --forest
 +
| вывести PID'ы и процессы в виде дерева
 +
|-
 +
| pstree
 +
| отобразить дерево процессов
 +
|}
 +
 
===top===
 
===top===
 +
top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)
 +
 
===kill===
 
===kill===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| kill -9 98989
 +
| "убить" процесс с PID 98989 "на смерть" (без соблюдения целостности данных)
 +
|-
 +
| kill -TERM 98989
 +
| Корректно завершить процесс с PID 98989
 +
|-
 +
| kill -1 98989
 +
| заставить процесс с PID 98989 перепрочитать файл конфигурации
 +
|}
  
 
==Сеть==
 
==Сеть==
 
===ping===
 
===ping===
 +
ping [имя_машины] Есть или нет контакта с другой машиной (в качестве параметре имя машины или IP адрес), нажмите <Ctrl>-C когда вся требуемая информация будет получена.
 +
 
===traceroute===
 
===traceroute===
 +
traceroute www.slackware.com Каждый из хостов будет показан, вместе со временем ответа
 +
 
===nslookup===
 
===nslookup===
 +
nslookup linuxforum.org
 +
 
===ssh===
 
===ssh===
 
+
{| {{prettytable}} 
 +
|+ Примеры
 +
| 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===
 +
man ping вызов руководства по работе с программой, в данном случае, - ping
 +
 
===date===
 
===date===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| date
 +
| вывести системную дату
 +
|-
 +
| date 041217002007.00
 +
| установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
 +
|}
 +
 
===cal===
 
===cal===
 +
{| {{prettytable}}
 +
| cal
 +
| вывести форматированный календарь на текущий месяц
 +
|-
 +
| cal 2010
 +
| вывести таблицу-календарь на 2010-ый год
 +
|}
 +
 
===uname===
 
===uname===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| uname -m
 +
| отобразить архитектуру компьютера
 +
|-
 +
| uname -r
 +
| отобразить используемую версию ядра
 +
|}
 +
 
===hostname===
 
===hostname===
 +
hostname отобразить имя компьютера
 +
 
===which===
 
===which===
 +
which halt отображает полный путь к файлу 'halt'
 +
 
===env===
 
===env===
 +
env [ПАРАМЕТР]... [-] [ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ]... [КОМАНДА [АРГУМЕНТЫ]...] исполняет команду с изменением окружения
 +
 
===tar===
 
===tar===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| tar -Puf backup.tar /home/user
 +
| создать инкрементальную резервную копию директории '/home/user' в файл backup.tar с сохранением полномочий
 +
|-
 +
| ( 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 - )
 +
| копирование одной директории в другую с сохранением полномочий и линков
 +
|-
 +
| 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===
 +
{| {{prettytable}} 
 +
|+ Примеры
 +
| gzip file1
 +
| сжимает файл 'file1'
 +
|-
 +
| gzip -9 file1
 +
| сжать файл file1 с максимальным сжатием
 +
|}
 +
 
===gunzip===
 
===gunzip===
 +
gunzip file1.gzразжимает файл 'file1.gz'
  
[[Категория:Операционные системы]]
 
 
[[Категория:Linux]]
 
[[Категория:Linux]]

Текущая версия на 12:53, 15 октября 2009

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

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'