Я имел ту же проблему в течение долгого времени теперь и все еще не мог выяснить точно почему. Мало того, что это происходит с моим ПК, это также происходит с моими мобильными устройствами, подключенными к той же сети. Почему это происходит?
Сначала определите, где APT-Get, используя , где apt-get
или , который apt-get
; Я предполагаю, что это в / usr / bin / apt-get
Тогда создайте файл в / usr / local / bin / apt-get с этим контентом:
#!/bin/bash
# (commands to run before apt-get)
/usr/bin/apt-get "$@"
сейчас Chmod + x / usr / local / bin / apt-get
.
Это должно выжить все обновления распределения, но не следует изменить поведение APT-Get (помимо выполнения команды, прежде чем делать что-либо еще). Как бонус, он может анализировать аргументы командной строки только для того, чтобы запустить команду, когда она действительно нужна.
(этот ответ основывается на ответе от Мухаммед ETEMADDAR , объединенный с обратной связью изру)
Используйте вырезать
, чтобы извлечь нужные столбцы (предоставив нам номера столбцов), и sed
, чтобы изменить текст:
grep ... | cut -d, -f2,9,10,11,26 | sed -e 's/CURRENCY/META/' -e 's/"//g'
выходы
20150518 11:36:09,7A104802E728,4529800000,123456789,META
Другой подход, так как ваши входные данные выглядят как хорошо сформированный CSV (игнорируя часть перед первой двоеточием), является использовать язык с надлежащим CSV-синтаксическим анализатором
grep ... | ruby -rcsv -ne '
csv_text = $_[/(?<=:).+/] # ignore up to the first colon
row = CSV.parse_line csv_text # parse
out = row.values_at(1,8,9,10,25) # extract your fields
out[-1]["CURRENCY"] = "META" # text replacement of last field
puts CSV.generate_line out # output
'
-121--166789- Я сделал то же самое со мной сегодня вечером после использования Pendrivelinux Universal USB installer для создания загрузочного USB, однако моя проблема исчезла после того, как я попытался использовать утилиту rawrite (Я полагаю, что dd будет работать, если вы создаете USB в системе Linux)
-121--196138-В файле .bashrc можно использовать псевдоним. Например, поместите в корневой файл .bashrc:
alias apt-get='echo blahblah && apt-get'
Аргументы командной строки будут автоматически добавлены в конец псевдонима.
Просто замените echo blahblah
на требуемую команду.
Но в этом случае она работает только при выполнении команд как root (не sudo).
Сначала определите, где APT-Get, используя , где apt-get
; Я предполагаю, что это в / usr / bin / apt-get
как muru говорит, что вы можете создать скрипт имени APT-GET
в / usr / local / bin /
, который находится до / usr / bin
в Debian и Ubuntu $ PATH
. Затем добавьте следующий код ( / usr / local / bin / apt-get
):
#!/bin/bash
commands to run before apt-get
/usr/bin/apt-get "$@"
Спасибо Muru для предложения в качестве комментариев.
Другой способ:
Конечно, есть другой способ, который не лучше, чем предыдущий.
Вы можете MV / USR / BIN / APT-GET / USR / BIN / APT-GET2
Затем создайте файл в / usr / bin / apt-get с этим контентом :
#!/bin/bash
commands to run before apt-get
apt-get2 "$@"
Теперь CHMOD + X / USR / BIN / APT-GET
Сообщение об ошибке выдается apt-listbugs
. Если вы очистите этот пакет (сейчас), вы сможете использовать aptitude
или apt-get
снова...
Затем можно попытаться переустановить apt-listbugs
из репозиториев LMDE, но следует убедиться, что все их зависимости также являются версиями LMDE. Вы можете использовать apt-show-versions
, чтобы определить, откуда ваши пакеты поступают из в массовом порядке .
Кроме приведенных выше ответов, вы также можете использовать wifi-menu
на Arch Linux. Он будет отображать графический интерфейс на основе интерфейса командной строки, и вы можете выбрать WiFi из списка WiFi, который будет показан. wifi-меню
зависит от диалогового окна
. Сначала необходимо установить его.
Попробуйте использовать псевдоним в файле .bashrc
. Он работает только при входе в учетную запись, которой соответствует файл.
Синтаксис псевдонима:
alias newcommand = 'command1; command2; command3'
Так что ваша линия может выглядеть немного так:
alias apt-get = 'firstcommand; apt-get '
Или это:
alias apt-get =' firstcommand & & apt-get '
Со второй apt-get
будет выполняться только в том случае, если firstcommand
выполняется успешно.
Как насчет использования хуков apt pre/post-invoke?
По сути, это похоже на dpkg pre/post-invoke hooks, но для apt (который, как я предполагаю, является важным в вашем сценарии использования). AFAIK есть и другие, но я использовал только этот.
Например,
$ sudo cat /etc/apt/apt.conf.d/05new-hook
APT::Update::Pre-Invoke {"your-command-here"};