Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 28.02.2016
Сообщений: 74

Изменить конфигурационные файлы. ( ~/work.log)

03.04.2017, 15:50. Показов 1955. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Я использую Ubuntu 16.04.2 дома и в институте задали такое задание:
Изменить конфигурационные файлы вашего командного интерпретатора таким образом, чтобы формировался журнал работы пользователя с системой следующего формата:

DD.MM.YYYY (HH:MM:SS) - K1 - DD.MM.YYYY (HH:MM:SS)
DD.MM.YYYY (HH:MM:SS) - K2 - DD.MM.YYYY (HH:MM:SS)
...
Журнал пишется в файл ~/work.log и отражает дату и время начала сеанса работы пользователя, далее идет количество введенных пользователем командных строк, а затем дата и время окончания сеанса работы. Каждая строка отражает один сеанс работы.

Заранее благодарен всем тем кто поможет.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.04.2017, 15:50
Ответы с готовыми решениями:

Изменить конфигурационные файлы командного интерпретатора
Здравствуйте, помогите пожалуйста! Задание: Изменить конфигурационные файлы командного интерпретатора чтобы в конце сеанса работы...

Найти файлы с расширением .log
Господа, здравствуйте. Возник вопрос, стоит задача, пишу скрипт по поиску файлов с расширением .log на Bash: Необходимо в каталоге...

c# и конфигурационные файлы
Проект на C# с базами данных, XML файлами и прочим.Помогите, пожалуйста, разобраться 1.Возможно ли в одном конфигурационном файле...

9
0 / 0 / 5
Регистрация: 14.12.2015
Сообщений: 186
02.05.2017, 16:36
Задание:
Изменить конфигурационные файлы вашего командного интерпретатора таким образом, чтобы формировался журнал работы пользователя с системой следующего формата:

DD.MM.YYYY(HH:MM:SS) – K1 – DD.MM.YYYY(HH:MM:SS)
DD.MM.YYYY(HH:MM:SS) – K2 – DD.MM.YYYY(HH:MM:SS)

Журнал пишется в файл ~/work.log и отражает дату и время начала сеанса работы пользователя, далее идёт количество введенных пользователем командных строк, а затем дата и время окончания сеанса работы. Каждая строка отражает один сеанс работы.

Вот такое решение задачи:
В файл ~/.bashrc в конец файла добавляю:
Bash
1
2
3
export STARTSESSION=`date "+%d.%m.%Y (%H:%M:%S)"`
rm -f ~/.bash_history
history -c
В файл ~/.bash_logout в конец файла добавляю:
Bash
1
2
3
4
5
COUNTCOMMAND=`sync; history | wc -l`
export ENDSESSION=`date "+%d.%m.%Y (%H:%M:%S)"`
echo "$STARTSESSION - $COUNTCOMMAND - $ENDSESSION" >> ~/work.log
rm -f ~/.bash_history
history -c
Как мне проверять задание?
Так?Ввожу пару команд в ~/work.log
Bash
1
2
3
4
5
6
cat >> ~/work.log
pwd
touch file1
touch file2
ps 
ls -l
А где результат?
0
0 / 0 / 5
Регистрация: 14.12.2015
Сообщений: 186
02.05.2017, 17:14
Сделал некоторые изменения:
не ввожу никаких команд в
Bash
1
]~/work.log
ввожу команды в терминале, после закрытия терминала на Desktope появляется файл work.log, захожу в него а там:

Почему не показана дата и число команд? где может быть ошибка
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
02.05.2017, 18:10
http://forum.ubuntu.ru/index.p... msg2275499
Действительно bash_logout отрабатывает только при закрытие консолей логин-шелла, например тех, что вызываются по Ctrl+Alt+F1…6.
Тогда можно воспользоваться настройками LightDM добавив в файл /etc/lightdm/lightdm.conf параметр session-cleanup-script=/path/to/script с путем до Вашего скрипта_по_выходу.
Ну или воспользоваться стандартными init.d-скриптами или сервисами systemd (ссылка)
0
0 / 0 / 5
Регистрация: 14.12.2015
Сообщений: 186
02.05.2017, 19:15
я всё равно не понимаю как исправить . Решение то верное?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
02.05.2017, 20:51
Цитата Сообщение от blocker147 Посмотреть сообщение
Решение то верное?
Если не работает?

Добавлено через 5 минут
То что не работает у Вас, говорит о том, что Вы используете не те «кавычки». Чтоб эта ошибка не возникала форма «`command`» признана устаревшей и применяют «$(command)»
0
0 / 0 / 5
Регистрация: 14.12.2015
Сообщений: 186
11.05.2017, 17:30
вот эта команда не работает:
Bash
1
echo $STARTSESSION - $COUNTCOMMAND - $ENDSESSION >> ~/work.log
мне нужно чтобы в файл вывелись КОМАНДЫ:
Bash
1
2
3
$STARTSESSION 
$COUNTCOMMAND
$ENDSESSION
и записались в:
Bash
1
~/work.log
не понимаю как это сделать, если
Bash
1
2
pi='pwd'
echo $pi
выводит текст переменной pi, а
Bash
1
$pi
выполняет команду. Тогда как можно объединить три команды?
Bash
1
$STARTSESSION - $COUNTCOMMAND - $ENDSESSION >> ~/work.log
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
11.05.2017, 20:28
у Вас перевернуто с ног на голову все.
Цитата Сообщение от blocker147 Посмотреть сообщение
нужно чтобы в файл вывелись КОМАНДЫ
Это неправильно, присваивать переменной команду, а потом вызывать её через переменную. Переменной должна присваиваться символьная строка, которая может быть РЕЗУЛЬТАТОМ выполнения команды.
Если же ам надо вызывать одинаковую команду (набор команд) для этого используют алиасы и/или функции.
Bash
1
2
3
date "+%d.%m.%Y (%H:%M:%S)" >> $HOME/work.log
rm -f $HOME/.bash_history
history -c
Bash
1
2
3
COUNTCOMMAND=$(sync; history | wc -l)
ENDSESSION=$(date "+%d.%m.%Y (%H:%M:%S)")
sed -i "$ s/$/ - $COUNTCOMMAND - $ENDSESSION/" $HOME/work.log
Или так например
Bash
1
2
3
4
alias my_data='date "+%d.%m.%Y (%H:%M:%S)"'
export STARTSESSION=$(my_data)
rm -f $HOME/.bash_history
history -c
Bash
1
2
3
COUNTCOMMAND=$(sync; history | wc -l)
ENDSESSION=$(my_data)
echo "$STARTSESSION - $COUNTCOMMAND - $ENDSESSION" >> $HOME/work.log
1
0 / 0 / 0
Регистрация: 18.10.2015
Сообщений: 38
12.05.2017, 17:41
вопрос по этой же теме, у меня похожее задание, какая имеенно каманда отвечает за изменение командного интерпретатора,
я сделал своё задание, (PS1='\[\e[40;34m \u@\h $SECONDS \W \$\]] \e[40;31m')
Если закрыть а потом открыть терминал, изменения проподают, а как сделать что бы они остались и еще при открытии нового терминала были и там?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
12.05.2017, 19:54
Каждый раз при запуске bash выполняется ряд файлов. Например $HOME/.bashrc. Обычно необходимые команды дописывают туда.
Или делают переменную общесистемной, выполнив её export
Bash
1
export PS1
в Вашем случае.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2017, 19:54
Помогаю со студенческими работами здесь

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

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

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

Как лучше хранить конфигурационные файлы для проекта
Пишется некоторый проект, у которого есть конфигурационные файлы (не *.py, а *.ini/xml/json/etc). В стадии разработки не хотелось бы каждый...

Конфигурационные файлы. Как проверить что настройка существует?
как проверить что настройка существует ? как использовать TryParse? в гуглил но ничего нету!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru