Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как вывести список процессов bash, запущенных определённым пользователем?

Здравствуйте!

Люди, не могли бы мне помочь?

Вот задание:
"Реализовать командный файл, который при старте выводит информацию о системе, информацию о пользователе, запустившем данный командный файл, далее в цикле выводит список активных пользователей в системе – запрашивает имя пользователя и выводит список всех процессов bash запущенных данным пользователем."

Меня интересует только выделенная часть текста.

1. "список активных пользователей в системе" - здесь я записал команду who, но не уверен ее в правильности. Т.к. в литературе встречались разные описания: то список зарегистрированных пользователей, то список активных пользователей. Уточните мне, пожалуйста.



2. "список всех процессов bash запущенных данным пользователем" - здесь я вовсе не знаю какую команду писать. Есть предположение что ps, но я не нашел в справочниках как выдать только bash-процессы. Так как выдать этот список?
Ответ: Как будет выглядеть данное задание?
Написать командный файл подсчитывающий количество определенных процессов пользователя (Ввести имя пользователя и название процесса)
Вопрос: Вывести список исполняемых файлов, которые могут быть выполнены текущим пользователем без указания пути к ним

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

Код Bash
1
2
3
4
5
#!/usr/bin/ksh
IFS=':'
set -A mas $PATH
 
find ${mas[@]} -perm -100 -type f | sed 's/^.*\///g' | sort -r
Ответ: попробовал использовать ключ executable
Код Bash
1
2
3
4
5
#!/usr/bin/ksh
IFS=':'
set -A mas $PATH
 
gfind ${mas[@]} -type f -executable -print | sed 's/^.*\///g' | sort -r
попробовал вывелись один из файлов, которые вывелись
результат на скрине..
Вопрос: Вывести список файлом с количеством жёстких ссылок

Собственно вот такое задание: нужно вывести список имён файлов текущего каталога в формате filename <= N, где N количество жёстких ссылок соответствующего файла, и выводить нужно только те имена файлов у которых этих самых жёстких ссылок больше одной (>1).
Ответ:
Код Bash
1
find "$dir" -maxdepth 1 -type f ! -links 1 -printf "%f <= %n\n"
А что надо «с помощью xargs» ?
Вопрос: Поиск файлов, модифицированных указанным пользователем за указанный период

Добрый день!
Прошу подсказать, как осуществлять данную задачу: создать командный файл, который выдает на экран имена и полные пути файлов, измененных указанным пользователем за указанный период.
Понятно, что по дате модификации можно искать файлы через $find / -mtime или $find/ -atime.
А как при этом добавить критерий пользователя? У команды find такого не нашел.
Ответ: Да нет, условие звучит именно так.
Ладно, спасибо Вам, буду разбираться.
Вопрос: Вывести список файлов, не имеющих расширения

здравствуйте,
надо вывести список файлов каталог /boot ,не имеющих расширения,с указанием номера узла и отсортировать в обратном порядке.
я ввел команда :
Код
ls -ir /boot [!*.*]
почему то на экране все равно выводит файлы которые имеют расширения .И странно в том ,что он еще и вывел список файла в домашнем каталоге.
Подскажите,пжлс, как исправить и в чем ошибку?
Ответ: Если Вы не используете расширенные паттерны то получить результат с использованием только ls не получится. Я бы решал вопрос при помощи find
Bash
1
find /boot ! -name '*.*' -print0 | xargs -0 ls -i | sort -r
Вопрос: Получить список пользователей, относящихся к группе с наибольшим числом пользователей

Дали задание: "Получить список пользователей относящихся к группе с наибольшим числом пользователей" программа для Линукса, никогда не сталкивался с таким видом программ, можно прогать как на C так и на Pascal, вот только я не представляю как это нужно делать и как взаимодействовать с группами пользователей и какие операторы использовать в принципе. Прошу помощи у знатоков системы Linux так как с системой до недавнего времени не был знаком вообще.
Ответ: А как можно сделать так, чтобы результат записывался в файл?
Вопрос: Вывести список файлов начинающихся с символа 'q' с заходом в подкаталоги с сортировкой

здравствуйте
подскажите пожалуйста ка вывести список файлов каталога,начинающихся с символа 'q'.с заходом в подкаталоги.Список отсортировать по размеру файлов в порядке возрастания.
Подскажите,пжлс, как написать командой с помощью find.
И тут лучше команда find или ls использовать?
Ответ: Я этого не говорил
Сообщение от Marinero
find -name 'q*' -print0 | xargs -0 ls -1rS
Вопрос: Вывести список файлов сгруппированный по пользователям

Пример работы:
Код Bash
1
2
3
4
5
6
$ list-files -g owner /etc
=> Файлы пользователя root:
fstab
rc.conf
=> Файлы пользователя operator:
crontab
я командой ls -l записываю информацию о файлах указанной директории в текстовый файл.после этого сортирую его по третьему столбцу(пользователи)
получаю :
-rw-r--r-- 1 root root 0 марта 9 16:46 2.mp3
-rw-r--r-- 1 root root 0 марта 9 16:46 321.txt
-rw-rw-r-- 1 zhenya zhenya 0 марта 9 16:45 123.txt
-rw-rw-r-- 1 zhenya zhenya 0 марта 9 16:46 1.mp3
-rw-rw-r-- 1 zhenya zhenya 0 марта 9 20:10 1.txt

но не могу сообразить как теперь группировать по пользователям,подскажите как это можно сделать?
Ответ:
Код Bash
1
2
3
find . -maxdepth 1 -type f -printf "%u %P\n" | sort | awk 'BEGIN {user=""}
$1 != user  {print "=> Файлы пользователя: ", $1; user=$1}
{print $2}'
Вопрос: Процедура Shell / подсчет количества процессов пользователей.

Написать процедуру Shell,которая:
  1. Вводит с терминала некоторое число
  2. Всем пользователям,работающим в данный момент в системе, посылает сообщение о среднем числе процессов у каждого пользователя
  3. Тем пользователям,у которых число процессов больше среднего,посылает второе сообщение с предупреждением,если число процессов у них отличается от среднего больше,чем введённое целое число
Ответ: Ну =) чтож мне тоже тут ответ не дали =((
Вопрос: Вывод списка задач(jobs)

Не могу вывести список задач
Bash
1
2
3
4
5
#!/bin/bash
echo -n "Введите номер задачи: "
read 
jobs "$Reply" #пытался и так
jobs $Reply
Выводит: Введите номер задачи: 1
./jobs.sh: строка 4: jobs: : нет такой задачи
Но вводя в терминал read
jobs $Reply
Все работает
P.S.
Задача есть:
jobs
[1]+ Остановлено tar -cvf gg.tar $HOME
Ответ: Ну если просто вывести какие процессы в фоне
можно в скрипт вствить вместо jobs
Bash
1
ps -eo stat=,comm= | grep 'T'
Если намереваешься убить какой тогда еще выведи и pid
Bash
1
ps -eo stat=,comm=,pid= | grep 'T'
Добавлено через 22 минуты
Что то у меня бывает глючит вывод без вывески
Если не собираешься дальше обрабатывать то запиши так
Bash
1
ps -eo pid,comm,stat | grep 'T$'
Добавлено через 20 минут
Ага, разобралась. Вывеску и так будет фильтровать если записать
Bash
1
ps -eo stat,comm | grep '^T'
А убить при необходимости можете командой pkill command или pkill -9 command