Команда dir в linux

Обновлено: 04.07.2024

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

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

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

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

1. uname

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

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

2. 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
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 используется для проверки текущей даты и времени системы. Эта команда позволяет задать пользовательские форматы для дат.

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

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

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

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

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

11. dmesg

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

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

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

16. lsusb

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

17. dmidecode

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

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

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

18. hdparm

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

Команды 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 работает следующим образом:

Команда Linux vmstat

Команда Linux vmstat

21. iostat

22. tcpdump

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

23. lsof

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

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

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

24. watch

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

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

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

25. id

26. last

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

27. who

28. groupadd

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

29. useradd

30. userdel

31. usermod

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

32. passwd

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

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

33. ls

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

34. 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 отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.

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

37. rm

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

38. cp

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

39. mv

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

40.cd

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

41. Ln

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

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

42. touch

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

43. more

44. head

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

45. tail

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

46. gpg

47. cksum

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

48. diff

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

49. sort

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

50. uniq

51. wc

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

52. dir

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

53. tee

54. tr

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

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

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

55. 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 используется для изменения этих разрешений.

63. chown

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

64. chgrp

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

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

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

65. ifconfig

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

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

66. 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

73. wget

74. netstat

75. nslookup

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

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

76. tar

77. gzip

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

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

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

78. rpm

79. make

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

80. yum

81. Apt

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

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

82. grep

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

83. locate

84. find

85. ssh

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

86. telnet

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

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

87. scp

$ 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

92. findmnt

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

93. mount

Заключение

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

В этой статье показано несколько примеров использования команды dir для вывода списка содержимого каталога. Команда dir не часто используется в Linux. Хотя он работает меньше, чем команда ls, которую предпочитает использовать большинство пользователей Linux. Мы обсудим команду dir, где мы рассмотрим, как использовать различные параметры и аргументы.


Общий синтаксис команды dir следующий.


dir Использование команды с примерами


Вывод команды dir с файлом каталога /etc выглядит следующим образом. Как видно из вывода, перечислены не все файлы в каталоге/etc.


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


Чтобы вывести список всех файлов в каталоге, включая . (скрытые) файлы, используйте параметр -a. Вы можете включить опцию -l для форматирования вывода в виде списка.



Если вам нужно указать только записи каталога, а не содержимое каталога, вы можете использовать параметр -d. В выводе ниже опция -d перечисляет записи для каталога/etc.

Когда вы используете -dl, он показывает длинный список каталога, включая владельца, владельца группы и разрешения.


Если вы хотите просмотреть порядковый номер каждого файла, используйте параметр -i. Из выходных данных ниже вы можете видеть, что в первом столбце показаны числа. Эти числа называются индексными узлами, которые иногда называют индексными узлами или индексными номерами.

Inode в системах Linux - это хранилище данных в файловой системе, в котором хранится информация о файле, кроме имени файла и его фактических данных.


Вы можете просмотреть размеры файлов, используя параметр -s. Если вам нужно отсортировать файлы по размеру, используйте параметр -S.

В этом случае вам также необходимо использовать параметр -h для просмотра размеров файлов в удобочитаемом формате.


В выходных данных выше первый столбец показывает размер файлов в килобайтах. В выходных данных ниже показан отсортированный список файлов в соответствии с их размерами с использованием параметра -S.


Вы также можете отсортировать по времени модификации, при этом файл, который недавно был изменен, отображается первым в списке. Это можно сделать с помощью опции -t.


Чтобы перечислить файлы без их владельцев, вы должны использовать опцию -g, которая работает как опция -l, только она не распечатывает владельца файла. А чтобы вывести список файлов без владельца группы, используйте параметр -G следующим образом.


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


В выходных данных выше пятый столбец показывает имя автора файла. Файлы examples.desktop принадлежат пользователю kone, принадлежат группе kili и созданы пользователем kone.

Вы можете просматривать каталоги раньше всех других файлов, и это можно сделать с помощью флага –group-directoryies-first следующим образом.


Когда вы посмотрите на вывод выше, вы увидите, что все каталоги перечислены перед обычными файлами. Буква d перед разрешениями указывает на каталог, а a указывает на обычный файл.

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


В приведенных выше выходных данных знак (.) означает, что текущий каталог и домашний каталог пользователя Kone имеет три подкаталога: Backup, dir и Docs.

В подкаталоге Backup есть еще два подкаталога: mariadb и mysql, у которых нет подкаталогов.

Подкаталог dir не имеет подкаталога. В подкаталоге Docs есть два подкаталога, а именно Books и Tuts, у которых нет подкаталогов.

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

Вывод без опции -n.


Вывод с параметром -n.


Его можно заархивировать с помощью опции -m.


Чтобы найти справку по использованию команды dir, используйте флаг –help, а для просмотра сведений о версии dir используйте –version.

Заключение

Это всего лишь примеры базового использования команды dir, чтобы использовать многие другие параметры, см. Ручной ввод команды dir в вашей системе. Если вы найдете какие-либо другие интересные варианты или способы использования команды dir, сообщите нам об этом, написав комментарий. Надеюсь, эта статья окажется для вас полезной.

Опции POSIX: [-CFRacdilqrtu1] [--]

ОПИСАНИЕ

Программа ls сначала выводит список всех файлов (не каталогов), перечисленных в командной строке, а затем выводит список всех файлов, находящихся в каталогах, перечисленных в командной строке. Если не указано ни одного файла, то по умолчанию аргументом назначается `.' (текущий каталог). Опция -d заставляет ls не считать аргументы-каталоги каталогами. Будут отображаться только файлы, которые не начинаются с `.' или все файлы, если задана опция -a.

Каждый список файлов (для файлов, которые не являются каталогами и для каждого каталога, содержащего список файлов) сортируется отдельно в алфавитной последовательности текущих региональных настроек (locale). Когда указана опция -l, то перед каждым списком выводится итоговая строка с общим размером всех файлов в списке, который измеряется в полу-килобайтах (512 байт).

Результаты печатаются на стандартный вывод, по одному файлу на строку, если с помощью опции -C не задан многоколоночный вывод. Однако при выводе на терминал не определено, будет ли вывод осуществляться в одну колонку или в несколько. Для задания одноколоночного или многоколоночного режима вывода могут использоваться опции -1 и -C, соответственно.

ОПЦИИ POSIX

-C Напечатать список файлов в колонках с вертикальной сортировкой. -F Для каждого имени каталога добавлять суффикс `/', для каждого имени FIFO - `|' и для каждого имени исполняемого файла `*'. -R Включить рекурсивную выдачу списка каталогов. -a Включать в список файлы с именем, начинающимся с `.'. -c Использовать при сортировке (при задании опции -t или -l) время изменения состояния файла вместо времени последней модификации файла. -d Выдавать имена каталогов, как будто они обычные файлы, вместо того, чтобы показывать их содержимое. -i Предварять вывод для каждого файла его серийным номером (номером inode). -l Выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.

Типы файлов могут принимать следующие значения: - для обычного файла, d для каталога, b для блочного устройства, c для символьного устройства, l для символической ссылки, p для FIFO и s для гнезда (socket).

По умолчанию, временной штамп является временем последней модификации; опции -c и -u позволяют выбрать два других временных штампа. Для файлов устройств, поле размера обычно заменяется на старший и младший номера устройства. -q Вместо непечатаемых символов в имени файла при выводе будут ставиться знаки вопроса. (Эта опция включена по умолчанию при выводе на терминал.) -r Производить сортировку в обратном порядке. -t Сортировать по показываемому временному штампу. -u Использовать при сортировке (опция -t) или перечислении (опция -l) время последнего доступа к файлу вместо времени последней модификации файла. -1 Выдавать в одноколоночном формате. -- Завершает список опций.

ПОДРОБНОСТИ ВЕРСИИ GNU

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

Программа dir (также установленная под именем d ) является эквивалентом `ls -C -b'; таким образом, файлы по умолчанию выдаются в многоколоночном формате (с вертикальной сортировкой). Программа vdir (также установленная под именем v ) эквивалентна `ls -l -b'; таким образом, файлы по умолчанию выдаются в длинном формате.

ОПЦИИ GNU

-1, --format=single-column Выдавать один файл на строку. Эта опция включается по умолчанию, если стандартный вывод не является терминалом. -a, --all Выдавать все файлы в каталогах, включая все файлы, начинающиеся с `.'. -b, --escape, --quoting-style=escape Заменять неграфические символы в именах файлов, используя алфавитно-цифровые последовательности, а также последовательности вида \ 000' с восьмеричными цифрами, как в языке C. Данная опция аналогична -Q , за исключением того, что имена файлов не заключаются в двойные кавычки. -c, --time=ctime, --time=status Сортировать содержимое каталога в соответствии с временем изменения состояния файла (поле `ctime' в inode). Если с помощью опции -l задан длинный формат, то выдавать время изменения состояния файла вместо времени его модификации. -d, --directory Выдавать имена каталогов, как будто они обычные файлы, вместо того, чтобы показывать их содержимое. -f Не сортировать содержимое каталога; выдавать файлы в том порядке, в котором они записаны на диск. Эта опция также разрешает -a и -U и запрещает -l , --color , -s , и -t , если они были заданы перед -f . -g Игнорируется; нужна для совместимости с Unix. -h, --human-readable Добавлять к каждому размеру файла букву размера, например, M для двоичных мегабайт (`мебибайт'). (Новое в fileutils-4.0.) -i, --inode Выдавать номер inode (также называемый серийным номером файла и номером индекса) каждого файла, слева от его имени. (Этот номер однозначно идентифицирует каждый файл в каждой файловой системе) -k, --kilobytes Если выдаются размеры файлов, то выдавать их в килобайтах. -l, --format=long, --format=verbose В дополнении к имени каждого файла, выводятся тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла в байтах и временной штамп (время последней модификации файла, если не задано другое). Для файлов с временем больше чем 6 месяцев назад или больше, чем 1 час в будущее, временной штамп содержит год вместо времени дня.

Каждый каталог со списком содержимого предваряется строкой `total blocks ', где blocks -- это общее дисковое пространство, используемое всеми файлами в данном каталоге. По умолчанию, размер блока составляет 1024 байта; если установлена переменная окружения POSIXLY_CORRECT , то используется размер блока 512 байт (если не задана опция -k ). blocks считает каждую жесткую ссылку отдельно; задать по другому через аргументы невозможно.

Права доступа отображаются в практически обычном символьном виде, но ls комбинирует несколько битов в третий символ каждого набора прав доступа: s Если setuid или setgid бит установлены вместе с соответствующим битом прав на выполнение. S Если setuid или setgid бит установлены, но соответствующий бит прав на выполнение не установлен. t Если sticky-бит установлен вместе с битом прав на выполнение остальными. T Если sticky-бит установлен, но бит прав на выполнение остальными нет. x Если бит прав на выполнение установлен, и не выполняется ни одно из вышеуказанных условий. - Во всех остальных случаях. -m, --format=commas Выдавать список файлов в строчку с максимально возможным количеством имен файлов на строку, разделяя имена запятой и пробелом. -n, --numeric-uid-gid Выдавать числовые UID и GID вместо имен владельца и группы. -o Применять длинный формат, но не показывать информацию о группе. Данная опция эквивалентна --format=long --no-group . Данная опция предоставляется для совместимости с другими версиями ls . -p, --file-type, --indicator-style=file-type Добавлять символ, показывающий тип файла, к каждому имени файла. Данная опция похожа на -F , за исключением того, что исполняемые файлы не помечаются. (Фактически в fileutils-4.0 опция --file-type эквивалентна --classify.) -q, --hide-control-chars Выдавать знаки вопроса вместо неграфических символов в имени файла. Эта опция включена по умолчанию. -r, --reverse Сортировать содержимое каталога в обратном порядке. -s, --size Выдавать размер каждого файла в блоках по 1024 байта слева от имени файла. Если установлена переменная окружения POSIXLY_CORRECT , то применяется размер блока 512, если не задана опция -k . -t, --sort=time Сортировать по времени последней модификации (поле `mtime' в inode) вместо того, чтобы производить сортировку по алфавиту. Самые свежие файлы будут отображаться первыми. -u, --time=atime, --time=access, --time=use Сортировать по времени последнего доступа к файлу, вместо времени последней модификации (поле `atime' в inode). Если задан длинный формат вывода, выдавать время последнего доступа вместо времени последней модификации. -v Производить сортировку в соответствии с номером версии файлов. При этом учитывается, что имена файлов часто содержат номера версий или порядковые номера. Стандартные функции сортировки обычно не обеспечивают сортировку, которую мог бы ожидать человек, так как сортировка производится на основе посимвольного сравнения. Сортировка по версиям решает эту проблему и особенно полезна, когда производится просмотр каталогов, содержащих много файлов, у которых в имени есть номер версии. Например:

Заметим, что цифровые части с лидирующими нулями определяются как более маленькие:

(Новое в fileutils-4.0.) -w, --width cols Назначает вывод на экран в cols колонок. По умолчанию, если это возможно, данное значение узнается от драйвера терминала; в противном случае используется значение переменной окружения COLUMNS , если она установлена; в противном случае, по умолчанию, устанавливается 80. -x, --format=across, --format=horizontal Выдавать список файлов в многоколоночном режиме, с сортировкой по горизонтали. -A, --almost-all Выдавать все файлы, кроме `.' и `..'. -B, --ignore-backups Не показывать файлы, которые заканчиваются на `

', если они не заданы в командной строке. -C, --format=vertical Выдавать файлы в многоколоночном режиме, с сортировкой по вертикали. Опция устанавливается по умолчанию, если стандартный вывод является терминалом. Данная опция всегда устанавливается по умолчанию для программ dir и d . -D, --dired При длинном формате ( -l ) , после основного вывода, выдавать дополнительную строку вида:
//DIRED// BEG1 END1 BEG2 END2 .

Здесь BEGn и ENDn -- это целые беззнаковые числа, которые для каждой записи показывают байтовую позицию начала и конца каждого имени файла. Таким образом, Emacs может легко найти имена, даже когда они содержат необычные символы, такие как пробелы или символы новой строки.

Если каталоги отображаются рекурсивно ( -R ), то похожая строка выводится после каждого подкаталога:
//SUBDIRED// BEG1 END1 . -F, --classify, --indicator-style=classify Добавлять к каждому имени файла символ, показывающий его тип. Для обычных исполняемых файлов это `*'. Для каталога добавляется `/', для FIFO - `|', для символических ссылок `@', для гнезд `=', для обычных файлов ничего не добавляется. -G, --no-group Не отображать информацию о группе в длинном формате вывода. -H, --si Делает то же, что и опция -h , но использует официальные единицы измерения SI (где для расчетов используется 1000 вместо 1024 и, таким образом, M -- это 1000000 вместо 10485576). (Новое в fileutils-4.0.) -I, --ignore= шаблон Не показывать файлы, имена которых совпадают с заданным шаблоном (шаблон - это не регулярное выражение), если только они не заданы в командной строке. Как и в shell, начальная `.' в имени файла не совпадает с символом `*', заданным в начале шаблона . Чтобы спрятать ваши каталоги, вы можете просто добавить LS_OPTIONS="$LS_OPTIONS -I mystuff" в /etc/profile. -L, --dereference Выдавать информацию о файлах, на которые указывают символические ссылки, вместо информации о самих символических ссылках. -N, --literal Не заключать в кавычки имена файлов. -Q, --quote-name, --quoting-style=c Заключать имена файлов в двойные кавычки и показывать неграфические символы как в языке С. -R, --recursive Рекурсивно выдавать список содержимого всех каталогов. -S, --sort=size Производить сортировку по размеру файла, вместо сортировки по алфавиту. Таким образом, наибольшие файлы будут показаны сначала. -T, --tabsize cols Назначить ширину табуляции в cols колонок. По умолчанию 8, может быть также задано с помощью переменной окружения TABSIZE, если при этом не установлена переменная окружения POSIXLY_CORRECT. ls использует табуляцию для выравнивания вывода, когда это возможно. Если cols равно нулю, то табуляция не используется. -U, --sort=none Не производить сортировку; список файлов будет выдаваться в том порядке, в каком файлы записаны на диск. (отличие между опциями -U и -f состоит в том, что данная опция не запрещает и не разрешает другие опции). Эта опция может быть особенно полезна, когда выдаются списки содержимого очень больших каталогов, при этом сортировка не выполняется и весь процесс происходит быстрее). -X, --sort=extension Производить сортировку в алфавитном порядке по расширениям файлов (символы после последней `.'); файлы без расширений будут показаны первыми. --block-size= size Выдает размеры в блоках по size байт. (Новое в fileutils-4.0.) --color[= when ] Задает цвет для различения типов файлов. Цвета задаются с использованием переменной окружения LS_COLORS . Информацию о том, как нужно задавать значение этой переменной, можно найти в странице руководства dircolors (1). Параметр when может быть опущен или принимать одно из следующих значений: none Вообще не использовать цвет. Установлено по умолчанию. auto Использовать цвет, только если стандартный вывод является терминалом. always Всегда использовать цвет. Задание --color без параметра when эквивалентно --color=always . --full-time Выдавать время в полном, а не в стандартном сокращенном варианте. Данный формат выглядит так же, как и в команде date (1) по умолчанию; его невозможно изменить, но вы можете извлечь строку с датой через команду cut (1) и пропустить результат через `date -d'.

Это может быть очень полезно, потому что время в таком формате включает секунды. (Файловые системы Unix записывают временной штамп файла с округлением до секунды, так что данная опция показывает полную информацию о временном штампе). Например, это может помочь, если вы разбираетесь, почему некий Makefile неправильно перегенерирует файлы. --quoting-style= word Используйте стиль word для выбора режима квотинга имен файлов. Стиль word может принимать следующие значения: literal Вывод имен файлов как есть. Это поведение ls по умолчанию. shell Заключает имена файлов в одиночные кавычки для shell, если они содержат метасимволы или могут привести к неоднозначной выдаче. shell-always Заключает имена файлов в одиночные кавычки для shell, даже если этого не требуется. c Заключает имена файлов в двойные кавычки, как в языке C; это равносильно опции -Q . escape Как и для c , за исключением того, что имя не заключается в двойные кавычки; эквивалентно опции -b.

Значение по умолчанию для данной опции может быть задано в переменной окружения QUOTING_STYLE. (См. ниже главу ОКРУЖЕНИЕ ). --show-control-chars Выдавать неграфические символы в именах файлов как есть. Так задано по умолчанию, если вывод осуществляется на терминал, а программа называется ls .

СТАНДАРТНЫЕ ОПЦИИ GNU

--help Выдать подсказку на стандартный вывод и успешно завершиться. --version Выдать информацию о версии на стандартный вывод и успешно завершиться. -- Служит для обозначения конца списка опций.

ОКРУЖЕНИЕ

Переменная POSIXLY_CORRECT определяет размер блока. Переменная TABSIZE задает ширину табуляции, если не установлена переменная POSIXLY_CORRECT. Переменная COLUMNS (когда она содержит целое число) определяет ширину вывода в колонках (для использования с опцией -C). Имена файлов не должны обрезаться, чтобы уместить их в многоколоночном выводе.

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES. Переменная TZ задает временную зону для временных меток, которые выдает ls . Переменная LS_COLORS используется для задания цветов. Переменная LS_OPTIONS хранит опции по умолчанию.

Переменная QUOTING_STYLE используется для задания значения по умолчанию для опции --quoting-style . Данная опция по умолчанию установлена в literal , но авторы предупреждают, что это умолчание может когда-нибудь в следующей версии измениться на shell .

Подробное объяснение DIR, dirent, stat и других структур под Linux

Ниже приводится определение структуры DIR:

Структура DIR аналогична FILE, который является внутренней структурой. Следующие функции используют эту внутреннюю структуру для сохранения соответствующей информации о каталоге, который в настоящее время читается (из«Расширенное программирование в среде UNIX (второе издание)»). Функция DIR * opendir (const char * pathname), открывающая файловый каталог, возвращает указатель на структуру DIR, которая используется следующими функциями:

За ним следует директивная структура. Во-первых, мы должны выяснить концепцию файла каталога: этот файл содержит имена других файлов и указатели на информацию, относящуюся к этим файлам (взятые из«Расширенное программирование в среде UNIX (второе издание)»). Из определения видно, что dirent не только указывает на каталог, но также указывает на конкретные файлы в каталоге.Функция readdir также считывает файлы в каталоге. Это свидетельство. Ниже приводится определение прямой структуры:

Из приведенного выше определения также видно, что структура dirent хранит очень мало информации о файлах, поэтому dirent также действует как индекс. Если вы хотите получить информацию о файле, аналогичную эффекту ls -l, вы должны положиться на функцию stat Вверх.

Имя файла, считываемое функцией readdir, сохраняется в члене d_name структуры dirent, а функция

int stat(const char *file_name, struct stat *buf);

Функция состоит в том, чтобы получить подробную информацию о файле с именем d_name и сохранить ее в структуре stat. Ниже приводится определение структуры статистики:

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

Сначала мы используем функцию opendir, чтобы открыть каталог a и вернуть структуру DIR c, которая указывает на каталог a.

Затем мы вызываем функцию readdir (c) для чтения всех файлов (включая каталоги) в каталоге a и возвращаем структуру dirent d, которая указывает на все файлы в каталоге a.

Затем мы проходим d и вызываем stat (d-> name, stat * e), чтобы получить подробную информацию о каждом файле, которая хранится в структуре stat e.

В целом это такой постепенный процесс усовершенствования, в котором три структуры играют разные роли.

"Структура файла структуры определена в include / linux / fs.h. Структура файла представляет собой открытый файл. Каждый открытый файл в системе имеет связанный файл структуры в пространстве ядра. Он открывается ядром. Файл создается при его создании и передается в любую функцию, которая работает с файлом. После закрытия всех экземпляров файла ядро ​​освобождает эту структуру данных. При создании ядра и исходном коде драйвера указатель на файл структуры обычно называется файлом или filp. . "

Здесь говорится, что структура FILE создается, когда ядро ​​открывает файл. Обратитесь к предыдущему коду операции FILE, мы можем обнаружить, что, когда мы используем структуру FILE, мы напрямую объявляем указатель на структуру FILE, например:

Затем используйте функцию fopen, чтобы вернуть указатель на структуру FILE на fp. Мы не объявляли структуру, а просто указатель на структуру.

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

Структура DIR похожа на FILE. В P104 "Linux Programming Fourth Edition" есть программа для печати всех файлов и каталогов в каталоге. Код выглядит следующим образом:

Читайте также: