У меня была такая же проблема на 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
С тех пор у меня не было никаких проблем с моим корпусом.
Используйте 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
, чтобы отредактировать этот файл в другом буфере.
Существует плагин Zsh, созданный специально для того, что вы запрашиваете: https://github.com/psprint/ztrace
Если вы не против повторно -запустить команду, результат которой вам нужен, добавьте ее в свой .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
.