Использование стрелки вверх для получения предыдущей команды в netcat

Вы должны создать файл your_application.desktop , а затем скопировать его в / usr / share / applications / . Ниже приведен образец файла .desktop , который я недавно использовал для создания sublime_text.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/opt/sublime_text/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=/opt/sublime_text/Icon/128x128/sublime-text.png
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;

[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text/sublime_text -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;

. Обратите внимание на Exec = и Icon =

3
23.08.2017, 17:28
1 ответ

Есть 2 возможности.Первый заключается в использовании rlwrap для обертывания библиотеки истории readline вокруг вашей netcatпрограммы. Другой вариант — использовать socat , в который встроен readline -.

Например, если вы используете telnet с помощью netcat, вы можете просто сказать

rlwrap nc -t remotehost 23

, а затем каждая введенная вами строка сохраняется в файле ~/.nc_historyи может перемещаться с помощью обычных клавиш чтения строки. Повторное выполнение той же команды сохраняет существующую историю.

При socatнет возможности использовать telnet, но для других типов подключения вы можете использовать, например,

socat readline,history=$HOME/.socat.hist TCP4:remotehost:port

Если у вас нет rlwrap, вы можете использовать socat для запуска netcat:

socat readline,history=$HOME/.socat.hist exec:'nc -t remotehost 23'

Третья возможность, если у вас нет ни одной из этих программ, но есть оболочка bashсо встроенным -в readline, состоит в том, чтобы заставить bash читать команды с терминала и отправлять их на стандартный ввод netcat. Ниже приведен довольно упрощенный пример сценария для этого с использованием той же команды ncи сохранением и восстановлением истории в файле /tmp/myhistory.

#!/bin/bash
# emulate rlwrap nc -t localhost 23
HISTFILE=/tmp/myhistory
history -r              # read old history
while IFS= read -p 'netcat> ' -e    # sets REPLY, -e enables readline
do  history -s "$REPLY" # add to history
    history -w          # save to file
    echo "$REPLY"       # write to netcat
done |
nc -t remotehost 23
7
27.01.2020, 21:13

Теги

Похожие вопросы