Если вы запустите:
socat "unix-listen:$HOME/.shell-access,mode=600,fork" \
"exec:$SHELL,pty,stderr,setsid,ctty"
Это позволяет, например,:
socat -,raw,echo=0 "unix:$HOME/.shell-access"
локально для подключения и взаимодействия с этой оболочкой.
Затем вы можете перенаправить его через -порт -через ssh с помощью:
ssh -R "/path/to/socket/on/host:$HOME/.shell-access" user@host
(предполагает относительно недавнюю версию openssh (как клиента, так и сервера )).
И затем user
на host
могут взаимодействовать с этой оболочкой, делая это
socat -,raw,echo=0 "unix:/path/to/socket/on/host"
Вместо запуска $SHELL
вы можете запустить screen -xRS some-screen-session
, чтобы подключить данный screen
сеанс, чтобы несколько человек могли видеть один и тот же сеанс экрана.
Вот еще несколько способов добавления текста в файл.
Использование тройника
tee -a file <<< "text text text..."
Использование awk
awk 'BEGIN{ printf "text text text..." >> "file" }'
Использование sed
sed -i '$a text text text...' file
sed -i -e "\$atext text text..." file
Источники:
Использование подходаhere-document
:
cat <<EOF >> file
> foo
> bar
> baz
> EOF
Испытания:
$ cat file
aaaa
bbbb
$ cat <<EOF >> file
> foo
> bar
> baz
> EOF
$ cat file
aaaa
bbbb
foo
bar
baz
Использование файловых редакторов Unix. Обе версии GNU
и BSD
.
Использование ed(1)
сprintf
printf '%s\n' '$a' 'foo bar baz'. w | ed -s file.txt
Специфичный для bash, но более загадочный синтаксис с использованием $' '
кавычек оболочки иherestring
ed -s file.txt <<< $'$a\nfoo bar baz\n.\nw'
Использование ex(1)
сprintf
printf '%s\n' '$a' 'foo bar baz'. x | ex -s file.txt
Специфический для bash, но более загадочный синтаксис $' '
кавычки оболочки иherestring
ex -s file.txt <<< $'$a\nfoo bar baz\n.\nx'
cat >> file
first line
second line
...
last line
Нажмите Введите в последней строке, затем Ctrl + D .