Bash-скрипты, часть 4: ввод и вывод

Переменная окружения $ SHELL

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

echo $SHELL

Давайте начнем ракушка:

fish

Теперь давайте еще раз проверим, что переменная окружения говорит:

echo $SHELL

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

Когда мы запускаем Оболочка, мы получаем приветственное приветственное сообщение и командная строка меняется. Что может быть удивительным, так это среда по-прежнему держит путь к исполняемый файл, , Это нормально — это нормально.

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

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

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

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

Ошибка DirectX в SCP: Secret Laboratory


«DirectX Runtime Error»

«DXGI_ERROR_DEVICE_RESET»

«DXGI_ERROR_DEVICE_HUNG»

«DXGI_ERROR_DEVICE_REMOVED»

  • Первым делом необходимо установить «чистую» версию драйвера вашей видеокарты (то
    есть не стоит сразу спешить устанавливать тот же GeForce Experience, ничего лишнего
    от AMD и аудио).
  • При наличии второго монитора попробуйте отключить его, а также отключите G-Sync и
    любые другие виды дополнительных/вспомогательных устройств.
  • Воспользуйтесь средством проверки системных файлов для восстановления повреждённых
    или отсутствующих системных файлов.
  • В случае если используете видеокарту от Nvidia, тогда попробуйте включить

    «Режим
    отладки»

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

    FurMark

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

  • Если вдруг столкнулись с другими ошибками, тогда рекомендуем переустановить DirectX,
    но перед этим лучше на всякий случай удалить старую версию (при этом обязательно
    удалите в папке перед переустановкой все файлы начиная с

    «d3dx9_24.dll»

    и
    заканчивая

    «d3dx9_43.dll»

    ).

Как решить проблему, если вы – пользователь

Выше я рассмотрела способы устранения ошибки 403 Forbidden для владельцев сайта. Теперь же разберу методы исправления в случаях с пользователем.

  • Сначала надо убедиться, что проблема заключается именно в вашем устройстве. Внимательно проверьте, правильно ли вы ввели URL сайта. Может, в нем есть лишние символы. Или, наоборот, какие-то символы отсутствуют.
  • Попробуйте загрузить страницу с другого устройства. Если на нем все будет нормально, значит, проблема кроется именно в используемом вами девайсе. Если нет – надо перейти к последнему шагу.
  • Еще хороший вариант – немного подождать и обновить страницу. Делается это либо кликом по иконке возле адресной строки браузера, либо нажатием на комбинацию Ctrl + F5. Можно и без Ctrl, на ваше усмотрение.
  • Если ничего из вышеперечисленного не помогло, надо очистить кэш и cookies. Провести такую процедуру можно через настройки браузера. Для этого необходимо открыть историю просмотров, чтобы через нее перейти к инструменту очистки. Эту же утилиту часто можно найти в настройках, в разделе «Конфиденциальность и безопасность». В новом окне нужно отметить пункты с кэшем и cookies и нажать на кнопку для старта очистки.
  • Ошибка 403 Forbidden возникает и тогда, когда пользователь пытается открыть страницу, для доступа к которой сначала надо осуществить вход в систему. Если у вас есть профиль, просто войдите в него и попробуйте вновь загрузить нужную страницу.
  • Если вы заходите со смартфона, попробуйте отключить функцию экономии трафика в браузере. Она находится в настройках, в мобильном Google Chrome под нее отведен отдельный раздел. 
  • Последний шаг – подождать. Когда ни один способ не помогает, значит, неполадки возникли именно на сайте. Возможно, его владелец уже ищет способы решения проблемы и приступает к их исполнению, но это может занять какое-то время. Пользователям остается только дождаться, когда все работы будут завершены.

Еще одна допустимая причина появления ошибки сервера 403 – доступ к сайту запрещен для определенного региона или страны, в которой вы находитесь. Бывает и такое, что сайт доступен для использования только в одной стране. Если вы используете VPN, попробуйте отключить его и перезагрузите страницу. Вдруг получится все исправить. 

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

Как пользоваться Linux в WSL

Чтобы открыть установленную вами среду Linux, просто откройте меню «Пуск» и найдите установленный вами дистрибутив. Например, если вы установили Kali Linux, запустите ярлык Kali Linux.

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

При первом запуске среды Linux вам будет предложено ввести имя пользователя и пароль UNIX. Они необязательно должны совпадать с вашим именем пользователя и паролем Windows, но будут использоваться в среде Linux.

Например, если вы введёте «alex» и «hackware» в качестве учётных данных, ваше имя пользователя в среде Linux будет «alex», а пароль, который вы используете в среде Linux, будет «hackware» — независимо от вашего имени пользователя Windows и его пароля.

Вы можете запустить установленную среду Linux, выполнив команду wsl. Если у вас установлено несколько дистрибутивов Linux, вы можете выбрать среду Linux по умолчанию, запускаемую этой командой.

Если у вас установлена Kali Linux, вы также можете запустить команду kali, чтобы установить её. Для openSUSE Leap 15 SP1 используйте opensuse-15-sp1. Для SUSE Linux Enterprise Server 15 SP1 используйте SLES-15-SP1. Эти команды перечислены на странице каждого дистрибутива Linux в Магазине Windows.

Вы по-прежнему можете запустить среду Linux по умолчанию, выполнив команду bash, но Microsoft утверждает, что это устарело. Это означает, что команда bash может перестать работать в будущем.

Если у вас есть опыт использования оболочки Bash в Linux, Mac OS X или других платформах, вы будете как дома.

В Kali Linux и Ubuntu вам нужно добавить к команде префикс sudo, чтобы запустить её с правами root. Пользователь «root» на платформах UNIX имеет полный доступ к системе, как пользователь «Администратор» в Windows. Ваша файловая система Windows в среде оболочки Bash находится в /mnt/c.

Ещё одна важная особенность дистрибутивов Linux, запущенных этим образом, в том, что прямо в консоли Linux вы можете выполнять команды Windows.

Связанная статья: Что такое sudo

Используйте те же команды терминала Linux, которые вы используете в этой операционной системе. Если вы привыкли к стандартной командной строке Windows с её командами DOS, вот несколько основных команд, общих для Bash и Windows:

  • Изменить каталог: cd в Bash, cd или chdir в DOS
  • Список содержимого каталога: ls в Bash, dir в DOS
  • Перемещение или переименование файла: mv в Bash, move и rename в DOS
  • Скопировать файл: cp в Bash, copy в DOS
  • Удалить файл: rm в Bash, del или erase в DOS
  • Создайте каталог: mkdir в Bash, mkdir в DOS
  • Используйте текстовый редактор: vi или nano в Bash, edit в DOS

Связанная статья: Азы работы в командной строке Linux (часть 1), а также последующе части

Важно помнить, что, в отличие от Windows, оболочка Bash и её среда, имитирующая Linux, чувствительны к регистру. Другими словами, «File.txt» с большой буквы отличается от «file.txt» без заглавной буквы.. Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.

Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.

Вам нужно будет использовать команду apt для установки и обновления программного обеспечения среды Debian, Kali Linux, Ubuntu. Не забудьте указать перед этими командами префикс sudo, чтобы они запускались от имени пользователя root — Linux-эквивалента Администратора. Вот команды apt, которые вам нужно знать:

Загрузить обновлённую информацию о доступных пакетах:

sudo apt update

Установить пакет приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):

sudo apt install ИМЯ-ПАКЕТА

Удаление пакета приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):

sudo apt remove ИМЯ-ПАКЕТА

Поиск доступных пакетов (замените СЛОВО словом, по которому нужно искать пакеты в именах и описаниях):

sudo apt search СЛОВО

Загрузите и установите последние версии установленных пакетов:

sudo apt full-upgrade

Если вы установили дистрибутив SUSE Linux, вместо этого вы можете использовать команду zypper для установки программного обеспечения.

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

Программное обеспечение, устанавливаемое в оболочке Bash, ограничено оболочкой Bash. Вы можете получить доступ к этим программам из командной строки, PowerShell или где-либо ещё в Windows, но только если вы запустите команду вида

bash -c КОМАНДА

История команд Linux

Большинство задач, связанных с историей команд, мы будем выполнять либо с помощью команды history, либо с помощью оболочки. В истории хранится последняя 1000 команд, которые вы выполняли. Чтобы посмотреть всю историю для этого терминала просто запустите команду history без параметров:

Для дополнительных действий с историей вам могут понадобиться опции. Команда history linux имеет очень простой синтаксис:

$ history опции файл

В качестве файла можно указать файл истории. По умолчанию история для текущего пользователя хранится в файле ~/.history, но вы можете задать, например, файл другого пользователя. А теперь рассмотрим опции:

  • -c — очистить историю;
  • -d — удалить определенную строку из истории;
  • -a — добавить новую команду в историю;
  • -n — скопировать команды из файла истории в текущий список;
  • -w — перезаписать содержимое одного файла истории в другой, заменяя повторяющиеся вхождения.

Наиболее полезной для нас из всего этого будет опция -c, которая позволяет очистить историю команд linux:

Так вы можете посмотреть только последние 10 команд:

А с помощью опции -d удалить ненужное, например, удалить команду под номером 1007:

Если вы хотите выполнить поиск по истории bash, можно использовать фильтр grep. Например, найдем все команды zypper:

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

Чтобы показать предыдущую команду просто нажмите стрелку вверх, так можно просмотреть список раньше выполненных команд.

Вы можете выполнить последнюю команду просто набрав «!!». Также можно выполнить одну из предыдущих команд указав ее номер «!-2»

Чтобы выполнить поиск по истории прямо во время ввода нажмите Ctrl+R и начните вводить начало команды.

Если вы знаете, что нужная команда была последней, которая начиналась на определенные символы, например, l, то вы можете ее выполнить, дописав «!l»:

Если нужная команда последняя содержала определенное слово, например, tmp, то вы можете ее найти, использовав «!?tmp»:

Если вы не хотите, чтобы выполняемая команда сохранилась в истории просто поставьте перед ней пробел.

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

Игра вылетает в случайный момент

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

  • Для видеокарты NVidia

    ПКМ

    по пустому месту на рабочем столе выбираете «Панель управления NVidia» «Настройки 3D» «Управление настройками 3D» «Настройки программы»;

  • Выбираете игру Genshin Impact в раскрывающемся меню во втором раскрывающемся меню следует выбрать предпочтительный графический процессор программы;
  • Для видеокарты AMD

    ПКМ

    по пустому месту на рабочем столе выбираете «Настройки Radeon» «Настройки» «Дополнительные настройки» «Питание» «Параметры приложения с переключаемой графикой» (или «Свойства видеокарты» «Производительность видеокарты» «Двойная графика AMD Radeon» «Использовать двойную графику AMD Radeon»);

  • Выбираете из списка программ Genshin Impact (если игры нет, тогда добавьте её исполнительный .exe-файл) в столбце «Настройки видеокарты» установите для игры «Высокая производительность» или «Самая высокая производительность».

Какие еще причины могут быть

По мимо всех проблем, вина может лежать на вашем провайдере, домашней сети, или ещё какой-нибудь сети общего пользования). Ваш IP адрес маскируется с помощью прозрачного прокси сервера, NAT или другой подобной технологии. Это происходит таким образом, что для серверов DepositFiles, RapidShare запросы от нескольких пользователей Вашего провайдера/сети видны как запросы с одного и того же адреса.

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

Но нет худа без добра и при использовании такого платного аккаунта, вы никогда не встретите табличку вроде «ошибка скачивания» Ещё проблему ошибки скачивания, можно решить, путём подключения маршрутизатора от поставщика услуг, который назначает вам динамический IP-адрес каждый раз при подключении устройства к Интернету, то проблема ошибки скачивания решится очень просто. В этом случае, просто перезагрузите маршрутизатор ADSL. Это позволит вам отключиться от интернета, на некоторое время, а потом соединиться снова с помощью ADSL, но будет назначен новый IP-адрес, и вы можете скачать с Rapidshare или других подобных сайтов нужные файлы.

Также можно закрыть Internet Explorer или Firefox для того, чтобы очистить скрипты или (cookies) текущих сессий.

Наверняка многие из вас пробовали скачивать файлы с различных обменников. Вот самые распространенные из них – rapidshare, depositefiles, rghost и тд. Случается такое, что при попытке получить желаемый файл, сервис выдает такое сообщение «Ошибка при скачивании файла» , и процесс прерывается. В данном материале мы попробуем разобраться с этой ситуацией, понять причины, и какие действия можно предпринять.

Установка

Загрузка в режиме EFI

  1. Убедитесь, что вы загружены в режиме UEFI.
  2. Проверьте .
  3. Корректно примонтируйте Системный Раздел EFI (ESP). В этой статье используется для обозначения точки монтирования.
    Примечание: systemd-boot EFI не может загружать бинарные файлы из других разделов. По этой причине, рекомендуется монтировать ваш ESP в . В случае, если вы хотите разделить с ESP, обратитесь к для большей информации.
  4. Если ESP не примонтирован к , копируйте ваше ядро и initramfs в ESP.
    Примечание: Чтобы сохранить автоматическое обновление ядра в ESP, взгляните на для адаптации некоторых юнитов systemd. Если ваш Системный Раздел EFI монтируется автоматически, вам, вероятно, потребуется добавить в файл внутри . Тогда в текущем запущенном ядре во время загрузки будет установлен модуль , до того, как произойдет обновление ядра, которое может заменить модуль для текущей версии, что сделает невозможным монтирование до перезагрузки.
  5. Введите следующую команду для установки systemd-boot:
    # bootctl --path=esp install

    Она скопирует двоичный файл systemd-boot на Системный Раздел EFI ( и — оба идентичны на x86-64 системах) и добавит systemd-boot как EFI приложение по умолчанию (загрузочная запись по умолчанию), загружаемое с помощью EFI Boot Manager.

  6. Наконец, для правильного функционирования вы должны загрузчик.

Загрузка в режиме BIOS

Важно: Это нерекомендованный процесс

Вы с таким же успехом можете установить systemd-boot, если загружаетесь в режиме BIOS. Тем не менее, от вас всё равно требуется сообщить прошивке запускать EFI файл systemd-boot при загрузке:

  • у вас есть работающий EFI shell где-нибудь.
  • ваш интерфейс прошивки предоставляет вам соответствующий способ настройки EFI файла, который будет загружен во время загрузки.

Если вы имеете такую возможность, процесс установки будет проще: перейдите в ваш EFI shell или интерфейс настройки вашей прошивки и измените EFI файл по умолчанию вашей машины на ( или если у вас 32 битная системная прошивка).

Примечание: интерфейс прошивки в Dell Latitude сериях предоставляет все необходимое, чтобы установить EFI загрузку, но EFI Shell не сможет осуществить запись в ПЗУ компьютера.

Обновлениe

В отличие от предыдущего отдельного пакета gummiboot, который автоматически обновляется с помощью скрипта, обновления systemd-boot теперь должны производиться пользователем вручную. Однако, эта процедура может быть автоматизирована с использованием pacman hooks.

Вручную

systemd-boot (bootctl(1)) предполагает, что ваш Системный Раздел EFI примонтирован в .

# bootctl update

Если ESP не примонтирован в , опцией можно явно указать точку монтирования, например:

# bootctl --path=esp update

Примечание: Также эту команду следует использовать при переходе с gummiboot, перед удалением этого пакета. Однако, если этот пакет уже был удален, выполните .

Автоматически

AUR (Русский) пакет AUR предоставляет для автоматизации процесса обновления. Установка этого пакета добавит hook, который будет выполняться при каждом обновлении пакета .

В качестве альтернативы, вы можете разместить следующий pacman hook в каталоге /etc/pacman.d/hooks/:

/etc/pacman.d/hooks/systemd-boot.hook
Type = Package
Operation = Upgrade
Target = systemd


Description = Updating systemd-boot...
When = PostTransaction
Exec = /usr/bin/bootctl update

Решение проблем Linux

Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.

Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:

  • Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
  • File or Directory does not exist — файл или каталог не существует
  • No such file or Directory — нет такого файла или каталога
  • Not Found — Не найдено, файл или ресурс не обнаружен
  • Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
  • is empty — означает, что папка или нужный файл пуст
  • Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
  • Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.

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

Как получить доступ к службам Windows из Linux на WSL

Рассмотрим другой вариант — на Windows запущен сервер (веб, FTP и пр.) или сетевая служба, можно ли к ней подключиться из Linux на WSL? Можно! Нам нужно знать IP адрес Windows в виртуальной сети, созданной для WSL.

Из Linux этот IP адрес можно посмотреть командой:

ip route show default

IP адрес Windows это 172.26.160.1.

В самой Windows также можно посмотреть этот IP, причём как минимум двумя способами.

В терминале с помощью команды:

ipconfig

В графическом интерфейсе, в Диспетчере задач на вкладке «Производительность»:

Теперь используйте этот IP адрес для подключения к веб-серверу, FTP или любой другой службе Windows из Linux на WSL.

Ошибки работы с PHP сессиями в Unix/Linux

Хочу описать статью с возможными ошибками работы PHP и сессиями в Unix/Linux. Думаю многие сталкиваются и будет полезно знать как решать ту, или иную ошибку.

Обновлял заббикс и после его обновления, перестал корректно работать, посмотрел лог и увидел:

2017/12/08 21:15:48  40014#40014: *395 FastCGI sent in stderr: "PHP message: PHP Warning:  require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/zabbix/include/classes/core/ZBase.php on line 269

-=== Ошибка 1 ===-

Можно увидить следующую ошибку:

Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

Возникла у меня при установке phpmyadmin.

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

-=== Ошибка 2 ===-

При работе с апачем, я получил:

Warning: session_start() : open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/httpdocs/index.php on line 6
Warning: Unknown: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0

-=== Ошибка 3 ===-

Получил еще ошибку:

FastCGI sent in stderr: “PHP message: PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0” while reading upstream, client: 37.***.***.56, server: rtfm.co.ua, request: “POST /wp-admin/admin-ajax.php HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9009”, host: “rtfm.co.ua”, referrer: “http://linux-notes.org/wp-admin/post.php?post=5496&action=edit&message=10”

Другие ошибки я буду добавлять по мере их возникновения.

Функции

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

Распаковка архива

Чтобы распаковать архив не указывая тип распаковщика и его аркументы, а выполнив всего лишь команду вида
Добавьте следующий код в

ex () {
 if  ; then
   case $1 in
     *.tar.bz2) tar xvjf $1   ;;
     *.tar.gz)  tar xvzf $1   ;;
     *.tar.xz)  tar xvfJ $1   ;;
     *.bz2)     bunzip2 $1    ;;
     *.rar)     unrar x $1    ;;
     *.gz)      gunzip $1     ;;
     *.tar)     tar xvf $1    ;;
     *.tbz2)    tar xvjf $1   ;;
     *.tgz)     tar xvzf $1   ;;
     *.zip)     unzip $1      ;;
     *.Z)       uncompress $1 ;;
     *.7z)      7z x $1       ;;
     *)         echo "'$1' Не может быть распакован при помощи >ex<" ;;
   esac
 else
   echo "'$1' не является допустимым файлом"
 fi
}

Упаковка в архив

Упаковка в архив командой — при этом архив будет в Домашней папке.

pk () {
if  ; then
case $1 in
tbz)       tar cjvf $2.tar.bz2 $2      ;;
tgz)       tar czvf $2.tar.gz  $2       ;;
tar)      tar cpvf $2.tar  $2       ;;
bz2)    bzip $2 ;;
gz)        gzip -c -9 -n $2 > $2.gz ;;
zip)       zip -r $2.zip $2   ;;
7z)        7z a $2.7z $2    ;;
*)         echo "'$1' не может быть упакован с помощью pk()" ;;
esac
else
echo "'$1' не является допустимым файлом"
fi
}

Настройка истории Linux

Linux – очень настраиваемая и гибкая система, поэтому настроить здесь можно все, в том числе и историю. По умолчанию выводится только номер команды, но вы можете выводить и ее дату. Для этого нужно экспортировать переменную HISTORYFORMAT вместе нужным форматом:

export HISTTIMEFORMAT=’%F %T ‘ $ history

Для форматирования можно использовать такие модификаторы:

  • %d – день;
  • %m – месяц;
  • %y – год;
  • %T – штамп времени;
  • %F – штамп даты.

Вы можете указать какие команды не стоит отображать, например, не будем выводить ls -l, pwd и date:

export HISTIGNORE=’ls -l:pwd:date:’

Также можно отключить вывод одинаковых команд:

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

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

export PROMPT_COMMAND=”$history -a; history -c; history -r;”

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

export PROMPT_COMMAND=”$history -a; history -c; history -r;” $ export HISTCONTROL=ignoredups $ export HISTTIMEFORMAT=’%F %T ‘

Готово, теперь осталось сохранить изменения и перезапустить ваши терминалы. Теперь ваша история будет выводить дату, игнорировать дубли и синхронизироваться между терминалами.

History Command in Linux (Bash History)

4 Февраля 2020
&vert;

Терминал

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

Использование команд и расширений истории

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

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

При наборе выполняется n-я команда из списка истории, а команда n строк назад. В следующем примере мы выполняем команду на линии :

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

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

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

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

Введите для выполнения предыдущей команды:

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

то же самое, что и выполняет последнюю команду из списка истории, от второй до последней и т. д.

Расширение позволяет повторно запустить последнюю команду, заменив «word1» на «word2». Если вы случайно набрали вместо вас, вы можете повторить команду, используя правильное слово с:

Используйте команду для фильтрации вывода. Например, чтобы просмотреть все команды, включая «nano», вы должны выполнить:

Теперь, если вы хотите перезапустить команду, просто наберите:

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

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

Обратитесь к руководству Bash для получения дополнительной информации о расширении истории , модификаторах и обозначениях.

Сохранение списка истории

По умолчанию при запуске нового сеанса Bash читает список истории из файла. Список команд, которые выполняются в текущем сеансе, сохраняется в памяти и сохраняется в файл при закрытии сеанса.

Если вы открыли несколько сеансов оболочки, сохраняется только история сеанса, который был закрыт последним.

Опция позволяет сохранить текущий список истории сеанса в файл:

Вариант записывает полный список истории в файл истории.

Очистка истории

Команда позволяет очистить полный список истории или удалить определенные части.

Чтобы очистить список истории, используйте параметр:

Чтобы удалить определенную строку или строки между начальной и конечной позициями из списка истории, используйте параметр.

Например, чтобы удалить строки между 365 и 375 (включая эти строки), введите:

Если вы указываете только один номер опции, команда удаляет данную строку.

Когда используется отрицательное целое число, строки отсчитываются от конца списка истории.

Приведенные выше команды очищают список истории, который хранится в памяти, но не удаляет записи из файла на диске. Чтобы очистить файл, вам нужно записать в файл список истории:

Изменение истории поведения

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

По умолчанию Bash хранит 500 строк в списке истории команд. Переменная позволяет изменять это значение. Чтобы установить его на 10000, добавьте следующую строку в ваш файл:

Переменная принимает разделенный двоеточиями список значений , которые определяют , каким образом команды сохраняются в списке истории:

  • — команды, начинающиеся с пробела, не сохраняются в списке истории.
  • — дубликаты команд не сохраняются.
  • — это стенография, включающая в себя и .

Когда переменная установлена, Bash добавляет метку времени выполнения команды в каждой строке.

Например, если вы установите:

История будет отображаться в следующем формате:

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

2. Удаление файлов кэширования

В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.

Для удаления кэша шрифтов:

sudo rm -rf /var/cache/fontconfig/

Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):

sudo rm -rf /var/cache/apt/

Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):

sudo rm -rf /var/cache/pacman/

Удаление кэша справочных страниц:

sudo rm -rf /var/cache/man/

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

Проблемы с командами в терминале

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

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

Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open …, can not read … и так далее.

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

Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.

# Stuck on a black screen before picker

This is likely some error either on your firmware or OpenCore, specifically it’s having troubles loading all the drivers and presenting the menu. The best way to diagnose it is via OpenCore’s DEBUG Build and checking the logs whether OpenCore actually loaded, and if so what is it getting stuck on.

Situations where OpenCore did not load:

  • If there are no logs present even after setting up the DEBUG version of OpenCore with Target set to 67, there’s likely an issue either with:
    • Incorrect USB Folder Structure
    • Firmware does not support UEFI

Situations where OpenCore did load:

  • Check the last line printed in your logs, there will likely be either a .efi driver that’s been loaded or some form of ASSERT
    • For ASSERT’s, you’ll want to actually inform the developers about this issue here: Acidanthera’s Bugtracker(opens new window)
    • For .efi drivers getting stuck, check over the following:
      • HfsPlus.efi load issues:
        • Try using HfsPlusLegacy.efi(opens new window) instead
        • This is recommended for CPUs that do not support RDRAND, mainly relevant for 3rd gen Ivy bridge i3 and older
        • VBoxHfs.efi(opens new window) is another option however is much slower than HfsPlus’s version
      • HiiDatabase.efi load issues:

        Likely your firmware already supports HiiDatabase, so the driver is conflicting. Simply remove the driver as you don’t need it.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: