Как вывести список только директорий используя ls в Bash

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

Команда tree также полезна для рассматриваемого вопроса. По умолчанию она показывает все файлы и каталоги на полную глубину, а некоторые символы ascii показывают дерево каталогов.

tree

Но если мы хотим получить только каталоги, без дерева ascii и с полным путём из текущего каталога, вы можете сделать:

tree -dfi

Используемые аргументы:

-d Список только каталогов. -f Печатает префикс полного пути для каждого файла. -i Делает так, что tree не печатать строки отступа, полезно, когда используется вместе с опцией -f.

И если вам нужен абсолютный путь, вы можете начать с указания полного пути к текущему каталогу:

tree -dfi "$(pwd)"

А чтобы ограничить количество подкаталогов, вы можете установить максимальный уровень подкаталогов с уровнем -L, например:

tree -dfi -L 1 "$(pwd)"

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

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

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

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

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

Создание

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

alias wpdir=’cd /var/www/_html/’

В этом примере, я назвал alias wpdir, который вызовет команду cd /var/www/_html/, то есть перейдет в рабочую директорию с сайтом.

И при вводе wpdir, я теперь всегда буду попадать в папку сайта. В вашем случае — это может быть какой-то другой путь и т.д.

Это очень удобно, потому что не нужно постоянно прописывать пусть до нужной директории. Таким образом можно создать кучу разных alias и вводя 3-4 буквы переходить с одной директории в другую.

Читайте также:  Linux как установить драйвер сетевой карты

Как изменить каталог через Git Bash?

Изменение каталога очень важно, так как при работе с Git Bash вы постоянно перемещаетесь между разными каталогами. Каталог (директория) — это технический термин для обозначения папки. Вы можете изменить каталог двумя способами:

  • Непосредственно через Git Bash с помощью команд
  • Открыв Git Bash в нужной папке

Перейдите в нужный каталог с помощью команд в Git Bash

Вы можете изменить каталог внутри Git Bash с помощью команды cd. Команда cd обычно используется в оболочке вашей системы (cmd) для той же цели. Перейдите в каталог ToolsQA с помощью команды cd

  1. Откройте свой Git Bash.
  2. Введите следующую команду cd <путь к каталогу> и нажмите клавишу enter.

Примечание: ToolsQA — это папка внутри диска E в данном примере.

Команды в Git Bash консоли

clear — Очистить консоль

pwd — Показать текущий каталог ls — Показать файлы в данной папке, кроме скрытых ls -f — Показать файлы в данной папке, включая и скрытые cd c:/ — Перейти в конкретный каталог cd — — Вернуться назад cd .. — Выйти на 1 уровень вверх cd ../.. — Выйти на 2 уровня вверх

Создание каталогов

mkdir — Создать папку cd !$ — Перейти в только что созданную папку mkdir -p {app1,app2} — Создать сразу несколько папок mkdir -p app/{css,js} — Создать сразу несколько вложенных папок

Создание файлов

touch — Создать файл touch app/{css/,js/,} — Создать сразу несколько файлов, никаких лишних пробелов быть не должно

Удаление файлов

touch — позволяет создавать файлы rm test — Удалить пустую папку test rm -r test — Удалить папку test с файлами внутри неё

Перемещение файлов

mv app1/*.* app2 — Переместить все файлы из папки app1 в папку app2

Информация пользователей

В системе присутствует следующая информация о каждом пользователе:

  • Имя пользователя (user name) — в рамках системы имя должно быть уникальным. В именах должны использоваться только английские буквы, числа и символы _ и . (точка).
  • Идентификационный номер пользователя (UID) — является уникальным идентификатором пользователя в системе. Система отслеживает пользователей по UID, а не по именам.
  • Идентификационный номер группы (GID) — обозначает группу, к которой относится пользователь. Каждый пользователь может принадлежать к одной или нескольким группам. Принадлежность пользователя к группе устанавливает системный администратор, чтобы иметь возможность ограничивать доступ пользователей к тем или иным ресурсам системы.
  • Пароль (password) — пароль пользователя в зашифрованном виде.
  • Полное имя (full name) — помимо системного имени может присутствовать полное имя пользователя, например фамилия и имя.
  • Домашний каталог (home directory) — каталог, в который попадает пользователь после входа в систему. Подобный каталог имеется у каждого пользователя, все пользовательские каталоги хранятся в директории /home.
  • Начальная оболочка (login shell) — командная оболочка, которая будет запускаться при входе в систему. Например, /bin/bash.

Вся информация о пользователях хранится в следующих файлах:

passwd (etc/passwd) — содержит информацию о пользователях, имеет следующий формат записи — «user_name:password:UID:GID:full_name:home_directory:login_shell». Элементы записи должны разделяться символом — «:» (двоеточие) и записываются без пробелов. Если пароль хранится в зашифрованном виде в файле /etc/shadow, то вместо пароля указывается — «x».

group (etc/group) — информация о группах, формат — «group_name:password:GID:user1,user2,user3». Элементы записи должны разделяться символом — «:» (двоеточие) записываются без пробелов. Имена пользователей записываются через запятую.

У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.

shadow (etc/shadow) — в этом файле хранятся так называемые «теневые пароли», информация о паролях пользователей в зашифрованном виде. Cделано это для безопасности, так как файл /etc/passwd может читаться кем угодно, а файл /etc/shadow может прочитать только root.

gshadow (etc/gshadow) — то же самое что и shadow, только для паролей групп.

Помимо основных, в системе присутствуют дополнительные файлы.

useradd (etc/default/useradd) — файл задающий свойства «по умолчанию» для всех добавляемых пользователей. Можно просмотреть командой — useradd -D.

useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no

(/etc/) — содержит настройки для создания новых пользователей.

/etc/skel — каталог с дефолтными файлами, которые копируются в домашний каталог каждого пользователя при его создании.

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

Команда bash — наименьшая единица кода, которую bash может выполнить самостоятельно. Эти команды говорят bash, что нам нужно, чтобы он сделал. Обычно bash принимает от пользователя одну команду и возвращается к пользователю после ее выполнения.

Рабочая директория

pwd выводит содержимое рабочей директории и указывает на текущую рабочую директорию, то есть на директорию, которую оболочка просматривает в данный момент. Это также место по умолчанию, где команды оболочки будут искать файлы похожа на папку, но в shell мы будем придерживаться наименования директория (каталог). Файловая иерархия UNIX имеет древовидную структуру. Чтобы добраться до определенной папки или файла, нам нужно пройти по определенным путям внутри этой древовидной структуры. Пути разделяют каждый узел вышеуказанной структуры с помощью символа слэш( / ).

Для навигации и организации файлов используются команды ls и cd.

ls обозначает список и показывает содержимое директории. ls обычно начинает с просмотра нашего домашнего каталога. Это означает, что если мы вызовем команду ls самостоятельно, то он всегда выведет содержимое текущего каталога, которым в моем случае является /Users/parul.

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

Параметры и опции включают некоторые специальные функции при использовании команды ls.

  • ls <папка> : для просмотра содержимого определенной папки.
  • ls -a: Для перечисления всех скрытых файлов в папке
  • ls -l: Выводитболее длинный и подробный список файлов. ls -l также может быть использован с именем каталога для перечисления файлов этого конкретного каталога.
  • ls ~: tilde(~) — сокращение, обозначающее домашний каталог. Таким образом, независимо от того, в какой директории мы находимся, ls ~ всегда будет показывать содержимое домашнего каталога.

Немного о масках файлов

Оболочка также позволяет нам сопоставлять имена файлов с шаблонами, обозначенными звездочкой(*). Она служит подстановочным знаком для замены любого другого символа внутри заданного шаблона. Например, если мы введем *.txt, то это приведет к перечислению всех файлов с расширением .txt. Давайте попробуем перечислить все файлы с расширением .py в нашей папке Demo:

cd, дословно, означает Change Directory (Изменить директорию) и изменяет активную директорию на указанный путь. После того, как мы используем cd в нужную директорию, можно воспользоваться командой ls, чтобы увидеть содержимое ее содержимое. Давайте посмотрим, как можно использовать эту команду:

  • cd … : Чтобы вернуться в родительский каталог.
  • cd : Для возврата в домашний каталог

Организация файлов

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

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

mkdir

mkdir означает Make directory и используется для создания новой директории или папки.

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

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

Создадим в папке Demo новую директорию PythonFiles и переместим в нее все .py-файлы из папки Demo, используя две вышеприведенные команды.

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

touch

Команда touch используется для создания новых пустых файлов. Она также используется для изменения временных меток на существующих файлах и каталогах. Вот как мы можем создать файл под названием в папке Demo.

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

Команда rm означает «Удалить» и удаляет файлы или каталоги. По умолчанию она не удаляет каталоги, но если используется как rm -r * внутри каталога, то удаляется каждый каталог и файл внутри этого удалим ранее созданный файл

Читайте также:  Как включить адаптер беспроводной сети на ноутбуке?

rmdir

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

rmdir означает «удалить каталог» и используется для удаления пустых каталогов из файловой системы. Давайте удалим папку PythonFiles, которую мы создали некоторое время назад.

Обратите внимание, что ../ обозначает родительский каталог.

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

Просмотр файлов

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

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

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

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

$ cat

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

$ less

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

Пробел: перейти к следующему экрануb: перейти к предыдущему экрану/: для поиска конкретного словаq: выйти

Удаление истории Bash

Теперь, когда мы рассмотрели просмотр, использование и поиск в истории Bash, давайте поговорим об очистке или удалении определенных элементов из истории Bash.

Ваша история bash — это просто текстовый файл, сохраненный в ~ / .bash_history. Вы можете просто удалить этот файл, чтобы очистить историю bash, или вы можете более аккуратно выполнить команду history с опцией clear, например, так:

history -c

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

history -d 12

Конвееры

В составных командах и цепочке конвееров используются операторы управления ;, &&, ||. Тут все довольно просто, главное запомнить алгоритм и порядок, по которому работают эти операторы:

1. Команда cmd2 будет выполнена по завершении команды cmd1 не зависимо от результата работы cmd1:

cmd1; cmd2

2. Команда cmd2 будет выполнена после успешного выполнения cmd1 (код завершения = 0):

cmd1 && cmd2

3. Команда cmd2 будет выполнена, если код завершения cmd1 отличен от 0 (произошла ошибка):

cmd1 || cmd2

#bash, #conditions, #pipe, #array

Содержимое файлов

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

cat file1 | more

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

С русскоязычной документацией nano вы можете ознакомиться по этой ссылке:

А документация vim доступна в этом разделе: