Создайте собственный Linux ОС на Карте флэш-памяти с интерфейсом USB

Похоже, что grep думает, что Ваш XML-файл является двоичным, а не текст.

Если Вы хотите вынудить grep рассматривать Ваш файл как текст независимо от содержания, можно использовать --text переключатель (принимающий GNU grep), как так:

grep --text "searchString" ./file.xml | wc -l

Обратите внимание, что, если все Вы хотите, должен считать соответствия, вероятно, лучше использовать grep --count вместо того, чтобы передавать по каналу через wc -l, сохранение Вас канал и вызов процесса.

4
19.10.2014, 03:22
4 ответа

knoppix

Я думаю, есть 2 способа подходить к этому:
- Вы начинаете с нуля и построить все сами (LFS, вероятно, хороший выбор). Это дает вам максимальный контроль и отличный способ учиться, но это также довольно крутое и много времени.
- Есть некоторые существующие дистрибутив, которые вам нравятся, и возьмите его в качестве отправной точки.

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

Обычно это сделано, имея USB-накопитель, где изменения вашего живого сеанса автоматически сохраняются, но я не хотел идти по этому маршруту. Были некоторые довольно существенные изменения, материал, которые мне не нужно на CD, который просто будет тратить пространство, но в основном я хотел, чтобы один автономный CD только для чтения только. Поэтому я пошел на решательский маршрут.

Если KNOPPIX соответствует вашему законопроекту, вы можете превратить его в почти все, что вам нравится с этим (посмотрите на все производные Knoppix!). В дополнение к моим изменениям, я полностью изменил опыт загрузки, поместите небольшое графическое меню Grub, сделали скрипт init, добавил новые варианты загрузки ...

Ресурсы:
- Knoppix Remastering Howto
- Настройка / ремастеринг Раздел на форумах.

2
27.01.2020, 20:49

Вы можете попробовать что-то вроде ремикса Fedora http://fedoraproject.org/wiki/Remix, а также Linux с нуля http://www.linuxfromscratch.org/. Затем попробуйте поместить их на USB.

4
27.01.2020, 20:49

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

Unetbootin предлагает большинство hte основных дистрибутивов как живых, так и обычных версий.

ss of unetbootin

ss of unetbootin

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

Например, взгляните на документацию Ubuntu Persistence documentation :

Эта страница объясняет, как улучшить LiveCD только для чтения, добавив постоянное файловое хранилище на другом диске. В более поздней версии Ubuntu версии, вы можете вместо этого использовать usb-создатель инструмент для создания загрузочный USB флэш-накопитель с Live CD, и его пользовательский интерфейс имеет возможность добавить постоянную память на тот же самый USB-накопитель

0
27.01.2020, 20:49

Вот еще один, использующий форматирование вывода из ps :

#!/usr/bin/sh -f
printf '%-8.7s%-8s%s\n' $(
     ps -o uname=UID,pid=PID,args=APPNAME | 
     sed -n '1p;s/\( [0-9]* \).*\(-Dapp.name=[^ ]*\).*/\1\2/p'
)

В зависимости от его формата последовательность, для каждого 3 его аргументов printf будет напечатана:

  1. Первое пространство, заполненное справа до стандартной ширины табуляции 8 символов и усеченное максимум до 7 символов.
  2. Второе пространство, заполненное справа стандартной шириной табуляции 8 символов.
  3. После третьего следует \n ewline.

Подстановка команды не цитируется специально . Обратите внимание на -f , следующий за sh в bang-line - он указывает, что оболочка должна не glob - поэтому нет опасности случайного создания имен файлов на основе специальных символов оболочки. Замена команды будет разделена на значения по умолчанию $ IFS - космоса, tab, newline.

В подмене команды ps печатает столбцы 3 - с UID , PID и APPNAME . ps указан POSIX не для печати мест в любом поле , за исключением поля args = . Таким образом, первые два столбца являются $ IFS безопасными. Тем не менее, чтобы получить строку -Dapp.name из поля args = , ее необходимо обработать.

Поэтому sed фильтрует его. В строках, содержащих по крайней мере два космический и строку -Dapp.name = , она печатает:

  1. Первая последовательность космоса, затем ноль или больше чисел, затем космос и все, что предшествует ему...
  2. Последняя последовательность, содержащая строку -Dapp.name = , за которой следуют все символы перед следующим пробелом. Замены

sed не влияют на заголовки столбцов, напечатанные с 1p , поскольку они не содержат -Dapp.name = последовательностей. Все остальные строки удаляются из выходных данных.

После применения printf к sed произвел разделение на $IFS , вы можете ожидать продукцию как следующее:

UID     PID     APPNAME
sas     24431   -Dapp.name=myApp
sas     24431   -Dapp.name=myApp
sas     24431   -Dapp.name=myApp
sas     24431   -Dapp.name=myApp
sas     24431   -Dapp.name=myApp

, По-моему, тем не менее, этот заявление sed работало бы немного лучше:

sed -n '1p;s/\( [0-9]* \).*-Dapp.name=\([^ ]*\).*/\1\2/p'

Это - в основном то же, за исключением того, что полосы -Dapp.name = часть от \2 , таким образом, это печатает как...

UID     PID     APPNAME
sas     24431   myApp
sas     24431   myApp
sas     24431   myApp

Потому что, поскольку это только печать строк, содержащих последовательность -Dapp.name = в любом случае, включая это своего рода просто нагромождение, которое в противном случае можно воспринимать как должное.

-121--78154-

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

Другими словами, вместо того, чтобы обращаться непосредственно к несколько трудным аргументам командной строки dd, создайте сценарий в bash (или Python и т.д.), который принимает аргументы dd, которые вас интересуют,использование синтаксиса опций, который удобнее использовать. Сценарий проверяет, что аргументы разумны, и распечатывает аргументы (и, возможно, окончательную командную строку dd), чтобы можно было убедиться, что все в порядке. И затем сценарий просит вас "OK, чтобы продолжить? [y/N] "поэтому вы должны ввести y , если вы хотите, чтобы сценарий действительно запускал dd командную строку, которая создана для вас.

Поэтому, если вы никогда не хотите, чтобы сценарий записывался в/dev/sda или его разделы, вы можете сделать это невозможным. Чтобы убедиться, что устройства ввода и вывода выбраны, скрипт может использовать команду blkid для получения UUID и метки диска для этих устройств. И т.д.

-121--58569-

Другой дистрибутив, который стоит рассмотреть, - Puppy Linux . Это очень компактный, но довольно мощный и работает на широком спектре оборудования, включая старые машины с ограниченной оперативной памятью. Он имеет различные варианты создания загрузочных USB-дисков из запущенной установки Puppy. (Как ни странно, сайты Puppy не предлагают готовую загрузку USB: с этого нужно получить ISO и загрузиться, а затем создать загрузочный USB. Это возможно создать загрузочный USB из ISO напрямую, если вы знаете, как обойти Linux, но это гораздо проще сделать во время работы в Puppy).

Но основная причина, по которой я упомянул Щенка здесь, это то, что он легко позволяет вам создать индивидуальную версию. Просто установите все необходимые дополнительные компоненты и удалите/удалите ненужные компоненты, а затем попросите Puppy создать образ текущей настройки. Щенок имеет свои собственные репо, но он также может использовать различные другие репо, как Ubuntu и Slackware, так что у вас есть много программного обеспечения на выбор.

Отказ от ответственности: Я не связан с разработкой Puppy Linux, но он был моим любимым портативным дистрибутивом уже более 5 лет.

3
27.01.2020, 20:49

Теги

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