history, встроенный в bash, позволяет указать имена файлов при использовании с флагами -anrw, а флаг -a из help history: добавить строки истории из этого сеанса в history file
Поэтому мы можем сделать:
~$ history -a this_session.history
~$ cat ./this_session.history
history mysession.history
cat mysession.history
clear
history -a this_session.history
Для записи -w (история записи в файл opion) записывает всю историю в указанный файл, поэтому [ f9] (добавить) здесь предпочтительный вариант.
Есть и другие ручные способы. В частности, ksh не имеет флага -a, как bash, но что ksh и mksh действительно имеют переменную среды HISTFILE (и bash имеет это, потому что bash включая множество функций ksh); Кстати, эта переменная по умолчанию не установлена (по крайней мере, mksh на Ubuntu не установил ее). Таким образом, для вывода текущего сеанса в другой файл, мы вызываем HISTFILE preended для команды, которая в синтаксисе оболочки означает запуск команды с дополнительной переменной среды, которую вы указываете. Например:
bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$
bash-4.4$ cat ./mykshfile.hist
�echo 'Hello'
echo 'World'
То, что вы также можете видеть из этого, состоит в том, что ksh и связанные с ним оболочки выводят историю со специальными символами вместо обычного текста, как это делает bash. Таким образом, вы можете открыть этот файл с помощью ksh.
Что касается оболочки POSIX /bin/sh на Ubuntu, которая является Debian Almquist Shell или Dash, существует встроенный fc. Тем не менее, на Ubuntu тире компилируется без lib-edit, что является сознательным выбором разработчиков Ubuntu по причинам производительности, поэтому fc и другие режимы, требующие редактирования строк, не работают из коробки (если не перекомпилировать dash самостоятельно и установите lib-edit).
Shell нейтральными способами будет оболочка POSIX /bin/sh на Ubuntu или записать свою собственную функцию для записи по каждой команде. [!d16 ]
$ grep '^www' /etc/group
www-data:x:33:
www:x:1001:ubuntu
Это наглядно показывает, что www-data не является членом группы www. Только ubuntu является членом группы www.
Запустите
sudo usermod -a -G www www-data
, чтобы добавить www-data в www -группу и перезапустить веб-сервер. [!d3 ]
$ grep '^www' /etc/group
www-data:x:33:
www:x:1001:ubuntu
это ясно показывает, что www-data не является членом ВСП группы. Только ubuntu - член www группа.
выполнить
sudo usermod -a -G www www-data
, чтобы добавить [F6], чтобы www-группы, и перезапустить сервер.
$ grep '^www' /etc/group
www-data:x:33:
www:x:1001:ubuntu
Это наглядно показывает, что www-data не является членом группы www. Только ubuntu является членом группы www.
Запустите
sudo usermod -a -G www www-data
, чтобы добавить www-data в www -группу и перезапустить веб-сервер.