Ls la команда linux что делает
Перейти к содержимому

Ls la команда linux что делает

  • автор:

Ls la команда linux что делает

Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями

Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.

Использование команд Linux

Знакомство с ls

А сейчас, мы быстренько пройдемся по команде ls. Скорее всего вы уже хорошо знакомы с этой командой, и знаете, что набрав ls получите список содержимого текущей рабочей директории:

Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с «.». Как видно в следующем примере, ls -a выводит также особые связывающие директории «.» и «..»:

Развернутые списки директорий

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

В следующем примере мы использовали опцию -l чтобы отобразить содержимое моей директории /usr:

Первая колонка показывает информацию о правах доступа для каждого элемента. Чуть позже я объясню, как её интерпретировать. Следующая колонка содержит числа ссылок на каждый элемент файловой системы, позже мы вернемся к этому. Третья и четвертая колонки — это список владельцев и групп, соответственно. Пятая колонка — размер объекта. Шестая — время последнего изменения (mtime) объекта. И наконец, последняя колонка с именами объектов. Если файлы являются символическими ссылками, то вы увидите стрелку -> и путь, куда указывает эта символическая ссылка.

Смотрим на директории

Иногда вы захотите взглянуть на директорию, а не внутрь нее. В этом случае вы можете указать опцию -d, которая скажет ls рассматривать любую директорию, как внутреннюю:

Рекурсивный и инодный списки

Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.

Наконец, опция -i может использоваться для отображения номеров инодов для объектов в списке файловой системы:

Понятие инода

Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки «.» и «..», которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория «..», мы сперва взглянем на номер инода у /usr/local:

$ ls -id /usr/local
5120 /usr/local

У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:

$ ls -id /usr/local/bin/..
5120 /usr/local/bin/..

Как видно, директория /usr/local/bin/.. имеет такой же номер, как у /usr/local! Посмотрим, как можно справиться с этим шокирующим откровением. В прошлом мы полагали, что /usr/local сама является директорией. Теперь же, мы обнаружили, что фактически директория — это инод с номером 5120, и нашли, по меньшей мере, два элемента (называемых «ссылками»), которые указывают на данный инод. И /usr/local, и /usr/local/bin/.. — ссылки на 5120-ый инод. Хотя этот инод и существует только в одном месте на диске, тем не менее на него может быть множество ссылок.

На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:

Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:

/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..
/usr/local/src/..

mkdir

Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:

$ cd /tmp
$ mkdir tic tac toe

По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:

$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful’: No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful

Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:

$ mkdir -p easy/as/pie

В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.

touch

Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:

$ cd /tmp
$ touch copyme

Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.

Теперь, когда файл существует, давайте добавим немного данных в него. Можно сделать это с помощью команды echo, которая принимает аргументы и печатает их на стандартный вывод. Сперва, команда echo сама по себе:

$ echo «firstfile»
firstfile

А сейчас, та же команда echo, но с перенаправлением вывода:

$ echo «firstfile» > copyme

Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:

cat и cp

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

$ cat copyme
firstfile

Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:

$ cp copyme copiedme

Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:

А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.

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

Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться

$ mv /var/tmp/myfile.txt /home/drobbins

После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.

Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:

$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Что делает "ls -la"?

Когда я вошел в -al Атрибут с помощью команды ls, я получил следующее:

Что означает каждый столбец и что означает total 76 обозначать здесь?

2 ответа

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

Результатом является длинный список ( ls -l часть) с (слева направо):

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

в то время как ls -a означает, что скрытые файлы также перечислены.

смотрите также man ls (как всегда man является первым источником информации), и эта ссылка.

Еще немного объяснения того, что вы видите

Вывод начинается с количества дисковых блоков, используемых каталогом (в вашем случае 76). Из документации GNU:

Для каждого каталога, который указан в списке, предварите файлы строкой «Всего блоков», где «блоки» — это общее дисковое пространство для всех файлов в этом каталоге. Размер блока в настоящее время по умолчанию составляет 1024 байта, но это может быть переопределено.

Команда ls: примеры использования и опции

terminalКоманда ls – вероятно наиболее используемая команда в любой UNIX-системе. Её предназначение – вывод информации о файлах и каталогах. Дополнительные опции команды позволяют получить более подробную информацию и сортировать её определённым образом.

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

-R Рекурсивно обойти встретившиеся подкаталоги.
-a Вывести список всех файлов (без этой опции не выводятся скрытые файлы, имена которых начинаются с точки).
-d Если аргумент является каталогом, то выводить только его имя, а не содержимое. Часто используется с флагом -l для получения сведений о состоянии каталога.
-C Вывод в несколько колонок с сортировкой по колонкам.
-x Вывод в несколько колонок с сортировкой по строкам.
-m Вывод в свободном формате, имена файлов разделяются запятыми.
-l Вывод в длинном формате: перед именами файлов выдается режим доступа, количество ссылок на файл, имена владельца и группы, размер в байтах и время последней модификации (см. ниже). Если файл является специальным, то в поле размера выводится старший и младший номера устройства.
-n То же, что и -l, но идентификаторы владельца и группы выводятся в виде чисел, а не в виде имен.
-o То же, что и -l, но идентификатор группы не выводится.
-g То же, что и -l, но идентификатор владельца не выводится.
-r Изменить порядок сортировки на обратный алфавитный или, при наличии флага -t, сначала выводить более старые файлы.
-t Имена файлов сортируются не по алфавиту, а по времени (сначала идут самые свежие файлы). По умолчанию используется время последнего изменения. См. также флаги -u и -c.
-u Вместо времени последнего изменения использовать время последнего доступа для сортировки (с флагом -t) или для вывода (с флагом -l).
-c Вместо времени последнего изменения использовать время последней модификации описателя файла (т.е. время создания файла, изменения режима доступа к нему и т.п.) для сортировки (с флагом -t) или для вывода (с флагом -l).
-p Если файл является каталогом, то выдавать после его имени символ /.
-F Если файл является каталогом, то выдавать после его имени символ /; если файл является выполняемым, то выдавать после его имени символ *.
-b Выдавать непечатные символы, входящие в имя файла, в восьмеричном виде (ddd).
-q Выдавать непечатные символы, входящие в имя файла, в виде символа ?.
-i Выдавать в первой колонке номера описателей файлов.
-s Выдавать размер файлов в блоках (включая косвенные блоки).
-f Рассматривать каждый аргумент как каталог и выводить его содержимое. Этот флаг отменяет флаги -l, -t, -s, -r и включает флаг -a. Сортировка имен файлов не производится; имена выдаются в таком порядке, в каком они перечислены в каталоге.

Теперь несколько примеров наиболее полезных опций.

Вывести список только каталогов:

# ls -d -1 /home/setevoy/*/
/home/setevoy/Desktop/
/home/setevoy/Downloads/
/home/setevoy/Dropbox/
/home/setevoy/Images/
/home/setevoy/Soft/
/home/setevoy/Temp/
/home/setevoy/VirtualBox VMs/

То же самое, но с использованием “длинного” (полного) вывода о каталогах:

# ls -dl /home/setevoy/*/
drwxr-xr-x 2 setevoy setevoy 4096 May 6 10:22 /home/setevoy/Desktop/
drwxr-xr-x 2 setevoy setevoy 4096 May 5 10:38 /home/setevoy/Downloads/
drwx—— 16 setevoy setevoy 4096 May 6 07:40 /home/setevoy/Dropbox/
drwxr-xr-x 2 setevoy setevoy 4096 May 5 12:00 /home/setevoy/Images/
drwxr-xr-x 2 setevoy setevoy 4096 May 5 18:29 /home/setevoy/Soft/
drwxrwxr-x 2 setevoy setevoy 4096 May 5 20:15 /home/setevoy/Temp/
drwxrwxr-x 4 setevoy setevoy 4096 May 5 19:09 /home/setevoy/VirtualBox VMs/

Ключ -l весьма полезен, так как позволяет проверять владельца и права на файлы/каталоги:

# ls -l
total 32
drwxr-xr-x 2 root root 4096 Aug 23 2012 bin
drwxr-xr-x 2 root root 4096 Aug 23 2012 etc
drwxr-xr-x 2 root root 4096 Aug 23 2012 games
drwxr-xr-x 2 root root 4096 Aug 23 2012 include
drwxr-xr-x 4 root root 4096 May 5 11:13 lib
lrwxrwxrwx 1 root root 9 May 5 10:22 man -> share/man
drwxr-xr-x 2 root root 4096 Aug 23 2012 sbin
drwxr-xr-x 7 root root 4096 Aug 23 2012 share
drwxr-xr-x 2 root root 4096 Aug 23 2012 src

Для вывода информации о скрытых файлах (начинаются с точки) используйте ключ -a :

# ls -la
ls: cannot access .gvfs: Permission denied
total 524
drwxr-xr-x 37 setevoy setevoy 4096 May 6 21:20 .
drwxr-xr-x 3 root root 4096 May 5 10:25 ..
drwx—— 3 setevoy setevoy 4096 May 5 10:39 .adobe
-rw——- 1 root root 517 May 5 11:53 .bash_history
-rw-r–r– 1 setevoy setevoy 220 May 5 10:25 .bash_logout
-rw-r–r– 1 setevoy setevoy 133 May 5 11:52 .bashrc
drwx—— 17 setevoy setevoy 4096 May 5 18:29 .cache
drwxrwxr-x 3 setevoy setevoy 4096 May 5 10:54 .compiz-1
drwx—— 20 setevoy setevoy 4096 May 6 10:38 .config
drwx—— 3 setevoy setevoy 4096 May 5 10:38 .dbus

Про ошибку с .gvfs можно почитать в статье ls: cannot access .gvfs: Permission denied.

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

d – файл является каталогом;
b – файл является специальным блочным файлом;
c – файл является специальным символьным файлом;
p – файл является именованным каналом;
– обычный файл.

Далее следуют три группы символов, обозначающих права доступа – r (read), w (write), x (execute) – чтение, запись в файл/каталог и выполнение соответственно. Тема прав доступа в UNIX весьма обширна, поэтому сейчас не будем вдаваться в подробности.

Открыть для редактирования последний редактировавшийся файл:

# nano file1.txt
# nano file2.txt
# nano `ls -t | head -1`

Обычный вывод ls без ключей выводит все файлы/каталоги одной строкой. Что бы вывести их в колонку – выполняем:

# ls -1
Desktop
Downloads
Dropbox
file1.txt
file2.txt
Images
Soft
Temp
VirtualBox VMs

Ключ -h используется для вывода информации о размере в “человекоудобном” виде, т.е. в Kb, Mb, Gb :

# ls -lh
total 36K
drwxr-xr-x 2 setevoy setevoy 4.0K May 6 10:22 Desktop
drwxr-xr-x 2 setevoy setevoy 4.0K May 5 10:38 Downloads
drwx—— 16 setevoy setevoy 4.0K May 6 07:40 Dropbox
-rw-r–r– 1 root root 2 May 6 21:06 file1.txt
-rw-r–r– 1 root root 2 May 6 21:06 file2.txt
drwxr-xr-x 2 setevoy setevoy 4.0K May 5 12:00 Images
drwxr-xr-x 2 setevoy setevoy 4.0K May 5 18:29 Soft
drwxrwxr-x 2 setevoy setevoy 4.0K May 5 20:15 Temp
drwxrwxr-x 4 setevoy setevoy 4.0K May 5 19:09 VirtualBox VMs

Отсортировать файлы/каталоги по их размеру, начиная с самого большого:

# ls -lS /var/log/
total 4152
-rw-r–r– 1 root root 1823273 May 6 19:46 dpkg.log
-rw-r—– 1 syslog adm 825505 May 6 08:05 syslog.1
-rw-r—– 1 syslog adm 589203 May 6 19:25 kern.log
-rw-r–r– 1 root root 47105 Aug 23 2012 bootstrap.log
-rw-r–r– 1 root root 37440 May 6 19:46 aptitude
-rw-r–r– 1 root root 20584 May 6 07:39 pm-powersave.log
-rw-r—– 1 root adm 14329 May 5 11:38 dmesg.1.gz
-rw-r–r– 1 root root 6167 May 6 07:39 kdm.log
drwxr-xr-x 2 root root 4096 May 5 10:25 apt
-rw-r—– 1 root adm 31 Aug 23 2012 boot
-rw-r—– 1 syslog adm 0 May 5 10:38 ufw.log

Осотрировать файлы/каталоги по дате последней модификации, новые – в конце списка:

# ls -rtl /var/log/
total 4152
drwx—— 2 speech-dispatcher root 4096 Feb 6 2012 speech-dispatcher
drwxr-xr-x 2 root root 4096 Mar 12 2012 unattended-upgrades

drwxr-xr-x 2 root root 4096 Aug 10 2012 dist-upgrade

-rw-r–r– 1 root root 47105 Aug 23 2012 bootstrap.log

-rw-r–r– 1 root root 2990 May 5 19:20 fontconfig.log

-rw-r—– 1 syslog adm 60874 May 6 21:14 syslog

Что бы вывести новые в начале списка – используйте комбинацию опций без ключа -r :

То же самое, но сортировать по дате последнего доступа к файлу, а не дате его модификации, используйте ключ -u :

Вывести список файлов/каталогов, разделённый на 5 колонок, разделённых на всю ширину окна:

# ls /usr/local | pr -T5 -W$COLUMNS
bin games lib sbin src
etc include man share

Добавлять символ обозначения принадлежности файла/каталога – каталог ( / ), исполняемый файл ( * ), FIFO ( | ), символьная ссылка ( @ ), сокеты семейства AF_UNIX ( = ):

# ls -F -1
Desktop/
Downloads/
Dropbox/
file1
file1.txt
file2
file2.txt
file3
[email protected]
Images/
Soft/
Temp/
VirtualBox VMs/

Впрочем, ту же информацию выводит и ls -l – первый символ d для каталогов (directory) и -> ; для ссылок:

# ls -l
total 36
drwxr-xr-x 2 setevoy setevoy 4096 May 6 10:22 Desktop

lrwxrwxrwx 1 root root 9 May 6 21:20 file4.txt -> file1.txt

Выводить список через запятую:

# ls -m
Desktop, Downloads, Dropbox, file1, file1.txt, file2, file2.txt, file3, file4.txt, Images, Soft, Temp, VirtualBox VMs

Вывести список рекурсивно, включая подкаталоги и их содержимое:

# ls -R
.:
Desktop
Downloads
Dropbox
Images
Soft
Temp
VirtualBox VMs

./Desktop:
PDF-Viewer.desktop
PDF-Viewer.lnk

Остортировать файлы/каталоги в обратном алфавитном порядке:

# ls -r
VirtualBox VMs Temp Soft Images file4.txt file3 file2.txt file2 file1.txt file1 Dropbox Downloads Desktop

Вывести информацию о номерах inode файлов и каталогов:

# ls -i -1
2368762 Desktop
1969746 Downloads
1987155 Dropbox
1987223 file1
1969890 file1.txt
1987865 file2
1969805 file2.txt
1987866 file3
1987863 file4.txt
1969751 Images
2141585 Soft
2368300 Temp
2141811 VirtualBox VMs

Вывести информацию о пользователе/группе в виде UID и GID , вместо символьных имён:

# ls -n
total 36
drwxr-xr-x 2 1000 1000 4096 May 6 10:22 Desktop
drwxr-xr-x 2 1000 1000 4096 May 5 10:38 Downloads
drwx—— 16 1000 1000 4096 May 6 07:40 Dropbox
-rw-r–r– 1 0 0 0 May 6 21:10 file1
-rw-r–r– 1 0 0 2 May 6 21:06 file1.txt
-rw-r–r– 1 0 0 0 May 6 21:10 file2
-rw-r–r– 1 0 0 2 May 6 21:06 file2.txt
-rw-r–r– 1 0 0 0 May 6 21:10 file3
lrwxrwxrwx 1 0 0 9 May 6 21:20 file4.txt -> file1.txt
drwxr-xr-x 2 1000 1000 4096 May 5 12:00 Images
drwxr-xr-x 2 1000 1000 4096 May 5 18:29 Soft
drwxrwxr-x 2 1000 1000 4096 May 5 20:15 Temp
drwxrwxr-x 4 1000 1000 4096 May 5 19:09 VirtualBox VMs

What does 'ls -la' do?

When I entered the -al attribute with the ls command, I got the following:

What does each column mean, and what does the total 76 signify here?

muru's user avatar

lazarus's user avatar

2 Answers 2

The ls -al command is a combination of ls -l (use a long listing format) and ls -a (do not ignore entries starting with .)

The result is a long list (the ls -l part) with (from left to right):

  • filetype
  • file permissions
  • number of links
  • owner name
  • owner group
  • file size
  • time of last modification
  • the name of the file or directory

while the ls -a means that hidden files are listed as well.

see also man ls (as always man is the first source of information), and this link.

A little more explanation on what you see

The output starts with the number of disc blocks, used by the directory (in your case 76). From the GNU docs:

For each directory that is listed, preface the files with a line ‘total blocks’, where blocks is the total disk allocation for all files in that directory. The block size currently defaults to 1024 bytes, but this can be overridden.

Ls la команда linux что делает

When I entered the -al attribute with the ls command, I got the following:

What does each column mean, and what does the total 76 signify here?

muru's user avatar

lazarus's user avatar

2 Answers 2

The ls -al command is a combination of ls -l (use a long listing format) and ls -a (do not ignore entries starting with .)

The result is a long list (the ls -l part) with (from left to right):

  • filetype
  • file permissions
  • number of links
  • owner name
  • owner group
  • file size
  • time of last modification
  • the name of the file or directory

while the ls -a means that hidden files are listed as well.

see also man ls (as always man is the first source of information), and this link.

A little more explanation on what you see

The output starts with the number of disc blocks, used by the directory (in your case 76). From the GNU docs:

For each directory that is listed, preface the files with a line ‘total blocks’, where blocks is the total disk allocation for all files in that directory. The block size currently defaults to 1024 bytes, but this can be overridden.

A beginner’s guide to Linux command-line

Joseph Gefroh

Systems administration and ops are one of my biggest areas of technical weakness.

I used GUI applications almost exclusively during the entirety of my education and first years working professionally. It didn’t help that the IDEs I used for Java, Eclipse and Netbeans, were absolutely amazing tools: I felt I had no reason to switch to what I perceived was a more time consuming way of doing things. In fact, the only command-line tool I used extensively was git .

When I finally started using Ruby on Rails and other scripting languages (and eventually got a Mac), I was at first flabbergasted by the lack of robust GUI tooling available. It was like I had reverted back to using notepad to code. It forced me to start using the terminal and command-line more often.

After a while I realized the power of the command-line. These commands were the APIs to the programs I used and I could use them however I wanted! Better yet, by changing commands together, you could do far more things than you could using a UI.

The journey has been tough. It’s hard to learn all this stuff without a guide. There’s just so much out there, and day-to-day you’ll only end up using a handful of commands.

I’ve written this document to hopefully help others focus their initial search on some common things they’ll end up using on a regular basis. A lot of it has been simplified and it glosses over some important concepts that will come in handy later. However, this should be useful for beginners.

First, some important concepts…

You’ll see these terms referenced throughout the post.

Current Directory

This is the current directory / folder, and is the default context your command will be run in. You can always find your Current Directory by typing pwd .

Arguments

Many of these commands take multiple arguments. In a lot of cases, the required argument is the file the command is being run on. When you see a command like more file.txt , the file.txt is the argument and the file the command is being run on. Every program has different arguments — check the documentation!

Flags

Flags are a way to set options and pass in arguments to the commands you run. Commands you run will change their behavior based on what flags are set. You should read the documentation of each command to know what flags are available.

For example, running ls with the -l flag ( ls -l ) will include more information in the result and change the format of what is returned.

Relative Path

Relative Paths are the names / paths to folders and files relative to your current directory. A relative path of myfolder/myimage.png , will mean the myfolder/myimage.png in the current directory, not anywhere else. If I was in another folder, that relative path would not point to the same myfolder/myimage.png .

Absolute Path

Absolute Paths are the names / paths to folders and files that your current directory. An absolute path is valid regardless of your current directory. /myfolder/myimage.png , will mean the same /myfolder/myimage.png regardless of what your current directory is. Note the / in front of the name.

Navigation 101

The first thing to learn is how to move around the directory structure and various folders.

Show your current directory with: pwd

pwd will Print your current Working Directory. It’s great to figure out where you are.

List files in a directory with: ls

ls lists files and folders in the current directory.

There’s a few flags you can use to make the listing easier to read or more informative:

  • ls -l list all the files in a single column, along with their permissions, sizes and timestamps.
  • ls -a lists all files, including hidden files.

You can combine flags:

  • ls -la for example, will list all files in a single column, including hidden files.

You can also pass in the name of a folder to view the contents of that folder:

  • ls myfolder will list the contents of the folder myfolder in your current directory.

Change directory with: cd

cd changes the directory. By default, the path is relative to the current directory. That means if I type cd myfolder , it will only work if the current directory I am in has a folder called myfolder . You can specify an absolute path by entering / in front of the folder path. cd /myfolder will work only if the root level / has a folder called myfolder .

Manipulation 101

Now that you know how to move around the directory structure, you’ll probably want to start making changes to it.

Create a directory with: mkdir

mkdir will make a directory with the name you pass it. To create a new directory called myfolder in the current directory, you would type in mkdir myfolder .

Create a file with: touch

touch will create an empty file with the name you provide.

Move a file with:mv

mv will move a file from the source to the destination. You can actually use mv to rename a file.

mv file_to_move folder_name_here will move the file into the folder. However, if the second argument turns out to be a file, it will overwrite the file.

Copy a file with: cp

cp will copy a file. It takes two arguments — the name of the file you want to copy, and the new path to the copy (including the file name).

You can use the -r flag to copy a directory.

Delete a file with: rm

rm will remove a file from your system. If you want to delete a directory, you would use the -r flag (recursive).

Note that this is a rather dangerous command, so be careful with it — there are many horror stories of accidentally deleting important things with a single command (often in conjunction with -r and * wildcards).

Editing 101

Now that you know how to move around, you’ll probably want to learn how to read, edit, and change files.

Read file contents with: more and tail

more and tail are two commands you can use to read file contents.

more filename.txt will open a reader where you can navigate through the file. When in more , you’ll be able to use some additional commands:

  • You can use space to scroll down a full screen.
  • The up and down arrow keys will scroll up and down a line.
  • Pressing g will enter the goto mode. You can then enter a line number to go directly to that line.
  • Pressing / will enter search mode — type in text to find and it’ll scroll to wherever that text is found. Pressing n will go to the next instance of that found text.

tail filename.txt will print the last 10 lines of a text file. You can use the -f flag (eg. tail -f filename.txt ) to follow the file in realtime. Whenever the file changes, it will print the last lines. This is useful if you are watching a log file for an application, for example.

Search through contents for a specific word with: grep

grep lets you search through text, returning the full line for any matches.

grep "text to find" filename.txt will search for text to find in filename.txt .

Change the contents of a file with: vi or vim

vi / vim is a ridiculously complicated text-editor that’s often your only option if you are manipulating files on a server. I’ve only learned enough of the basic commands to make small changes, but that should serve you well enough for now.

vi filename will open the file you want to edit.

Note that the editor opens in a mode ( normal mode ) that doesn’t let you type anything. You’ll need to press the i key to go into insert mode .

After you are done making your changes changes, you’ll want to go back into the normal mode by pressing escape .

  • To make changes to a file, enter insert mode with i and type away.
  • To save your changes, you enter normal mode with escape and press :w to write your changes.
  • To quit, you enter normal mode with escape and type in :q to quit. If you made changes, you’ll need to type :q! to force it to quit.

That’s about all I know about this editor.

Practicals 101

Now that you know the basics, you’ll want to have this additional information so you can start actually making use of all of this in a real environment.

Get help on a command or find out more about it with: man

man is a command that displays a help manual for the command you pass in as an argument. Not all commands have manuals, and sometimes the manuals are confusing.

For example, man ls will show the manual for the ls command.

If there isn’t a man ual for it, you can also try passing in a -help or —help flag. Some programs have a built-in help that will tell you how to use it.

Referencing the Current Directory with: .

. is a way to explicitly reference the current directory. You’ll often see commands like mv ./file.txt ./potato.txt . The first . in ./ is the current directory.

Specify a wildcard with: *

* often represents a wildcard in commands. This means that the command will be run on any file that matches. You can use it to perform actions in bulk, such as running a mv of all files of a specific type:

For example, mv *.png images will move all .png files into the images directory.

It’s very easy to accidentally perform commands on files you don’t want using wildcards, so be careful!

Redirect output to another program with: |

| , known as pipes, are a way to unlock the power of Linux by chaining commands together. It routes the output of the command on the left of the | and passes it to the command on the right of the | .

For example, suppose I want to find all of the running instances of a program called zsh . I could use ps to find the list of all of my processes. However, this list could be massive, and scrolling through it all would be a pain. I could combine it with grep to search through the results of ps and display only what I am looking for: ps | grep zsh .

Save the results of a command to a file with: > and >>

> and >> will let you run a command and save the results to a file. > will overwrite the file with the results of the command, while >> will append or add the results to the end of the file.

l, ls & la — what are the differences, and are there more of these commands?

So, through typing several commands I’ve found that there’s not only ls , but l and la too. There doesn’t appear to be any man entries on Ubuntu 12.14. They all appear to do similar things with minor differences:

Just as a bit of trivia, are there more of these and what do they do? Is here any place to find this out? Unfortunately, google searching these commands gets ignored because they’re so short.

3 Answers 3

Aliases

ls is a command, l and la are most likely aliases which make use of the command ls . If you run the command alias you can find all the aliases on your system.

This will return all the aliases that match the pattern l=. or la=. .

Debugging it further

You can also use the command type to see how a particular command is getting executed. Is it a command, an alias, or a function.

Example

On my system I have the command ls aliased so that it calls ls but also includes a bunch of extra switches, like so:

In the above output you can see that ls is aliases, but then also on my system’s $PATH in the directories /usr/bin and /bin .

Обзор содержимого директорий и файлов

cd и pwd

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

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

Выводит список файлов и директорий в рабочей директории без отображения скрытых объектов (у которых имя начинается с символа «.» (точка)).

ls /bin

Перечисление содержимого в директории /bin. Вместо /bin можно указать любую другую директорию через абсолютный или относительный путь к ней.

Перечисление содержимого рабочей директории с выводом подробной информации о перечисляемых объектах.

ls -l /var /etc

Перечисление содержимого директорий /var и /etc с выводом подробной информации о перечисляемых объектах.

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

Таким образом можно одной командой получить информацию сразу по всем интересуемым директориям ��

ls -la ..

Перечисление всех объектов (включая скрытых) в родительской директории с выводом подробной информаций о каждом из них.

Формат команд

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

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

На примере команды ls:

  • ls — имя команды
  • -l и -a — параметры (допускается объединение в -la при использовании обоих). Параметр -l указывает о необходимости вывода подробной информации, а -a о включении скрытых объектов. У параметра может быть указан его аргумент (в данном примере отсутствует), в таком случае при объединении аргумент применяется к последнему параметру. Если параметр не требует указания аргумента, то такой параметр называется ключом.
  • /var и /etc — аргументы, в данном случае список директорий, содержание информации которых нас интересует
Детальный вывод

При использовании параметра -l команды ls выводится подробная информация о содержимых объектах директории. Ознакомимся с её форматом более детально.

детальный вывод ls

Имя файла Имя файла или директории. Время изменения Последнее время изменения файла. Если изменение произошло спустя более шести месяцев, то выводятся дата и год, иначе дата и время дня. То есть, вначале всегда выводится дата, которая состоит из месяца и числа, а после нее год или время в часах и минутах. Когда мы видим время, это значит файл был изменен за прошедшие шесть месяцев, т.е. в текущем или прошлом году �� Размер Размер файла в байтах. Для директории указывается размер метаданных (информации об объектах, которые содержатся внутри, включая их имена), а не суммарный размер содержимого. Изначально размер директории равен размеру кластера (обычно 4 Кб / 4096 байт), но может расти при необходимости. Группа Имя группы, для которой указаны права доступа. Владелец Имя учетной записи пользователя, который является владельцем файла. Права доступа Представление прав доступа к объекту. Первый символ указывает тип объекта. Символ «d» обозначает директорию, «-» — файл. Но есть и иные типы объектов в Linux. Далее идет три набора из трех символов, которые представляют права доступа. Первый символ указывает право чтения, второй записи, третий выполнения или входа. Первый набор из трех символов указывает права доступа владельца файла, второй — права группы файла, а последний указывает права доступа файла для всех остальных пользователей. Подробнее о правах доступа будет опубликован отдельный материал в будущем ��

Программа less

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

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

Некоторые способы представления информации достаточно сложные (например, сжатые изображения, аудио- и видеозаписи). Но есть и достаточно простые. Один из самых первых появившихся и самых простых — текст в кодировке ASCII (American Standard Code for Information — американский стандартный код для обмена информации). Эта простая схема кодирования впервые была использована на устройствах телетайпа для указания зависимости печатных символов и номеров.

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

Для запуска программы less необходимо ввести less имя_файла, где имя файла — абсолютный или относительный путь к файлу.

Введем less /etc/sestatus.conf и нажмем клавишу «Enter». Выведено содержание файла /etc/sestatus.conf.

Отображение /etc/sestatus.conf в less

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

Для выхода из программы less нажмем клавишу q на клавиатуре.

Управление программой less

После запуска less отображает на экране по одной странице текста за раз. Листать страницы можно клавишами Page Up и Page Down. Помимо них, в less есть и иные команды. С командой «q» мы уже знакомы — выход из программы. Вот несколько иных полезных команд программы less.

Page Up или b Прокрутка на предыдущую страницу текста. Page Down или space Прокрутка на следующую страницу текст. G Прокрутка в конец файла. 1G Прокрутка в начало файла /строка Поиск следующего вхождения указанной строки в файле. n Повторный поиск следующего вхождения. h Отображение справочной информации по всем командам less. q Выход из программы.

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

Программа file

Если просто бродить по файлам Linux, то перед тем как их попытаться посмотреть их содержание, было бы полезно понять данные какого типа в них записаны. С этим может помочь инструмент file. Программа file изучает содержимое файла и сообщает, что это за файл.

Командная строка Linux: краткий курс для начинающих

Как работать с командной строкой и базовыми командами.

Введение

В данном руководстве мы вкратце ознакомимся с работой в командной строке в Ubuntu 20.04 .

Требования

  • Cервер с Ubuntu 20.04

Для разных операционных систем командную строку можно открывать с помощью приложений:

  • Mac OS X: Terminal (default), iTerm 2;
  • Windows: PuTTY;
  • Linux: Terminal, KDE Konsole, XTerm.

С подробным описанием команд для Ubuntu можно ознакомиться в официальной документации.

Вход на сервер через терминал

В операционной системе Ubuntu 20.04 открыть командную строку можно двумя способами: через консоль и через графический терминал.

Для работы через консоль следует нажать сочетание клавиш Ctrl+Alt+F1, для возврата в графический интерфейс — сочетание клавиш Ctrl+Alt+F7.

Для запуска терминала нажмите сочетание клавиш Ctrl+Alt+T.

Внизу экрана располагается приглашение командной строки — последовательность символов, извещающая о готовности к обработке команд:

  • kamilla — имя текущего пользователя (суперпользователь/администратор);
  • kamilla-Aspire-V3-37 — имя хоста (сервер);
  • : — разделитель;

Базовые команды, используемые при настройке сервера

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

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

ssh -p №port demo@adress

  • №port — номер заданного порта при начальной настройке сервера;
  • demo — имя пользователя;
  • adress — ip-адрес сервера.

Для входа на сервер под учетной записью root используйте команду, заменив SERVER_IP_ADDRESS на публичный IP-адрес вашего сервера:

Для создания новой учетной записи пользователя введите команду, заменив имя DEMO на любое другое необходимое имя:

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

Для замены строчки в открывшемся конфигурационном файле найдите, например, строчку Port 22 и замените число 22 на любое другое число (от 1025 и до 65536).

После внесения изменений сохраните и закройте файл, нажав сочетание клавиш CTRL-X, затем клавишу Y, затем клавишу ENTER.

Для перезапуска сервиса SSH выполните следующую команду:

Для выполнения команды с привилегиями root-пользователя, перед ней следует поставить слово sudo:

Для завершения сессии выполните команду:

Обзорное описание команд, аргументов и опций для них

Для запуска команды следует ввести команду и нажать клавишу Enter.

Команды выполняются последовательно, для выполнения следующей появится приглашение командной строки (если не использовать специальные скрипты).

Для того чтобы открыть страницу с подробным описанием команды Linux, например ip address, введите команду man с именем команды:

Запуск без аргументов и опций

При запуске команд без аргументов:

  • cd — возврат в домашнюю директорию текущего пользователя;
  • ls — вывод списка файлов и директорий в текущем каталоге.

Пример:

Выполнив команду ls без параметров, получаем список файлов в каталоге:

Запуск с аргументами (параметрами)

Большинство команд рассчитано на запуск с передачей аргументов (параметров).

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

Запуск с опциями

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

Пример:

Выполнив команду ls с опциями -A, -S, -1, получаем список всех файлов, включая «скрытые», расположенных по одному на каждой строке и отсортированных по размеру:

Запуск с аргументами и опциями (одновременно)

Структура записи команды с опциями и аргументами:

команда -опции аргументы

Пример:

Команда ls -la /home выведет подробный (-l) листинг директории /home, включая скрытые файлы (-a):

Переменные окружения

Окружение/среда (environment) — это набор пар ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, которые могут использоваться запускаемыми процессами.

Просмотр переменных окружения

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

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

Просмотр значения переменной

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

Чтобы вывести на экран значение какой-нибудь переменной окружения, достаточно набрать echo $ИМЯ_ПЕРЕМЕННОЙ, например, просмотр домашней директории пользователя, хранящийся в переменной окружения $HOME:

Для перехода в домашнюю директорию следует использовать команду:

Установка переменных окружения

Для установки значений переменной окружения введите команду:

VAR — название переменной;

value — значение переменной.

Пример:

Выполнив команду var=value, после вывода на просмотр получаем результат value:

Заключение

Мы познакомились с принципами работы в командной строке и базовыми командами.

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

Зарегистрируйтесь в панели управления

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

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

Как настроить резервное копирование в объектное хранилище с помощью Restic

Как просканировать сетевой периметр сервиса с помощью open source-инструментов

Ls la команда linux что делает

Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями

Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.

Использование команд Linux

Знакомство с ls

А сейчас, мы быстренько пройдемся по команде ls. Скорее всего вы уже хорошо знакомы с этой командой, и знаете, что набрав ls получите список содержимого текущей рабочей директории:

Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с «.». Как видно в следующем примере, ls -a выводит также особые связывающие директории «.» и «..»:

Развернутые списки директорий

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

В следующем примере мы использовали опцию -l чтобы отобразить содержимое моей директории /usr:

Первая колонка показывает информацию о правах доступа для каждого элемента. Чуть позже я объясню, как её интерпретировать. Следующая колонка содержит числа ссылок на каждый элемент файловой системы, позже мы вернемся к этому. Третья и четвертая колонки — это список владельцев и групп, соответственно. Пятая колонка — размер объекта. Шестая — время последнего изменения (mtime) объекта. И наконец, последняя колонка с именами объектов. Если файлы являются символическими ссылками, то вы увидите стрелку -> и путь, куда указывает эта символическая ссылка.

Смотрим на директории

Иногда вы захотите взглянуть на директорию, а не внутрь нее. В этом случае вы можете указать опцию -d, которая скажет ls рассматривать любую директорию, как внутреннюю:

Рекурсивный и инодный списки

Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.

Наконец, опция -i может использоваться для отображения номеров инодов для объектов в списке файловой системы:

Понятие инода

Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки «.» и «..», которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория «..», мы сперва взглянем на номер инода у /usr/local:

$ ls -id /usr/local
5120 /usr/local

У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:

$ ls -id /usr/local/bin/..
5120 /usr/local/bin/..

Как видно, директория /usr/local/bin/.. имеет такой же номер, как у /usr/local! Посмотрим, как можно справиться с этим шокирующим откровением. В прошлом мы полагали, что /usr/local сама является директорией. Теперь же, мы обнаружили, что фактически директория — это инод с номером 5120, и нашли, по меньшей мере, два элемента (называемых «ссылками»), которые указывают на данный инод. И /usr/local, и /usr/local/bin/.. — ссылки на 5120-ый инод. Хотя этот инод и существует только в одном месте на диске, тем не менее на него может быть множество ссылок.

На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:

Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:

/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..
/usr/local/src/..

mkdir

Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:

$ cd /tmp
$ mkdir tic tac toe

По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:

$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful’: No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful

Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:

$ mkdir -p easy/as/pie

В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.

touch

Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:

$ cd /tmp
$ touch copyme

Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.

Теперь, когда файл существует, давайте добавим немного данных в него. Можно сделать это с помощью команды echo, которая принимает аргументы и печатает их на стандартный вывод. Сперва, команда echo сама по себе:

$ echo «firstfile»
firstfile

А сейчас, та же команда echo, но с перенаправлением вывода:

$ echo «firstfile» > copyme

Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:

cat и cp

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

$ cat copyme
firstfile

Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:

$ cp copyme copiedme

Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:

А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.

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

Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться

$ mv /var/tmp/myfile.txt /home/drobbins

После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.

Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:

$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Что делает "ls -la"?

Когда я вошел в -al Атрибут с помощью команды ls, я получил следующее:

Что означает каждый столбец и что означает total 76 обозначать здесь?

2 ответа

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

Результатом является длинный список ( ls -l часть) с (слева направо):

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

в то время как ls -a означает, что скрытые файлы также перечислены.

смотрите также man ls (как всегда man является первым источником информации), и эта ссылка.

Еще немного объяснения того, что вы видите

Вывод начинается с количества дисковых блоков, используемых каталогом (в вашем случае 76). Из документации GNU:

Для каждого каталога, который указан в списке, предварите файлы строкой «Всего блоков», где «блоки» — это общее дисковое пространство для всех файлов в этом каталоге. Размер блока в настоящее время по умолчанию составляет 1024 байта, но это может быть переопределено.

Команда ls: примеры использования и опции

terminalКоманда ls – вероятно наиболее используемая команда в любой UNIX-системе. Её предназначение – вывод информации о файлах и каталогах. Дополнительные опции команды позволяют получить более подробную информацию и сортировать её определённым образом.

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

-R Рекурсивно обойти встретившиеся подкаталоги.
-a Вывести список всех файлов (без этой опции не выводятся скрытые файлы, имена которых начинаются с точки).
-d Если аргумент является каталогом, то выводить только его имя, а не содержимое. Часто используется с флагом -l для получения сведений о состоянии каталога.
-C Вывод в несколько колонок с сортировкой по колонкам.
-x Вывод в несколько колонок с сортировкой по строкам.
-m Вывод в свободном формате, имена файлов разделяются запятыми.
-l Вывод в длинном формате: перед именами файлов выдается режим доступа, количество ссылок на файл, имена владельца и группы, размер в байтах и время последней модификации (см. ниже). Если файл является специальным, то в поле размера выводится старший и младший номера устройства.
-n То же, что и -l, но идентификаторы владельца и группы выводятся в виде чисел, а не в виде имен.
-o То же, что и -l, но идентификатор группы не выводится.
-g То же, что и -l, но идентификатор владельца не выводится.
-r Изменить порядок сортировки на обратный алфавитный или, при наличии флага -t, сначала выводить более старые файлы.
-t Имена файлов сортируются не по алфавиту, а по времени (сначала идут самые свежие файлы). По умолчанию используется время последнего изменения. См. также флаги -u и -c.
-u Вместо времени последнего изменения использовать время последнего доступа для сортировки (с флагом -t) или для вывода (с флагом -l).
-c Вместо времени последнего изменения использовать время последней модификации описателя файла (т.е. время создания файла, изменения режима доступа к нему и т.п.) для сортировки (с флагом -t) или для вывода (с флагом -l).
-p Если файл является каталогом, то выдавать после его имени символ /.
-F Если файл является каталогом, то выдавать после его имени символ /; если файл является выполняемым, то выдавать после его имени символ *.
-b Выдавать непечатные символы, входящие в имя файла, в восьмеричном виде (ddd).
-q Выдавать непечатные символы, входящие в имя файла, в виде символа ?.
-i Выдавать в первой колонке номера описателей файлов.
-s Выдавать размер файлов в блоках (включая косвенные блоки).
-f Рассматривать каждый аргумент как каталог и выводить его содержимое. Этот флаг отменяет флаги -l, -t, -s, -r и включает флаг -a. Сортировка имен файлов не производится; имена выдаются в таком порядке, в каком они перечислены в каталоге.

Теперь несколько примеров наиболее полезных опций.

Вывести список только каталогов:

# ls -d -1 /home/setevoy/*/
/home/setevoy/Desktop/
/home/setevoy/Downloads/
/home/setevoy/Dropbox/
/home/setevoy/Images/
/home/setevoy/Soft/
/home/setevoy/Temp/
/home/setevoy/VirtualBox VMs/

То же самое, но с использованием “длинного” (полного) вывода о каталогах:

# ls -dl /home/setevoy/*/
drwxr-xr-x 2 setevoy setevoy 4096 May 6 10:22 /home/setevoy/Desktop/
drwxr-xr-x 2 setevoy setevoy 4096 May 5 10:38 /home/setevoy/Downloads/
drwx—— 16 setevoy setevoy 4096 May 6 07:40 /home/setevoy/Dropbox/
drwxr-xr-x 2 setevoy setevoy 4096 May 5 12:00 /home/setevoy/Images/
drwxr-xr-x 2 setevoy setevoy 4096 May 5 18:29 /home/setevoy/Soft/
drwxrwxr-x 2 setevoy setevoy 4096 May 5 20:15 /home/setevoy/Temp/
drwxrwxr-x 4 setevoy setevoy 4096 May 5 19:09 /home/setevoy/VirtualBox VMs/

Ключ -l весьма полезен, так как позволяет проверять владельца и права на файлы/каталоги:

# ls -l
total 32
drwxr-xr-x 2 root root 4096 Aug 23 2012 bin
drwxr-xr-x 2 root root 4096 Aug 23 2012 etc
drwxr-xr-x 2 root root 4096 Aug 23 2012 games
drwxr-xr-x 2 root root 4096 Aug 23 2012 include
drwxr-xr-x 4 root root 4096 May 5 11:13 lib
lrwxrwxrwx 1 root root 9 May 5 10:22 man -> share/man
drwxr-xr-x 2 root root 4096 Aug 23 2012 sbin
drwxr-xr-x 7 root root 4096 Aug 23 2012 share
drwxr-xr-x 2 root root 4096 Aug 23 2012 src

Для вывода информации о скрытых файлах (начинаются с точки) используйте ключ -a :

# ls -la
ls: cannot access .gvfs: Permission denied
total 524
drwxr-xr-x 37 setevoy setevoy 4096 May 6 21:20 .
drwxr-xr-x 3 root root 4096 May 5 10:25 ..
drwx—— 3 setevoy setevoy 4096 May 5 10:39 .adobe
-rw——- 1 root root 517 May 5 11:53 .bash_history
-rw-r–r– 1 setevoy setevoy 220 May 5 10:25 .bash_logout
-rw-r–r– 1 setevoy setevoy 133 May 5 11:52 .bashrc
drwx—— 17 setevoy setevoy 4096 May 5 18:29 .cache
drwxrwxr-x 3 setevoy setevoy 4096 May 5 10:54 .compiz-1
drwx—— 20 setevoy setevoy 4096 May 6 10:38 .config
drwx—— 3 setevoy setevoy 4096 May 5 10:38 .dbus

Про ошибку с .gvfs можно почитать в статье ls: cannot access .gvfs: Permission denied.

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

d – файл является каталогом;
b – файл является специальным блочным файлом;
c – файл является специальным символьным файлом;
p – файл является именованным каналом;
– обычный файл.

Далее следуют три группы символов, обозначающих права доступа – r (read), w (write), x (execute) – чтение, запись в файл/каталог и выполнение соответственно. Тема прав доступа в UNIX весьма обширна, поэтому сейчас не будем вдаваться в подробности.

Открыть для редактирования последний редактировавшийся файл:

# nano file1.txt
# nano file2.txt
# nano `ls -t | head -1`

Обычный вывод ls без ключей выводит все файлы/каталоги одной строкой. Что бы вывести их в колонку – выполняем:

# ls -1
Desktop
Downloads
Dropbox
file1.txt
file2.txt
Images
Soft
Temp
VirtualBox VMs

Ключ -h используется для вывода информации о размере в “человекоудобном” виде, т.е. в Kb, Mb, Gb :

# ls -lh
total 36K
drwxr-xr-x 2 setevoy setevoy 4.0K May 6 10:22 Desktop
drwxr-xr-x 2 setevoy setevoy 4.0K May 5 10:38 Downloads
drwx—— 16 setevoy setevoy 4.0K May 6 07:40 Dropbox
-rw-r–r– 1 root root 2 May 6 21:06 file1.txt
-rw-r–r– 1 root root 2 May 6 21:06 file2.txt
drwxr-xr-x 2 setevoy setevoy 4.0K May 5 12:00 Images
drwxr-xr-x 2 setevoy setevoy 4.0K May 5 18:29 Soft
drwxrwxr-x 2 setevoy setevoy 4.0K May 5 20:15 Temp
drwxrwxr-x 4 setevoy setevoy 4.0K May 5 19:09 VirtualBox VMs

Отсортировать файлы/каталоги по их размеру, начиная с самого большого:

# ls -lS /var/log/
total 4152
-rw-r–r– 1 root root 1823273 May 6 19:46 dpkg.log
-rw-r—– 1 syslog adm 825505 May 6 08:05 syslog.1
-rw-r—– 1 syslog adm 589203 May 6 19:25 kern.log
-rw-r–r– 1 root root 47105 Aug 23 2012 bootstrap.log
-rw-r–r– 1 root root 37440 May 6 19:46 aptitude
-rw-r–r– 1 root root 20584 May 6 07:39 pm-powersave.log
-rw-r—– 1 root adm 14329 May 5 11:38 dmesg.1.gz
-rw-r–r– 1 root root 6167 May 6 07:39 kdm.log
drwxr-xr-x 2 root root 4096 May 5 10:25 apt
-rw-r—– 1 root adm 31 Aug 23 2012 boot
-rw-r—– 1 syslog adm 0 May 5 10:38 ufw.log

Осотрировать файлы/каталоги по дате последней модификации, новые – в конце списка:

# ls -rtl /var/log/
total 4152
drwx—— 2 speech-dispatcher root 4096 Feb 6 2012 speech-dispatcher
drwxr-xr-x 2 root root 4096 Mar 12 2012 unattended-upgrades

drwxr-xr-x 2 root root 4096 Aug 10 2012 dist-upgrade

-rw-r–r– 1 root root 47105 Aug 23 2012 bootstrap.log

-rw-r–r– 1 root root 2990 May 5 19:20 fontconfig.log

-rw-r—– 1 syslog adm 60874 May 6 21:14 syslog

Что бы вывести новые в начале списка – используйте комбинацию опций без ключа -r :

То же самое, но сортировать по дате последнего доступа к файлу, а не дате его модификации, используйте ключ -u :

Вывести список файлов/каталогов, разделённый на 5 колонок, разделённых на всю ширину окна:

# ls /usr/local | pr -T5 -W$COLUMNS
bin games lib sbin src
etc include man share

Добавлять символ обозначения принадлежности файла/каталога – каталог ( / ), исполняемый файл ( * ), FIFO ( | ), символьная ссылка ( @ ), сокеты семейства AF_UNIX ( = ):

# ls -F -1
Desktop/
Downloads/
Dropbox/
file1
file1.txt
file2
file2.txt
file3
[email protected]
Images/
Soft/
Temp/
VirtualBox VMs/

Впрочем, ту же информацию выводит и ls -l – первый символ d для каталогов (directory) и -> ; для ссылок:

# ls -l
total 36
drwxr-xr-x 2 setevoy setevoy 4096 May 6 10:22 Desktop

lrwxrwxrwx 1 root root 9 May 6 21:20 file4.txt -> file1.txt

Выводить список через запятую:

# ls -m
Desktop, Downloads, Dropbox, file1, file1.txt, file2, file2.txt, file3, file4.txt, Images, Soft, Temp, VirtualBox VMs

Вывести список рекурсивно, включая подкаталоги и их содержимое:

# ls -R
.:
Desktop
Downloads
Dropbox
Images
Soft
Temp
VirtualBox VMs

./Desktop:
PDF-Viewer.desktop
PDF-Viewer.lnk

Остортировать файлы/каталоги в обратном алфавитном порядке:

# ls -r
VirtualBox VMs Temp Soft Images file4.txt file3 file2.txt file2 file1.txt file1 Dropbox Downloads Desktop

Вывести информацию о номерах inode файлов и каталогов:

# ls -i -1
2368762 Desktop
1969746 Downloads
1987155 Dropbox
1987223 file1
1969890 file1.txt
1987865 file2
1969805 file2.txt
1987866 file3
1987863 file4.txt
1969751 Images
2141585 Soft
2368300 Temp
2141811 VirtualBox VMs

Вывести информацию о пользователе/группе в виде UID и GID , вместо символьных имён:

# ls -n
total 36
drwxr-xr-x 2 1000 1000 4096 May 6 10:22 Desktop
drwxr-xr-x 2 1000 1000 4096 May 5 10:38 Downloads
drwx—— 16 1000 1000 4096 May 6 07:40 Dropbox
-rw-r–r– 1 0 0 0 May 6 21:10 file1
-rw-r–r– 1 0 0 2 May 6 21:06 file1.txt
-rw-r–r– 1 0 0 0 May 6 21:10 file2
-rw-r–r– 1 0 0 2 May 6 21:06 file2.txt
-rw-r–r– 1 0 0 0 May 6 21:10 file3
lrwxrwxrwx 1 0 0 9 May 6 21:20 file4.txt -> file1.txt
drwxr-xr-x 2 1000 1000 4096 May 5 12:00 Images
drwxr-xr-x 2 1000 1000 4096 May 5 18:29 Soft
drwxrwxr-x 2 1000 1000 4096 May 5 20:15 Temp
drwxrwxr-x 4 1000 1000 4096 May 5 19:09 VirtualBox VMs

l, ls & la — what are the differences, and are there more of these commands?

So, through typing several commands I’ve found that there’s not only ls , but l and la too. There doesn’t appear to be any man entries on Ubuntu 12.14. They all appear to do similar things with minor differences:

Just as a bit of trivia, are there more of these and what do they do? Is here any place to find this out? Unfortunately, google searching these commands gets ignored because they’re so short.

3 Answers 3

Aliases

ls is a command, l and la are most likely aliases which make use of the command ls . If you run the command alias you can find all the aliases on your system.

This will return all the aliases that match the pattern l=. or la=. .

Debugging it further

You can also use the command type to see how a particular command is getting executed. Is it a command, an alias, or a function.

Example

On my system I have the command ls aliased so that it calls ls but also includes a bunch of extra switches, like so:

In the above output you can see that ls is aliases, but then also on my system’s $PATH in the directories /usr/bin and /bin .

Ls la команда linux что делает

When I entered the -al attribute with the ls command, I got the following:

What does each column mean, and what does the total 76 signify here?

muru's user avatar

lazarus's user avatar

2 Answers 2

The ls -al command is a combination of ls -l (use a long listing format) and ls -a (do not ignore entries starting with .)

The result is a long list (the ls -l part) with (from left to right):

  • filetype
  • file permissions
  • number of links
  • owner name
  • owner group
  • file size
  • time of last modification
  • the name of the file or directory

while the ls -a means that hidden files are listed as well.

see also man ls (as always man is the first source of information), and this link.

A little more explanation on what you see

The output starts with the number of disc blocks, used by the directory (in your case 76). From the GNU docs:

For each directory that is listed, preface the files with a line ‘total blocks’, where blocks is the total disk allocation for all files in that directory. The block size currently defaults to 1024 bytes, but this can be overridden.

A beginner’s guide to Linux command-line

Joseph Gefroh

Systems administration and ops are one of my biggest areas of technical weakness.

I used GUI applications almost exclusively during the entirety of my education and first years working professionally. It didn’t help that the IDEs I used for Java, Eclipse and Netbeans, were absolutely amazing tools: I felt I had no reason to switch to what I perceived was a more time consuming way of doing things. In fact, the only command-line tool I used extensively was git .

When I finally started using Ruby on Rails and other scripting languages (and eventually got a Mac), I was at first flabbergasted by the lack of robust GUI tooling available. It was like I had reverted back to using notepad to code. It forced me to start using the terminal and command-line more often.

After a while I realized the power of the command-line. These commands were the APIs to the programs I used and I could use them however I wanted! Better yet, by changing commands together, you could do far more things than you could using a UI.

The journey has been tough. It’s hard to learn all this stuff without a guide. There’s just so much out there, and day-to-day you’ll only end up using a handful of commands.

I’ve written this document to hopefully help others focus their initial search on some common things they’ll end up using on a regular basis. A lot of it has been simplified and it glosses over some important concepts that will come in handy later. However, this should be useful for beginners.

First, some important concepts…

You’ll see these terms referenced throughout the post.

Current Directory

This is the current directory / folder, and is the default context your command will be run in. You can always find your Current Directory by typing pwd .

Arguments

Many of these commands take multiple arguments. In a lot of cases, the required argument is the file the command is being run on. When you see a command like more file.txt , the file.txt is the argument and the file the command is being run on. Every program has different arguments — check the documentation!

Flags

Flags are a way to set options and pass in arguments to the commands you run. Commands you run will change their behavior based on what flags are set. You should read the documentation of each command to know what flags are available.

For example, running ls with the -l flag ( ls -l ) will include more information in the result and change the format of what is returned.

Relative Path

Relative Paths are the names / paths to folders and files relative to your current directory. A relative path of myfolder/myimage.png , will mean the myfolder/myimage.png in the current directory, not anywhere else. If I was in another folder, that relative path would not point to the same myfolder/myimage.png .

Absolute Path

Absolute Paths are the names / paths to folders and files that your current directory. An absolute path is valid regardless of your current directory. /myfolder/myimage.png , will mean the same /myfolder/myimage.png regardless of what your current directory is. Note the / in front of the name.

Navigation 101

The first thing to learn is how to move around the directory structure and various folders.

Show your current directory with: pwd

pwd will Print your current Working Directory. It’s great to figure out where you are.

List files in a directory with: ls

ls lists files and folders in the current directory.

There’s a few flags you can use to make the listing easier to read or more informative:

  • ls -l list all the files in a single column, along with their permissions, sizes and timestamps.
  • ls -a lists all files, including hidden files.

You can combine flags:

  • ls -la for example, will list all files in a single column, including hidden files.

You can also pass in the name of a folder to view the contents of that folder:

  • ls myfolder will list the contents of the folder myfolder in your current directory.

Change directory with: cd

cd changes the directory. By default, the path is relative to the current directory. That means if I type cd myfolder , it will only work if the current directory I am in has a folder called myfolder . You can specify an absolute path by entering / in front of the folder path. cd /myfolder will work only if the root level / has a folder called myfolder .

Manipulation 101

Now that you know how to move around the directory structure, you’ll probably want to start making changes to it.

Create a directory with: mkdir

mkdir will make a directory with the name you pass it. To create a new directory called myfolder in the current directory, you would type in mkdir myfolder .

Create a file with: touch

touch will create an empty file with the name you provide.

Move a file with:mv

mv will move a file from the source to the destination. You can actually use mv to rename a file.

mv file_to_move folder_name_here will move the file into the folder. However, if the second argument turns out to be a file, it will overwrite the file.

Copy a file with: cp

cp will copy a file. It takes two arguments — the name of the file you want to copy, and the new path to the copy (including the file name).

You can use the -r flag to copy a directory.

Delete a file with: rm

rm will remove a file from your system. If you want to delete a directory, you would use the -r flag (recursive).

Note that this is a rather dangerous command, so be careful with it — there are many horror stories of accidentally deleting important things with a single command (often in conjunction with -r and * wildcards).

Editing 101

Now that you know how to move around, you’ll probably want to learn how to read, edit, and change files.

Read file contents with: more and tail

more and tail are two commands you can use to read file contents.

more filename.txt will open a reader where you can navigate through the file. When in more , you’ll be able to use some additional commands:

  • You can use space to scroll down a full screen.
  • The up and down arrow keys will scroll up and down a line.
  • Pressing g will enter the goto mode. You can then enter a line number to go directly to that line.
  • Pressing / will enter search mode — type in text to find and it’ll scroll to wherever that text is found. Pressing n will go to the next instance of that found text.

tail filename.txt will print the last 10 lines of a text file. You can use the -f flag (eg. tail -f filename.txt ) to follow the file in realtime. Whenever the file changes, it will print the last lines. This is useful if you are watching a log file for an application, for example.

Search through contents for a specific word with: grep

grep lets you search through text, returning the full line for any matches.

grep "text to find" filename.txt will search for text to find in filename.txt .

Change the contents of a file with: vi or vim

vi / vim is a ridiculously complicated text-editor that’s often your only option if you are manipulating files on a server. I’ve only learned enough of the basic commands to make small changes, but that should serve you well enough for now.

vi filename will open the file you want to edit.

Note that the editor opens in a mode ( normal mode ) that doesn’t let you type anything. You’ll need to press the i key to go into insert mode .

After you are done making your changes changes, you’ll want to go back into the normal mode by pressing escape .

  • To make changes to a file, enter insert mode with i and type away.
  • To save your changes, you enter normal mode with escape and press :w to write your changes.
  • To quit, you enter normal mode with escape and type in :q to quit. If you made changes, you’ll need to type :q! to force it to quit.

That’s about all I know about this editor.

Practicals 101

Now that you know the basics, you’ll want to have this additional information so you can start actually making use of all of this in a real environment.

Get help on a command or find out more about it with: man

man is a command that displays a help manual for the command you pass in as an argument. Not all commands have manuals, and sometimes the manuals are confusing.

For example, man ls will show the manual for the ls command.

If there isn’t a man ual for it, you can also try passing in a -help or —help flag. Some programs have a built-in help that will tell you how to use it.

Referencing the Current Directory with: .

. is a way to explicitly reference the current directory. You’ll often see commands like mv ./file.txt ./potato.txt . The first . in ./ is the current directory.

Specify a wildcard with: *

* often represents a wildcard in commands. This means that the command will be run on any file that matches. You can use it to perform actions in bulk, such as running a mv of all files of a specific type:

For example, mv *.png images will move all .png files into the images directory.

It’s very easy to accidentally perform commands on files you don’t want using wildcards, so be careful!

Redirect output to another program with: |

| , known as pipes, are a way to unlock the power of Linux by chaining commands together. It routes the output of the command on the left of the | and passes it to the command on the right of the | .

For example, suppose I want to find all of the running instances of a program called zsh . I could use ps to find the list of all of my processes. However, this list could be massive, and scrolling through it all would be a pain. I could combine it with grep to search through the results of ps and display only what I am looking for: ps | grep zsh .

Save the results of a command to a file with: > and >>

> and >> will let you run a command and save the results to a file. > will overwrite the file with the results of the command, while >> will append or add the results to the end of the file.

l, ls & la — what are the differences, and are there more of these commands?

So, through typing several commands I’ve found that there’s not only ls , but l and la too. There doesn’t appear to be any man entries on Ubuntu 12.14. They all appear to do similar things with minor differences:

Just as a bit of trivia, are there more of these and what do they do? Is here any place to find this out? Unfortunately, google searching these commands gets ignored because they’re so short.

3 Answers 3

Aliases

ls is a command, l and la are most likely aliases which make use of the command ls . If you run the command alias you can find all the aliases on your system.

This will return all the aliases that match the pattern l=. or la=. .

Debugging it further

You can also use the command type to see how a particular command is getting executed. Is it a command, an alias, or a function.

Example

On my system I have the command ls aliased so that it calls ls but also includes a bunch of extra switches, like so:

In the above output you can see that ls is aliases, but then also on my system’s $PATH in the directories /usr/bin and /bin .

Обзор содержимого директорий и файлов

cd и pwd

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

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

Выводит список файлов и директорий в рабочей директории без отображения скрытых объектов (у которых имя начинается с символа «.» (точка)).

ls /bin

Перечисление содержимого в директории /bin. Вместо /bin можно указать любую другую директорию через абсолютный или относительный путь к ней.

Перечисление содержимого рабочей директории с выводом подробной информации о перечисляемых объектах.

ls -l /var /etc

Перечисление содержимого директорий /var и /etc с выводом подробной информации о перечисляемых объектах.

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

Таким образом можно одной командой получить информацию сразу по всем интересуемым директориям ��

ls -la ..

Перечисление всех объектов (включая скрытых) в родительской директории с выводом подробной информаций о каждом из них.

Формат команд

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

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

На примере команды ls:

  • ls — имя команды
  • -l и -a — параметры (допускается объединение в -la при использовании обоих). Параметр -l указывает о необходимости вывода подробной информации, а -a о включении скрытых объектов. У параметра может быть указан его аргумент (в данном примере отсутствует), в таком случае при объединении аргумент применяется к последнему параметру. Если параметр не требует указания аргумента, то такой параметр называется ключом.
  • /var и /etc — аргументы, в данном случае список директорий, содержание информации которых нас интересует
Детальный вывод

При использовании параметра -l команды ls выводится подробная информация о содержимых объектах директории. Ознакомимся с её форматом более детально.

детальный вывод ls

Имя файла Имя файла или директории. Время изменения Последнее время изменения файла. Если изменение произошло спустя более шести месяцев, то выводятся дата и год, иначе дата и время дня. То есть, вначале всегда выводится дата, которая состоит из месяца и числа, а после нее год или время в часах и минутах. Когда мы видим время, это значит файл был изменен за прошедшие шесть месяцев, т.е. в текущем или прошлом году �� Размер Размер файла в байтах. Для директории указывается размер метаданных (информации об объектах, которые содержатся внутри, включая их имена), а не суммарный размер содержимого. Изначально размер директории равен размеру кластера (обычно 4 Кб / 4096 байт), но может расти при необходимости. Группа Имя группы, для которой указаны права доступа. Владелец Имя учетной записи пользователя, который является владельцем файла. Права доступа Представление прав доступа к объекту. Первый символ указывает тип объекта. Символ «d» обозначает директорию, «-» — файл. Но есть и иные типы объектов в Linux. Далее идет три набора из трех символов, которые представляют права доступа. Первый символ указывает право чтения, второй записи, третий выполнения или входа. Первый набор из трех символов указывает права доступа владельца файла, второй — права группы файла, а последний указывает права доступа файла для всех остальных пользователей. Подробнее о правах доступа будет опубликован отдельный материал в будущем ��

Программа less

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

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

Некоторые способы представления информации достаточно сложные (например, сжатые изображения, аудио- и видеозаписи). Но есть и достаточно простые. Один из самых первых появившихся и самых простых — текст в кодировке ASCII (American Standard Code for Information — американский стандартный код для обмена информации). Эта простая схема кодирования впервые была использована на устройствах телетайпа для указания зависимости печатных символов и номеров.

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

Для запуска программы less необходимо ввести less имя_файла, где имя файла — абсолютный или относительный путь к файлу.

Введем less /etc/sestatus.conf и нажмем клавишу «Enter». Выведено содержание файла /etc/sestatus.conf.

Отображение /etc/sestatus.conf в less

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

Для выхода из программы less нажмем клавишу q на клавиатуре.

Управление программой less

После запуска less отображает на экране по одной странице текста за раз. Листать страницы можно клавишами Page Up и Page Down. Помимо них, в less есть и иные команды. С командой «q» мы уже знакомы — выход из программы. Вот несколько иных полезных команд программы less.

Page Up или b Прокрутка на предыдущую страницу текста. Page Down или space Прокрутка на следующую страницу текст. G Прокрутка в конец файла. 1G Прокрутка в начало файла /строка Поиск следующего вхождения указанной строки в файле. n Повторный поиск следующего вхождения. h Отображение справочной информации по всем командам less. q Выход из программы.

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

Программа file

Если просто бродить по файлам Linux, то перед тем как их попытаться посмотреть их содержание, было бы полезно понять данные какого типа в них записаны. С этим может помочь инструмент file. Программа file изучает содержимое файла и сообщает, что это за файл.

Ls la команда linux что делает

Если на компьютере установлен Linux, то после включения и самотестирования ПК не происходит автоматической загрузки операционной системы (как это происходит с Dos и Windows), а появляется приглашение загрузчика LILO (LInux LOader).

В ответ на это приглашение надо набрать, какую операционную систему Вы хотите загрузить, и нажать < Enter >. Название — это короткое слово, обычно linux для Linux, и dos для Dos/Windows. Список установленных ОС можно получить, нажав < Tab >.

Обычно Lilo настроен нак, чтобы если пользователь ничего не набирает, через некоторое время (в RedHat — 5 секунд) загрузить ОС «по умолчанию» (обычно таковой является Linux).

Даже если Linux — единственная ОС, установленная на компьютере, все равно при загрузке появляется приглашение Lilo, так как это позволяет передать ядру некоторые параметры (например, «не используй второй ide-контроллер»).

Если приглашение появилось не полностью, например, только » LI » или » LIL «, значит с компьютером что-то не в порядке (обычно это следствие неправильной установки или переконфигурации системы).

После ввода в приглашении Lilo слова » linux » будет произведена загрузка системы. При этом на экран будет выводиться весьма подробная информация о том, что происходит — какая обнаружена аппаратура, какие запускаются системные сервисы и т.д.

В конце концов появится приглашение » login: » (на картинке «bobby» — это название компьютера). В ответ на него надо ввести свое login-имя (например, » ivanov «), и нажать < Enter >. Затем появится приглашение ввести пароль (» Password: «). При вводе пароля на экране ничего не появляется (даже «*»). Если пароль введен правильно, то Вы попадете в командную строку Unix (см. картинку ниже), иначе — появится сообщение » Login incorrect » и затем опять приглашение «login:».

% » — это приглашение shell (интерпретатора командной строки Unix). Здесь » bobby » — имя компьютера, с которым Вы работаете, а за ним через двоеточие идет имя текущей директории, в данном случае — «

«, что обозначает домашнюю директорию.

Вход в систему

В отличие от однопользовательских систем, таких, как Dos/Windows, пользователь не может писать свои файлы в произвольное место на диске. Для них каждому пользователю дается так называемая домашняя директория (home directory). По умолчанию только сам пользователь может писать в нее, а можно сделать и так, чтобы никто другой не смог даже читать из нее файлы. Именно в эту директорию пользователь и попадает сразу после входа в систему.

Домашняя директория

Как поменять пароль

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

  • Длина — от 6 до 8 символов.
  • Он должен содержать или и заглавные и маленькие буквы, или и буквы и небуквенные символы.
  • Он не должен быть основан на словарном слове.

Примеры плохих паролей:

Как поменять свой пароль
ПарольНедостатки
ABCDEFТолько заглавные буквы
123456Только цифры
CretinСловарное слово
abc123Слишком простой

Виртуальные консоли и запуск X

В тот момент, когда на экране появляется приглашение » login: «, система уже полностью функциональна, даже без графической оболочки.

Даже в этот момент уже доступны многопользовательские возможности Unix, в том числе и сетевые (например, вход по telnet), но об этом позже. А в текстовом режиме Linux позволяет использовать так называемые виртуальные консоли , переключение между которыми производится комбинациями клавиш <Alt>+<F1> , <Alt>+<F2> и так до <Alt>+<F6> . Каждая виртуальная консоль — как отдельный терминал, с тем лишь отличием, что нельзя взаимодействовать с ними всеми одновременно, а только по очереди.

Для запуска же графической системы X-Window (сокращенно просто «X») надо набрать команду startx . Для выхода из X следует нажать левую кнопку мыши на любом свободном месте экрана, в появившемся меню выбрать пункт «Exit Fvwm» и затем «Yes, Really Quit».

Виртуальные консоли и запуск X

Файловая система ОС Unix

Файловая система в Unix организована в виде единого дерева директорий. Никаких букв дисков (a:, c:) здесь нет, а если используется несколько физических дисков (например, первый жесткий диск, второй, CD-ROM и т.д.) то они представляются отдельными ветвями на общем дереве.

Директории разделяются косой чертой «/» (а не обратной, как в Dos), например, «/home/inpunix/ivanov/» — поддиректория «ivanov» в директории «inpunix» директории «home». Самая верхняя директория («корневая») называется «/».


    Имя файла (и директории) может содержать практически любые символы, включая пробелы (и даже управляющие символы, типа перевода строки, если удастся их ввести). Примеры:

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

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

Файлы, имена которых начинаются c точки (включая . и .. ), считаются «неинтересными», и в листинге директории обычно не показываются.

Файловая система ОС Unix

Для просмотра листинга директории используется команда ls , и с ключиком » -l » она выдает «детальный» листинг, со всеми атрибутами файла:

  • Тип файла («-» — обычный файл, » d » — директория, » l » — символьный линк) и права доступа, по три символа (r (Read), w (Write) и x (eXecute)) для пользователя, группы и всех остальных.
  • Число hard-линков к файлу (это сейчас обсуждать не будем).
  • Владелец файла (в данном случае — ivanov ) и группа-владелец ( lab5 ); группа — это «дополнительный» владелец, которому устанавливаются отдельные права доступа.
  • Размер в байтах.
  • Дата и время модификации.
  • И, наконец, имя файла — оно располагается в конце для того, чтобы листинг нескольких файлов выглядел как таблица (ведь имена могут иметь разную длину).

Права доступа

Естественно, наличие атрибута » x » не дает права, к примеру, читать файл из такой директории, если у него нет атрибута » r «. Что любопытно, возможен режим доступа » rwx—rwx «, когда «все остальные» могут делать с файлом что угодно, а члены группы — нет (хотя, казалось бы, они тоже «остальные»), и даже » —rwxrwx «, когда с файлом может что угодно делать любой, кроме владельца. Это происходит потому, что Unix сначала проверяет, к какой категории относится персона, запрашивающая доступ к файлу, а потом смотрит соответствующие права, не обращая внимания на остальные.

Атрибуты файла

Для вызова команды достаточно просто набрать ее имя и нажать <Enter> .

Большинство команд «понимает» несколько (а некоторые — и несколько десятков) ключей (или опций ), модифицирующих их поведение. Опции предваряются символом » — «. Например, команда ls выдает листинг текущей директории, а ls -l — детальный листинг. Обычно символ ключа осмыслен — это первая буква слова, обозначающего действие ключа; так » l » — сокращение от «long».

Если надо указать несколько ключей, то их можно писать как поотдельности, так и вместе. Так, команды » ls -l -a » и » ls -la » эквивалентны.

Многие команды в Linux понимают так называемые длинные ключи (long options). Длинный ключ — это не одна буква, а слово, предваряемое двойным дефисом. Например, » ls —all » — то же самое, что и » ls -a «. Длинные ключи можно указывать только раздельно.

Вызов команд

Где взять описание команд?

Чтобы узнать, какие ключи понимает та или иная команда, самое лучшее — посмотреть страницу руководства по ней (man-страницу, man-page). Это делается при помощи команды man. Например, » man ls » покажет страницу про команду ls. Большинство man-страниц состоят из следующих частей: NAME Имя команды SYNOPSIS Краткое описание — как выглядит вызов команды. DESCRIPTION Описание — зачем команда нужна и что она делает. OPTIONS Какие ключи можно указывать и их описание. SEE ALSO «Смотри также» — ссылки на другие man-страницы. Ссылка вида » ln(1) » означает «страница про ln из раздела 1». Посмотреть страницу из указанного раздела (если в разных разделах есть страницы с одинаковыми именами) можно командой

Выход из man — буква » q «.

Многие команды понимают также специальные ключи -h и —help и выдают краткую (впрочем, не всегда 🙂 справку по своему использованию. Пример:

В очень редких случаях у команды отсутствует man-страница:

В таком случае имеет смысл попробовать альтернативную систему документации — info , просто набрав, к примеру, » info diff «. Info — это гипертекстовая система, похожая на help-систему в Windows или Borland C (правда, чисто текстовая и потому не такая «красивая»). Даже если info-документации нет, а есть только man-страница, info покажет ее. Документацию по самой info можно посмотреть, набрав » info info «.

Где взять описание команд?

Базовые команды для работы с файлами

Сводка команд
Команда UnixКоманда DosНазначение
Самые необходимые
ls dir Просмотр листинга директории, показ атрибутов файла(ов)
cd cd Переход в другую директорию
pwd cd Показать, какая директория сейчас текущая
cp copyКопирование файлов
mv ren Переименование/перемещение файлов
rm del Удаление файлов
Иные
mkdirmd Создание директории
rmdirrd Удаление директории
chmod Изменение прав доступа файла
ln -s Создание символьного линка
cat typeВыдача файла на экран
more moreПостраничный просмотр содержимого файла
less Более удобный просмотр файла
df Показ свободного места на диске
du Показ объема, занимаемого директорией или файлом

  • Просто » ls » показывает список файлов в текущей директории.
  • » ls -l » показывает список «с деталями» («длинный», «long» формат).
  • » ls -a » показывает все файлы, включая «скрытые».
  • Аналогично » ls -la » покажет детальный список всех файлов.
  • Можно указать и имя файла. Например, » ls -l file1.txt «. При этом можно использовать символы шаблонов » ? » и » * «, обозначающие «любой символ» и «любое количество любых символов» соответственно.

Просмотр листинга директории: ls

С данной группой команд все очевидно. Следует лишь заметить, что mv может переименовывать не только файлы, но и директории, а cp и rm также прекрасно справляются с директориями, если им указать ключ » -r » (Recursive).

Замечание1: » cd » без параметров переходит в home-директорию.

Замечание2: для копирования файла с сохранением пометки о времени следует указывать команде » cp » ключ » -p «.

cd, pwd, cp, mv, rm, mkdir, rmdir

Команда вызывается так:

Пример : режим доступа — восьмиричное число, по цифре на режим доступа для владельца, группы и остальных (1 — ‘x’, 2 — ‘w’, 4 — ‘r’, цифры складываются):

Здесь устанавливается разрешение на чтение, запись и выполнение (4+2+1=7) для владельца и группы, и только чтение и исполнение (4+1=5) — для всех остальных.

Можно также указывать режим доступа в символьном виде, например, u=rw,g=r,o= — смысл очевиден. Подробнее про символьное указание режима доступа можно почитать на man-странице команды chmod.

Управление доступом к файлу: chmod

  • В момент обращения к линку ядро как бы «заменяет» линк файлом, на который он указывает. Для большинства программ (кроме «особо любопытных») то, что какой-то файл является не файлом, а символьным линком, совершенно прозрачно, и они не заметят разницы.
  • Символьные линки могут указывать как на файлы, так и на директории, и даже на другие символьные линки (возможна цепочка типа symlink1 -> symlink2 -> symlink3 -> real_file).
  • Символьные линки могут ссылаться на файлы в других директориях, причем ссылки могут быть как абсолютными (symlink -> /etc/termcap), так и относительными (symlink -> ../../etc/termcap), в этом случае файл, на который ссылается линк, ищется не относительно текущей директории, а относительно директории, в которой расположен линк.
  • Права доступа символьного линка не играют роли — вместо них всегда используются права доступа файла, на который линк указывает.
  • Символьный линк может ссылаться как на существующий файл, так и на несуществующий, в этом случае он является «висячим линком». Можно даже сделать символьный линк, ссылающийся «сам на себя» (link -> link).

Для создания символьного линка используется команда » ln » с ключом » -s «, при этом указывается что слинковать и куда — порядок параметров такой же, что в командах cp и mv . При просмотре листинга директории в «детальном» формате кроме имени самого линка показывается также, куда он указывает, а самым первым символом (тип файла) ставится » l «.

Символьные линки: ln -s

cat просто выдает все содержимое файла на экран. Если файл большой, то верхняя его часть просто «уедет» за экран.

more выдает файл «по частям»: сначала первый экран, а потом можно скроллировать вниз по экрану (нажимая <Пробел> ) или по строке ( <Enter> ).

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

Просмотр содержимого файла

Возможности, упрощающие работу с командной строкой

Поскольку работа с Unix — это в значительной степени взаимодействие с командной строкой, для облегчения этого процесса существует несколько весьма приятных удобств. <Tab> может «дописать» имя файла или команды. Если набрать часть имени файла или команды и нажать <Tab> , то остальная часть имени «допишется» автоматически, если начало однозначно определяет имя.

Быстрое копирование текста Отметив фрагмент текста в консоли или в окне X, можно вставить его как набрав с клавиатуры, нажав среднюю кнопку мыши (если мышь двухкнопочная — две одновременно в X, или правую кнопку в консоли).

Текст, «уехавший» за верх экрана, еще не исчезает. Нажав <Shift>+<PgUp> можно проскроллировать консоль или окно xterm в X назад.

Возможности, упрощающие работу с командной строкой

Начальные навыки: выход из системы

Для завершения сессии надо набрать команду logout . После этого на экране должно появиться приглашение для входа в систему.

Хотя компьютеры под Unix (и Linux в том числе) обычно не выключают неделями и месяцами, иногда возникает потребность перезагрузить машину (например, под другую ОС). Самый простой способ сделать это — нажать <Alt>+<Ctrl>+<Del>. При этом Linux корректно завершит работу и перезагрузит ПК.

Если же надо выключить машину, то можно также нажать <Alt>+<Ctrl>+<Del>, дождаться перезагрузки, и после появления приглашения » LILO boot: » можно смело выключать питание (но до того, как начнется загрузка ОС. ).

Выход из системы


    Резюме пока для нас: что-то маловато и примитивно.
  1. Включить компьютер и загрузить Linux.
  2. Войти в систему.
  3. Поменять свой пароль.
  4. Выдать long-листинг корневой директории, отсортированный по времени модификации.
  5. Сделать в своей home-директории поддиректорию tests .
  6. Скопировать файл /etc/fstab в эту новую директорию. Попробовать переместить файл /etc/passwd туда же. Что получится? И почему?
  7. Установить на tests/fstab такие права доступа, чтобы никто кроме владельца не мог его прочитать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *