Рейтинг:1

Создание отдельных сценариев bash из истории Linux

флаг cn

Я хочу иметь возможность выводить мою историю bash Linux в файл. Затем построчно создайте новый сценарий оболочки с содержимым каждой строки. Я пробовал это до сих пор из командной строки.

Например

Вывод файла истории

73 нмап -Т4 -А -в 127.0.0.1
74 нмэп -Т4 -А -в 192.168.0.1/24

Моей первой проблемой были номера строк... Чтобы удалить их, я применил эту команду.

история | вырезать -c 8- > one.txt

Что дало мне такой вывод..

nmap -T4 -A -v 127.0.0.1
nmap -T4 -A -v 192.168.0.1/24

Здесь проблема, так как текст содержит пробелы

кошка один.txt | tr -cd '[:alnum:]\n\r~!@#$%^&*()-_=+{}\|;:<>,./?"`' | sed '/^$/ д' > bar.txt

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

Тут я врезался в стену...

Он громоздкий и грязный...

Там должен быть более простой способ, который красивее...

Bruni avatar
флаг cn
Несмотря на то, что ответ @vanadium не отвечает на вопрос, используя файл `~/.bash_history`, а не команду history, вы сможете обойти все описанные вами проблемы.
james  avatar
флаг cn
Это решает одну из проблем.Конечно, но, как вы сказали, это не тот ответ, который я ищу. Спасибо ..
Рейтинг:1
флаг cn

Не утруждайте себя попытками выяснить, как записать свою историю в файл. Ваша система Ubuntu уже по умолчанию использует файл ~/.bash_история. Таким образом, требуется простой

кошка ~/.bash_history

чтобы получить содержимое файла.

james  avatar
флаг cn
Я знаю об этом, и, возможно, я не очень хорошо объяснил.. Что я хочу сделать, так это превратить журнал истории - строку за строкой в ​​отдельные сценарии оболочки ... Для каждой команды в журнале истории..
vanadium avatar
флаг cn
Нет, вы этого не сделали. Есть много объяснений, во-первых, просто избавиться от номера. Итак, в конце концов, вы просто хотите разбить текстовый файл на отдельные строки.
Рейтинг:0
флаг cn

Чтобы разделить файл истории на файлы по строкам

разделить --verbose -l1 ~/.bash_history

(сделайте это на копии в отдельном каталоге)

Чтобы добавить шебанг:

для файла в *; делать 
    sed -i '1i #!/bin/sh' $файл
сделано
james  avatar
флаг cn
Это гениально! Большое спасибо..

Ответить или комментировать

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