Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
8
Shawurma
Shawurma
5 месяцев назад
Инкогнито

Представлен проект LinuxPDF — Linux в PDF в браузере⁠⁠

Представлен проект LinuxPDF — Linux в PDF в браузере Программирование, IT, Программист, Linux, Pdf, Новости, Telegram (ссылка)

Разработчик под ником ading2210 представил проект LinuxPDF — Linux в PDF в браузере. Проект открывается только в браузерах на базе Chromium, использующих движок PDFium. Код написан на C и опубликован на GitHub по лицензией GNU General Public License v3.0. «Это Linux, работающий внутри PDF‑файла через эмулятор RISC‑V, основанный на TinyEMU», — пояснил автор решения.

Источник

Показать полностью
Программирование IT Программист Linux Pdf Новости Telegram (ссылка)
9
Shawurma
Shawurma
5 месяцев назад
Инкогнито

А где бэкапы?⁠⁠

источник

А где бэкапы? IT, IT юмор, Программирование, Программист, Юмор, Linux, Сисадмин, Мемы
[моё] IT IT юмор Программирование Программист Юмор Linux Сисадмин Мемы
10
0
liquid.succinate
liquid.succinate
5 месяцев назад

Стоит ли попробовать Linux⁠⁠

Стоит ли вам пробовать операционные системы на ядре Linux?

Если коротко: нет.

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

Минутка духоты

С точки зрения рядового пользователя, проблема всех операционных систем на базе ядра Linux - огромный порог входа, который начинается он с терминологии. По-началу может показаться, что количество разнообразных терминов зашкаливает, но это только так кажется. На начальном этапе нужно запомнить всего ли 5 терминов:

  • Linux - ядро операционной системы, которое отвечает за взаимодействие всего оборудования и пользовательских программ;

  • GNU - это проект в котором работает куча программистов, которые разрабатывают как системные, так и пользовательские программы;

  • Терминал (она же консоль, она же эмулятор терминала, там еще бог знает сколько синонимов) - то черное окошко, куда красноглазые линуксоиды вводят команды руками (на самом деле нет, все команды мы копируем);

  • Окружение рабочего стола - собственно, рабочий стол. То что вы видите, когда включается компьютер и загружается операционная система. Рабочие столы могут быть разными;

Собственно говоря все. Нужно ли знать все это, чтобы начать пользоваться операционной системой? Нет. Оно все работает из коробки.

Для самых душных

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

Никакой рассказ про Linux не может обойтись без рассказа о Фонде свободного программного обеспечения и проекте GNU (GNU is NOT UNIX). GNU - это проект, который разработал очень много системного и прикладного программного обеспечения. Благодаря этим ребятам удалось быстро собрать первый дистрибутив, как только было выпущено первое ядро Linux. Но это тема для отдельной заметки.

Просто держите в голове, что дистрибутивы на базе ядра Linux - это коллективный труд тысяч и тысяч людей. Для краткости я буду говорить Linux, но мы будем помнить, что говоря Linux, имеем в виду "дистрибутив GNU/Linux".

И так начнем

1. Выйти из зоны комфорта

Если вы вам на секунду показалось, что ваша жизнь серая и унылая, какая-то через чур размеренная и спокойная. То настало время попробовать Linux. Это отличная возможность выйти из зоны комфорта. С Linux ваша жизнь наполнится непонимаем того что тут вообще происходит и почему все так сложно.

Linux учит ценить нас то, что мы имеем и периодически напоминает об этом.

2. Почувствовать себя не таким как все

Если вы уже сделали пирсинг везде, где только можно, сделали кучу татуировок, объездили полмира, перепробовали все виды спорта и не знаете чтобы еще такое попробовать, то у меня есть решение для вас - установите Linux.

Здесь есть все мыслимые и немыслимые средства для самовыражения: хотите самый сложный вариант дистрибутива Linux - пожалуйста, не нравится стандартный рабочий сто - тут их десятки, хотите сами настроить визуальную часть - да сколько угодно. Если вы минималистичный минималист - для вас есть супер маленькие дистрибутивы размером в 150МБ. Хотите почувствовать себя хацкером - добро пожаловать в командную строку.

Linux способен объединить разных людей в единое сообщество.

3. Научиться смирению

Если вы давно хотели потренировать стрессоустойчивость, научиться выдержке, смирению и принятию - добро пожаловать. Все мои знания и опыт работы с ОС были умножены на ноль, когда я установил Linux. Оказалось, что я ничего не знаю и ничего не умею. А самое главное - я не умею искать информацию. Что еще более страшное - я не умею задавать вопросы.

Отличная новость состоит в том, что все этому можно очень быстро научиться.

Linux - лучший учитель.

4. Если вы любите сериалы

Да, да! Если вы любите сериалы, постоянно их смотрите, но вам кажется, что все вы как-то впустую тратите свое время - вам обязательно нужно установить Linux. После установки ОС вы будете делать все то же самое, но теперь вы будете смотреть сериалы про Linux. Как он работает, как решить ту или иную проблему, как что-то настроить и еще кучу всего. И здесь ваш скилл просмотра сериалов раскроется на все 100%.

Linux может прокачать вас в самых неожиданных местах.

5. Для интровертов

Если вы - интроверт, но решили выйти из зона комфорта, Linux поможет вам в этом! Начинайте сразу со сложных дистрибутивов, в которых у нас ничего не будет получаться - идите на форумы и общайтесь с людьми. Вы научитесь быстро искать информацию и моментально отделять зерна от плевел. Вы удивитесь на сколько быстро прогрессируете не только в технических навыках, но и софт-скиллс. А самое приятно то, что вам не придется никуда идти. Все это доступно 24/7 прям из вашего дома.

Linux помогает измениться.

Итоги

В любом случае я советую попробовать Linux, поустанавливать разные дистрибутивы, поработать хотя бы месяц на нем. Вам может и не понравиться, вы можете вернуться на прежнюю операционную систему, но теперь вы точно будете знать почему вы выбрали именно ту ОС, которая у вас сейчас установлена. И у вас всегда будут аргументы в пользу вашего выбора.

Я свой выбор сделал. И каждый день приносит мне приятные новые открытия. Я узнаю что-то новое, что-то удивительное. Меня восхищает то на сколько изобретательным может быть человек. Но еще больше я поражаюсь тому как еще вчера казалось бы сложные вещи сегодня становятся обыденными и такими удобными. Наверное, этим мне и нравится Linux.

Показать полностью
Личный опыт Linux GNU Операционная система Юмор Текст Длиннопост
61
siolz12
siolz12
5 месяцев назад
Компьютерные технологии

Как исправить ошибку «Операция не поддерживается» в обновлениях Windows 11⁠⁠

Как исправить ошибку «Операция не поддерживается» в обновлениях Windows 11 Linux, Microsoft, Windows, Программа, Длиннопост, Реферальная ссылка

Эта ошибка обычно возникает, когда:

Вы установили последнее накопительное обновление контрольной точки.

Вы добавили функцию по запросу (FoD) или языковой пакет (LP) без подключения к Интернету.

Вы пытаетесь установить более новое обновление, дважды щелкнув файл.msu.

Проблема возникает из-за того, что ваш компьютер не может обновить FoD или LP без подключения к Центру обновления Windows или WSUS.

Как это решить

Решение простое: нам нужно скачать и переустановить все необходимые обновления. Вот как:

Шаг 1: Загрузите обновление вручную.

Перейдите на сайт каталога Центра обновления Microsoft.

В поле поиска введите номер KB последнего обновления (например, 5043080 за сентябрь 2024 г.). Затем нажмите кнопку «Поиск».

В результатах поиска найдите обновление для архитектуры вашей системы:

Для 64-битных систем ищите «x64-based»

Для систем на базе ARM ищите «ARM64-based».

Нажмите «Загрузить» для вашего типа устройства (x64 или arm64).

В всплывающем окне вы увидите либо несколько файлов.msu, либо только один файл. К ним относятся:

Последний файл обновления

Все файлы накопительных обновлений контрольных точек, выпущенные до этого обновления.

Нажмите на .msuссылку файла, чтобы загрузить его. Если вы видите несколько файлов MSU, загрузите их все, нажав на каждый файл.

Поместите все .msuфайлы, которые вы скачали выше, в новую папку на вашем компьютере (например C:\Updates,). Эта папка не должна содержать никаких других файлов MSU.

Важное примечание: В появившемся диалоговом окне «Загрузка» перечислены все требуемые пакеты.msu. Эти пакеты включают один файл.msu для последнего обновления и файлы.msu для всех накопительных обновлений контрольных точек, выпущенных до этого обновления. Обязательно загрузите все перечисленные файлы, так как они необходимы для полного и правильного обновления.

Шаг 2: Установите обновления

У вас есть два варианта установки обновлений:

Вариант А: Установка вручную

  1. Откройте вашу C:\Updatesпапку.

  2. Если вы загрузили несколько файлов.msu:

  3. Отсортируйте файлы по имени, чтобы убедиться, что вы устанавливаете их в правильном порядке (от самых ранних к самым поздним).

  4. Если вы загрузили только один файл.msu, пропустите этот шаг.

  5. Если у вас несколько файлов, начните с самого старого (с наименьшим номером) .msu. Если у вас только один файл, просто дважды щелкните по нему.

  6. Дождитесь, пока автономный установщик Центра обновления Windows завершит установку.

  7. Если будет предложено перезапустить, выберите «Перезапустить позже», если это не единственный файл обновления.

  8. Если у вас несколько файлов, повторите шаги 3-5 для каждого .msuфайла, от самого старого к самому новому. Если у вас только один файл, вы можете пропустить этот шаг.

  9. После установки всех файлов обновлений (или одного файла обновления) перезагрузите компьютер.

Вариант Б: использование команды DISM для установки всех .msuфайлов

Если вы умеете работать с командной строкой, этот метод более быстрый для установки нескольких файлов MSU:

  1. Нажмите Win+ Xи выберите «Windows Terminal (администратор)» или «PowerShell (администратор)».

  2. В окне терминала введите следующую команду:

  3. dism /online /add-package /packagepath:C:\Updates\*.msu

  4. Нажмите Enter, чтобы выполнить команду.

  5. DISM автоматически установит все обновления в правильном порядке.

  6. После завершения процесса перезагрузите компьютер.

Проверка установки обновления

После перезагрузки компьютера важно убедиться, что все обновления установлены правильно:

  1. Откройте приложение «Настройки» (нажмите Win+ I).

  2. Перейдите в раздел Система > Центр обновления Windows.

  3. Нажмите «Проверить наличие обновлений», чтобы убедиться, что все обновления установлены правильно.

  4. Если новых обновлений не обнаружено, ваша система обновлена.


Выполнив эти шаги, вы сможете устранить ошибку «Операция не поддерживается» и успешно установить все необходимые обновления Windows. Помните, что поддержание системы в актуальном состоянии имеет решающее значение для безопасности, производительности и совместимости с новейшим программным обеспечением.

На Ямаркете

Показать полностью
Linux Microsoft Windows Программа Длиннопост Реферальная ссылка
5
3
Shawurma
Shawurma
5 месяцев назад
Инкогнито

Ну а вдруг⁠⁠

Источник

Ну а вдруг IT, Юмор, IT юмор, Программирование, Программист, DevOps, Linux
[моё] IT Юмор IT юмор Программирование Программист DevOps Linux
2
2182
terebiata
terebiata
5 месяцев назад
Юмор для всех и каждого

Развидеть уже не получится⁠⁠

Развидеть уже не получится Картинка с текстом, Юмор, Иконки, Windows, Циклоп, Сходство, Telegram (ссылка), Linux

Телеграм - https://t.me/roflemem/4478

Показать полностью 1
Картинка с текстом Юмор Иконки Windows Циклоп Сходство Telegram (ссылка) Linux
64
siolz12
siolz12
5 месяцев назад
Компьютерные технологии

Коды ошибок Windows: что это такое, зачем они нужны и как могут помочь пользователю?⁠⁠

оды ошибок: особенности, виды, что означают

Коды ошибок Windows могут относиться буквально к любой части системы. Иногда пользователь видит их во время загрузки, иногда — при обновлении или установке ОС. Также их можно найти в диспетчере устройств и так далее. В статье мы не сможем привести все коды, потому что их сотни, но упомянем наиболее важные.

Ошибки «синего экрана» (BSOD)

Ошибки синего экрана (BSOD) —это критические ошибки, которые могут привести к неожиданному завершению работы или перезапуску компьютера. Они обычно вызваны проблемами с оборудованием, программным обеспечением или драйверами.

Синий экран Windows 10

Синий экран Windows 10

Чаще всего на синем экране пишется код, который может указывать на проблему с конкретным устройством или драйвером. Например, код ошибки синего экрана Windows 0x0000000A: IRQL_not_less_or_equal указывает на то, что возникла проблема с драйвером, памятью устройства или антивирусом. Однако точно сказать, что именно произошло и из-за чего появилась проблема может только специалист, у которого есть доступ к программному обеспечению, позволяющему подробно изучить состояние системы во время возникновения ошибки.

Приведем несколько понятных большинству пользователей кодов ошибок синего экрана Windows 10:

  • 0x0000007D INSTALL_MORE_MEMORY — для работы операционной системы недостаточно памяти, поэтому она не может запуститься;

  • 0x0000001A MEMORY_MANAGEMENT — ошибка в управлении памятью;

  • 0x00000034 CACHE_MANAGER — возникла ошибка в диспетчере кэша файловой системы;

  • 0x0000003F NO_MORE_SYSTEM_PTES — система выполнила слишком много действий ввода-вывода. Скорее всего, какой-то из драйверов запросил большой блок памяти, а система не может его выделить;

  • 0x00000051 REGISTRY_ERROR — возникла серьезная ошибка реестра;

  • 0x0000005D UNSUPPORTED_PROCESSOR — компьютер пытается запустить Windows на процессоре, который не поддерживается операционной системой;

  • 0x00000092 UP_DRIVER_ON_MP_SYSTEM — ошибка загрузки необходимого для работы операционной системы драйвера;

  • 0x000000A2 MEMORY_IMAGE_CORRUPT — обнаружено повреждение исполняемом файле;

  • 0x000000A0 INTERNAL_POWER_ERROR — произошла серьезная ошибка в диспетчере электропитания.

В большинстве случаев пользователю код ошибки загрузки или «падения» Windows 10 ничего не скажет. Если же вы программист и пишете драйвер или другую программу, для разработки которой важно обрабатывать подобные ошибки, вы знаете, что искать их описание нужно на сайте Microsoft в актуальной документации по Windows.

Коды ошибок обновлений

Пользователи Windows 10 знают, как эта операционная система любит обновляться. Не всегда обновления оказываются удачными: в некоторых случаях они могут конфликтовать с уже имеющимися программами или просто «криво» установиться на ваш компьютер. В этом случае стоит изучить код ошибок обновления и попытаться вернуть Windows в рабочее состояние.

Одна из ошибок обновления Windows 10

Одна из ошибок обновления Windows 10

Чаще всего при обновлениях возникают следующие ошибки:

  • 0x80070002 — может указывать на то, что на компьютере выставлено некорректное время. Решить проблему просто: установите автоматическую синхронизацию времени с сервером ОС;

  • 0x80073712 — Windows не может обновиться, потому что повреждены файлы. Нужно восстановить хранилище системы с помощью установочного носителя. Не забудьте перезагрузиться;

  • 0x8004005 — может указывать на ошибку обновления KB3081424. Его лучше всего скачать с официального сайта и установить вручную, а не через Центр обновления;

  • 0x800f081f — для работы программы необходим NetFramework 3.5, а он либо отсутствует, либо его файлы повреждены. Для исправления проблемы удалите NetFramework 3.5 и снова установите его;

  • 0x80070422 — появляется, если пользователь отключит брандмауэр Windows. Некоторые программы не могут корректно работать без него. Просто включите «Защитник Windows», и проблема решится. Если он вам мешает с чем-то работать, рекомендуем настроить список исключений;

  • 0x8007007b — может указывать на два момента: сбой подключения к сети и неверный ключ активации операционной системы. Проверьте сетевые параметры и, если все верно, займитесь активацией Windows;

  • 0x80070005 — появляется при блокировке каких-либо обновлений. Нередко это случается из-за некорректной настройки Windows Defender или из-за нехватки места на системном диске;

  • 0xc0000225 — показывает, что в загрузочном секторе диска возникли ошибки.

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

Коды ошибок установки обновлений Windows могут быть полезны, если вы хотите обратиться в техподдержку за помощью. При необходимости их можно найти в журнале обновлений в разделе в «Центр обновления Windows».

Коды ошибок в диспетчере устройств

Диспетчер устройств — еще одно место, где можно найти коды ошибок в Windows 10. Чтобы увидеть их, необходимо сначала запустить диспетчер устройств. Для этого нажмите сочетание клавиш Win+X и выберите в списке соответствующий пункт.

Всплывающее меню, появляющееся по Win+X

Всплывающее меню, появляющееся по Win+X

Далее в диспетчере устройств найдите оборудование, которое работает неправильно или не работает. Наведите на него курсор мыши и кликните правой кнопкой. В контекстном меню выберите пункт «Свойства». После этого появится окно с информацией об оборудовании. Там будет указана более подробная информация с кодом ошибки.

Окно диспетчера устройств с кодом ошибки устройства

Окно диспетчера устройств с кодом ошибки устройства

Перечислим наиболее наглядные примеры ошибок, которые пользователь может увидеть в диспетчере устройств Windows:

  • «Windows не может опознать это оборудование... (Код 9)». Почти всегда появляется, если повреждено оборудование или драйвер к нему. Рекомендуется обратиться к производителю устройства;

  • «драйверы для этого устройства не установлены. (Код 28)». Установите драйверы вручную, если система не смогла сделать этого самостоятельно. Чаще всего необходимое программное обеспечение можно скачать на сайте производителя;

  • «в настоящее время это аппаратное устройство не подключено к компьютеру... (Код 45)». Это не ошибка в полной мере, просто устройство было подключено, а теперь — нет. Достаточно подключить его заново, чтобы все нормально заработало;

  • «Windows не может определить параметры для этого устройства... (Код 34)». Современные операционные системы легко и эффективно работают практически со всеми комплектующими компьютера, но бывают и исключения. Если для работы устройства или оборудования требуется ручная настройка, Windows выдаст код 34. Обратитесь к производителю (поставщику) за инструкциями.

Коды ошибок в диспетчере задач более наглядные и понятные для пользователя, потому что они на него в какой-то мере рассчитаны. И все равно большинство владельцев компьютеров не сможет сразу понять, что делать, если возникает ошибка инициализации драйвера (код 37) или устройство работает неправильно (код 31). Здесь как никогда актуально золотое правило, которое должен соблюдать любой пользователь компьютерной техники: если вы не понимаете, что делаете, — не делайте.

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

Что делать, если видите код ошибки?

Большинство кодов ошибок Windows 7, 10, 11 рассчитаны на программистов, а не на пользователей, поэтому по большому счету, обычному человеку не нужно о них задумываться. Все, что вам нужно определить, это во время какого действия произошла ошибка. После этого повторите действие или воспользуйтесь инструментами операционной системы, например, центром исправления ошибок.

Если вы столкнулись с любой ошибкой Windows, не важно при запуске или при обновлении, не спешите записывать код. Просто сделайте следующее:

  1. Перезагрузите компьютер. Иногда простая перезагрузка может решить проблему.

  2. Переподключите оборудование, с которым возникла ошибка.

  3. Переустановите драйверы на оборудование, с которым возникла ошибка.

  4. Восстановите Windows на точку до обновления и установите обновление снова. Если можете удалить отдельные компоненты, восстанавливать систему необязательно.

  5. Используйте средства, встроенные в систему, включая устранение неполадок BSOD, обновления и других.

Если ничего не помогает и ошибка Windows повторяется раз за разом, навязчиво демонстрируя вам свой код, самое время обратиться к специалистам.

Другие ошибки ОС Windows

При возникновении ошибки системы Windows пользователь компьютера далеко не всегда видит код. Иногда о проблемах сигнализирует просто оповещение, в котором не содержатся никакие цифры. Кратко опишем и их.

USB-устройство не опознано

Ошибка «USB-устройство не опознано» возникает, когда компьютер не может распознать подключенное к нему USB-устройство. Это может быть вызвано различными причинами, включая:

  • Проблемы с оборудованием. Чаще всего ошибка возникает из-за плохого контакта между разъемом и USB-портом.

  • Пришедший в негодность кабель. Со временем или из-за неправильного хранения кабель может повреждаться. Если произошел внутренний обрыв кабеля, он будет выглядеть целым, но подключенные с его помощью устройства система опознать не сможет.

  • Проблемы с питанием. Если USB-устройство не получает достаточного питания, компьютер может не распознать его.

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

Не удалось завершить/настроить обновление

Можно подумать, что у ошибок типа «Отмена изменений. Не выключайте компьютер» нет кода, потому что пользователь его не видит. Однако, фактически, код все равно есть и найти его можно в журнале обновлений (находится в «Центре обновления Windows»).

Скриншот журнала обновлений Windows 10

Скриншот журнала обновлений Windows 10

В случае появления общей ошибки нужно сначала определить саму проблему. Либо можно перезагрузить компьютер и попробовать установить обновления во второй раз. Иногда проблема решается сама собой, без участия пользователя.

Ошибка при загрузке

Нередко пользователи сталкиваются с ошибкой загрузки Windows под названием (кодом) inaccessible boot device. Это означает, что операционная система по какой-то причине не может обратиться к устройству (разделу), с которого она загружается. Причин может быть множество. Но можно попытаться применить стандартный подход:

  1. Перезагрузитесь. Предварительно отключите все флешки и внешние жесткие диски, чтобы ОС не приходилось выбирать между носителями при запуске.

  2. Запустите ПК в безопасном режиме и откатите обновления, если проблема появилась во время или после их установки.

  3. Проверьте оборудование, с которого должна грузиться ОС. Если оно не работает, замените его (Windows придется переустановить).

И, как обычно, если простые действия вроде перезагрузки или замены оборудования не помогли, обращайтесь в сервисный центр. Специалисты лучше знают, как восстановить работоспособность Windows, независимо от того, с какой неполадкой вы столкнулись.

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

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

Ну а чтобы вам не пришлось обращать внимания на эти ошибки я очень вам рекомендую поставить линукс, который очень хорошо работает на этом ноуте

Показать полностью
Linux Информационная безопасность Тестирование Программа Текст Длиннопост
1
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
2
siolz12
siolz12
5 месяцев назад
Компьютерные технологии

Частые ошибки программирования на Bash⁠⁠

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

Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)

Данный текст является вольным переводом вики-страницы «Bash pitfalls» по состоянию на 13 декабря 2008 года. В силу викиобразности исходника, этот перевод может отличаться от оригинала. Поскольку объем текста слишком велик для публикации целиком, он будет публиковаться частями.

1. for i in `ls *.mp3`

Одна из наиболее часто встречающихся ошибок в bash-скриптах — это циклы типа такого:

for i in `ls *.mp3`; do # Неверно! some command $i # Неверно! done

Это не сработает, если в названии одного из файлов присутствуют пробелы, т.к. результат подстановки команды ls *.mp3 подвергается разбиению на слова. Предположим, что у нас в текущей директории есть файл 01 - Don't Eat the Yellow Snow.mp3. Цикл for пройдётся по каждому слову из названия файла и $i примет значения: "01", "-", "Don't", "Eat", "the", "Yellow", "Snow.mp3".

Заключить всю команду в кавычки тоже не получится:

for i in "`ls *.mp3`"; do # Неверно! ...

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

На самом деле использование ls совершенно излишне: это внешняя команда, которая просто не нужна в данном случае. Как же тогда правильно? А вот так:

for i in *.mp3; do # Гораздо лучше, но... some command "$i" # ... см. подвох №2 done

Предоставьте bash'у самому подставлять имена файлов. Такая подстановка не будет приводить к разделению строки на слова. Каждое имя файла, удовлетворяющее шаблону *.mp3, будет рассматриваться как одно слово, и цикл пройдёт по каждому имени файла по одному разу.

Дополнительные сведения можно найти в п. 20 Bash FAQ.

Внимательный читатель должен был заметить кавычки во второй строке вышеприведённого примера. Это плавно подводит нас к подвоху №2.

2. cp $file $target

Что не так в этой команде? Вроде бы ничего особенного, если вы абсолютно точно знаете, что переменные $file и $target не содержат пробелов или подстановочных символов.

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

cp "$file" "$target"

Без двойных кавычек скрипт выполнит команду cp 01 - Don't Eat the Yellow Snow.mp3 /mnt/usb, и вы получите массу ошибок типа cp: cannot stat `01': No such file or directory. Если в значениях переменных $file или $target содержатся символы *, ?, [..] или (..), используемые в шаблонах подстановки имен файлов («wildmats»), то в случае существования файлов, удовлетворяющих шаблону, значения переменных будут преобразованы в имена этих файлов. Двойные кавычки решают эту проблему, если только "$file" не начинается с дефиса -, в этом случае cp думает, что вы пытаетесь указать ему еще одну опцию командной строки.

Один из способов обхода — вставить двойной дефис (--) между командой cp и её аргументами. Двойной дефис сообщит cp, что нужно прекратить поиск опций:

cp -- "$file" "$target"

Однако вам может попасться одна из систем, в которых такой трюк не работает. Или же команда, которую вы пытаетесь выполнить, не поддерживает опцию --. В таком случае читайте дальше.

Ещё один способ — убедиться, что названия файлов всегда начинаются с имени каталога (включая ./ для текущего). Например:

for i in ./*.mp3; do cp "$i" /target ...

Даже если у нас есть файл, название которого начинается с "-", механизм подстановки шаблонов гарантирует, что переменная будет содержать нечто вроде ./-foo.mp3, что абсолютно безопасно для использования вместе с cp.

3. [ $foo = «bar» ]

В этом примере кавычки расставлены неправильно: в bash нет необходимости заключать строковой литерал в кавычки; но вам обязательно следует закавычить переменную, если вы не уверены, что она не содержит пробелов или знаков подстановки (wildcards).

Этот код ошибочен по двум причинам:

1. Если переменная, используемая в условии [, не существует или пуста, строка

[ $foo = "bar" ]

будет воспринята как

[ = "bar" ]

что вызовет ошибку «unary operator expected». (Оператор "=" бинарный, а не унарный, поэтому команда [ будет в шоке от такого синтаксиса)

2. Если переменная содержит пробел внутри себя, она будет разбита на разные слова перед тем, как будет обработана командой [:

[ multiple words here = "bar" ]

Даже если лично вам кажется, что это нормально, такой синтаксис является ошибочным.

Правильно будет так:

[ "$foo" = bar ] # уже близко!

Но этот вариант не будет работать, если $foo начинается с -.

В bash для решения этой проблемы может быть использовано ключевое слово [[, которое включает в себя и значительно расширяет старую команду test (также известную как [)

[[ $foo = bar ]] # правильно!

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

Возможно, вы видели код типа такого:

[ x"$foo" = xbar ] # тоже правильно!

Хак x"$foo" требуется в коде, который должен работать в шеллах, не поддерживающих [[, потому что если $foo начинается с -, команда [ будет дезориентирована.

Если одна из частей выражения — константа, можно сделать так:

[ bar = "$foo" ] # так тоже правильно!

Команду [ не волнует, что выражение справа от знака "=" начинается с -. Она просто использует это выражение, как строку. Только левая часть требует такого пристального внимания.

4. cd `dirname "$f"`

Пока что мы в основном говорим об одном и том же. Точно так же, как и с раскрытием значений переменных, результат подстановки команды подвергается разбиению на слова и раскрытию имен файлов (pathname expansion). Поэтому мы должны заключить команду в кавычки:

cd "`dirname "$f"`"

Что здесь не совсем очевидно, это последовательность кавычек. Программист на C мог бы предположить, что сгруппированы первая и вторая кавычки, а также третья и четвёртая. Однако в данном случае это не так. Bash рассматривает двойные кавычки внутри команды как первую пару, и наружные кавычки — как вторую.

Другими словами, парсер рассматривает обратные кавычки (`) как уровень вложенности, и кавычки внутри него отделены от внешних.

Такого же эффекта можно достичь, используя более предпочтительный синтаксис $():

cd "$(dirname "$f")"

Кавычки внутри $() сгруппированы.

5. [ "$foo" = bar && "$bar" = foo ]

Нельзя использовать && внутри «старой» команды test или её эквивалента [. Парсер bash'а видит && вне скобок и разбивает вашу команду на две, перед и после &&. Лучше используйте один из вариантов:

[ bar = "$foo" -a foo = "$bar" ] # Правильно! [ bar = "$foo" ] && [ foo = "$bar" ] # Тоже правильно! [[ $foo = bar && $bar = foo ]] # Тоже правильно!

Обратите внимание, что мы поменяли местами константу и переменную внутри [ — по причинам, рассмотренным в предыдущем пункте.

То же самое относится и к ||. Используйте [[, или -o, или две команды [.

6. [[ $foo > 7 ]]

Если оператор > используется внутри [[ ]], он рассматривается как оператор сравнения строк, а не чисел. В некоторых случаях это может сработать, а может и не сработать (и это произойдёт как раз тогда, когда вы меньше всего будете этого ожидать). Если > находится внутри [ ], всё ещё хуже: в данном случае это перенаправление вывода из файлового дескриптора с указанным номером. В текущем каталоге появится пустой файл с названием 7, и команда test завершится с успехом, если только переменная $foo не пуста.

Поэтому операторы > и < для сравнения чисел внутри [ .. ] или [[ .. ]] использовать нельзя.

Если вы хотите сравнить два числа, используйте (( )):

((foo > 7)) # Правильно!

Если вы пишете для Bourne Shell (sh), а не для bash, правильным способом является такой:

[ $foo -gt 7 ] # Тоже правильно!

Обратите внимание, что команда test ... -gt ... выдаст ошибку, если хотя бы один из её аргументов — не целое число. Поэтому уже не имеет значения, правильно ли расставлены кавычки: если переменная пустая, или содержит пробелы, или ее значение не является целым числом — в любом случае возникнет ошибка. Просто тщательно проверяйте значение переменной перед тем, как использовать её в команде test.

Двойные квадратные скобки также поддерживают такой синтаксис:

[[ $foo -gt 7 ]] # Тоже правильно!

7. count=0; grep foo bar | while read line; do ((count++)); done; echo «number of lines: $count»

На первый взгляд этот код выглядит нормально. Но на деле переменная $count останется неизменной после выхода из цикла, к большому удивлению bash-разработчика. Почему так происходит?

Каждая команда в конвейере выполняется в отдельной подоболочке (subshell), и изменения в переменной внутри подоболочки не влияют на значение этой переменной в родительском экземпляре оболочки (т.е. в скрипте, который вызвал этот код).

В данном случае цикл for является частью конвейера и выполняется в отдельной подоболочке со своей копией переменной $count, инизиализированной значением переменной $count из родительской оболочки: «0». Когда цикл заканчивается, использованная в цикле копия $count отбрасывается и команда echo показывает неизменённое начальное значение $count («0»).

Обойти это можно несколькими способами.

Можно выполнить цикл в своей подоболочке (слегка кривовато, но так проще и понятней и работает в sh):

# POSIX compatible count=0 cat /etc/passwd | ( while read line ; do count=$((count+1)) done echo "total number of lines: $count" )

Чтобы полностью избежать создания подоболочки, используйте перенаправление (в Bourne shell (sh) для перенаправления также создаётся subshell, поэтому будьте внимательны, такой трюк сработает только в bash):

# только для bash! count=0 while read line ; do count=$(($count+1)) done < /etc/passwd echo "total number of lines: $count"

Предыдущий способ работает только для файлов, но что делать, если нужно построчно обработать вывод команды? Используйте подстановку процессов:

while read LINE; do echo "-> $LINE" done < <(grep PATH /etc/profile)

Ещё пара интересных способов разрешения проблемы с субшеллами обсуждается в Bash FAQ #24.

8. if [grep foo myfile]

Многих смущает практика ставить квадратные скобки после if и у новичков часто создаётся ложное впечатление, что [ является частью условного синтаксиса, так же, как скобки в условных конструкциях языка C.

Однако такое мнение — ошибка! Открывающая квадратная скобка ([) — это не часть синтаксиса, а команда, являющаяся эквивалентом команды test, лишь за тем исключением, что последним аргументом этой команды должна быть закрывающая скобка ].

Синтаксис if:

if COMMANDS then COMMANDS elif COMMANDS # необязательно then COMMANDS else # необязательно COMMANDS fi

Как видите, в синтаксисе if нет никаких [ или [[!

Ещё раз, [ — это команда, которая принимает аргументы и выдаёт код возврата; как и все нормальные команды, она может выводить сообщения об ошибках, но, как правило, ничего не выдаёт в STDOUT.

if выполняет первый набор команд, и в зависимости от кода возврата последней команды из этого набора определяет, будет ли выполнен блок команд из секции «then» или же выполнение скрипта продолжится дальше.

Если вам необходимо принять решение в зависимости от вывода команды grep, вам не нужно заключать её в круглые, квадратные или фигурные скобки, обратные кавычки или любой другой синтаксический элемент. Просто напишите grep как команду после if:

if grep foo myfile > /dev/null; then ... fi

Обратите внимание, что мы отбрасываем стандартный вывод grep: нам не нужен результат поиска, мы просто хотим знать, присутствует ли строка в файле. Если grep находит строку, он возвращает 0, и условие выполняется; в противном случае (строка в файле отсутствует) grep возвращает значение, отличное от 0. В GNU grep перенаправление >/dev/null можно заменить опцией -q, которая говорит grep'у, что ничего выводить не нужно.

9. if [bar="$foo"]

Как было объяснено в предыдущем параграфе, [ — это команда. Как и в случае любой другой команды, bash предполагает, что после команды следует пробел, затем первый аргумент, затем снова пробел, и т.д. Поэтому нельзя писать всё подряд без пробелов! Правильно вот так:

if [ bar = "$foo" ]

bar, =, "$foo" (после подстановки, но без разделения на слова) и ] являются аргументами команды [, поэтому между каждой парой аргументов обязательно должен присутствовать пробел, чтобы шелл мог определить, где какой аргумент начинается и заканчивается.

10. if [ [ a = b ] && [ c = d ] ]

Снова та же ошибка. [ — команда, а не синтаксический элемент между if и условием, и тем более не средство группировки. Вы не можете взять синтаксис C и переделать его в синтаксис bash простой заменой круглых скобок на квадратные.

Если вы хотите реализовать сложное условие, вот правильный способ:

if [ a = b ] && [ c = d ]

Заметьте, что здесь у нас две команды после if, объединённые оператором &&. Этот код эквивалентент такой команде:

if test a = b && test c = d

Если первая команда test возвращает значение false (любое ненулевое число), тело условия пропускается. Если она возвращает true, выполняется второе условие; если и оно возвращает true, то выполняется тело условия.

Показать полностью
Linux Гайд Текст Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии