Было бы возможно перейти между предыдущими/следующими командными строками?

Вот (непротестированный!) пример это блокирует входящие соединения только. Соединения по петлевому интерфейсу, прибывающему из 192.168.3.x, ICMP, или к порту SSH, позволяются. Все другие соединения отклоняются.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
7
31.10.2010, 00:47
5 ответов

Я никогда не слышал о такой функции с типичными оболочками (zsh, рыба или иначе) в типичных эмуляторах терминала. После того как Вы нажали Enter при подсказке, та командная строка только существует как запись истории, что касается оболочки, и как набор отображаемых символов (неотличимый от вывода команды) насколько эмулятор терминала затронут.

С другой стороны, вид навигации, которую Вы просите, доступен как само собой разумеющееся в оболочках, выполненных в буфере Emacs, с M-x shell если Вы хотите свою обычную оболочку и выпуск командной строки Emacs или M-x eshell если Вы хотите оболочку, встроенную в Emacs.

4
27.01.2020, 20:18
  • 1
    , который я проголосовал бы за Вас, если я мог, хотя моя текущая репутация не позволяет мне. Спасибо за Вас интересная информация. Немой вопрос, вероятно, но как Вы выполняете такую навигацию в оболочке Emacs? Это также делает меня любопытным, если это сохраняется в Vim также (который является редактором, я поселен для изучения), использование: оболочка (в этом случае мой предыдущий немой вопрос также относится к Vim; как Вы выполняете "переход между подсказками" в оболочке Vim). –  Henrik 03.11.2010, 13:51
  • 2
    @hced: В Emacs Вы получаете нормальную навигацию курсора плюс несколько определенных команд как C-c C-p и C-c C-n перейти к предыдущей/следующей подсказке. Vim не имеет никакой подобной функции: :shell только запускает оболочку, которая взаимодействует непосредственно с терминальным Vim, работает в (и Вы не можете взаимодействовать с Vim до выходов оболочки). –  Gilles 'SO- stop being evil' 03.11.2010, 20:51
  • 3
    +1 я не знал о C-c C-p.Спасибо! –  Mikel 25.01.2011, 00:25
  • 4
    В eshell существует даже такая команда как eshell-show-output, который, кажется, делает еще более тесно, что hced после при задавании этого вопроса. –  imz -- Ivan Zakharyaschev 20.03.2011, 20:59

В eshell в Emacs существует команда (еще упомянутый здесь в других ответах), который, кажется, занимается задачей, о которой Вы неявно задаетесь вопросом при задавании вопроса- eshell-show-output; его описание (C-h feshell-show-output):

Это связывается с C-c C-r, C-M-l.

(eshell-show-output &optional arg)

Дисплей запускается этого пакета вывода интерпретатора наверху окна. Наборы отмечают к значению точки, когда эта команда выполняется. С аргументом префикса, сужает регион для длительности вывода команды.

Сужающийся эффект (с аргументом префикса, т.е. C-u C-c C-r) мог быть также интересен Вам, учитывая Вашу задачу.

2
27.01.2020, 20:18
  • 1
    Спасибо за подсказку, попробует это, если я начну использовать Emacs. (Я больше в Vim в эти дни. Если бы существует так же техника для Vim как тот, Вы описали выше, я был бы рад услышать его.) –  Henrik 21.03.2011, 14:12

Один ответ на Ваш вопрос должен использовать emacs с M-x eshell. Это дает Вам довольно полную функциональность оболочки в emacs. Взятие быстрых быстрых взглядов на файлы может, очевидно, быть сделано путем открытия их в редакторе, но что еще более важно можно использовать его функциональность поиска для поиска назад через буфер для любого более раннего вывода (или любых более ранних подсказок).

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

1
27.01.2020, 20:18
  • 1
    В eshell существует даже такая команда как eshell-show-output, который, кажется, делает еще более тесно, что hced после при задавании этого вопроса. –  imz -- Ivan Zakharyaschev 20.03.2011, 20:57

Подробно остановиться на комментарии xenoterracide...

Вместо того, чтобы работать make, Я вставил это мой .bashrc

# make with an automatic log and pager
m()
{
    command make "$@" 2>&1 1>&- 1>make.log | tee -a make.log
}

затем выполненный m вместо make.

Это помещает весь вывод в make.log, но только ошибки печати на консоли.

Тем путем Вы не имеете тонн вывода на экране, можете легко видеть ошибки и можете читать make.log диагностировать любые проблемы, если это перестало работать.

1
27.01.2020, 20:18

Не уверенный, если это должно быть ответом, но так как я отправляю изображение, которое я предполагаю, это будет работать.

Можно заставить подсказку удара выглядеть по-другому так, чтобы она была легко определена, или используйте zsh и заставьте подсказку выглядеть примерно так.

alt text

Я взял свою подсказку от где-нибудь онлайн, я забываю где. И я объединил его с другим zshrc файлом, который я нашел в другом месте. Я просто вставлю все это здесь. Подсказка все содержится в нижней части если Вы просто awnt для взятия этого.

#------------------------------
# History stuff
#------------------------------
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000

#------------------------------
# Variables
#------------------------------
export EDITOR="vim"
export PAGER="vimpager"
export PATH="${PATH}:${HOME}/bin"
export PATH="${PATH}:${HOME}/.android-sdk-linux_x86/tools"
export PATH="${PATH}:${HOME}/Dropbox/bin"
#-----------------------------
# Dircolors
#-----------------------------
#LS_COLORS='rs=0:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:';
#export LS_COLORS


LS_COLORS='di=34;01:fi=0:ln=96;1:pi=36;1:so=01;31;1:bd=5:cd=5:or=01;31:mi=0:ex=01;93:*.so*=93:*.doc=01;33:*.docx=01;33:*.xls=01;33:*.xlsx=01;33:*.pdf=01;33:*.odt=01;33:*.torrent=91:*.bin=33:*.sh=33:*.run=33:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'
export LS_COLORS



#------------------------------
# Keybindings
#------------------------------
bindkey -e
typeset -g -A key
#bindkey '\e[3~' delete-char
bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line
#bindkey '\e[2~' overwrite-mode
bindkey '^?' backward-delete-char
bindkey '^[[1~' beginning-of-line
bindkey '^[[5~' up-line-or-history
bindkey '^[[3~' delete-char
bindkey '^[[4~' end-of-line
bindkey '^[[6~' down-line-or-history
bindkey '^[[A' up-line-or-search
bindkey '^[[D' backward-char
bindkey '^[[B' down-line-or-search
bindkey '^[[C' forward-char 
# for rxvt
bindkey "\e[8~" end-of-line
bindkey "\e[7~" beginning-of-line
# for gnome-terminal
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line

#------------------------------
# Alias stuff
#------------------------------
alias ls="ls --color -F"
alias ll='ls -lAgh --group-directories-first --color'
alias saptget="sudo apt-get "



#------------------------------
# Comp stuff
#------------------------------
zmodload zsh/complist 
autoload -Uz compinit
compinit
zstyle :compinstall filename '${HOME}/.zshrc'

#- buggy
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
#-/buggy

zstyle ':completion:*:pacman:*' force-list always
zstyle ':completion:*:*:pacman:*' menu yes select

zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*'   force-list always

zstyle ':completion:*:*:killall:*' menu yes select
zstyle ':completion:*:killall:*'   force-list always


#------------------------------
# Prompt
#------------------------------
function precmd {

    local TERMWIDTH
    (( TERMWIDTH = ${COLUMNS} - 1 ))


    ###
    # Truncate the path if it's too long.

    PR_FILLBAR=""
    PR_PWDLEN=""

    local promptsize=${#${(%):---(%n@%m:%1~)---()--}}
    local pwdsize=${#${(%):-%~}}

    if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
        ((PR_PWDLEN=$TERMWIDTH - $promptsize))
    else
    PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize)))..${PR_HBAR}.)}"
    fi


    ###
    # Get APM info.

    if which ibam > /dev/null; then
    PR_APM_RESULT=`ibam --percentbattery`
    elif which apm > /dev/null; then
    PR_APM_RESULT=`apm`
    fi
}


setopt extended_glob
setopt extendedglob
preexec () {
    if [[ "$TERM" == "screen" ]]; then
    local CMD=${1[(wr)^(*=*|sudo|-*)]}
    echo -n "\ek$CMD\e\\"
    fi
}


setprompt () {
    ###
    # Need this so the prompt will work.

    setopt prompt_subst


    ###
    # See if we can use colors.

    autoload colors zsh/terminfo
    if [[ "$terminfo[colors]" -ge 8 ]]; then
    colors
    fi
    for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
    eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
    eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
    (( count = $count + 1 ))
    done
    PR_NO_COLOUR="%{$terminfo[sgr0]%}"


    ###
    # See if we can use extended characters to look nicer.

    typeset -A altchar
    set -A altchar ${(s..)terminfo[acsc]}
    PR_SET_CHARSET="%{$terminfo[enacs]%}"
    PR_SHIFT_IN="%{$terminfo[smacs]%}"
    PR_SHIFT_OUT="%{$terminfo[rmacs]%}"
    PR_HBAR=${altchar[q]:--}
    PR_ULCORNER=${altchar[l]:--}
    PR_LLCORNER=${altchar[m]:--}
    PR_LRCORNER=${altchar[j]:--}
    PR_URCORNER=${altchar[k]:--}


    ###
    # Decide if we need to set titlebar text.

    case $TERM in
    xterm*)
        PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
        ;;
    screen)
        PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}'
        ;;
    *)
        PR_TITLEBAR=''
        ;;
    esac


    ###
    # Decide whether to set a screen title
    if [[ "$TERM" == "screen" ]]; then
    PR_STITLE=$'%{\ekzsh\e\\%}'
    else
    PR_STITLE=''
    fi


    ###
    # APM detection

    if which ibam > /dev/null; then
    PR_APM='$PR_RED${${PR_APM_RESULT[(f)1]}[(w)-2]}%%(${${PR_APM_RESULT[(f)3]}[(w)-1]})$PR_LIGHT_BLUE:'
    elif which apm > /dev/null; then
    PR_APM='$PR_RED${PR_APM_RESULT[(w)5,(w)6]/\% /%%}$PR_LIGHT_BLUE:'
    else
    PR_APM=''
    fi


    ###
    # Finally, the prompt.

    PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\
$PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\
$PR_WHITE%(!.%SROOT%s.%n)$PR_WHITE@%m $PR_MAGENTA%1~\
$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_HBAR${(e)PR_FILLBAR}$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\
$PR_MAGENTA%$PR_PWDLEN<...<%~%<<\
$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_URCORNER$PR_SHIFT_OUT\

$PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\
%(?..$PR_LIGHT_RED%?$PR_BLUE:)\
${(e)PR_APM}$PR_YELLOW%D{%H:%M}\
$PR_LIGHT_BLUE:%(!.$PR_RED.$PR_WHITE)%#$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
$PR_NO_COLOUR '

    RPROMPT=' $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_BLUE$PR_HBAR$PR_SHIFT_OUT\
($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR'

    PS2='$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
$PR_BLUE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\
$PR_LIGHT_GREEN%_$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
}

setprompt
0
27.01.2020, 20:18
  • 1
    я думаю Ваша подсказка, действительно интересен (хотите совместно использовать ее код в поле комментария ниже?). Хотя это не было полностью, для чего я стрелял, который должен нажать сочетание клавиш для перехода между отправленными командами (т.е. положения прежних подсказок в текущем окне). –  Henrik 01.11.2010, 22:21
  • 2
    , Скорее всего, от Phil! Подсказка ZSH, но многие другие скопировала и изменила для их собственного использования. Phil! страница дает подробное описание/разбивку кода/сценария. Я нашел, может, изменения путем выполнения Google ищут PR_HBAR, одна из переменных. –  Friartek 21.09.2017, 01:20

Теги

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