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

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(table +table +table +table +table +table +table)
Строка 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 ~
adam@laptop:~$pwd
+
$pwd
 
/home/adam</pre>
 
/home/adam</pre>
  
 
Чтобы перейти в  домашний каталог пользователя, можно ввести ключ в виде ~имя_пользователя.
 
Чтобы перейти в  домашний каталог пользователя, можно ввести ключ в виде ~имя_пользователя.
  
<pre>adam@laptop:~$cd ~zoidberg
+
<pre>$cd ~zoidberg
adam@laptop:/home/zoidberg$pwd
+
$pwd
 
/home/zoidberg</pre>
 
/home/zoidberg</pre>
  
 
Любой каталог к UNIX всегда содержит каталог «.» и «..». Одна точка — это «ссылка» (не жесткая, и не символическая) на текущий каталог, а две точки — это «ссылка» на родительский каталог.
 
Любой каталог к UNIX всегда содержит каталог «.» и «..». Одна точка — это «ссылка» (не жесткая, и не символическая) на текущий каталог, а две точки — это «ссылка» на родительский каталог.
  
<pre>adam@laptop:~$cd ..
+
<pre>$cd ..
adam@laptop:/home$pwd
+
$pwd
 
/home</pre>
 
/home</pre>
  
 
===ls===
 
===ls===
 +
{| {{prettytable}} 
 +
| ls
 +
| отобразить содержимое текущей директории в алфавитном порядке
 +
|-
 +
| ls -F
 +
| отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип
 +
|-
 +
| ls -l
 +
| показать детализированное представление файлов и директорий в текущей директории
 +
|-
 +
| ls -a
 +
| показать скрытые файлы и директории в текущей директории
 +
|}
 +
 
===mkdir===
 
===mkdir===
'''mkdir''' (make) создает каталог. Ей передается один параметр — путь к каталогу.
+
'''mkdir''' (make) создает каталог. Ей передается один параметр — путь к каталогу:
  
<pre>adam@laptop:~/Documents/polishlinux.org/examples$ mkdir directory
+
mkdir directory
adam@laptop:~/Documents/polishlinux.org/examples$ ls
 
directory example.txt all_about_console.txt</pre>
 
  
 
===cp, mv, rm===
 
===cp, mv, rm===
Строка 53: Строка 65:
 
* -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>
  
Строка 69: Строка 81:
 
'''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>
  
<pre>cat file1 file2 file3 file4 file5 > file.iso</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'
 +
| при выводе содержимого файла, не выводить чётные строки файла
 +
|}
  
 
===less, ...|less===
 
===less, ...|less===

Версия 13:22, 9 сентября 2009

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

pwd

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

$pwd
/home/adam
$

cd

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

<pre$cd /usr/bin $pwd /usr/bin</pre>

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

$cd ~
$pwd
/home/adam

Чтобы перейти в домашний каталог пользователя, можно ввести ключ в виде ~имя_пользователя.

$cd ~zoidberg
$pwd
/home/zoidberg

Любой каталог к UNIX всегда содержит каталог «.» и «..». Одна точка — это «ссылка» (не жесткая, и не символическая) на текущий каталог, а две точки — это «ссылка» на родительский каталог.

$cd ..
$pwd
/home

ls

ls отобразить содержимое текущей директории в алфавитном порядке
ls -F отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип
ls -l показать детализированное представление файлов и директорий в текущей директории
ls -a показать скрытые файлы и директории в текущей директории

mkdir

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

mkdir directory

cp, mv, rm

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

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

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

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

  • -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

grep, ...|grep

head

tail

look

cut

sort

uniq

join

wc

Процессы

ps

top

kill

Сеть

ping

traceroute

nslookup

ssh

Разное

man

date

cal

uname

hostname

which

env

tar

gzip

gunzip