Поиск файлов в linux с помощью командной строки

CD

Команда — это наше всё.
С её помощью мы будем перемещаться по файловой системе нашей ОС Linux. Команду  вы будете использовать постоянно.

Синтаксис вида:

cd /путь/к/директории

Основные приемы работы с командой :

  • если вы просто введете команду  без аргументов, она вас переместит в ваш домашний каталог. Если вы находились в каталоге
    /home/username/cat/test

    то вернет вас в

    /home/username
  •  — эти символы, в начале аргумента, указывают на то, что переход мы будем выполнять из текущего каталога
    cd ./cat/test
  • для перехода на уровень выше можно использовать две точки  
    Находясь в каталоге
    /home/username/cat/test

    и введя команду

    cd ..

    мы совершим переход в каталог

    /home/username/cat
  • также при помощи команды , мы можем вернуться в предыдущий каталог.
    Если мы перешли в наш домашний каталог, а до этого находились в
    /var/log/mysql

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

    cd

    — и она вернет нас обратно в

    /var/log/mysql

Использование команды ps для просмотра процессов Linux

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

Что это такое?

Команда ps выводит список текущих процессов на вашем сервере. Используется обычно в сочетании с командой grep и more или less.

Примечание: more и less – дополнительные команды, которые помогают фильтровать и разбивать на страницы выходные данные ps, так как они часто бывают довольно длинными.

Работа с командой ps

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

На выходе будут отображаться строки данных, содержащих следующую информацию: PID – это уникальный идентификатор процесса, TTY – тип терминала, TIME – это общее время использования процессорного времени процессом (00:00:00 напротив процесса bash указывает, что процессорное время вообще не было использовано до сих пор), CMD – это имя команды, которая запустила этот процесс.

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

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

Примечание: лидеры сеанса – процессы, у которых PID равен SID. Когда один процесс запускает другие процессы, он является лидером сеанса всех других процессов. Итак, представьте себе процесс A, который запускает процесс B и обрабатывает C. Процесс B запускает процесс D и процесс C запускает процесс E. Когда вы перечислите все процессы, за исключением сессий лидеров, вы увидите B, C, D и E, но не A.

Вы можете инвертировать вывод с помощью переключателя -N. Например, если вы хотите вывести только лидеров сеансов, выполните следующую команду:

Очевидно, что данную опцию не очень разумно использовать с ключами -e или -A, поскольку в таком случае в консоль ничего не выведется.

Если вы хотите увидеть только процессы, связанные с этим терминалом, выполните:

Если вы хотите просмотреть все работающие (running) процессы, используя следующую команду:

Выбор конкретных процессов

Вы можете вывести определенные процессы с помощью ps с помощью различных критериев выбора.

Например, если вы знаете идентификатор процесса PID, вы можете просто использовать следующую команду:

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

ps -p “22813 28599”

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

ps -p 22813,28599

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

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

Например, чтобы узнать все процессы, выполняемые группой accounts, выполните следующие действия:

ps -G “accounts” ps –Group “accounts”

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

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

Обратите внимание, что это показывает человека, чьи учетные данные используются для запуска команды. Например, если вы вошли в систему как gary и запустите указанную выше команду, она покажет всю команду, которую вы выполняете

Если вы входите в систему как tom и используете sudo для запуска команды, то приведенная выше команда покажет команду tоm’а, которую запускает gary, а не tom.

Чтобы ограничить список только процессами, действительно запущенными gary, используйте следующую команду:

Форматирование вывода команды ps

По умолчанию вы получаете четыре столбца, когда используете команду ps: PID, TTY, Time, Command. О них написано в начале статьи.

Вы можете получить полный список, выполнив следующую команду:

Опция -e, показывает все процессы, а -f показывает полную информацию: UID – идентификатор пользователя выполняющего команду, PID – это идентификатор процесса команды, PPID – идентификатор родительского процесса, который отпустил команду, C – количество дочерних процессов, STIME – это время начала процесса, TTY, TIME, CMD.

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

Дополнительные столбцы – SZ, RSS и PSR. SZ – это размер процесса, RSS – реальный размер памяти, а PSR – процессор, которому назначена команда.

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

Полезные функции менеджера файлов

Все инструменты из нашего списка умеют выполнять основную функцию навигации по директориям. И все поддерживают функцию breadcrumb, которая позволяет отслеживать пути, когда вы всё глубже погружаетесь во вложенные директории. Dolphin и Gnome Files, самые старые проекты в нашем списке, также поддерживают функции Undo и Redo. Хотя В Dolphin эта функция существует уже долго, а Gnome Files только недавно ввели ее.

Gnome Files помнит последнюю выполненную операцию и позволяет отменить действие и вернуться к последнему действию, если это возможно. Например, если вы создаете новую папку и потом еще одну, последнее действие можно отменить. Т. е. удалится папка, созданная последней. Но если вы создаете новую папку или копируете несколько файлов в новую папку, тогда опция undo означает, что вы можете восстановить копирование.

Dolphin обладает куда большими возможностями касательно воспоминаний и запоминания всех действий для открытого в данный момент окна. Менеджер файлов по умолчанию для KDE также предлагает интегрированный терминал. Он использует Konsole в качестве эмулятора терминала, так что для доступа к этой функции вы должны установить KDE. А еще Dolphin позволяет добавлять теги в ваши файлы и папки. Хотя в Gnome File разработка уже некоторое время ведется, всё же на момент написания Gnome Files функции тегов не предлагал, а у других менеджеров файлов в Сравнении этого месяца ее даже нет в списке планируемых.

Path Bar (адресная панель) в SpaceFM расположена в каждой панели над списком файлов для текущей директории. Проще всего сказать, что Path Bar позволяет увидеть путь к текущей папке, но она также обеспечивает функцию breadcrumb . Это означает, что вы можете, удерживая Ctrl, нажать на часть пути, чтобы перейти в эту директорию.

Если вы находитесь в директории /home/linuxlala/Documents/articles/2017/PDF/, и, удерживая Ctrl, нажмете на часть пути Documents, то немедленно очутитесь в директории ~/Documents. Можно также запускать команды из адресной панели, не выходя в terminal, но вы должны использовать один из следующих префиксов: $ — чтобы запустить задачу, & для запуска команды в фоне, + для запуска команды в терминале и, наконец, ! для запуска команды от имени root.

Найти и удалить файлы

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

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

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

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

Когда дело доходит до каталогов, может удалять только пустые каталоги, как и .

Открытые программы с Root — Терминал

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

su -

Получив root-доступ в сеансе терминала, вы сможете запускать программу. Так, например, если вы хотите получить доступ к файловому менеджеру Gnome с доступом root, вы должны запустить команду nautilus в терминале.

nautilus

Итак, помните. Войдите в систему как Root, затем запустите приложение:

program-name

Большинство программ могут быстро запуститься с привилегиями суперпользователя, если вы являетесь пользователем root. Однако имейте в виду, что метод окна терминала не на 100% надежен. Из-за характера командной строки в Linux некоторые приложения просто не запускаются.

Невозможно определить, какие программы работают с этим методом, а какие нет. Лучший способ определить — методом проб и ошибок. Однако, если программа отказывается запускаться с правами root в терминале, она сообщит об этом в командной строке.

Специальные ярлыки

Если просто ввести команду cd без указания пути, то будет выполнен переход в домашнюю директорию. Проверим.

1
2
3
4
5

 
$ cd
$ pwd
/home/mikhail
 

Чтобы сменить рабочую директорию на предыдущую, можно использовать символ «-» (минус). Сейчас мы в домашней директории, до этого были в /usr/bin. Значит после ввода команды cd — должны снова вернуться в /usr/bin. Проверим.

1
2
3
4
5
6

 
$ cd —
/usr/bin
$ pwd
/usr/bin
 

Сослаться на домашнюю директорию любого пользователя можно добавим перед именем учетной записи символ «~» (тильда), например ~mikhail. Так мы можем указать домашнюю директорию любого пользователя вне зависимости от того, где она расположена. Проверим.

1
2
3
4
5

 
$ cd ~mikhail
$ pwd
/home/mikhail
 

Если после символа «~» (тильда) не указать имя пользователя, то данный символ будет ссылаться на собственную домашнюю директорию.

Механизм работы подобной «ссылки» реализован за счет развертывания строк (материал из будущего ;)).

А теперь заморозим виртуальную машину в данном состоянии.

Поиск по содержимому файлов doc, docx, xls, xlsx и pdf в GUI Linux

274

5

14

00:08:22

01.03.2020

Поиск по содержимому файлов doc, docx, xls, xlsx и pdf в GUI Linux
Search the contents of doc, docx, xls, xlsx, and pdf files in the Linux GUI
Есть в Linux такая утилитка, под названием Silver-searcher.
Ищет она быстрее, чем grep, синтаксис проще. Например, найти что-то в директории с тестовыми файлами, заходим терминалом в директорию, где собираемся искать и набираем:
ag «слово с пробелами»
или
ag словобезпробелов
Поизк рекурсивный по поддиректориям, ищет быстро, выхлоп лаконичный, искомое слово в строке подсвечено, название файла выделено цветом.
CLI опции утилиты ag можно посмотреть здесь
Ставится она так, в терминале:
sudo add-apt-repository ppa:pgolm/the-silver-searcher
sudo apt-get update
sudo apt-get install the-silver-searcher
Или можно скомпилировать, скачав с Github
Но у меня, как и большинства обычных юзеров, на компьютере тысячи файлов офисных форматов doc, docx, xls, xlsx и pdf. В них Silver-searcher не ищет.
Не беда. Пишем скрипт с незатейливым названием «ищи», такого содержания:
#!/bin/bash
echo -e «\n
Поиск слова во всех файлах этой папки, введите запрос \n
Результаты поиска по введенному далее запросу \n»
read response

find . -name «*.doc» |
while read i; do catdoc «$i» |
ag «$response» && echo «$i»; done

find . -name «*.docx» |
while read i; do docx2txt «$i» |
ag «$response» && echo «$i»; done

find . -name «*.xls» |
while read i; do xls2csv «$i» |
ag «$response» && echo «$i»; done

find . -name «*.xlsx» |
while read i; do xlsx2csv «$i» |
ag «$response» && echo «$i»; done

find . -name «*.pdf» |
while read i; do pdftotext «$i» — | less |
ag «$response» && echo «$i»; done

Скрипт сохраняем, даём права на исполнение и бросаем куда-нибуть в $PATH, т.е. в директорию, где хранятся исполняемые е файлы, например в ~/.local/bin/
Потом создаём ПКМ Thunar под названием «ИЩИ: поиск в офисных файлах по содержанию» на команду:
xfce4-terminal -H -e «bash -c ищи»
Условие появления:
каталоги, иконка любая.
Теперь, при нажатии ПКМ ИЩИ на каталог откроектся терминал, надо будет вбить слово и через секунду высыпятся результаты поиска — фал и одна строчка, в которой содержится искомый текст. Если мы хотим, чтобы было две строчки сверхуи снизу, то после ag в скрипте надо дописать -C, если больше, то: -C цифра строк.
Если хотим поискать в файлах Libreoffice, дописываем скрипт, используя утилиту unoconv (скажу по секрету, у el guahiro скрипт ищет даже по файлам AutoCAD, но вам это не надо).

БОЛЕЕ ТОЧНЫЕ И ОБНОВЛЁННЫЕ ВЕРСИИ СКРИПТОВ смотреть на xubuntu ru net в теме от el guahiro
.

Гибкость поиска

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

Dolphin для обработки поисковых запросов использует Baloo, среду индексирования и поиска файлов в KDE Plasma. Это означает, что вы должны разрешить Baloo вести активный индекс всех файлов в вашей системе. Если вы этого не сделаете, поиск вернет нулевые результаты, даже если вы точно знаете, что искомый файл существует на диске. Помимо употребления масок имен, можно искать файлы по типу, например, аудио или документ, и сузить результаты на основании рейтинга.

В Gnome Files можно ограничить поиск типом файлов. Помимо PDF, изображений, таблиц, презентаций, видео и прочих типов инструмент также позволяет выбрать их впечатляющего списка форматов в алфавитном порядке. Вы также можете задать дату последнего использования или последнего изменения. Для поиска внутри текущей директории инструмент также поддерживает поиск по шаблону. Это означает, что вы можете искать файл с помощью шаблонов, описывающих имя файла, например, *trip*.png, что выберет все файлы PNG в текущей директории, у которых в имени файла есть trip.

Поиск в SpaceFM передается в отдельное окно; доступ к нему можно получить через File > File Search . Хотя поддерживается множество переменных для поиска по шаблону, описанных в руководстве, поиск капризный и непредсказуемый — срабатывает он отнюдь не всегда.

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

Использование совместно с другими командами

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

К примеру хотим получить кроме самих файлов еще и информацию
о атрибутах этих файлов. В данном случае нам на помощь приходит
подстановка команд:

$ locate crontab
/usr/man/man1/crontab.1.gz
/usr/man/man5/anacrontab.5.gz
/usr/man/man5/crontab.5.gz
/usr/bin/crontab
/etc/anacrontab
/etc/crontab
$ ls -ld `!!`
ls -ld `locate crontab`
-rw-r--r--  1 root root     370 Mar  3  2000 /etc/anacrontab
-rw-r--r--  1 root root     255 Aug 27  1999 /etc/crontab
-rwsr-xr-x  1 root root   21816 Feb  3  2000 /usr/bin/crontab
-rw-r--r--  1 root root    1584 Feb  3  2000 /usr/man/man1/crontab.1.gz
-rw-r--r--  1 root root     669 Mar  3  2000 /usr/man/man5/anacrontab.5.gz
-rw-r--r--  1 root root    3495 Feb  3  2000 /usr/man/man5/crontab.5.gz
$

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

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

	$ locate / | wc -l   # <--- locate - выводит все файлы в системе
	                     #      wc     - подсчитывает их количество
	70968
	$ ls -ld `locate /` | wc -l
	bash: /bin/ls: Argument list too long
	0
	$

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

	$ ls /usr/
	X11R6    etc                info      man
	bin      games              kerberos  sbin
	cvsroot  i386-redhat-linux  lib       share
	dict     i486-linux-libc5   libexec   src
	doc      include            local     tmp

	$ ls /usr/ | xargs -n 5 echo
	X11R6 bin cvsroot dict doc
	etc games i386-redhat-linux i486-linux-libc5 include
	info kerberos lib libexec local
	man sbin share src tmp
	$

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

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

	$ locate / | xargs ls -ld | wc -l
	  70968
	$

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

Как подготовиться к переходу на Linux

1. Создайте загрузочную флешку с понравившейся сборкой операционной системы по инструкции выше.

2. Поищите в перечне приложений Linux аналоги нужных программ. Одним из лучших видеоплееров для платформы считается VLC, самый всеядный аудиоплеер Audacious, а графический редактор – GIMP. Офисный пакет может заменить LibreOffice, а роль основного браузера займет Chromium или Firefox.

Убедитесь, что замена для всех важных приложений найдена.

3. Будьте готовы к тому, что какой-то из компонентов компьютера не будет распознан операционной системой. Все решается поиском и установкой необходимых драйверов. “Нагуглить” способ решения проблемы просто, если есть интернет.

Иногда после установки Linux отказывается работать Wi-Fi, что делает затруднительным поиск решения. Вот, например, инструкция по установке драйверов для сетевых кар Broadcom.

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

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

Разбить накопитель можно как из Windows, так и во время установки Linux.

5. Используйте имеющуюся флешку для установки полноценной операционной системы.

Копирование и вставка в буфер обмена

Вы можете скопировать и вставить текст из/в терминал, выделив их и нажав Ctrl + C или Ctrl + V. Но иногда хочется напрямую получить доступ к буферу обмена. И как вы видите ниже, это не так уж и просто, что на Linux, что на macOS.

# Linuxecho "Hello my friend!" | xclip # копировать "Hello my friend!" в буфер обменаxclip -o >> pasted_text.txt # вставить содержимое буфера в текст файла# macOSecho "Hello my friend!" | pbcopy # копировать "Hello my friend!" в буфер обменаpbpaste >> pasted_text.txt # вставить содержимое буфера в текст файла

Переменные и путь

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

echo "hello" # вывод hello на консольecho $USER # вывод значение переменной USER на консольenv # вывод список всех переменных окруженияset # вывод список всех локальных переменныхMY_FRIENDS=William # создать локальную переменную MY_FRIENDSMY_FRIENDS=$MY_FRIENDS:John:Anna # объединение значения 'John' и 'Anna' в MY_FRIENDSexport MY_FRIENDS # сделать локальную переменную MY_FRIENDS переменной окруженияunset MY_FRIENDS # удалить переменную MY_FRIENDS

Ещё один интересный инструмент — (псевдоним), сокращение для длинных команд. Посмотрим, как он строится:

alias clone_my_repo = "git clone http://verylongurl.com" # создать псевдоним

Для тех, кто не знает, путь (Path) – это каталоги, в которых ОС ищет файлы для исполнения. С его помощью можно запустить файл, написав лишь название, даже не нужно знать его расположение. Кроме того, в путь можно добавить папку, а также найти каталог, где находится исполняемый файл, с помощью команд:

export PATH=$PATH:/home/john/myprogram # добавление каталога к пути /home/john/myprogramwhich nano # отобразить расположение исполняемого файла "nano"whereis nano # отобразить расположение исполняемого файла, справочных страниц, исходного кода и т.д. "nano"

Поиск файлов по размеру

Теперь мы дойдем до того момента, когда команда find станет невероятно полезной. У меня были случаи, когда десктопы или серверы просто находили свои жесткие диски загадочно заполненными. Для того чтобы быстро освободить место (или помочь найти проблему), вы можете использовать команду find, чтобы найти файлы определенного размера. Скажем, например, вы хотите увеличить размер и найти файлы размером более 1000 МБ. Команда find может быть выдана с помощью опции -size, например:

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

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

  • C — байт
  • K — Килобайты
  • M — мегабайт
  • G — гигабайт
  • B — 512-байтовые блоки
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
IP-файл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: