Полное руководство по командам linux

Содержание

  1. Системные команды Linux
  2. 1. uname
  3. 2. uptime
  4. 3. hostname
  5. 4. last
  6. 5. date
  7. 6. cal
  8. 7. w
  9. 8. whoami
  10. 9. reboot
  11. 10. shutdown
  12. Команды Linux, взаимодействующие с оборудованием
  13. 11. dmesg
  14. 12. lshw
  15. 13. lsblk
  16. 14. free
  17. 15. lspci
  18. 16. lsusb
  19. 17. dmidecode
  20. 18. hdparm
  21. Команды Linux, связанные со статистикой
  22. 19. mpstat
  23. 20. vmstat
  24. 21. iostat
  25. 23. lsof
  26. 24. watch
  27. Команды Linux для работыс пользователями 
  28. 25. id
  29. 26. last
  30. 27. who
  31. 28. groupadd
  32. 29. useradd
  33. 30. userdel
  34. 31. usermod
  35. 32. passwd
  36. Команды Linux, для работы с файлами
  37. 33. ls
  38. 34. pwd
  39. 35. mkdir
  40. 36. cat
  41. 37. rm
  42. 38. cp
  43. 39. mv
  44. 40.cd
  45. 41. Ln
  46. 42. touch
  47. 43. more
  48. 44. head
  49. 45. tail
  50. 46. gpg
  51. 47. cksum
  52. 48. diff
  53. 49. sort
  54. 50. uniq
  55. 51. wc
  56. 52. dir
  57. 53. tee
  58. 54. tr
  59. Команды Linux, связанные с процессом
  60. 55. ps
  61. 56. pmap
  62. 57. top
  63. 58. kill
  64. 59. killall
  65. 60. pkill
  66. 61. fg и bg
  67. Команды Linux, связанные с правами доступа к файлам
  68. 62. chmod
  69. 63. chown
  70. 64. chgrp
  71. Команды Linux для работы с сетью
  72. 65. ifconfig
  73. 66. ip
  74. 67. ethtool
  75. 68. mii-tool
  76. 69.  ping и ping6
  77. 70. whois
  78. 71. dig
  79. 72. host
  80. 73. wget
  81. 74. netstat
  82. 75. nslookup
  83. Команды связанные с сжатием и архивированием
  84. 76. tar
  85. 77. gzip
  86. Команды Linux связанные с установкой пакета
  87. 78. rpm
  88. 79. make
  89. 80. yum
  90. 81. Apt
  91. Поиск Связанных Команд Linux
  92. 82. grep
  93. 83. locate
  94. 84. find
  95. 85. ssh
  96. 86. telnet
  97. Команды Linux, Связанные С Передачей Файлов
  98. 87. scp
  99. 88. rsync
  100. Команды Linux для работы с локальными дисками
  101. 89. df
  102. 90. fdisk
  103. 91. du
  104. 92. findmnt
  105. 93. mount
  106. Заключение

Если вы новичок в Linux, тогда с большой вероятностью вы начали использовать командную строку. Если знать команды Linux, то с терминалом довольно легко работать. Именно поэтому большинство системных администраторов Linux предпочитают работу в терминале. Так как сделать что-то через терминал гораздо быстрее чем через GUI.

В этой статье мы покажем и расскажем наиболее часто используемые и важные команды Linux, которые вы должны знать и помнить. Надеемся что данная статья про команды Linux станет для вас хорошей шпаргалкой.

Команды Linux - Полное руководство

Команды Linux — Полное руководство

Системные команды Linux

Эти команды используются для просмотра информации и управления, связанной с системой Linux.

1. uname

Команда Uname используется в Linux для поиска информации об операционных системах. В Uname существует много опций, которые могут указывать имя ядра, версию ядра, тип процессора и имя хоста.

Следующая команда uname с опцией a отображает всю информацию об операционной системе.

$sudo uname -a
Linux linode02 5.1.17-x86_64-linode128 #1 SMP PREEMPT Wed Jul 15 18:11:53 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

2. uptime

Информация о том, как долго работает система Linux, отображается с помощью команды uptime. Информация о времени безотказной работы системы собирается из файла ‘/proc/uptime‘. Эта команда также отобразит среднюю нагрузку на систему.

Из следующей команды мы можем понять, что система работает в течение последних 36 минут.

$ uptime
15:52:37 up 36 min, 1 user, load average: 0.03, 0.07, 0.04

Полное руководство команды Uptime

3. hostname

Вы можете отобразить имя хоста вашей машины, введя hostname в своем терминале. С помощью опции-i  вы можете просмотреть ip-адрес компьютера. А с помощью параметра -d вы можете просмотреть доменное имя.

4. last

Команда last в Linux используется для определения того, кто последним вошел в систему на вашем сервере. Эта команда отображает список всех пользователей, вошедших (и вышедших) из «/var/log/wtmp » с момента создания файла.

Вам просто нужно ввести «last» в своем терминале.

$ last
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
setiwik tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

5. date

В Linux команда date используется для проверки текущей даты и времени системы. Эта команда позволяет задать пользовательские форматы для дат.

Рекомендуем статью Команда Date (Дата) в Linux с примерами использования

Например, используя «date +%D«, вы можете просмотреть дату в формате «ММ/ДД/ГГ«.

$ date +%D
07/08/21

6. cal

По умолчанию команда cal отображает календарь текущего месяца. С помощью опции -y вы можете просмотреть календарь на весь год.

7. w

По умолчанию команда w отображает, кто в данный момент вошел в систему на вашем компьютере и что они делают.

$ w
01:36:19 up 2:08, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 39.177.9.194 23:29 3.00s 0.02s 0.00s w
setiwik pts/1 59.177.9.193 01:35 11.00s 0.00s 0.00s -bash

8. whoami

Команда Whoami выводит имя пользователя, вошедшего в систему в данный момент. Это похоже на команду id -un.

9. reboot

Команда reboot используется для перезагрузки системы Linux. Вы должны запустить эту команду из терминала с правами суперпользователя sudo.

10. shutdown

Команда shutdown используется для выключения или перезагрузки системы Linux. Эта команда позволяет планировать завершение работы и уведомлять пользователей сообщениями о выключении и перезагрузке.

По умолчанию компьютер (сервер) выключится через 1 минуту. Вы можете отменить расписание, выполнив команду: shutdown -c

$sudo shutdown
Shutdown scheduled for Fri 2021-04-09 13:45:51 UTC, use 'shutdown -c' to cancel.
$

Немедленное отключение тоже возможно, для этого используется опция «now»

$ sudo shutdown -h now

Команды Linux, взаимодействующие с оборудованием

Эти команды используются для просмотра аппаратных аспектов операционной системы Linux и управления ими.

11. dmesg

Команда Dmesg печатает свои данные, считывая кольцевой буфер ядра. Данные могут представлять собой информацию о процессоре, жестком диске, принтере, клавиатуре, памяти и драйверах.

$ dmesg

Ответ в терминале :

[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.8.0-31-generic (buildd@aatxe) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #46-Ubuntu SMP Tue Sep 10 19:56:49 UTC 2013 (Ubuntu 3.8.0-31.46-generic 3.8.13.8)
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] NSC Geode by NSC
[ 0.000000] Cyrix CyrixInstead
[ 0.000000] Centaur CentaurHauls
[ 0.000000] Transmeta GenuineTMx86
[ 0.000000] Transmeta TransmetaCPU
[ 0.000000] UMC UMC UMC UMC

12. lshw

Отображает информацию о конфигурации оборудования системы. Команда Lshw должна выполняться от имени привилегированного пользователя root или sudo, в противном случае она будет сообщать только частичную информацию.

13. lsblk

Отображает информацию о блочном устройстве машины, связанную с устройством. Команда Lsblk с помощью опции -a вы можете просматривать все блочные устройства.

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 28.5G 0 disk /
sdb 8:16 0 1024M 0 disk [SWAP]

14. free

Команда free используется в Linux для проверки объема свободной оперативной памяти в системе. Так же команда free показывает пространство подкачки, буферное и кэш-пространство.

$ free
total    used      free     shared   buff/cache   available
Mem:    4022216   723872   1359820   157988    1938524      2661636
Swap:    524284   247820   276464

15. lspci

Lspci — это стандартная утилита Linux, которая показывает какое внутри оборудования. Команда lspci покажет информацию о шинах PCI, AGP и встроенных компонентах, таких как чипсет, USB и т.д.

16. lsusb

Команда Lsusb используется для отображения информации о шинах USB и подключенных к ним устройствах.Вы можете найти утилиту lsusb в пакете usbutils.

17. dmidecode

Команда Dmidecode считывает системную таблицу DMI (Интерфейс управления рабочим столом). Используется для отображения информации об оборудовании и BIOS. Выходные данные dmidecode содержат несколько записей из таблицы DMI. Эта таблица содержит описание аппаратных компонентов систем, а также другую полезную информацию, такую как серийный номер, версия BIOS и т. д.

Для использования требуется привилегия root или sudo.

В следующем примере показаны сведения о bios.

# dmidecode -t bios
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: SeaBIOS
Version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org
Release Date: 04/01/2014
Address: 0xE8000
Runtime Size: 96 kB
ROM Size: 64 kB
Characteristics:
BIOS characteristics not supported
Targeted content distribution is supported
BIOS Revision: 0.0

18. hdparm

Hdparm — это команда, используемая в Linux для показа информации о жестком диске. Эта команда может отобразить производительность скорости диска и изменять настройки DMA.

Следующая команда выполнит проверку скорости чтения на диске sda:

# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 18012 MB in 2.00 seconds = 9023.48 MB/sec
Timing buffered disk reads: 7146 MB in 3.00 seconds = 2380.77 MB/sec

Команды Linux, связанные со статистикой

Этот набор команд используется для просмотра различных видов статистики системы Linux.

19. mpstat

Команда Mpstat используется для показа статистики процессора и помогает отслеживать загрузку процессора в вашей системе. Это будет более полезно, если ваша система имеет несколько процессоров.

$ mpstat -P 0
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
03:54:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
03:54:00 PM 0 3.82 0.01 1.16 3.88 0.00 0.06 0.00 0.00 91.06

20. vmstat

Vmstat — это инструмент, который предоставляет отчеты о статистике виртуальной памяти. Он охватывает использование системной памяти, подкачки и процессоров в режиме реального времени.

По умолчанию vmstat работает следующим образом:

Команда Linux vmstat

Команда Linux vmstat

21. iostat

Команда Iostat — это команда, используемая для мониторинга загрузки устройств ввода-вывода (I/O). Путем наблюдения за временем активности устройств по отношению к их средним скоростям передачи.

22. tcpdump

Tcpdump — это команда устранения неполадок в сети, которая также известна как анализатор пакетов, используется для захвата и отображения пакетов из сети. Для выполнения команды tcpdump вам требуется root или пользователь с правами sudo.

Когда вы используете tcpdump без какой-либо опции, он будет анализировать трафик на всех интерфейсах.

23. lsof

Команда Lsof расшифровывается как «Список открытых файлов». Чрезвычайно полезно узнать подробную информацию об открытых файлах и соответствующих процессах.

Чтобы просмотреть список файлов открытых определенным пользователем, используйте опцию -u.

Команда Lsof в системе Linux

Команда Lsof в системе Linux

24. watch

Команда Linux watch может использоваться для регулярного повторения команды.

Команды Linux для работы с пользователями 

Эти команды используются для управления пользователями Linux.

25. id

Команда ID используется в Linux для отображения реального и эффективного идентификатора пользователя (UID) и идентификатора группы (GID). UID — это единый идентификатор пользователя. В то время как идентификатор группы (GID) может состоять из нескольких идентификаторов UID.

26. last

Команда last в Linux используется для проверки ранее вошедшего пользователя на вашем сервере. О ней мы писали выше.

27. who

Команда  who — это инструмент для отображения информации о пользователях, которые в данный момент вошли в систему. who может видеть только реального пользователя, вошедшего в систему. Он не увидит пользователя, выполняющего команду su.

28. groupadd

Команда Groupadd используется для создания группы в Linux.

Следующая команда добавит в систему группу «setiwiki«.

# groupadd setiwiki

29. useradd

В операционных системах Linux и Unix — подобных наиболее распространенной командой для создания пользователей является «useradd» или «adduser«.

Давайте посмотрим, как создать нового пользователя «setiwik» и установить пароль. Команда добавляет запись в файлы /etc/passwd, /etc/shadow, /etc/group и /etc/gshadow.

# useradd bill
# passwd bill

30. userdel

Userdel — это низкоуровневая утилита для удаления пользователей. Команда Userdel будет искать файлы системных учетных записей, такие как «/etc/password » и «/etc/group«, а затем удалит оттуда все записи, связанные с именем пользователя.

31. usermod

Команда Linux usermod используется для изменения атрибутов существующего пользователя. Атрибутами пользователя являются домашний каталог, оболочка, дата истечения срока действия пароля, группы, UID и т.д.

32. passwd

Passwd — это команда, используемая в Linux (Redhat, Centos, Ubuntu, Debian, Fedora) и UNIX-подобных операционных системах для смены паролей.

Команды Linux, для работы с файлами

Эти команды используются для обработки файлов и каталогов.

33. ls

Очень простая, но мощная команда, используемая для отображения файлов и каталогов. По умолчанию команда ls отобразит содержимое текущего каталога.

34. pwd

Linux pwd — это команда для показывает имя текущего рабочего каталога. Когда мы теряемся в каталогах, мы всегда можем показать, где мы находимся.

Пример ример ниже:

[setiwik@li53-41 fsfreeze-hook.d]$ pwd
/usr/share/qemu-kvm/qemu-ga/fsfreeze-hook.d

35. mkdir

В Linux мы можем использовать команду mkdir для создания каталога.

По умолчанию, запустив mkdir без какой-либо опции, он создаст каталог в текущем каталоге.

$ mkdir account
$ ls -l
total 4
drwxrwxr-x. 2 linoxide linoxide 4096 Feb 8 08:04 account
$

36. cat

Мы используем команду cat в основном для просмотра содержимого, объединения и перенаправления выходных файлов. Самый простой способ использовать cat— это просто ввести » имя_файла cat’.

В следующих примерах команды cat отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.

$sudo cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

37. rm

Когда файл больше не нужен, мы можем удалить его, чтобы сэкономить место. В системе Linux мы можем использовать для этого команду rm.

38. cp

Команда Cp используется в Linux для создания копий файлов и каталогов.

Следующая команда скопирует файл ‘myfile.txt» из текущего каталога в «/home/linkedin/office«.

$ cp myfile.txt /home/linoxide/office

39. mv

Когда вы хотите переместить файлы из одного места в другое и не хотите их дублировать, требуется использовать команду mv. Подробнее можно прочитать ЗДЕСЬ.

40.cd

Команда Cd используется для изменения текущего рабочего каталога пользователя в Linux и других Unix-подобных операционных системах.

41. Ln

Символическая ссылка или программная ссылка — это особый тип файла, который содержит ссылку, указывающую на другой файл или каталог. Команда ln используется для создания символических ссылок.

Команда Ln использует следующий синтаксис:

ln -s [target directory or file] [symlink shortcut]

42. touch

Команда Touch используется в Linux для изменения времени доступа к файлам и их модификации. Мы можем использовать команду touch для создания пустого файла.

43. more

Команда More — это команда для одновременного отображения длинного текстового файла на странице.

44. head

Команда head используется для печати первых нескольких строк текстового файла. По умолчанию команда head выводит первые 10 строк каждого файла.

45. tail

Как вы, возможно, знаете, команда cat используется для отображения всего содержимого файла с помощью стандартного ввода. Но в некоторых случаях нам приходится отображать часть файла. По умолчанию команда tail отображает последние десять строк.

46. gpg

GPG — это инструмент, используемый в Linux для безопасной связи. Он использует комбинацию двух ключей (криптография с симметричным ключом и открытым ключом) для шифрования файлов.

47. cksum

Команда Cksum используется в Linux для показа контрольной суммы CRC и количества байтов, содержащихся в этом файле.

48. diff

Команда Diff используется для сравнения двух файлов строка за строкой в терминале.

49. sort

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

50. uniq

Uniq — это инструмент командной строки, используемый для создания отчетов и фильтрации повторяющихся строк из файла.

51. wc

Команда Linux wc подсчитывает количество байтов, символов, слов и строк в файле.

52. dir

Команда Dir используется для вывода списка содержимого каталога.

53. tee

Команда Linux tee используется для связывания и перенаправления задач, вы можете перенаправить вывод и/или ошибки в файл, и он не будет отображаться в терминале.

54. tr

Команда tr (translate) используется в Linux в основном для перевода и удаления символов. Его можно использовать для преобразования прописных букв в строчные, сжатия повторяющихся символов и удаления символов.

Команды Linux, связанные с процессом

Эти команды используются для обработки процессов Linux

55. ps

Команда Linux ps — это встроенный инструмент для отслеживания текущих процессов в системе. Он будет фиксировать состояние системы за один раз.

56. pmap

Команда pmap отображает карту использования памяти процесса или нескольких процессов. Pmap сообщает информацию об адресном пространстве или карте использования памяти процесса.

57. top

Команда top в Linux отображает запущенные процессы в системе. Эта команда широко используется для мониторинга нагрузки на сервер.

58. kill

Команда kill используется в Linux и других Unix-подобных операционных системах для завершения процессов без необходимости выхода из системы или перезагрузки компьютера.

59. killall

Команда killall может использоваться для отправки сигнала определенному процессу, используя его имя. Это означает, что если у вас запущено пять версий одной и той же программы, команда killall уничтожит все пять.

60. pkill

Аналогично команде killall, pkill посылает сигнал для завершения процесса с его именем. Начиная с Centos 7 рекомендуется использовать pkill.

61. fg и bg

Мы можем запускать задания в фоновом режиме без какого-либо вмешательства пользователя. Процессы, которые были остановлены каким-либо сигналом прерывания, могут быть продолжены в фоновом режиме с помощью команды bg. Команда fg похожа на команду bg, за исключением того, что вместо отправки команды в фоновом режиме она запускает их на переднем плане, занимает текущий терминал и ожидает завершения процесса.

Команды Linux, связанные с правами доступа к файлам

Эти команды используются для изменения разрешений файлов

62. chmod

Права доступа к файлам применяются на трех уровнях: владелец, члены группы и другие. Команда chmod используется для изменения этих разрешений.

Для следующего примера установим разрешение 755 на чтение+запись+выполнение для пользователя, установим разрешение на чтение+выполнение для группы и установим разрешение на чтение+выполнение для других.  Для примера возьмем файл ‘setiwik.tar.gz«.

# chmod 755 setiwik.tar.gz

63. chown

Команда chown в Linux используется для изменения владельца и группового владения файлами и каталогами.

В следующих примерах изменим принадлежность файла ‘/corpora/stopwords/danish.txt»  с «root:root» на «raghu:altair«.

# ls -l /corpora/stopwords/danish.txt
-rw-r--r-- 1 root root 424 Dec 10 2012 /corpora/stopwords/danish.txt
# chown raghu:altair /corpora/stopwords/danish.txt
# ls -l corpora/stopwords/danish
-rw-r--r-- 1 raghu altair 424 Dec 10 2012 /corpora/stopwords/danish.txt

64. chgrp

Команда Chgrp используется для изменения групповой принадлежности файла, в отличие от команды chown, которая позволяет изменять права собственности пользователя и группы.

Команды Linux для работы с сетью

Эти команды используются для просмотра и редактирования сетевых конфигураций, связанных с аспектами системы

65. ifconfig

Команда ifconfig используется для отображения и установки IP-адреса для сетевых интерфейсов в Linux. На данный момент ifconfig устарел в пользу iproute2.

Шпаргалка и сравнение команды iproute2 ЗДЕСЬ.

66. ip

IP — это команда linux похожа на ifconfig, но более мощная и предназначена для ее замены. С ip у вас есть преимущество в выполнении нескольких задач сетевого администрирования только одной командой.

67. ethtool

Команда ethtool используется для отображения/изменения настроек адаптера Ethernet. Вы можете изменить скорость сетевой карты, автоматическое согласование, настройку пробуждения по локальной сети, дуплексный режим с помощью этого инструмента в Linux.

68. mii-tool

Команда mii-tool позволяет системным администраторам Linux изменять или проверять сетевую карту.

69.  ping и ping6

Команды ping и ping6 используются для отправки эхо-запросов хосту и для проверки соединения ipv4 и ipv6.

70. whois

В Linux команда whois используется для получения информации о домене, такой как владелец домена, контактная информация владельца и серверы имен.

71. dig

Dig выполняет поиск DNS и отображает ответы, возвращенные с запрошенных серверов имен.

72. host

Команда хоста — это простая утилита для выполнения поиска DNS в Linux. С помощью этой команды мы можем переводить имена в IP-адреса и наоборот.

73. wget

Wget — это неинтерактивная бесплатная утилита командной строки, предназначена для загрузки файлов из Интернета.

10 ПРИМЕРОВ КОМАНДЫ WGET В LINUX (ЗАГРУЗКА ФАЙЛОВ LINUX)

74. netstat

Netstat — это инструмент командной строки, который используется для просмотра и мониторинга сетевой статистики и конфигураций системы. Этот инструмент доступен как в операционных системах на базе Unix, Linux, так и Windows NT

75. nslookup

Nslookup — это инструмент сетевого администрирования для запроса системы доменных имен для получения доменного имени или IP-адреса из записи DNS.

Команды связанные с сжатием и архивированием

Эти команды используются для сжатия и распаковки файлов.

76. tar

Tar — это инструмент командной строки, используемый для создания архивных файлов и управления ими в системах Linux и Unix. Команда Tar создает архивный файл .tar, а затем сжимает его с помощью gzip или bzip2.

77. gzip

Команда Gzip сжимает файлы в один файл с расширением .gz.

Команды Linux связанные с установкой пакета

Эти команды используются для управления пакетами Linux.

78. rpm

RPM (менеджер пакетов) — это утилита управления пакетами, используемая для установки, удаления, обновления, запроса и проверки пакетов программного обеспечения.

79. make

Команда Make используется для создания исполняемых программ и библиотек из исходного кода.

80. yum

Yum (измененное средство обновления Yellowdog) — это утилита, предоставляется в системах RHEL для установки, удаления и поиска пакетов. Например, Yum автоматически устанавливает зависимости пакетов. yum install httpd, установит сервер «apache».

81. Apt

Apt — это инструмент командной строки для установки, обновления и удаления пакетов deb в Ubuntu, Debian и подобных дистрибутивах Linux.

Поиск Связанных Команд Linux

Эти команды используются для поиска файлов и шаблонов

82. grep

Команда grep позволяет выполнять поиск текста или строки в файле или в консоли.

83. locate

Locate — это утилита командной строки для поиска файлов и каталогов по всей файловой системе.

84. find

Команда find Linux — это очень мощная команда, которая в основном используется для поиска файлов в структуре каталогов с использованием определенных критериев.

85. ssh

SSH используется для входа на удаленную машину и для выполнения команд на удаленной машине. Всякий раз когда данные отправляются на сервер через ssh, информация автоматически шифруется.

Полное руководство SSH с примерами

86. telnet

Telnet — это инструмент командной строки, используемый для подключения удаленного хоста, для проверки подключения портов приложений.

Команды Linux, Связанные С Передачей Файлов

Эти команды используются для копирования файлов из одной системы в другую систему

87. scp

SCP — это программа безопасного копирования для передачи файлов или каталогов между хостами Linux в сети. SCP использует протокол ssh для передачи данных.

Пример того как локальный файл ‘examples.txt» скопировать на удаленный хост.

$ scp examples.txt user@192.168.1.10:/home/user/account

88. rsync

Rsync синхронизирует файлы и каталоги между локальными и удаленными машинами. Он может рекурсивно копировать файлы и каталоги, копировать символические ссылки, сохранять (разрешения, группу, время изменения и принадлежность) идентификатор файла.

Команды Linux для работы с локальными дисками

Эти команды используются для просмотра статистики диска.

89. df

Команда df отображает использование дискового пространства для файловых систем Linux. Она так же отображает общий объем и свободное дисковое пространство, доступное в смонтированных файловых системах.

90. fdisk

Команда Fdisk используется в Linux для просмотра существующих разделов, создания нового раздела, удаления или изменения существующих разделов.

91. du

du (использование диска) — эта команда, используемая в Linux для проверки размера каталога, включая его другое содержимое, а также размер отдельных файлов.

92. findmnt

Команда findmnt используется для перечисления смонтированных файловых систем в Linux. Эта команда будет искать конкретную файловую систему в /etc/fstab, /etc/mtab или /proc/self/mountinfo.

93. mount

mount — это команда, используемая в Linux для подключенных файловых систем и дисков, а команда umount используется для отсоединения (размонтирования) любых подключенных файловых систем или устройств.

Заключение

В этой статье мы провели обзор большинства команд Linux. Вы так же можете положиться на справочные материалы Linux, для получения дополнительной информации. Я надеюсь, что эта статья была полезна для вас.

10 июня 2019

65 633

10

Время чтения ≈ 22 минуты

Справочник основных команд Linux

Содержание:

  • Справки
  • Права суперпользователя
  • Файлы и каталоги
  • Навигация
  • Сеть
  • Процессы
  • Архивирование
  • Текст
  • Окружение пользователя
  • Пакетные менеджеры
  • Заключение

Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.

В Linux насчитывается несколько сотен основных команд и их модификаций. Они группируются по нескольким категориям. По расположению — могут быть утилитами командной строки или встроенной функцией командной оболочки. По частоте применения – используемыми постоянно, эпизодически и редко. По типам действий – от получения справки до управления файлами и процессами. Именно третья, функциональная составляющая и станет основой группировки утилит в этой статье.

В обзоре собраны все важнейшие команды Linux, которые могут пригодиться для администрирования ОС Linux. Статья рассчитана как на новичков, так и на продвинутых пользователей, уже знакомых с основным функционалом терминала. Эту своеобразную шпаргалку можно смело добавлять в закладки всем, кто хочет извлечь из «Линукс» максимум полезных свойств и повысить свою продуктивность в несколько раз.

Справочная информация / документация

  1. man

    (Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:

    man имя_программы

    Для инструкции по команде, введите:

    man имя_команды
  2. whatis

    Выводит краткое описание программы. Пример:

    whatis имя_программы
  3. whereis

    Показывает полный путь к исполняемому файлу и другим файлам программы. Пример:

    whereis имя_программы

    Также даёт информацию о связанной с программой справочной информации.

  4. file

    Показывает к какому типу относится файл. Особенность Linux в том, что рабочие файлы могут и не иметь расширения. Поэтому у пользователя могут возникнуть проблемы с идентификацией файлов, которые снимает эта команда.

  5. —help

    Вся необходимая информация о команде будет доступна, если набрать:

    имя_программы --help
  6. whoami

    Команда показывает действительный идентификатор пользователя (UID).

  7. TAB

    Показывает варианты автозавершения команды. Нажатие клавиши табуляция после определённой команды или их последовательности выводит подсказку с вариантами возможного продолжения команды.

  8. Ctrl + R

    Это сочетание клавиш помогает запустить обратный поиск по всем параметрам, связанным с указанной командой. Достаточно лишь указать ключевое слово для поиска. Есть серьёзный минус – за раз можно увидеть только 1 результат. Выйти из режима реверсивного поиска поможет комбинация Ctrl + C.

Права суперпользователя

Большое число базовых команд Linux, например, установка программ или создание файлов в корневой системе, требуют для исполнения права пользователя root или суперпользователя. Применение данного режима несёт серьёзные изменения для операционной системы, поэтому нужно точно понимать, как сработает запущенная команда.

Способы получить права root в Linux

  • Вход от имени суперпользователя в виртуальной консоли, введя логин и пароль пользователя root.
  • Разовое переключение на роль суперпользователя в терминале с помощью специальных утилит.

О втором варианте расскажем подробнее.

  1. sudo

    (Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:

    sudo имя_команды
  2. sudo su

    Инструмент применяется, когда нужно запустить несколько «суперпользовательских» команд. Все следующие вводимые команды будут запускаться в режиме суперпользователя до закрытия командной строки.

  3. sudo gksudo

    Осуществляет запуска приложений от имени суперпользователя, использующих не терминал, а графический интерфейс. В дистрибутиве Kubuntu имя этой команды выглядит несколько иначе — sudo kdesudo.

  4. sudo !!

    Команда применяется, если нужно перезапустить с правами root уже отданную (от имени обычного пользователя) команду.

Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.

Управления файлами и каталогами

  1. ls

    (List). С помощью этой утилиты можно посмотреть, что содержится в папке. Без указания конкретного пути показывает текущий каталог. Если путь указан, то переход совершиться в конечный его каталог. Чтобы вывести каталог в виде списка с дополнительной поясняющей информацией введите:

    ls -l

    Для показа скрытых файлов:

    ls -a
  2. ll

    Команда для просмотра содержимого директорий. Более современная альтернатива этой утилиты ls -l может работать не во всех дистрибутивах Linux.

  3. cat

    (Concatenate / Catenate). Команда двойного назначения. Показывает на экране что содержит файл или стандартный ввод. Также к «склеивает» несколько переданных подряд файлов в один. Если нужно посмотреть содержимое одного файла, вводим:

    cat имя_файла

    Если нужно узнать содержимое нескольких файлов подряд:

    cat файл_№1 файл_№2 файл_№3

    Для «склейки» файлов, вводим:

    cat файл_№1 файл_№2 > файл_№3

    Чтобы задать нужное количество строк в показанном:

    cat -n
  4. cd

    (Change Directory). Меняет текущий каталог, в котором работает терминал на указанный. Когда терминал запущен, он использует по умолчанию корневой каталог (root), вернуться в который можно, набрав:

    cd ~

    Чтобы указать другую папку для работы с файлами, нужно ввести:

    cd адрес_папки

    Чтобы подняться по древу каталогов на уровень вверх набираем:

    cd ..

    Чтобы вернуться к предыдущей директории:

    cd -
  5. &&

    Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:

    команда_№1 && команда_№2 && команда_№3

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

  6. mkdir

    (Make Directory). Создаёт новую директорию. Можно также создать полную структуру подкаталогов, если ввести сочетание:

    mkdir –p
  7. cp

    (Copy). Утилита, позволяющая скопировать файл или каталог. Копирование файлов и каталогов. Чтобы копирование прошло рекурсивно, т. е. включало все поддиректории и файлы в них, надо добавить к команде:

    cp -r

    А если надо дополнить рекурсивное копирование сохранением всех атрибутов, сведения о владельце и временный штамп, добавляем «архивную» опцию -a, чтобы получилось:

    cp –r –a
  8. mv

    (Move). Эта команда в Linux одновременно отвечает за перемещение и переименование файла или каталога. При переименовании файл перемещается в ту же папку, но уже названную по-новому.

  9. rm

    (Remove). Отвечает за удаление папок и файлов. Использовать оператор rm следует крайне осторожно. В Linux файлы удаляются не в корзину, откуда их можно восстановить, а стираются безвозвратно. Для рекурсивного удаления используйте сочетание:

    rm -r
  10. ln

    (Link). Создаёт программные ссылки на файлы. По функционалу это похоже на ярлыки в Windows.

    Типы ссылок Linux

  • символические (-s) – указание на адрес файла ил папки без метаданных;
  • твёрдые или жёсткие (-P) – содержат сведения о физическом адресе на диске, где хранится файл.
    Удалить ссылку в Linux можно при помощи атрибута –f.
  1. chmod

    (Change Mode). Изменяет разрешения доступа к файлу. Под доступом имеется в виду классическая триада: чтение r, изменение w и запуск x. Общий вид:

    chmod разрешения имя_файла

    При этом, «разрешения» могут быть указаны буквенным, символьным (rwx) или цифровым кодом. Кроме того, эта переменная может включать информацию о владельце (u / g / o / a) и операции с правами (+ / / =).

Популярные комбинации разрешений для команды chmod

Вид разрешения Символьный код Числовой код
Нет допуска  —  0
Чтение  r—  4
Изменение  -w-  2
Запуск  —x  1
Запуск + Изменение  -wx  3
Чтение + Запуск  r-x  5
Чтение + Изменение  rw-  6
Запуск + Изменение + Запуск  rwx  7
  1. chown

    (Change Owner). Команда для смены владельца файла и его группы. Для смены владельца используем синтаксис:

    chown новый_владелец имя_файла

    Для смены группы файла:

    chown новая_группа имя_файла

    Если надо поменять оба параметра:

    chown новый_владелец :новая_группа имя_файла

    Команду можно применить только с правами суперпользователя. Чтобы изменить владельца/группу рекурсивно добавляем:

    chown –R
  2. chgrp

    (Change Group). Меняет группу файла. В отличие от chown, эта команда позволяет менять группы, только тем, кто в ней состоит.

  3. dd

    (Dataset Definition). Позволяет скопировать данные на двоичном уровне из одного места в другое. Данные могут быть любого размера — от образа CD/ DVD до целого жёсткого диска.
    Утилита перемещает блоки данных из указанного источника — if имя_файла в пункт назначения — of имя_файла, который может быть устройством или файлом. Для копирования нескольких файлов применяется утилита cp.
    С данной командой надо обращаться крайне осторожно, о чём свидетельствует её альтернативное название «Data Destroyer». Ошибка в вводе данных может легко стать причиной потери данных на диске.

  4. df

    (Disk Free). Даёт полную информацию о свободном пространстве на диске. Анализ включает перечисление файловых систем смонтированных разделов, обзор занятого и свободного места на диске. Для более удобного вывода информации, лучше применять сочетание:

    df –h
  5. du

    (Disk Usage). Позволяет определить размер файла или каталога. Применяется в вместе с дополнительными операторами:

  • df –h — представляет данные о размере в удобном для восприятия формате;
  • df –s — даёт необходимый минимум данных;
  • df –d — задаёт глубину рекурсии для каталогов.
  1. mount / umount

    Команды Linux для монтажа и отключения любых файловых систем — от CD-диска и USB-флешки до ядер ОС. Тип файловой системы обычно определяется командой самостоятельно, путём чтения суперблока. Опция используется только с правами суперпользователя.

Навигация

  1. find

    Осуществляет поиск в файловой системе, файлах и папках. Для результатов поиска можно выполнять дополнительные команды.

  2. pwd

    Отображает на экране текущий каталог.

  3. clear

    Команда полной очистки окна терминала удаляет все ранее выведенные сообщения.

  4. history

    Показывает ранее введённые пользователем команды. Перемещаться по списку введённых команд можно, нажимая на клавиатуре «Вверх» и «Вниз».

  5. locate

    Быстрый поиск файлов по базе данных updatedb для шаблонов имён файлов. Эта БД работает со снимком файловой системы, что многократно ускоряет процесс поиска. Но тут есть и существенный минус. Точность поиска зависит от того, насколько актуальны данные о файловой системе в текущей версии снимка.

  6. zcat / zless / zmore

    Утилиты для просмотра сжатых файлов. С помощью zcat можно найти увидеть список сжатых файлов, zless выводит их списком постранично с возможностью листать вперёд и назад, а zmore — только вперёд.

  7. ;

    Точка с запятой — ещё один оператор для последовательного запуска нескольких команд в одной строке. Если нужно, чтобы команды выполнялись параллельно, используйте оператор так:

    (команда_№1 &); (команда_№2 &); (команда_№3 &)

Управление сетью

  1. ip

    (Internet Protocol). Утилита выводит полный список параметров для настройки работы с сетью. Среди них:

  • link — сетевое устройство;
  • address — IP-адрес сетевого устройства;
  • monitor — мониторинг устройства;
  • route — маршрутизация;
  • tunnel — туннелированные.
    Каждый из выводимых объектов можно изменять при помощи дополнительных команд: add, change, del, save и т.д.
  1. ping

    Команда проверяет наличие и качество интернет-подключения.

  2. nethogs

    Утилита мониторинга сетевой активности устройств в системе. Чтобы задать сетевой интерфейс, введите:

    nethogs -i
  3. traceroute

    Утилита отслеживания интернет-подключения, отслеживая маршруты следования пакетов данных в сетях TCP/IP. Более совершенный инструмент для отслеживания проблем с подключением к Сети, чем упомянутая выше команда ping. Запускается только с правами суперпользователя.

Работа с процессами

  1. kill / xkill / pkill / killall

    Вариации команды для завершения операций. Основное различие между ними — способ идентификации.

  • kill — прекращает операцию, находя ее через идентификатор процесса (PID).
  • xkill — графический способ. После ввода команды курсор превращается в крестик, который при клике на окно открытого процесса, останавливает его;
  • pkill — завершает конкретный процесс, находя его по имени.
  • killall — прекращает все процессы с указанным именем.
  1. Ctrl +C

    Данное сочетание клавиш — еще один быстрый способ завершить выполнение любого процесса в терминале Linux.

  2. Ctrl +Z

    Комбинация ставит любой запущенный в консоли процесс на паузу. Снова запустить его можно, введя %.

  3. ps / pgrep

    (Process Status / Process-ID Global Regular Expressions Print). Команды находят по заданным параметрам и выводят информацию об активных процессах. Самый доступный способ найти идентификатор процесса (PID). Модификация pstree показывает весь список («древо») исполняемых процессов.

  4. top / htop / atop

    (Table of Processes). Три варианта команды, вызывающую консольную программу мониторинга активных процессов в системе. Информация отображается в виде таблицы со списком процессов в реальном времени. Рекомендуется использовать две последних модификации программы – в них больше возможностей и продвинутых функций.

  5. crontab

    Выполнение Cron (Command Run ON) — задач по расписанию в Linux.

  6. time

    Команда-секундомер, позволяющая подсчитать время исполнения процесса. Результатом измерения станет блок данных с тремя важнейшими параметрами:

  • real— общее время исполнения;
  • user — сколько времени пользователь занял у CPU;
  • sys — сколько времени CPU было потрачено системой.

Сделать время исполнения процесса ОС Linux минимальным поможет VPS сервер от Eternalhost! Универсальное решение по доступной цене!

Работа с архивами

  1. gzip

    Создаёт архивы со сжатыми файлами. Архивный файл будет иметь расширение .gz.

  2. gunzip

    Команда-распаковщик для zip-архивов. Извлекает сжатые файлы и удаляет архивный файл .gz.

  3. tar

    Сохраняет файлы и каталоги в архив с расширением .tar. Удобная утилита для создания резервных копий или надёжной архивации данных.

Управление пользователями

  1. useradd / userdel / usermod

    Команды управления учётными записями пользователей. Позволяют добавлять, удалять и редактировать пользовательские профили. Пример:

    useradd имя_пользователя.
  2. passwd

    Позволяет менять пароли учётных записей. Обычный пользователь может поменять только пароль, связанный с его именем: passwd имя_пользователя.В режиме суперпользователя можно «вслепую» сбросить все пользовательские пароли в системе.

Работа с текстом

  1. Ctrl + A / Ctrl + E

    Клавиши быстрого перехода в начало (А) и конец (E) строки.

  2. Ctrl + Shift + C / Ctrl + Shift + V

    Это сочетание клавиш в Linux позволит быстро скопировать (C) и вставить (V) текст в терминале.

  3. more / less

    Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.

  4. head / tail

    Пара дополняющих друг друга команд для просмотра на одном экране начала и конца текста. Команда head выдаёт 10 (по умолчанию) первых строк текста, tail — последних. Число строк в обоих случаях меняется с помощью аргумента -n. Оператор -f позволяет отслеживать на экране изменения в файле. Чтобы лог (журнал) файла отображался в режиме реального времени, ввести команду:

    tail –nf,

    Для отслеживания логов нескольких файлов применяется модификация команды — multitail.

  5. grep

    (Global Regular Expression and Print). Ищет текст по заданному шаблону. Это очень полезно, когда надо проанализировать работу команды, которая сопровождается большим объёмом текстовой информации. Шаблон может заполняться строкой или регулярным выражением. Пример:

    alias старое_название новое_название
  6. sort

    Сортировка текстовой информации по заданным показателям. Дополнительные переменные позволяют:

  • -n ­— сортировать строки текста по числовому значению;
  • du ­— по размеру;
  • -r ­— применять обратную сортировку;
  • -u ­— удалять дубликаты при сортировке.
  1. wc

    (Word Count). Программа для подсчета заданных параметров в тексте. Считает такие показатели, как символы, слова, строки и байты.

  2. diff

    (Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними. Алгоритм работы:

    diff файл_№1 файл_№2

    Различия между двумя версиями файлов отмечают такие символы, как:

  • c — изменённые строки;
  • d — удалённые строки;
  • а —новые строки.

Окружение пользователя

  1. su / sudo

    (Switch User / Substitute User & Do). Две команды для запуска процессов от имени другого пользователя без завершения текущего сеанса. При использовании su по умолчанию происходит переход на пользователя root. Команда sudo способна не только активировать режим суперпользователя (о чём упоминалось выше), но и выполнить команду от имени другого пользователя без реального переключения на него. Поэтому второй вариант считается более безопасным.

  2. date

    Команда Linux, сообщающая информацию о времени. Отдельными переменными можно задать удобный формат вывода и число отображаемых параметров, вплоть до миллисекунд.

  3. alias

    Команда для создания синонимов названий незаменяемых команд для их сокращения. Она изменяет длинное название на удобное пользователю короткое или аббревиатуру. Пример:

    alias старое_название новое_название

    Этот же приём отлично подойдёт для устранения опечаток в командах. Отменить действие утилиты переименования поможет команда unalias.

  4. uname

    Утилита, выводящая информацию об операционной системе. Без дополнительных параметров она выдаст только название ядра. Чтобы получить всю возможную системную информацию, введите:

    uname -a
  5. uptime

    Показывает аптайм – время непрерывной работы системы.

  6. sleep

    Задаёт таймер выключения системы.

  7. yes

    Утилита автозаполнения поля согласия в команде или скрипте. Введите: yes название_команды и вам не придётся делать подтверждение вручную, когда этого потребует сценарий взаимодействия программы с пользователем.

Пакетные менеджеры

Пакетные менеджеры (ПМ) в Linux отвечают за установку, обновление и удаление приложений. Принцип их работы – загрузка программных пакетов из собственных сетевых репозитариев. Данные утилиты работают только с правами суперпользователя. Для различных дистрибутивов Linux существуют свои версии ПМ.

  1. apt

    ПМ для Debian, Ubuntu и Mint. Чтобы установить приложение, введите:

    sudo apt install имя_пакета

    Чтобы удалить приложение:

    sudo apt remove имя_пакета
  2. dnf / yum

    Два самых распространённых ПМ для операционных систем Red Hat, Fedora и CentOS. Чтобы установить приложение, введите:

    sudo dnf install имя_пакета

    Чтобы удалить:

    sudo dnf remove имя_пакета
  3. pacman

    Пакетный менеджер дистрибутивов Arch и Manjaro. Чтобы установить приложение, введите:

    sudo pacman -S имя_пакета

    Чтобы удалить приложение:

    sudo pacman -R имя_пакета

Заключение

Полный список команд для дистрибутивов Linux — материал скорее для объемной книги, чем для одной статьи. Однако, в данном обзоре мы постарались собрать самые важные из них. Эти команды будут гарантированно полезны как в повседневных задачах, так и для раскрытия продвинутых возможностей этой операционной системы.

У каждого пользователя Linux есть свой список must have команд. Наверняка и вам есть чем дополнить данный обзор? Делитесь своими любимыми командами Linux в комментариях!

Хотите, чтобы операционка работала как швейцарские часы? Надёжная и мощная платформа для развёртывания любых дистрибутивов Linux — VDS от Eternalhost!

Оцените материал:


[Всего голосов: 8    Средний: 4.5/5]

На чтение 18 мин Просмотров 392 Опубликовано 11 октября, 2021 Обновлено 11 октября, 2021

Если вы новичок в Linux, тогда с большой вероятностью вы начали использовать командную строку. Если знать команды Linux, то с терминалом довольно легко работать. Именно поэтому большинство системных администраторов Linux предпочитают работу в терминале. Так как сделать что-то через терминал гораздо быстрее чем через GUI.

В этой статье мы покажем и расскажем наиболее часто используемые и важные команды Linux, которые вы должны знать и помнить. Надеемся что данная статья про команды Linux станет для вас хорошей шпаргалкой.

Содержание

  1. Системные команды Linux
  2. uname
  3. uptime
  4. hostname
  5. last
  6. date
  7. cal
  8. w
  9. whoami
  10. reboot
  11. shutdown
  12. Команды Linux, взаимодействующие с оборудованием
  13. dmesg
  14. lshw
  15. lsblk
  16. free
  17. lspci
  18. lsusb
  19. dmidecode
  20. hdparm
  21. Команды Linux, связанные со статистикой
  22. mpstat
  23. vmstat
  24. iostat
  25. tcpdump
  26. lsof
  27. watch
  28. Команды Linux для работы с пользователями 
  29. id
  30. last
  31. who
  32. groupadd
  33. useradd
  34. userdel
  35. usermod
  36. passwd
  37. Команды Linux, для работы с файлами
  38. ls
  39. pwd
  40. mkdir
  41. cat
  42. rm
  43. cp
  44. mv
  45. cd
  46. Ln
  47. touch
  48. more
  49. head
  50. tail
  51. gpg
  52. cksum
  53. diff
  54. sort
  55. uniq
  56. wc
  57. dir
  58. tee
  59. tr
  60. Команды Linux, связанные с процессом
  61. ps
  62. pmap
  63. top
  64. kill
  65. killall
  66. pkill
  67. fg и bg
  68. Команды Linux, связанные с правами доступа к файлам
  69. chmod
  70. chown
  71. chgrp
  72. Команды Linux для работы с сетью
  73. ifconfig
  74. ip
  75. ethtool
  76. mii-tool
  77. ping и ping6
  78. whois
  79. dig
  80. host
  81. wget
  82. netstat
  83. nslookup
  84. Команды связанные с сжатием и архивированием
  85. tar
  86. gzip
  87. Команды Linux связанные с установкой пакета
  88. rpm
  89. make
  90. yum
  91. Apt
  92. Поиск Связанных Команд Linux
  93. grep
  94. locate
  95. find
  96. ssh
  97. telnet
  98. Команды Linux, Связанные С Передачей Файлов
  99. scp
  100. rsync
  101. Команды Linux для работы с локальными дисками
  102. df
  103. fdisk
  104. du
  105. findmnt
  106. mount
  107. Заключение

Системные команды Linux

Эти команды используются для просмотра информации и управления, связанной с системой Linux.

uname

Команда Uname используется в Linux для поиска информации об операционных системах. В Uname существует много опций, которые могут указывать имя ядра, версию ядра, тип процессора и имя хоста.

Следующая команда uname с опцией a отображает всю информацию об операционной системе.

$ sudo uname -a
Linux linode02 5.1.17-x86_64-linode128 #1 SMP PREEMPT Wed Jul 15 18:11:53 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

uptime

Информация о том, как долго работает система Linux, отображается с помощью команды uptime. Информация о времени безотказной работы системы собирается из файла ‘/proc/uptime‘. Эта команда также отобразит среднюю нагрузку на систему.

Из следующей команды мы можем понять, что система работает в течение последних 36 минут.

$ uptime
15:52:37 up 36 min, 1 user, load average: 0.03, 0.07, 0.04

hostname

Вы можете отобразить имя хоста вашей машины, введя hostname в своем терминале. С помощью опции-i  вы можете просмотреть ip-адрес компьютера. А с помощью параметра -d вы можете просмотреть доменное имя.

last

Команда last в Linux используется для определения того, кто последним вошел в систему на вашем сервере. Эта команда отображает список всех пользователей, вошедших (и вышедших) из «/var/log/wtmp » с момента создания файла.

Вам просто нужно ввести «last» в своем терминале.

$ last
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
setiwik tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

date

В Linux команда date используется для проверки текущей даты и времени системы. Эта команда позволяет задать пользовательские форматы для дат.

Например, используя «date +%D«, вы можете просмотреть дату в формате «ММ/ДД/ГГ«.

$ date +%D
07/08/21

cal

По умолчанию команда cal отображает календарь текущего месяца. С помощью опции -y вы можете просмотреть календарь на весь год.

w

По умолчанию команда w отображает, кто в данный момент вошел в систему на вашем компьютере и что они делают.

$ w
01:36:19 up 2:08, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 39.177.9.194 23:29 3.00s 0.02s 0.00s w
setiwik pts/1 59.177.9.193 01:35 11.00s 0.00s 0.00s -bash

whoami

Команда Whoami выводит имя пользователя, вошедшего в систему в данный момент. Это похоже на команду id -un.

reboot

Команда reboot используется для перезагрузки системы Linux. Вы должны запустить эту команду из терминала с правами суперпользователя sudo.

shutdown

Команда shutdown используется для выключения или перезагрузки системы Linux. Эта команда позволяет планировать завершение работы и уведомлять пользователей сообщениями о выключении и перезагрузке.

По умолчанию компьютер (сервер) выключится через 1 минуту. Вы можете отменить расписание, выполнив команду: shutdown -c

$ sudo shutdown
Shutdown scheduled for Fri 2021-04-09 13:45:51 UTC, use 'shutdown -c' to cancel.

Немедленное отключение тоже возможно, для этого используется опция «now»

$ sudo shutdown -h now

Команды Linux, взаимодействующие с оборудованием

Эти команды используются для просмотра аппаратных аспектов операционной системы Linux и управления ими.

dmesg

Команда Dmesg печатает свои данные, считывая кольцевой буфер ядра. Данные могут представлять собой информацию о процессоре, жестком диске, принтере, клавиатуре, памяти и драйверах.

$ dmesg

Ответ в терминале :

[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.8.0-31-generic (buildd@aatxe) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #46-Ubuntu SMP Tue Sep 10 19:56:49 UTC 2013 (Ubuntu 3.8.0-31.46-generic 3.8.13.8)
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] NSC Geode by NSC
[ 0.000000] Cyrix CyrixInstead
[ 0.000000] Centaur CentaurHauls
[ 0.000000] Transmeta GenuineTMx86
[ 0.000000] Transmeta TransmetaCPU
[ 0.000000] UMC UMC UMC UMC

lshw

Отображает информацию о конфигурации оборудования системы. Команда Lshw должна выполняться от имени привилегированного пользователя root или sudo, в противном случае она будет сообщать только частичную информацию.

lsblk

Отображает информацию о блочном устройстве машины, связанную с устройством. Команда Lsblk с помощью опции -a вы можете просматривать все блочные устройства.

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 28.5G 0 disk /
sdb 8:16 0 1024M 0 disk [SWAP]

free

Команда free используется в Linux для проверки объема свободной оперативной памяти в системе. Так же команда free показывает пространство подкачки, буферное и кэш-пространство.

$ free
total    used      free     shared   buff/cache   available
Mem:    4022216   723872   1359820   157988    1938524      2661636
Swap:    524284   247820   276464

lspci

Lspci — это стандартная утилита Linux, которая показывает какое внутри оборудования. Команда lspci покажет информацию о шинах PCI, AGP и встроенных компонентах, таких как чипсет, USB и т.д.

lsusb

Команда Lsusb используется для отображения информации о шинах USB и подключенных к ним устройствах.Вы можете найти утилиту lsusb в пакете usbutils.

dmidecode

Команда Dmidecode считывает системную таблицу DMI (Интерфейс управления рабочим столом). Используется для отображения информации об оборудовании и BIOS. Выходные данные dmidecode содержат несколько записей из таблицы DMI. Эта таблица содержит описание аппаратных компонентов систем, а также другую полезную информацию, такую как серийный номер, версия BIOS и т. д.

Для использования требуется привилегия root или sudo.

В следующем примере показаны сведения о bios.

# dmidecode -t bios
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: SeaBIOS
Version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org
Release Date: 04/01/2014
Address: 0xE8000
Runtime Size: 96 kB
ROM Size: 64 kB
Characteristics:
BIOS characteristics not supported
Targeted content distribution is supported
BIOS Revision: 0.0

hdparm

Hdparm — это команда, используемая в Linux для показа информации о жестком диске. Эта команда может отобразить производительность скорости диска и изменять настройки DMA.

Следующая команда выполнит проверку скорости чтения на диске sda:

# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 18012 MB in 2.00 seconds = 9023.48 MB/sec
Timing buffered disk reads: 7146 MB in 3.00 seconds = 2380.77 MB/sec

Команды Linux, связанные со статистикой

Этот набор команд используется для просмотра различных видов статистики системы Linux.

mpstat

Команда Mpstat используется для показа статистики процессора и помогает отслеживать загрузку процессора в вашей системе. Это будет более полезно, если ваша система имеет несколько процессоров.

$ mpstat -P 0
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
03:54:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
03:54:00 PM 0 3.82 0.01 1.16 3.88 0.00 0.06 0.00 0.00 91.06

vmstat

Vmstat — это инструмент, который предоставляет отчеты о статистике виртуальной памяти. Он охватывает использование системной памяти, подкачки и процессоров в режиме реального времени.

По умолчанию vmstat работает следующим образом:

Команды Linux — Полное руководство

iostat

Команда Iostat — это команда, используемая для мониторинга загрузки устройств ввода-вывода (I/O). Путем наблюдения за временем активности устройств по отношению к их средним скоростям передачи.

tcpdump

Tcpdump — это команда устранения неполадок в сети, которая также известна как анализатор пакетов, используется для захвата и отображения пакетов из сети. Для выполнения команды tcpdump вам требуется root или пользователь с правами sudo.

lsof

Команда Lsof расшифровывается как «Список открытых файлов». Чрезвычайно полезно узнать подробную информацию об открытых файлах и соответствующих процессах.

Чтобы просмотреть список файлов открытых определенным пользователем, используйте опцию -u.

Команды Linux — Полное руководство

watch

Команда Linux watch может использоваться для регулярного повторения команды.

Команды Linux для работы с пользователями 

Эти команды используются для управления пользователями Linux.

id

Команда ID используется в Linux для отображения реального и эффективного идентификатора пользователя (UID) и идентификатора группы (GID). UID — это единый идентификатор пользователя. В то время как идентификатор группы (GID) может состоять из нескольких идентификаторов UID.

last

Команда last в Linux используется для проверки ранее вошедшего пользователя на вашем сервере. О ней мы писали выше.

who

Команда  who — это инструмент для отображения информации о пользователях, которые в данный момент вошли в систему. who может видеть только реального пользователя, вошедшего в систему. Он не увидит пользователя, выполняющего команду su.

groupadd

Команда Groupadd используется для создания группы в Linux.

Следующая команда добавит в систему группу setiwiki.

# groupadd setiwiki

useradd

В операционных системах Linux и Unix — подобных наиболее распространенной командой для создания пользователей является «useradd» или «adduser«.

Давайте посмотрим, как создать нового пользователя «setiwik» и установить пароль. Команда добавляет запись в файлы /etc/passwd, /etc/shadow, /etc/group и /etc/gshadow.

# useradd bill
# passwd bill

userdel

Userdel — это низкоуровневая утилита для удаления пользователей. Команда Userdel будет искать файлы системных учетных записей, такие как «/etc/password » и «/etc/group«, а затем удалит оттуда все записи, связанные с именем пользователя.

usermod

Команда Linux usermod используется для изменения атрибутов существующего пользователя. Атрибутами пользователя являются домашний каталог, оболочка, дата истечения срока действия пароля, группы, UID и т.д.

passwd

Passwd — это команда, используемая в Linux (Redhat, Centos, Ubuntu, Debian, Fedora) и UNIX-подобных операционных системах для смены паролей.

Команды Linux, для работы с файлами

Эти команды используются для обработки файлов и каталогов.

ls

Очень простая, но мощная команда, используемая для отображения файлов и каталогов. По умолчанию команда ls отобразит содержимое текущего каталога.

pwd

Linux pwd — это команда для показывает имя текущего рабочего каталога. Когда мы теряемся в каталогах, мы всегда можем показать, где мы находимся.

Пример ример ниже:

[setiwik@li53-41 fsfreeze-hook.d]$ pwd
/usr/share/qemu-kvm/qemu-ga/fsfreeze-hook.d

mkdir

В Linux мы можем использовать команду mkdir для создания каталога.

По умолчанию, запустив mkdir без какой-либо опции, он создаст каталог в текущем каталоге.

$ mkdir account
$ ls -l
total 4
drwxrwxr-x. 2 linoxide linoxide 4096 Feb 8 08:04 account
$

cat

Мы используем команду cat в основном для просмотра содержимого, объединения и перенаправления выходных файлов. Самый простой способ использовать cat— это просто ввести » имя_файла cat’.

В следующих примерах команды cat отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.

$sudo cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

rm

Когда файл больше не нужен, мы можем удалить его, чтобы сэкономить место. В системе Linux мы можем использовать для этого команду rm.

cp

Команда Cp используется в Linux для создания копий файлов и каталогов.

Следующая команда скопирует файл ‘myfile.txt» из текущего каталога в /home/linkedin/office.

$ cp myfile.txt /home/linoxide/office

mv

Когда вы хотите переместить файлы из одного места в другое и не хотите их дублировать, требуется использовать команду mv.

cd

Команда Cd используется для изменения текущего рабочего каталога пользователя в Linux и других Unix-подобных операционных системах.

Ln

Символическая ссылка или программная ссылка — это особый тип файла, который содержит ссылку, указывающую на другой файл или каталог. Команда ln используется для создания символических ссылок.

Команда Ln использует следующий синтаксис:

ln -s [target directory or file] [symlink shortcut]

touch

Команда Touch используется в Linux для изменения времени доступа к файлам и их модификации. Мы можем использовать команду touch для создания пустого файла.

more

Команда More — это команда для одновременного отображения длинного текстового файла на странице.

head

Команда head используется для печати первых нескольких строк текстового файла. По умолчанию команда head выводит первые 10 строк каждого файла.

tail

Как вы, возможно, знаете, команда cat используется для отображения всего содержимого файла с помощью стандартного ввода. Но в некоторых случаях нам приходится отображать часть файла. По умолчанию команда tail отображает последние десять строк.

gpg

GPG — это инструмент, используемый в Linux для безопасной связи. Он использует комбинацию двух ключей (криптография с симметричным ключом и открытым ключом) для шифрования файлов.

cksum

Команда Cksum используется в Linux для показа контрольной суммы CRC и количества байтов, содержащихся в этом файле.

diff

Команда Diff используется для сравнения двух файлов строка за строкой в терминале.

sort

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

uniq

Uniq — это инструмент командной строки, используемый для создания отчетов и фильтрации повторяющихся строк из файла.

wc

Команда Linux wc подсчитывает количество байтов, символов, слов и строк в файле.

dir

Команда Dir используется для вывода списка содержимого каталога.

tee

Команда Linux tee используется для связывания и перенаправления задач, вы можете перенаправить вывод и/или ошибки в файл, и он не будет отображаться в терминале.

tr

Команда tr (translate) используется в Linux в основном для перевода и удаления символов. Его можно использовать для преобразования прописных букв в строчные, сжатия повторяющихся символов и удаления символов.

Команды Linux, связанные с процессом

ps

Команда Linux ps — это встроенный инструмент для отслеживания текущих процессов в системе. Он будет фиксировать состояние системы за один раз.

pmap

Команда pmap отображает карту использования памяти процесса или нескольких процессов. Pmap сообщает информацию об адресном пространстве или карте использования памяти процесса.

top

Команда top в Linux отображает запущенные процессы в системе. Эта команда широко используется для мониторинга нагрузки на сервер.

kill

Команда kill используется в Linux и других Unix-подобных операционных системах для завершения процессов без необходимости выхода из системы или перезагрузки компьютера.

killall

Команда killall может использоваться для отправки сигнала определенному процессу, используя его имя. Это означает, что если у вас запущено пять версий одной и той же программы, команда killall уничтожит все пять.

pkill

Аналогично команде killall, pkill посылает сигнал для завершения процесса с его именем. Начиная с Centos 7 рекомендуется использовать pkill.

fg и bg

Мы можем запускать задания в фоновом режиме без какого-либо вмешательства пользователя. Процессы, которые были остановлены каким-либо сигналом прерывания, могут быть продолжены в фоновом режиме с помощью команды bg. Команда fg похожа на команду bg, за исключением того, что вместо отправки команды в фоновом режиме она запускает их на переднем плане, занимает текущий терминал и ожидает завершения процесса.

Команды Linux, связанные с правами доступа к файлам

Эти команды используются для изменения разрешений файлов

chmod

Права доступа к файлам применяются на трех уровнях: владелец, члены группы и другие. Команда chmod используется для изменения этих разрешений.

Для следующего примера установим разрешение 755 на чтение+запись+выполнение для пользователя, установим разрешение на чтение+выполнение для группы и установим разрешение на чтение+выполнение для других.  Для примера возьмем файл setiwik.tar.gz.

# chmod 755 setiwik.tar.gz

chown

Команда chown в Linux используется для изменения владельца и группового владения файлами и каталогами.

В следующих примерах изменим принадлежность файла ‘/corpora/stopwords/danish.txt»  с «root:root» на «raghu:altair» .

# ls -l /corpora/stopwords/danish.txt
-rw-r--r – 1 root root 424 Dec 10 2012 /corpora/stopwords/danish.txt
# chown raghu:altair /corpora/stopwords/danish.txt
# ls -l corpora/stopwords/danish
-rw-r--r – 1 raghu altair 424 Dec 10 2012 /corpora/stopwords/danish.txt

chgrp

Команда Chgrp используется для изменения групповой принадлежности файла, в отличие от команды chown, которая позволяет изменять права собственности пользователя и группы.

Команды Linux для работы с сетью

Эти команды используются для просмотра и редактирования сетевых конфигураций, связанных с аспектами системы

ifconfig

Команда ifconfig используется для отображения и установки IP-адреса для сетевых интерфейсов в Linux. На данный момент ifconfig устарел в пользу iproute2.

ip

IP — это команда linux похожа на ifconfig, но более мощная и предназначена для ее замены. С ip у вас есть преимущество в выполнении нескольких задач сетевого администрирования только одной командой.

ethtool

Команда ethtool используется для отображения/изменения настроек адаптера Ethernet. Вы можете изменить скорость сетевой карты, автоматическое согласование, настройку пробуждения по локальной сети, дуплексный режим с помощью этого инструмента в Linux.

mii-tool

Команда mii-tool позволяет системным администраторам Linux изменять или проверять сетевую карту.

ping и ping6

Команды ping и ping6 используются для отправки эхо-запросов хосту и для проверки соединения ipv4 и ipv6.

whois

В Linux команда whois используется для получения информации о домене, такой как владелец домена, контактная информация владельца и серверы имен.

dig

Dig выполняет поиск DNS и отображает ответы, возвращенные с запрошенных серверов имен.

host

Команда хоста — это простая утилита для выполнения поиска DNS в Linux. С помощью этой команды мы можем переводить имена в IP-адреса и наоборот.

wget

Wget — это неинтерактивная бесплатная утилита командной строки, предназначена для загрузки файлов из Интернета.

netstat

Netstat — это инструмент командной строки, который используется для просмотра и мониторинга сетевой статистики и конфигураций системы. Этот инструмент доступен как в операционных системах на базе Unix, Linux, так и Windows NT

nslookup

Nslookup — это инструмент сетевого администрирования для запроса системы доменных имен для получения доменного имени или IP-адреса из записи DNS.

Команды связанные с сжатием и архивированием

Эти команды используются для сжатия и распаковки файлов.

tar

Tar — это инструмент командной строки, используемый для создания архивных файлов и управления ими в системах Linux и Unix. Команда Tar создает архивный файл .tar, а затем сжимает его с помощью gzip или bzip2.

gzip

Команда Gzip сжимает файлы в один файл с расширением .gz.

Команды Linux связанные с установкой пакета

Эти команды используются для управления пакетами Linux.

rpm

RPM (менеджер пакетов) — это утилита управления пакетами, используемая для установки, удаления, обновления, запроса и проверки пакетов программного обеспечения.

make

Команда Make используется для создания исполняемых программ и библиотек из исходного кода.

yum

Yum (измененное средство обновления Yellowdog) — это утилита, предоставляется в системах RHEL для установки, удаления и поиска пакетов. Например, Yum автоматически устанавливает зависимости пакетов. yum install httpd, установит сервер «apache».

Apt

Apt — это инструмент командной строки для установки, обновления и удаления пакетов deb в Ubuntu, Debian и подобных дистрибутивах Linux.

Поиск Связанных Команд Linux

Эти команды используются для поиска файлов и шаблонов

grep

Команда grep позволяет выполнять поиск текста или строки в файле или в консоли.

locate

Locate — это утилита командной строки для поиска файлов и каталогов по всей файловой системе.

find

Команда find Linux — это очень мощная команда, которая в основном используется для поиска файлов в структуре каталогов с использованием определенных критериев.

ssh

SSH используется для входа на удаленную машину и для выполнения команд на удаленной машине. Всякий раз когда данные отправляются на сервер через ssh, информация автоматически шифруется.

telnet

Telnet — это инструмент командной строки, используемый для подключения удаленного хоста, для проверки подключения портов приложений.

Команды Linux, Связанные С Передачей Файлов

Эти команды используются для копирования файлов из одной системы в другую систему

scp

SCP — это программа безопасного копирования для передачи файлов или каталогов между хостами Linux в сети. SCP использует протокол ssh для передачи данных.

Пример того как локальный файл ‘examples.txt» скопировать на удаленный хост.

$ scp examples.txt user@192.168.1.10:/home/user/account

rsync

Rsync синхронизирует файлы и каталоги между локальными и удаленными машинами. Он может рекурсивно копировать файлы и каталоги, копировать символические ссылки, сохранять (разрешения, группу, время изменения и принадлежность) идентификатор файла.

Команды Linux для работы с локальными дисками

Эти команды используются для просмотра статистики диска.

df

Команда df отображает использование дискового пространства для файловых систем Linux. Она так же отображает общий объем и свободное дисковое пространство, доступное в смонтированных файловых системах.

fdisk

Команда Fdisk используется в Linux для просмотра существующих разделов, создания нового раздела, удаления или изменения существующих разделов.

du

du (использование диска) — эта команда, используемая в Linux для проверки размера каталога, включая его другое содержимое, а также размер отдельных файлов.

findmnt

Команда findmnt используется для перечисления смонтированных файловых систем в Linux. Эта команда будет искать конкретную файловую систему в /etc/fstab, /etc/mtab или /proc/self/mountinfo.

mount

mount — это команда, используемая в Linux для подключенных файловых систем и дисков, а команда umount используется для отсоединения (размонтирования) любых подключенных файловых систем или устройств.

Заключение

В этой статье мы провели обзор большинства команд Linux. Вы так же можете положиться на справочные материалы Linux, для получения дополнительной информации. Я надеюсь, что эта статья была полезна для вас.

Почти любое действие в ОС Linux можно выполнить командой из терминала. В статье разбираемся в базовых командах и их функциях.

Изображение записи

Если вы когда-нибудь сталкивались с ОС Linux, вы наверняка слышали слово «терминал». Новички обычно воспринимают терминал как что-то страшное и зловещее. Но не все так страшно.

Введение в терминал Linux

Моя бабушка называет любой терминал «терминатором», что добавляет антуража. На самом деле терминал (bash) — это всего лишь командная строка с гораздо более широким набором функций, если сравнивать с Windows. Почти любое действие можно выполнить командой из терминала, но далеко не любое действие можно выполнить через окружения пользователя.

В этом и заключается преимущество терминала Linux — по сути из него можно полностью управлять системой, без необходимости окружения пользователя (графического интерфейса). На самом деле нередко серверы так и работают — черный экран, командная строка и все функции под рукой. В статье команды будут сгруппированы по функциям, а не по частоте использования, это связано с удобством восприятия и понимания.

Статья рассчитана на новичков и написана таким же новичком, в этом нет ничего зазорного — все когда-то начинали с нуля. Любое сообщество существует только до тех пор, пока есть приток новых участников.

Список команд в данной статье не является полным списком команд Linux. Во-первых, команд слишком много, чтобы перечислять их все, во-вторых, новичкам они не нужны, а профессионалы уже помнят их наизусть. Однако, не стоит расстраиваться, если у вас не получается запомнить команды — запоминание приходит с практикой. Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.

Доверьте нашим специалистам развертывание и поддержку баз данных в облаке.

Основные команды Linux

Если вы проигнорировали введение, напомним, что команды в статье сгруппированы по исполняемой ими функции. Что может быть более необходимым для новичка, чем функция справки?

Команды для получения справки

man — manual, получение справки

Самая первая команда Linux для начинающих — manual — для получения полной справочной информации по другой команде. Некоторые пользователи настаивают, что искать в интернете информацию по команде проще и эффективнее. Однако, информация в интернете не всегда является верной, статья в интернете может быть устаревшей, не релевантной для вашей версии ОС и т.д. Использовать man всегда хорошая идея.

Чтобы получить справку по команде, введите перед ней man. Например, man man выдаст руководство по команде man. Также можно вывести мануал терминала Linux (man bash):

    BASH(1)                                General Commands Manual                                BASH(1)


NAME

      bash - GNU Bourne-Again SHell


SYNOPSIS

      bash [options] [command_string | file]


COPYRIGHT

      Bash is Copyright (C) 1989-2018 by the Free Software Foundation, Inc.


DESCRIPTION

      Bash is  an  sh-compatible  command language interpreter that executes commands read from the
      standard input or from a file. Bash also incorporates useful features from  the  Korn  and  C
      shells (ksh and csh).


      Bash  is  intended to be a conformant implementation of the Shell and Utilities portion of the
      IEEE POSIX specification (IEEE Standard 1003.1).  Bash can be configured to  be  POSIX-confor‐
      mant by default.


OPTIONS

      All  of  the  single-character  shell options documented in the description of the set builtin
      command, including -o, can be used as options when the shell is invoked.   In  addition,  bash
      interprets the following options when it is invoked:


      -c        If  the -c option is present, then commands are read from the first non-option argu‐
                ment command_string.  If there are arguments after the command_string, the first ar‐
                gument  is assigned to $0 and any remaining arguments are assigned to the positional

help — когда не работает man

Не у каждой команды имеется свое полноценное руководство и не всегда оно требуется. В таких случаях помогает help, которая выводит краткую справку.

    history: history [-c] [-d смещение] [n] или history -anrw [файл] или history -ps аргумент [аргумент...]

   Display or manipulate the history list.
    
   Display the history list with line numbers, prefixing each modified
   entry with a `*'.  An argument of N lists only the last N entries.
    
   Options:

     -c        clear the history list by deleting all of the entries
     -d offset delete the history entry at position OFFSET. Negative
               offsets count back from the end of the history list
    
     -a        append history lines from this session to the history file
     -n        read all history lines not already read from the history file
               and append them to the history list
     -r        read the history file and append the contents to the history
               list
     -w        write the current history to the history file
    
     -p        perform history expansion on each ARG and display the result
               without storing it in the history list
     -s        append the ARGs to the history list as a single entry
    
   If FILENAME is given, it is used as the history file.  Otherwise,
   if HISTFILE has a value, that is used, else ~/.bash_history.
    
   If the HISTTIMEFORMAT variable is set and not null, its value is used
   as a format string for strftime(3) to print the time stamp associated

Похожий вариант — вывод справки через специальные ключи — <команда> -h или <команда> —help.

Tab — автозавершение команды

Командная строка Linux может предложить вам доступные варианты завершения команды. Например, если вы хотите узнать, куда можно перейти из текущей папки, наберите cd, затем дважды нажмите Tab. Если хотите узнать, какие папки начинаются с символа точки, введите cd . и завершите двойным нажатием Tab. Работает с любой командой, но только в современных оболочках — bash и zsh.

    debtop@DebTop:~$ cd                  

.aptitude/     .gnupg/        .mozilla/      Видео/         Изображения/   Рабочий стол/

.cache/        .kde/          .pki/          Документы/     Музыка/        Шаблоны/

.config/       .local/        snap/          Загрузки/      Общедоступные/  

debtop@DebTop:~$ cd .

./         .aptitude/ .config/   .kde/      .mozilla/   
../        .cache/    .gnupg/    .local/    .pki/      

cat /etc/*-release — какой дистрибутив установлен на моей машине

Если вы задумывались об установке Linux или уже использовали эту ОС, вы должны были знать, что существует несколько дистрибутивов. В зависимости от дистрибутива команды могут отличаться, поэтому полезно иметь возможность узнать, какой именно дистрибутив на этой машине. Это можно сделать и через информацию о системе, из графического интерфейса окружения пользователя, но наша статья о терминале. Команда cat /etc/*-release (без пробелов) покажет вам основную информацию о дистрибутиве — имя, версия, и т.д. Аналогами в данном случае будут являться lsb_release -a, которая выведет почти ту же информацию, а lsb_release -i напишет ID дистрибутива.

    debtop@DebTop:~$ cat /etc/*-release

PRETTY_NAME="Debian GNU/Linux 10 (buster)"

NAME="Debian GNU/Linux"

VERSION_ID="10"

VERSION="10 (buster)"

VERSION_CODENAME=buster

ID=debian

HOME_URL="https://www.debian.org/"

SUPPORT_URL="https://www.debian.org/support"

BUG_REPORT_URL="https://bugs.debian.org/"

debtop@DebTop:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Debian

Description:    Debian GNU/Linux 10 (buster)

Release:        10

Codename:       buster

debtop@DebTop:~$ lsb_release -i

Distributor ID: Debian

whoami — какой пользователь сейчас используется

Терминал Linux позволяет работать от имени любого пользователя, но не всегда удается удержать в памяти текущего пользователя. Чтобы вспомнить текущего пользователя, существует простая команда whoami.

    debtop@DebTop:~$ whoami

desktop

whatis — что за программа?

Команда Linux терминала whatis дает краткое описание любой установленной программы.

    debtop@DebTop:~$ whatis nano
nano (1)             - Nano's ANOther editor, an enhanced free Pico clone

debtop@DebTop:~$ whatis apt
apt (8)              - command-line interface


debtop@DebTop:~$ whatis krita
krita: ничего подходящего не найдено.

Очевидно, что, если программа не установлена, то получить ее описание не получится.

whereis — полный путь к программе

Допустим, вы нашли нужную программу, но хотите попасть в ее директорию. Узнать директорию программы поможет whereis, показывающая полный путь к исполняемому файлу программы.

    debtop@DebTop:~$ whereis bash

bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

Команды управления сетью

hostname, ifconfig — управление сетью

Эти команды покажут DNS-домен и IP-адрес вашего компьютера.

    debtop@DebTop:~$ hostname
DebTop
 
debtop@DebTop:~$ hostname -i
127.0.1.1
 
debtop@DebTop:~$ ifconfig
bash: ifconfig: команда не найдена

В некоторых версиях дистрибутивов Linux поддерживается команда ifconfig, которая также выводит текущий IP, но она работает не всегда. Взамен устаревшей ifconfig современные дистрибутивы отзываются на ip a[ddress], которая выведет на экран настройки сети и позволяет их редактировать. Команда является частью пакета утилит для настройки параметров сетевых устройств — iproute2. Команды из набора iproute2 пригодятся системным администраторам или тем, кто хочет создать доменную сеть дома.

    debtop@DebTop:~$ ip a

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host  
      valid_lft forever preferred_lft forever

2: enp4s0:  mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1
000
   link/ether b4:b5:2f:7f:fe:eb brd ff:ff:ff:ff:ff:ff

3: wlo1:  mtu 1500 qdisc mq state UP group default qlen 1000
   link/ether a4:17:31:2a:bc:59 brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.195/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
      valid_lft 85273sec preferred_lft 85273sec
   inet6 fe80::3f0f:a837:e4c0:e52d/64 scope link noprefixroute  
      valid_lft forever preferred_lft forever

debtop@DebTop:~$ ip

Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
      ip [ -force ] -batch filename

where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
                  tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
                  netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
                  vrf | sr }

      OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                   -h[uman-readable] | -iec | -j[son] | -p[retty] |
                   -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
                   -4 | -6 | -I | -D | -M | -B | -0 |
                   -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                   -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                   -rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}

ping — диагностика неисправностей сети

Ping используют для поиска неисправностей, тестирования и диагностики сетевых соединений. Команда отправляет сообщение на указанный IP адрес и ждет ответ. Когда пакет адресат получает пакет, он отправляет ответ. Таким образом можно определить задержку сообщений или потерю пакетов.

Достаточно ввести, например, ping google.com, компьютер сам определит IP адрес домена и продолжит выполняться, пока ее не отменить сочетанием Ctrl+C.

Команды для управления файлами и директориями

Теперь, когда мы выяснили, где находится терминал, мы можем перейти в его директорию. Однако, этого делать не стоит, иначе можно что-нибудь сломать. Давайте попробуем поработать с директорией песочницы.

mkdir — создание директории

Для начала песочницу необходимо создать. Сделать это очень просто, находясь в домашней директории пользователя введем в bash:

mkdir playpen

Отлично, и что дальше? Точно ли директория создалась?

ls — list, отобразить директории и файлы

Чтобы убедиться в наличии директории нужно набрать ls, после выполнения команда покажет все каталоги и файлы.

    debtop@DebTop:~$ mkdir playpen

debtop@DebTop:~$ ls

playpen   Видео       Загрузки      Музыка         'Рабочий стол'

snap      Документы   Изображения   Общедоступные   Шаблоны

cd — change directory, сменить директорию

Теперь перейдем в созданную директорию. Для навигации в терминале Linux нужно ввести cd имя_директории. В нашем случае cd playpen.

    debtop@DebTop:~$ cd playpen

debtop@DebTop:~/playpen$

Если работа в данной директории закончена и необходимо подняться на уровень вверх из текущей директории, используйте «cd пробел .. (две точки)»:

cd ..

А если вы работаете одновременно в двух директориях и периодически перемещаетесь из одной в другую, не нужно постоянно держать в голове, какой же была предыдущая. Достаточно использовать быстрый переход к предыдущей директории «cd пробел — (дефис)»:

cd —

    debtop@DebTop:~/playpen/dir00$ cd /usr/lib/x86_64-linux-gnu/audacious
 
debtop@DebTop:/usr/lib/x86_64-linux-gnu/audacious$ cd - 

/home/debtop/playpen/dir00
 
debtop@DebTop:~/playpen/dir00$ cd -

/usr/lib/x86_64-linux-gnu/audacious
 
debtop@DebTop:/usr/lib/x86_64-linux-gnu/audacious$ cd -

/home/debtop/playpen/dir00
 
debtop@DebTop:~/playpen/dir00$ cd ..

pwd — где я сейчас?

Обратите внимание, как только мы сменили директорию, поменялся и префикс до символа $, так терминал показывает нам, где мы находимся в данный момент. Конечно, терминал не станет отображать полный путь, если он слишком длинный, поэтому не стоит всегда полагаться на префикс. Быстро понять текущую рабочую директорию поможет команда pwd. Расшифровка этой команды простая — три английских слова — Print Working Directory. На самом деле расшифровка команд Linux всегда простая, они все произошли от английских слов, но были сокращены для лучшего запоминания.

Обратно к песочнице. Пока что директория (также каталог, папка) пуста и не содержит ни одного файла. Давайте создадим в ней 43 директории, в каждой по 43 файла. Можно создавать вручную, каждый раз прописывая имя, а можно поступить проще:

mkdir dir{00..42}

Синтаксис команды простой: mkdir создает директорию, dir задает начальное имя для каждой новой директории, числа в фигурных скобках {00..42} указывают переменную часть имени создаваемых папок. То есть, команда mkdir test_folder_{0..4} создала бы нам 5 папок с начальным именем test_folder_0.

Давайте проверим, создались ли наши тестовые папки — ls.

    debtop@DebTop:~/playpen$ ls

dir00  dir03  dir06  dir09  dir12  dir15  dir18  dir21  dir24  dir27  dir30  dir33  dir36  dir39  dir42

dir01  dir04  dir07  dir10  dir13  dir16  dir19  dir22  dir25  dir28  dir31  dir34  dir37  dir40

dir02  dir05  dir08  dir11  dir14  dir17  dir20  dir23  dir26  dir29  dir32  dir35  dir38  dir41

Как создать файл?

Замечательно, теперь создадим по 43 файла в каждой. Для создания файла существует более 10 разных способов, самый простой:

    &gt; имя_файла

На самом деле >, как и обратный знак < не совсем являются командами, это символы перенаправления или связи. Однако, если перед именем несуществующего файла поставить знак > вместе с указанием расширения файла, в текущей директории появится пустой файл.

Но нам требуется поместить по 42 файла в 42 директории, а терминал Linux откажется воспринимать команду со знаком перенаправления, поэтому используем команду touch. Эта команда позволяет задать время последнего изменения файла или создать новые файлы:

touch dir{00..42}/text{00..42}.txt

Проверим:

    debtop@DebTop:~/playpen$ touch dir{00..42}/text{00..42}.txt

debtop@DebTop:~/playpen$ ls dir00

text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt

text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt

rm — remove, удаление

Чтобы удалить какой-либо файл, достаточно ввести команду rm с именем файла:

rm text00.txt

Можно удалить несколько:

rm text{01..12}.txt

Если попытаться удалить целый каталог по аналогии, то ничего не получится. Все потому, что для удаления каталога нужна другая команда: rmdir:

rmdir delete_me

Команда rmdir тоже не всесильна, она не позволит удалить каталог, в котором есть что-то еще — файл или другой каталог (даже пустой).

Для удаления каталога с содержимым можно использовать команду rm с опцией рекурсивного удаления -r. Обратите внимание на картинку ниже, все описанные переходы по директориям, упомянутые в описании команды cd действуют и для rm. Поэтому, при нахождении в подкаталоге dir01, команда будет выглядеть вот так:

rm -r ../dir03

    debtop@DebTop:~/playpen/dir01$ rm text00.txt

debtop@DebTop:~/playpen/dir01$ rm text{01..12}.txt

debtop@DebTop:~/playpen/dir01$ mkdir delete_me

debtop@DebTop:~/playpen/dir01$ ls

delete_me   text16.txt  text20.txt  text24.txt  text28.txt  text32.txt  text36.txt  text40.txt

text13.txt  text17.txt  text21.txt  text25.txt  text29.txt  text33.txt  text37.txt  text41.txt

text14.txt  text18.txt  text22.txt  text26.txt  text30.txt  text34.txt  text38.txt  text42.txt

text15.txt  text19.txt  text23.txt  text27.txt  text31.txt  text35.txt  text39.txt

debtop@DebTop:~/playpen/dir01$ rm delete_me

rm: невозможно удалить 'delete_me': Это каталог

debtop@DebTop:~/playpen/dir01$ rmdir delete_me

debtop@DebTop:~/playpen/dir01$ ls

text13.txt  text17.txt  text21.txt  text25.txt  text29.txt  text33.txt  text37.txt  text41.txt

text14.txt  text18.txt  text22.txt  text26.txt  text30.txt  text34.txt  text38.txt  text42.txt

text15.txt  text19.txt  text23.txt  text27.txt  text31.txt  text35.txt  text39.txt

text16.txt  text20.txt  text24.txt  text28.txt  text32.txt  text36.txt  text40.txt

debtop@DebTop:~/playpen/dir01$ rmdir ../dir03

rmdir: не удалось удалить '../dir03': Каталог не пуст

debtop@DebTop:~/playpen/dir01$ rm -r ../dir03

debtop@DebTop:~/playpen/dir01$ ls ..

dir00  dir04  dir07  dir10  dir13  dir16  dir19  dir22  dir25  dir28  dir31  dir34  dir37  dir40

dir01  dir05  dir08  dir11  dir14  dir17  dir20  dir23  dir26  dir29  dir32  dir35  dir38  dir41

dir02  dir06  dir09  dir12  dir15  dir18  dir21  dir24  dir27  dir30  dir33  dir36  dir39  dir42

cp — copy, копирование

Кроме создания и удаления файлов и директорий терминал позволяет их копирование.

Снова перейдем в директорию dir02 и скопируем файл text00.txt в директорию dir01:

cp text00.txt /home/debtop/playpen/dir01

Поскольку text00.txt находится в текущей директории, до него можно не писать полный путь. Такое указание пути называется относительным. Путь до dir01 мы указали полностью, от домашней директории, такой путь называется абсолютный. Можно было указать просто ../dir01, тогда это был бы снова относительный путь.

Если попробовать повторить копирование теперь, когда в dir01 опять появился файл text00.txt, внешне не произойдет ничего, но на самом деле файл будет заменен на файл с тем же именем без каких-либо вопросов.

    debtop@DebTop:~/playpen/dir01$ cd ../dir02

debtop@DebTop:~/playpen/dir02$ cp text00.txt home/debtop/playpen/dir01

cp: невозможно создать обычный файл 'home/debtop/playpen/dir01': Нет такого файла или каталога

debtop@DebTop:~/playpen/dir02$ cp text00.txt /home/debtop/playpen/dir01

debtop@DebTop:~/playpen/dir02$ ls ../dir01

text00.txt  text16.txt  text20.txt  text24.txt  text28.txt  text32.txt  text36.txt  text40.txt

text13.txt  text17.txt  text21.txt  text25.txt  text29.txt  text33.txt  text37.txt  text41.txt

text14.txt  text18.txt  text22.txt  text26.txt  text30.txt  text34.txt  text38.txt  text42.txt

text15.txt  text19.txt  text23.txt  text27.txt  text31.txt  text35.txt  text39.txt

Каталоги копируются по тому же принципу, только нужно не забывать про добавление опции рекурсивного копирования:

cp -r dir00 dir03

    debtop@DebTop:~/playpen$ ls

dir00  dir04  dir07  dir10  dir13  dir16  dir19  dir22  dir25  dir28  dir31  dir34  dir37  dir40

dir01  dir05  dir08  dir11  dir14  dir17  dir20  dir23  dir26  dir29  dir32  dir35  dir38  dir41

dir02  dir06  dir09  dir12  dir15  dir18  dir21  dir24  dir27  dir30  dir33  dir36  dir39  dir42

debtop@DebTop:~/playpen$ cp dir00 dir03

cp: не указан -r; пропускается каталог 'dir00'

debtop@DebTop:~/playpen$ cp -r dir00 dir03

debtop@DebTop:~/playpen$ cp -r dir00 dir03/

debtop@DebTop:~/playpen$ cd dir03

debtop@DebTop:~/playpen/dir03$ ls

dir00       text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt

text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt

Если при копировании каталога или файла в качестве адреса копирования указать имя несуществующей директории (или файла), то система автоматически воспримет это как команду создать файл или каталог с таким именем.

Когда вы хотите скопировать не всю директорию целиком, а только ее содержимое, укажите слэш после места назначения, а после него поставьте звездочку (*):

cp -r dir00/* dir03/dir

Принцип действия команд rm и cp очень простой и очевидный, но не стоит забывать, что новичку многое кажется сложнее, чем есть на самом деле.

mv, move — перемещение

Третья команда для управления файлами — mv — перемещает файлы и директории.

Принцип действия полностью аналогичен предыдущим двум командам:

mv что_перемещаем куда_перемещаем

    debtop@DebTop:~/playpen$ mv dir16 dir19/dir

debtop@DebTop:~/playpen$ ls dir19

dir         text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt

text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt

При перемещении каталогов мы перемещаем их целиком так, что они перестают существовать в исходном местоположении. То есть, каталог dir16 из предыдущего примера больше не существует в каталоге ~/playpen. Но это не всегда удобно, бывает необходимо переместить не сам каталог, а только содержимое — все файлы, каталоги и файлы, вложенные в них. Для этого используется опция —v[erbose], покажем на примере. Переместим все содержимое папки dir19 в папку dir17 командой mv, оставив папку dir19 пустой:

mv -v dir19/* dir17/

    debtop@DebTop:~/playpen$ ls

dir00  dir04  dir08  dir12  dir17  dir21  dir25  dir29  dir33  dir37  dir41

dir01  dir05  dir09  dir13  dir18  dir22  dir26  dir30  dir34  dir38  dir42

dir02  dir06  dir10  dir14  dir19  dir23  dir27  dir31  dir35  dir39

dir03  dir07  dir11  dir15  dir20  dir24  dir28  dir32  dir36  dir40

debtop@DebTop:~/playpen$ man mv

debtop@DebTop:~/playpen$ ls dir19

dir         text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt

text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt

debtop@DebTop:~/playpen$ mv -v dir19/* dir17/

переименован 'dir19/dir' -&gt; 'dir17/dir'

переименован 'dir19/text00.txt' -&gt; 'dir17/text00.txt'

переименован 'dir19/text01.txt' -&gt; 'dir17/text01.txt'

переименован 'dir19/text02.txt' -&gt; 'dir17/text02.txt'

переименован 'dir19/text03.txt' -&gt; 'dir17/text03.txt'

переименован 'dir19/text40.txt' -&gt; 'dir17/text40.txt'

переименован 'dir19/text41.txt' -&gt; 'dir17/text41.txt'

переименован 'dir19/text42.txt' -&gt; 'dir17/text42.txt'

debtop@DebTop:~/playpen$ ls

dir00  dir04  dir08  dir12  dir17  dir21  dir25  dir29  dir33  dir37  dir41

dir01  dir05  dir09  dir13  dir18  dir22  dir26  dir30  dir34  dir38  dir42

dir02  dir06  dir10  dir14  dir19  dir23  dir27  dir31  dir35  dir39

dir03  dir07  dir11  dir15  dir20  dir24  dir28  dir32  dir36  dir40

debtop@DebTop:~/playpen$ ls dir19

debtop@DebTop:~/playpen$ ls dir17

dir         text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt

text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt

Глубина вложенности

Можно пойти дальше — создать папку с большой вложенностью dir18 и переместить только файлы первого уровня в папку dir19:

find dir18/ -maxdepth 1 -type f -print0 | xargs -0 mv -t dir19

Эта сложная команда найдет (find) все файлы (-type f) с глубиной вложенности 1 (-maxdepth 1) внутри dir18 и переместит их в dir19 как обычные файлы (mv -t). Часть «xargs -0» служит в роли команды, связующей две других и позволяет им работать вместе. С глубиной вложенности -maxdepth можно экспериментировать, задавать ей разные значения (1, 2, 3 и т.д.) получая новый результат каждый раз.

Команды для архивирования

Важный аспект работы с файлами — возможность создавать архивы. В Linuxе это реализовано с помощью утилит терминала. Рассмотрим несколько базовых команд архивирования:

  • gzip — создать архив. Работает следующим образом: gzip файл.расширение. Можно сразу несколько, например, gzip text12.txt text13.txt.
    debtop@DebTop:~/playpen$ cd dir00

debtop@DebTop:~/playpen/dir00$ gzip text14.txt

debtop@DebTop:~/playpen/dir00$ ls

text00.txt  text07.txt  text14.txt.gz  text21.txt  text28.txt  text35.txt  text42.txt

text01.txt  text08.txt  text15.txt     text22.txt  text29.txt  text36.txt

text02.txt  text09.txt  text16.txt     text23.txt  text30.txt  text37.txt

text03.txt  text10.txt  text17.txt     text24.txt  text31.txt  text38.txt

text04.txt  text11.txt  text18.txt     text25.txt  text32.txt  text39.txt

text05.txt  text12.txt  text19.txt     text26.txt  text33.txt  text40.txt

text06.txt  text13.txt  text20.txt     text27.txt  text34.txt  text41.txt
  • gunzip — распаковать архив — gunzip файл.расширение.gz.
    debtop@DebTop:~/playpen/dir00$ ls
 
text00.txt  text07.txt  text14.txt.gz  text21.txt  text28.txt  text35.txt  text42.txt
 
text01.txt  text08.txt  text15.txt     text22.txt  text29.txt  text36.txt
 
text02.txt  text09.txt  text16.txt     text23.txt  text30.txt  text37.txt
 
text03.txt  text10.txt  text17.txt     text24.txt  text31.txt  text38.txt
 
text04.txt  text11.txt  text18.txt     text25.txt  text32.txt  text39.txt
 
text05.txt  text12.txt  text19.txt     text26.txt  text33.txt  text40.txt
 
text06.txt  text13.txt  text20.txt     text27.txt  text34.txt  text41.txt
 
debtop@DebTop:~/playpen/dir00$ gunzip text14.txt.gz

debtop@DebTop:~/playpen/dir00$ ls
 
text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt
 
text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt
 
text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt
 
text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt
 
text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt
 
text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt
  • zip — более привычный формат архива. Чтобы передать файл на другую операционную систему, и чтобы адресат мог его распаковать лучше использовать утилиту zip.

Утилита zip терминала Linux позволяет упаковать сразу несколько файлов в один архив (gzip также позволяет поместить несколько файлов в архив, но с ней сложнее разобраться) с помощью рекурсивной опции -r. Текст команды Linux:

zip -r texts.zip text12.txt text13.txt

В данном случае texts.zip будет названием архива, а text12.txt и text13.txt — файлы, которые нужно поместить в архив.

    debtop@DebTop:~/playpen/dir00$ zip -r texts.zip text12.txt text13.txt

 adding: text12.txt (stored 0%)

 adding: text13.txt (stored 0%)

debtop@DebTop:~/playpen/dir00$ ls

text00.txt  text06.txt  text12.txt  text18.txt  text24.txt  text30.txt  text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt  texts.zip

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt

text05.txt  text11.txt  text17.txt  text23.txt  text29.txt  text35.txt  text41.txt
  • tar — создание резервных копий. Утилита tar создает архивы с расширением .tar, утилиту обычно используют для резервного копирования так как она не сжимает файлы, а только собирает в архив. Чтобы создать архив .tar, выполните команду с опциями —cvf. Например:

tar -cvf newark.tar text07.txt ../dir22

Создаст архив с именем newark.tar, в который будут помещены файл text.07.txt и все файлы из каталога dir22, располагающегося внутри родительского каталога.

Для просмотра содержимого .tar архива используются опции -tvf:

tar -tvf newark.tar

    debtop@DebTop:~/playpen/dir00$ tar -cvf newark.tar text07.txt ../dir22 

text07.txt

tar: Удаляется начальный `../' из имен объектов

../dir22/

../dir22/text04.txt

tar: Удаляются начальные `../' из целей жестких ссылок

../dir22/text07.txt

../dir22/text40.txt

../dir22/text08.txt

../dir22/text32.txt

../dir22/text28.txt

../dir22/text26.txt

../dir22/text11.txt

../dir22/text25.txt

debtop@DebTop:~/playpen/dir00$ tar -tvf newark.tar

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 text07.txt

drwxr-xr-x debtop/debtop     0 2020-11-25 13:44 dir22/

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text04.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text07.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text40.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text08.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text32.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text28.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text26.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text11.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text25.txt

Опции для распаковки .tar архива -xvf:

tar -xvf newark.tar

    -rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text27.txt

-rw-r--r-- debtop/debtop     0 2020-11-25 13:44 dir22/text39.txt

hrw-r--r-- debtop/debtop     0 2020-11-25 13:44 text07.txt ссылка на text07.txt

debtop@DebTop:~/playpen/dir00$ ls

arch.tar    text05.txt  text11.txt  text17.txt  text23.txt  newark.tar  text35.txt  text41.txt

dir00       text06.txt  text12.txt  text18.txt  text24.txt  scrolls.tar text36.txt  text42.txt

text01.txt  text07.txt  text13.txt  text19.txt  text25.txt  text31.txt  text37.txt  

text02.txt  text08.txt  text14.txt  text20.txt  text26.txt  text32.txt  text38.txt

text03.txt  text09.txt  text15.txt  text21.txt  text27.txt  text33.txt  text39.txt

text04.txt  text10.txt  text16.txt  text22.txt  text28.txt  text34.txt  text40.txt  texts.zip

После выполнения в текущий каталог будут скопированы все файлы из архива, но архив не будет удален. Удалить его можно, выполнив rm.

Команды для работы с текстом

Nano, Vim — редактирование текстовых файлов

Как посмотреть содержимое файла в Linux терминале? Через утилиты терминала Linux часто требуется открыть или отредактировать текстовые файлы. Для этого перейдем в директорию dir42 и откроем text42.txt с помощью Nano — простого текстового редактора.

nano text42.txt

Запишем текст в файле, затем сохраним его сочетанием Ctrl+O (^ в терминале Linux всегда значит Ctrl) и выйдем сочетанием Ctrl+X. Nano позволяет редактировать файлы прямо из окна терминала, обладает базовым, но не очень богатым набором функций. Кроме Nano есть еще более продвинутый Vim, который открывает гораздо большие возможности редактирования файлов. Только Vim не всегда установлен в систему и из него сложнее выйти, потому что он не отображает подсказки. Для выхода из Vim используйте :q, для выхода без сохранения изменений — :q! и :w для сохранения всех изменений. Обязательно сначала использовать двоеточие, так как оно активирует командный режим.

grep — поиск

Чтобы найти текст в файле используйте grep, эта команда выведет соответствующие запросу строки текста. Можно искать словом, строкой или регулярным выражением, а вывод может быть файлом или папкой, совпадающим или наоборот — несовпадающим. Полезно использовать grep при поиске по большим логам.

Кроме непосредственно grep есть варианты pgrep, fgrep, egrep, которые выполняют ту же функцию, но для других целей. Часто grep используют в сочетании с другими командами, чтобы упростить работу с большими объемами данных, ниже мы еще увидим примеры такого использования.

head, tail — начало и конец текста

Команды head и tail используются для вывода первых и последних строк текста в одном или нескольких документах.

Синтаксис команды:

head/tail опции файл

По умолчанию команды выводят 10 строк текста, но количество можно изменить с помощью опции -n. Специально для эксперимента мы создали большой текстовый файл, из которого хотим получить ровно 1 первую или последнюю большую строку:

head -n 1 text00.txt

tail -n 1 text00.txt

    debtop@DebTop:~/playpen/dir00$ head -n 1 text00.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ut lacus ut justo blandit mattis

. Sed magna elit, pharetra ac nulla eu, vulputate elementum ex. Donec porta sapien at dui males

uada, quis pretium neque volutpat. Aliquam a tincidunt mi. Nunc posuere vehicula velit, sed int

erdum lorem ullamcorper at. Aliquam finibus ultrices metus pharetra elementum. Aliquam erat vol

utpat. In sit amet sapien commodo dolor feugiat sodales at vitae turpis. Donec ullamcorper dolo

r quis lacus tempor, ac aliquet sem consectetur. Duis nec dignissim ligula. Sed gravida sed arc

u quis commodo. Aliquam vestibulum nunc sed viverra imperdiet. Suspendisse accumsan sollicitudi

n ex, interdum facilisis eros efficitur non.

debtop@DebTop:~/playpen/dir00$ tail -n 1 text00.txt

Aenean non ullamcorper diam. Ut iaculis vehicula libero sit amet elementum. Nullam ipsum metus,

molestie vehicula dui in, tempus finibus nisl. In hac habitasse platea dictumst. In vehicula v

elit nec massa porttitor finibus. Nulla libero justo, egestas vitae fringilla ut, gravida eu ri

sus. Ut eget risus erat. Aenean interdum pretium semper. Aliquam vehicula dolor non augue lacin

ia sodales. Morbi molestie massa sed enim placerat, id euismod odio condimentum. Nunc aliquet l

acinia lacus, quis mattis tortor viverra sed. Vestibulum ullamcorper aliquet nibh, nec lacinia

nunc tincidunt fringilla. Mauris sollicitudin nec lectus eget mollis. Aliquam eu accumsan nulla.

С помощью опции -c можно запросить уже не строки, а байты.

Например, команды для получения 100 байт текста:

head -с 100 text00.txt

    debtop@DebTop:~/playpen/dir00$ tail -c 100 text00.txt

ia nunc tincidunt fringilla. Mauris sollicitudin nec lectus eget mollis. Aliquam eu accumsan nulla.

debtop@DebTop:~/playpen/dir00$ head -c 100 text00.txt     

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ut lacus ut justo blandit mattis. Sed

tail -с 100 text00.txt

Другие опции можно посмотреть через man head.

    HEAD(1)                                 User Commands                                HEAD(1)


NAME
      head - output the first part of files


SYNOPSIS
      head [OPTION]... [FILE]...


DESCRIPTION
     Print  the  first 10 lines of each FILE to standard output.  With more than one FILE,
      precede each with a header giving the file name.


      With no FILE, or when FILE is -, read standard input.


      Mandatory arguments to long options are mandatory for short options too.


      -c, --bytes=[-]NUM
             print the first NUM bytes of each file; with the leading '-',  print  all  but
             the last NUM bytes of each file


      -n, --lines=[-]NUM
             print the first NUM lines instead of the first 10; with the leading '-', print
             all but the last NUM lines of each file


      -q, --quiet, --silent
             never print headers giving file names


      -v, --verbose

Команды для управления процессами

Операционная система Linux не имеет встроенного графического диспетчера задач в отличие от Windows, вместо этого всеми процессами можно управлять из терминала. Говорят, что Linux стабильнее винды, но иногда все равно приходится гуглить «Как завершить процесс Linux», потому что что-то зависло.

kill / pkill / killall — завершить процесс

Первый вопрос — почему так много, какую команду использовать? Давайте по порядку:

  • kill — убить процесс по его идентификатору (Process ID);
  • pkill — убить процесс по его имени;
  • killall — убить все процессы с указанным именем.

ps / pgrep — узнать ID процесса

Если вы не компьютер, то вряд ли вам известен ID нужного процесса. PS (Process Status) выведет на экран информацию о запущенных процессах. Чтобы показать список всех активных процессов, используется ps axu.

    debtop@DebTop:~/playpen$ top

top - 14:21:22 up 8 days, 21:57,  3 users,  load average: 0,49, 0,66, 0,65

Tasks: 181 total,   1 running, 180 sleeping,   0 stopped,   0 zombie

%Cpu(s):  0,8 us,  0,4 sy,  0,0 ni, 98,7 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st

MiB Mem :   7856,4 total,   4009,2 free,   1944,6 used,   1902,6 buff/cache

MiB Swap:   8068,0 total,   7913,4 free,    154,6 used.   5390,8 avail Mem
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND</b>
                    
 690 root      20   0  309888  34416  16856 S   2,0   0,4   5:46.67 Xorg  
                     
11426 debtop    20   0 1195064  78272  62036 S   1,7   1,0   0:15.55 konsole                   
 
 936 debtop    20   0 2994244  59840  36732 S   1,3   0,7   6:10.33 kwin_x11                   

11586 debtop    20   0 9188248 513296 127392 S   1,0   6,4  14:44.20 chrome                     

11068 debtop    20   0  973096 310508 142424 S   0,3   3,9   2:27.42 chrome                     

11107 debtop    20   0  390416 110176  62368 S   0,3   1,4   0:44.15 chrome                     

11516 debtop    20   0 9177080 384808 114828 S   0,3   4,8   0:58.68 chrome                     

   1 root      20   0  169620   6872   5272 S   0,0   0,1   0:02.15 systemd                    

   2 root      20   0       0      0      0 S   0,0   0,0   0:00.02 kthreadd                   

   3 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 rcu_gp                     

   4 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 rcu_par_gp                 

   6 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 kworker/0:0H-kblockd       

   8 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 mm_percpu_wq               

   9 root      20   0       0      0      0 S   0,0   0,0   0:00.07 ksoftirqd/0                

  10 root      20   0       0      0      0 I   0,0   0,0   0:09.29 rcu_sched                  

  11 root      20   0       0      0      0 I   0,0   0,0   0:00.00 rcu_bh                     

  12 root      rt   0       0      0      0 S   0,0   0,0   0:00.17 migration/0                

  14 root      20   0       0      0      0 S   0,0   0,0   0:00.00 cpuhp/0                    

  15 root      20   0       0      0      0 S   0,0   0,0   0:00.00 cpuhp/1                    

  16 root      rt   0       0      0      0 S   0,0   0,0   0:00.37 migration/1                

  17 root      20   0       0      0      0 S   0,0   0,0   0:00.15 ksoftirqd/1                

  19 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 kworker/1:0H-kblockd

Проблема в том, что найти нужный процесс среди этого полотна очень сложно. Решений этой проблемы несколько.

1. top (Table Of Processes) — каждые 2 секунды обновляет активные процессы. Колонка PID указывает на ID процесса, USER на пользователя и т.д. Удобно. Если процесс активен постоянно, но уследить за постоянно обновляющимся списком не всегда получается.

2. Более продвинутые утилиты командной строки Linux — atop, htop. Отображают не только активные процессы с обновлением в две секунды, но и контроль над загрузкой и т.д. Утилиты полезны для системных администраторов, но для обычного пользователя все-таки перебор.

3. ps axu | grep имя_процесса. С помощью утилиты grep можно вычленить нужный процесс, если известно его имя.

    debtop@DebTop:~/playpen$ ps axu | grep bash
 
debtop   11468  0.0  0.0   8316  5192 pts/1    Ss   13:20   0:00 /bin/bash
 
debtop   14232  0.0  0.0   6224   888 pts/1    S+   14:22   0:00 grep bash

4. pidof — самый короткий способ выяснить ID процесса, если известно его имя.

    debtop@DebTop:~/playpen$ pidof bash
 
11468

Пакетные менеджеры или как установить файл

По сравнению с Windows, в Linux установка программы требует чуть больше усилий. Даже для установки браузера Chrome придется залезть в терминал.

dpkg — установить файл с расширением .deb (только для систем на Debian).

Многие программы, скачанные из интернета, которые поддерживаются ОС Linux, имеют расширение .deb. Это файлы, оптимизированные под дистрибутивы на основе Debian (Debian, Ubuntu и Ubuntu-based, Mint и т.д.). Когда вы скачаете и попытаетесь открыть файл (точнее пакет) .deb кликом указателя скорей всего ничего не произойдет, потому что это необходимо делать через dpkg:

dpkg -i package.deb — установит пакет .deb;

dpkg —remove package — удалит пакет. Да, при удалении не требуется указывать расширение, так как пакет уже установлен в системе и идентифицируется по имени.

Примечание: Если вы работали в Windows, вы помните, что приложения удаляются не полностью, остаются пустые папки и записи в реестре. У Linux тоже есть такая особенность, остаточные файлы и папки называются dependencies (зависимости). Избавиться от них в Linux гораздо проще, чем в ОС от Майкрософт. Достаточно ввести:

dpkg —purge package.

apt — менеджер установки пакетов Debian-based

Интересная функция Linux — пакетные менеджеры. В каждом дистрибутиве есть свой пакетный менеджер, который может запрашивать и устанавливать пакеты из удаленных репозиториев. Это очень удобно — требуется знать только название пакета, который желаете установить и команду. Пакетный менеджер по умолчанию в Debian и дистрибутивах на основе Debian — apt (Advanced Packaging Tool).

Для установки пакета с помощью apt необходимо ввести команду:

apt install имя_пакета

Часто для этой операции потребуются права суперпользователя, но об этом см. раздел ниже.

Нередко можно встретить apt-get вместо apt — это тот же самый пакетный менеджер, только более старая его версия. Тем не менее оба варианта существуют и работают. Пакетный менеджер apt объединяет сразу несколько прежних команд (apt-get и apt-cache в apt install и apt search), а также оптимизирует процесс установки пакетов.

Команда для удаления установленного пакета с помощью apt:

apt remove имя_пакета

Для удаления зависимостей вместо remove используется purge:

apt purge имя_пакета

Для автоматического удаления всего лишнего из системы используется apt autoremove.

Автоматическое удаление лишнего — это как встроенный в систему менеджер очистки, команда удаляет все файлы и зависимости, которые больше не требуются в системе, например, потому что соответствующего им приложения больше нет в системе.

yum — менеджер установки пакетов Red Hat

Red Hat — один из наиболее популярных дистрибутивов Linux. Утилита yum написана на python. Это пакетный менеджер Red Hat и дистрибутивов на основе Red Hat, например CentOS. Менеджер yum (Yellowdog Updater, Modified) использует формат пакетов rpm вместо deb, но команды остались прежними:

  • yum install для установки пакета;
  • yum remove для удаления;
  • yum autoremove для очистки.

При удалении пакета менеджер yum по умолчанию всегда сохраняет файлы конфигурации, которые отличаются от изначальных по умолчанию и не имеет команды аналогичной apt purge. Впрочем, способы достижения аналогичного результата существуют всегда.

pacman — менеджер пакетов ArchLinux

Еще один дистрибутив, имеющий свой пакетный менеджер — ArchLinux. Утилита pacman написана на языке C (Си). ArchLinux имеет только одну версию — текущую, которая постоянно обновляется, и для этой системы pacman подходит идеально. Пакеты здесь представляют собой архивы формата .tar.xz.

Пакетный менеджер pacman работает иначе чем yum, apt или dpkg. Чтобы установить или удалить пакет с помощью pacman используются опции:

  • -S устанавливает пакет ArchLinux;
  • -Sw скачивает, но не устанавливает пакет;
  • -U для установки пакетов с локального компьютера;
  • -s для поиска пакетов;
  • -u для обновления установленных пакетов;
  • -R для удаления;
  • -Rn для удаления резервных копий файлов конфигурации;
  • -Rs для удаления зависимостей.

После опции всегда идет имя пакета, т.е.:

pacman -S имя_пакета

Команды управления пользователями

sudo — запуск команд и приложений через терминал в Linux от имени администратора (суперпользователя)

Все важные действия в Linuxе требуют подтверждения от имени администратора, в Linux администратор называется суперпользователем или root. Чтобы выполнить команду от имени суперпользователя, нужно ввести перед ней sudo. Это позволит выполнять команды от имени суперпользователя до окончания текущей сессии в терминале.

Если вы не хотите вводить sudo каждый раз, когда терминал просит это сделать, вы можете переключиться в режим суперпользователя. Для этого выполните su, введите пароль, тогда вы сможете выполнять любые команды по умолчанию от имени суперпользователя. Однако, лучше поступать так только, если вы точно знаете, что делаете. Сломать что-то важное в системе получится вряд ли, но вероятность возрастает лучше использовать sudo.

useradd (adduser) / userdel (deluser) / usermod — добавить, удалить, изменить пользователя

С помощью этих команд вы сможете управлять учетными записями пользователей. Полезно иметь под рукой такую возможность в сетевом домене или домашней сети, выдавать и ограничивать права.

Для добавления пользователя используйте useradd имя_пользователя.

Пароль для нового пользователя задается командой passwd имя_пользователя.

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

Третья команда — usermod позволяет изменять учетные записи пользователей: изменять домашнюю директорию, имя учетной записи, оболочку входа в систему, «срок годности» пароля и т.д.

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

Команды выключения и перезагрузки

Linux можно выключить или перезагрузить из командной строки. Зачем это делать? Во-первых, команды очень полезны, если отсутствует графическая оболочка системы — окружение пользователя, и вся работа происходит из терминала. Во-вторых, различные команды или опции помогут произвести перезагрузку или выключение с разными параметрами.

shutdown — выключение

shutdown опции время сообщение

Время — отсрочка выключения. Можно указывать:

  • в 24-часовом формате когда нужно указать точное время выключения с точностью до минуты shutdown 10:10;
  • в формате +мин, например, shutdown +10 выключит компьютер через 10 минут после выполнения. Команды shutdown +0 и shutdown now выключат компьютер немедленно.

Сообщение (wall) — текстовое сообщение, отправляемое пользователям компьютеров в сети. Если требуется добавить комментарий с причиной выключения. При добавлении сообщения обязательно указывать время.

Некоторые опции:

  • -H (Halt) — останавливает все функции процессора, но не выключает компьютер. Halt можно использовать как самостоятельную команду, отдельно от shutdown;
  • -P — полное выключение компьютера. Можно использовать как команду poweroff;
  • -r (reboot) — перезагрузка. В качестве команды — reboot;
  • -k — не производить никаких действий, отправить сообщение;
  • -c — отменить запланированное выключение. Можно отменить выключение, только если не было задано время +0 или now.

Заключение, несколько советов

Мы рассмотрели основные команды Linux с примерами, надеемся, что они окажутся вам полезными. Напоследок приведем несколько советов по использованию терминала одной строкой.

Двойной символ & (амперсанд)

Предназначен для выполнения нескольких команд последовательно:

команда1 && команда2 && команда3

команда3 выполнится только после успешного исполнения команды2, а команда2 — после команды1.

Вертикальная черта | (pipe)

Вводит результат первой команды в последующую. Например, следующая команда добавит таблицу процессов к команде поиска:

ps axu | grep имя_процесса

&& и || можно комбинировать. Например вот так: команда1 && команда2 || команда3

Стрелки вверх и вниз на клавиатуре

Помогают осуществлять навигацию по последним командам. Стрелка вверх (Ctrl+P) — предыдущая выполненная команда, стрелка вниз (Ctrl+N) — следующая.

history — история

Если вы забыли, как вы выполнили действие пять дней назад, а вот оно снова потребовалось, выполните history, и терминал выведет на экран последнюю тысячу команд.

Новая вкладка bash

Не всегда удобно иметь несколько окон. Некоторые терминалы, как и браузеры, дают возможность открыть несколько вкладок сочетанием клавиш Ctrl+Shift+T.

Копирование и вставка, прерывание команды

Пробовали ли вы копировать текст и вставлять в терминал? Пробовали Ctrl+C? Ctrl+C прервет выполнение текущей команды, например таблицы процессов, сбросит текст, введенный в строку. Скопировать текст из bash — Ctrl+Shift+C, вставить — Ctrl+Shift+V (для MacOS — Command+C и Command+V соответственно).

Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)

Содержание

  • Где я? Как понять, где находишься
  • Как понять, что находится в папке
  • Как перейти в другую директорию
    • По абсолютному пути
    • По относительному пути
    • С автодополнением
    • Подняться наверх
  • Как создать директорию
  • Как создать файл
  • Как отредактировать файл
  • Как перенести / скопировать файл
    • Скопировать файл
    • Скопировать директорию
    • Переместить файл
    • Переместить директорию
  • Как удалить файл
  • Как изменить владельца файла
  • Как установить приложение
  • Как запустить приложение
  • Как понять, где установлено приложение
  • Как создать архив
  • Как посмотреть использованные ранее команды
  • Как посмотреть свободное место
  • Как узнать IP компьютера
  • Как узнать версию OS
  • Как узнать, как работает команда
  • Как создать много тестовых папок и файлов
  • Как протестировать IOPS на Linux
  • И это все?
  • Книги и видео по теме
  • Где тренироваться

Где я? Как понять, где находишься

Команда pwd:

pwd   --- мы ввели команду
/home/test   --- ответ системы, мы находимся в домашней директории пользователя test

Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.

Как понять, что находится в папке

Команда ls позволяет просмотреть содержимое каталога:

Хотя лучше использовать команду сразу с флагом «l»:

ls -l

Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.

У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».

См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)

Как перейти в другую директорию

С помощью команды cd:

cd <путь к директории>

Путь может быть абсолютным или относительным.

По абсолютному пути

Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).

Вставляем путь в командную строку после «cd»

cd /home/student/log

Ну вот, мы переместились из домашней директории (обозначается как ~) в /home/student/log.

По относительному пути

Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будет такой:

cd log  --- перейди в папку log из той директории, где ты сейчас находишься

Если мне надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:

cd city/msk/2017/cat_1

Я не пишу /home/student/photo, так как я уже там.

В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки:

cd  ~/log

Эта команда будет работать отовсюду. И переместит нас в /home/user/log.

Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:

С автодополнением

Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:

(cd tab) Может, ты имел в виду папку 1?
(tab) Нет? Может, папку 2?
(tab) Снова нет? Может, папку 3?
(tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
(tab) У меня кончились варианты, поехали сначала. Папка 1?

cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).

cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.

Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.

Подняться наверх

Подняться на уровень выше:

cd ..

Если нужно поднять на два уровня выше, то

cd ../..

И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.

Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ….», а в линуксе именно «cd ../..».

См также:
Путь к файлу в linux

Как создать директорию

Используйте команду mkdir:

mkdir test  --- создает папку с названием «test» там, где вы находитесь

Можно и в другом месте создать папку:

mkdir /home/test   --- создает папку «test» в директории /home, даже если вы 
сейчас не там

Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.

См также:
Как создать каталог в Linux с помощью команды mkdir

Как создать файл

Командой touch:

touch app.log

Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.

Как отредактировать файл

Вот честное слово, лучше делать это через графический интерфейс!

Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:

  1. nano — более простая программа, рассчитана на новичков
  2. vim — более сложная, но позволяет сделать кучу всего

Начнем с nano. Указываете имя команды и путь в файлу:

nano test_env.json

Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:

  • Ctrl+O — чтобы сохранить
  • Ctrl+X — для выхода

Самое приятное в nano — это подсказки внизу экрана, что нажать, чтобы выйти.

А вот с vim с этим сложнее. В него легко зайти:

vim test_env.json
vi test_env.json     (предшественник vim)

Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?

Делюсь секретом, для выхода надо набрать:

  • :q — закрыть редактор
  • :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)

Двоеточие запускает командный режим, а там уже вводим команду «q» (quit).

Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:

Когда нажимаем двоеточие, оно печатается внизу:

Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда!!!

На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.

Если нужно выйти, сохранив изменения, используйте команду

:w — сохранить файл;
:q — закрыть редактор;

Ну а про возможности редактирования см статьи ниже =)

См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать Esc

Как перенести / скопировать файл

Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?

Скопировать файл

Команда:

cp что_копировать куда_копировать

Если мы находимся в директории /opt/app/log:

cp app.log /home/olga

В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.

Можно сразу переименовать файл:

cp app.log /home/olga/app_test_2020_03_08.log

В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.

Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:

Никаких ошибок, система просто выполнила команду.

См также:
Копирование файлов в linux

Скопировать директорию

Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:

cp -r  путь_к_папке  путь_к_новому_месту

Например:

cp /opt/app/log /home/olga

Так в директории /home/olga появится папка «log».

Переместить файл

Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).

cp app.log /home/olga
↓
mv app.log /home/olga

Можно использовать относительные и абсолютные пути:

mv /opt/app/logs/app.log /home/olga — абсолютные пути указаны, команда сработает из любого места

Можно сразу переименовать файл:

mv app.log /home/olga/app_2020_03_08.log — перенесли лог в /home/olga и переименовали

Переместить директорию

Аналогично перемещению файла, команда mv

mv /opt/app/log/  /home/olga/bakup/

Как удалить файл

С помощью команды rm (remove):

rm test.txt  — удалит файл test.txt

Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:

rm *  — удалит все файлы в текущей директории

Если нужно удалить папку, надо добавить флаг -r (recursive):

rm -r test_folder

Если вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:

А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да…» (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):

rm -rf test_folder    --- просто все удалит без разговоров

Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!

Опция -v показывает имена удаляемых файлов:

rm -rfv test_folder   --- удалит папку со всем содержимым, но выведет имена удаляемых файлов

Тут вы хотя бы можете осознать, что натворили )))

См также:
Как удалить каталог Linux

Как изменить владельца файла

Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.

Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.

Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:

chown testbase:testbase test.txt — сменить владельца файла
chown -R testbase:testbase user     — сменить владельца папки

В итоге был владелец root, а стал testbase. То, что надо!

См также:
Команда chown Linux

Как установить приложение

Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:

  • yum — red hat, centos
  • dpkg, apt — debian

См также:
5 Best Linux Package Managers for Linux Newbies

Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.

И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.

mc

Ничего страшного, установите это приложение через yum:

yum install mc

Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:

И система заканчивает установку.

Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:

См также:
Как устанавливать программы для Linux
Yum, шпаргалка — всякие опции и плагины

Как запустить приложение

Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.

Чтобы запустить скрипт, нужно указать полный путь к нему:

/opt/cdi/jboss/bin/standalone.sh — запустили скрипт standalone.sh

Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:

./standalone.sh — запустили скрипт, если мы в той же директории

Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:

standalone.sh --- запустили скрипт standalone.sh, путь к которому прописан в PATH

См также:
Запуск скрипта sh в Linux — подробнее о скриптах

Если же приложение запускается как сервис, то все еще проще:

service test start — запустить сервис под названием «test»
service test stop — остановить сервис

Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:

chkconfig test on

Она добавит службу в автозапуск.

Как понять, где установлено приложение

Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?

Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):

whereis newman

Как создать архив

Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:

tar -cvzf archive.tar.gz /home/test

В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.

Для распаковки меняем флаг «c» на «x» и убираем «z»:

tar -xvf archive.tar.gz

Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.

Давайте разберемся, что все эти флаги означают:

  • c — создать архив в linux
  • x — извлечь файлы из архива
  • v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
  • f — файл для записи архива
  • z — сжатие

Для упаковки используется опция cCreate, а для распаковки x — eXtract.

Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:

yum install rar
yum install unrar

Говорит, нет такого пакета:

No package rar available.
Error: Nothing to do

Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:

wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz
tar xzf rarlinux-x64-5.4.0.tar.gz
cd rar
make install

Устанавливаем:

mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

И применяем:

unrar x test.rar

См также:
Установка RAR на Linux

Как посмотреть использованные ранее команды

Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!

Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:

↑  (стрелочка «наверх») — показать последнюю команду
history — показать последние 1000 команд

Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).

Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.

Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.

См также:
История команд Linux — больше о возможностях history

Как посмотреть свободное место

Сколько места свободно на дисках

df -h

Сколько весит директория

du -sh
du -sh *  --- с разбиением

Как узнать IP компьютера

Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.

Чтобы узнать IP машины, используйте команду:

hostname -I

Также можно использовать ifconfig:

ifconfig — выведет кучу инфы, в том числе ваш внешний IP
ip a — аналог, просто иногда Ifconfig дает очень много результата, тут поменьше будет

См также:
Displaying private IP addresses

Как узнать версию OS

Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?

Используйте команду:

cat /etc/*-release

На этой виртуалке стоит CentOs 7.

Если нужна версия ядра:

uname -a

См также:
Как узнать версию Linux

Как узнать, как работает команда

Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:

man ls

Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.

Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))

Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!

Если man у программы нет, используйте флаг -h (—help):

ls -h

Как создать много тестовых папок и файлов

Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:

mkdir -p test/dir--{000..100}
touch test/dir--{000..100}/file-{A..Z}

Вот и все, дальше можно играться с ними!

Теперь пояснения:

  • mkdir — создать директорию
  • touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)

А выражения в скобках играют роль функции, которая выполняется в цикле и делает ручную работу за вас:

  • {000..100} — пробежится по всем числам от 0 до 100
  • {A..Z} — пробежится по всем буквам английского алфавита от A до Z

Как я пробовала эту команду. Сначала посмотрела, где нахожусь:

$ pwd
/home/test

Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).

Ага, в домашней директории. Создам себе песочницу:

mkdir olga

Вот в ней и буду творить!

mkdir -p olga/dir--{000..100}
touch olga/dir--{000..100}/file-{A..Z}

А потом можно проверить, что получилось:

cd olga
ls -l

Как-то так! Имхо, полезные команды.

Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!

И, главное, тестировщику полезно — может пригодиться для тестов.

Как протестировать IOPS на Linux

Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.

Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.

Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.

Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.

Используем утилиту fio — https://github.com/axboe/fio/releases.

1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка

cd /tmp
wget https://github.com/axboe/fio/archive/fio-3.19.tar.gz
tar xvzf fio-3.19.tar.gz
rm fio-3.19.tar.gz
cd fio-fio-3.19

2) Должны стоять пакеты для сборки

apt-get install -y gcc make libaio-dev | yum install -y make gcc libaio-devel

3) Собираем

make

4) Тестируем

./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1

Какие должны быть результаты:

  • Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
  • Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.

Свежесть определяется на момент написания статьи в 2017 году.

Если должно быть 50 тысяч, а диск выдает сильно меньше, то:

— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.

И это все?

Разумеется, нет =))

Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.

Вот вам еще пара ссылочек от меня:

  • Что значат символы >> и >& в unix/Linux — а то вроде про «>» знаешь еще по винде, а что значит «>>»? Вот в статье и ответ!
  • Ахтунг, прод! Как настроить приветствие на Linux — очень полезная штука, если у вас есть доступы на продакшен. Обезопасьте себя )))

Для понимания структуры папок рекомендую статью «Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе»

Книги и видео по теме

Видео:
ПО GNU/Linux — видео лекции Георгия Курячего — очень хорошие видео-лекции

Книги:
Командная строка Linux. Уильям Шоттс
Скотт Граннеман. Linux. карманный справочник

Где тренироваться

Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))

А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.

У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.

Чтобы подключиться к машине, используйте инструменты:

  • Putty — командная строка
  • WinSCP — графический интерфейс

См также:

WinSCP — что это и как использовать

Понравилась статья? Поделить с друзьями:
  • Гидроблок u250e мануал акпп
  • Гидроблок u250e мануал акпп
  • Спектолак для телят инструкция по применению
  • Спектолак для телят инструкция по применению
  • Регулировка клапанов рено премиум 420 dci инструкция