Как использовать вывод команды без использования мыши?

У меня была такая же проблема на Mint 18, но найденное мной решение, вероятно, можно применить к * Ubuntu 15/16, а также к аналогичным дистрибутивам Linux. Для меня, однако, я получал безвозвратную блокировку системы вскоре после того, как увидел ошибки UAS в dmesg.

В моем корпусе установлен чип ASMedia ASM1053, у которого, похоже, есть проблемы с модулем UAS моего ядра (4.4.0-72-generic).

После небольшого поиска я объединил два найденных решения: это, о котором YtvwlD упомянул и , это .

Сначала вы должны получить идентификатор оборудования вашего устройства с помощью команды lsusb . Как только вы это сделаете, найдите внешний / корпус / мост. Это может выглядеть, как показано ниже:

Bus 002 Device 002: ID 174c:5136 ASMedia Technology Inc. ASM1053 SATA 6Gb/s bridge

В моем случае идентификатор 174c: 5136 .

После этого вы должны создать файл в /etc/modprobe.d/ , чтобы соответствующее устройство было занесено в черный список из-за использования UAS (что вызывает проблемы), обновите образ initramfs, используя update -initramfs , затем перезагрузитесь, чтобы изменения вступили в силу.

$ echo options usb-storage quirks=174c:5136:u | sudo tee /etc/modprobe.d/blacklist_uas.conf
$ sudo update-initramfs -u
$ sudo reboot

Конечно, замените «174c: 5136» на идентификатор оборудования вашего моста / корпуса / внешнего устройства.Если все сделано правильно, вы должны увидеть подобное сообщение от dmesg при подключении устройства после перезагрузки:

[   93.985002] usb 4-1: UAS is blacklisted for this device, using usb-storage instead

С тех пор у меня не было никаких проблем с моим корпусом.

6
13.04.2017, 15:36
3 ответа

Используйте emacs , запустите подчиненную оболочку и введите свою команду. Вывод будет доступен в буфере оболочки и может быть выбран с помощью обычных команд. В качестве альтернативы

select file in $(find <whatever>); do vi $file; break; done

подход emacs более практичен, если вы уже знаете редактор. Emacs может запускать произвольные «подчиненные процессы», т.е. интерактивные команды с их вводом и выводом, подключенными к буферу emacs. Итак, Mx shell-mode запускает подчиненную оболочку, вы вводите команду find , и вывод этой команды доступен в буфере.

$ find .. -name "*.sh"
../self.sh
../scheme/random.sh
../scheme/sample.sh

Теперь вы перемещаете курсор в файл, который вас интересует, и введите Mx find-file-at-point , чтобы отредактировать этот файл в другом буфере.

1
27.01.2020, 20:30

Существует плагин Zsh, созданный специально для того, что вы запрашиваете: https://github.com/psprint/ztrace

0
27.01.2020, 20:30

Если вы не против повторно -запустить команду, результат которой вам нужен, добавьте ее в свой .zshrcфайл:

# Load completion menu feature.
zmodload zsh/complist

# `fc -e :` re-runs the last history entry.
# ${(f)…} splits the string on newlines.
copy-output() compadd ${(f)"$( fc -e : 2> /dev/null )"}

# Create a completion menu widget & bind it.
zle -C copy-output menu-select copy-output 
bindkey '^[!' copy-output

Теперь вы можете нажать Alt! , чтобы повторно запустить предыдущую команду и получить меню, из которого вы можете выбрать, что вставить в новую командную строку.

Итак, для вашего примера:

% find..
fileA
fileB
% vi <ALT-!>
fileA  fileB

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

.
1
05.11.2021, 09:44

Теги

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