Fingercomp
Гуру-
Публикации
1 629 -
Зарегистрирован
-
Посещение
-
Победитель дней
283
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Fingercomp
-
Костыльно немного, но можно. -- ЗАДАЁМ переменную os.setenv("здесь имя переменной", "здесь значение, STRING ОБЯЗАТЕЛЕН!!") -- ЧИТАЕМ переменную (и выводим на экран, в данном случае) print(os.getenv("здесь имя переменной")) Кроме того, если эта программа вызывается программой, можно передать через аргумент окружения. Например: process = require("process") -- много кода -- -- Сохраняем в переменную "hi": local toProg = "hi" -- Делаем переменную глобальной _G.toProg = toProg -- _G — у нас это стандартное окружение + переменная process.load("путь ко второй программе", _G, nil, "secondProg") -- Удаляем на всякий пожарный _G.toProg = nil
-
OpenOS. От дуба до Мастера. Часть пятая. [|||]
Fingercomp добавил запись в блоге в Fingercomp's Playground
Последняя, пятая часть мастеровления полностью посвящена шеллу и его программам. Переменные окружения, алиасы и с ними связанные команды — я не врал. Сложность: высокая 75% Скучность: высокая 75% Дубовость: для продвинутых 80% Ключевой частью OpenOS является шелл. Это программа, которая выполняет команды, рисует командную строку, в общем, занимается предоставлением удобства пользователю. ШЕЛЛ OPENOS. Сразу предупреждаю, что мы не будем рассматривать в данном гайде именно API шелла, только как программу. Из места — в карьер и... Переменные окружения Это такие переменные, доступ к которым есть у всех приложений. По умолчанию создаются: "EDITOR" = "/bin/edit". Редактор по умолчанию. "HISTSIZE" = "10". Размер истории. "HOME" = "/home". Домашняя папка. "IFS" = " ". Символ для разделения. "MANPATH" = "/usr/man:.". Пути к папкам с файлами справочной системы. "PAGER" = "/bin/more". Программа типа more, осуществляющая функцию постраничного вывода. "PATH" = "/bin:/usr/bin:/home/bin:.". Основная переменная системы, указывает папки, где искать программы. "PS1" = "$PWD# ". Собственно, выражение, которое указывается в интерактивном режиме шелле перед полем команд. "PWD" = "/". Текущая рабочая директория, меняется, например, при вызове cd. "SHELL" = "/bin/sh". Шелл по умолчанию. "TMPDIR" = "/tmp". Временная директория. Таким образом, если изменить эти параметры и запустить использующие эти переменные программы, то можно изменять их поведение по собственным нуждам. set и unset Используются для этого две программы: set и unset. У первой следующий синтаксис: set [<название>[=<значение>]]. Если не указать никаких аргументов, просто перечислятся все переменные окружения. Если указать только название, то под определённым порядковым номером запишется название, если же ему присвоить значение, то возникнет пара <название>=<значение>. Главное — не ошибитесь при изменении важных переменных типа PATH. Чтобы снять значение переменной, пропишите unset <название переменной> [название второй переменной] [...]. Алиасы Что такое алиасы? Это создание команды, которая будет вызывать другую. В общем, можно считать это ещё одним типом ссылки. Из стандартных алиасов имеются: dir = ls list = ls move = mv rename = mv copy = cp del = rm md = mkdir cls = clear less = more rs = redstone view = edit -r help = man ? = man cp = cp -i В данном перечне при написании команды слева выполняется команда справа. Это может быть удобно, например, чтобы не писать длинное "redstone", а только "rs". alias и unalias Но не это главное. Вы сами можете устанавливать алиасы! Первая команда alias имеет следующий синтаксис: alias [<Ваш вариант> [исполняемая команда]]. Если не указать аргументов в принципе, покажутся все алиасы, если указать только название — значение алиаса. Устанавливается только при указании значения. Чтобы снять алиас, достаточно команды unalias. unalias <название>. user* Приватность данных всё больше и больше волнует смертных человекоподобных существ пользователей ПК. OpenOS не остался исключением, и итог тому — предоставляемым самим модом функции управления пользователями. Тут всё просто. Есть в списке — гуляй, нет в списке — сорри, аксесс денайд. На основании уже сказанного мной текста, логично предположить, что детальное описание и использование лежит в глубине документации по API OpenComputers, и Вы будете правы. Единственная причина, почему я пишу об этом — для операций управления списком предназначены две простейшие утилиты useradd и userdel. Синтаксис useradd: useradd <игрок>. Ограничение состоит в том, что игрок этот должен быть в онлайне. И ограничение это накладывает сам мод, не система. К сожалению. Соответственно, логично, что userdel <игрок> удаляет игрока из списка пользователей. Если список пуст, то компьютер доступен всем. Если Вы сначала добавили друга, а затем захотели прописать себя — увы и ах. Так что прописывайте себя первым пользователем, если ещё собираетесь пользоваться компьютером. В любом случае, если Вы совершили олошность, то могут спасти ситуацию администратор или этот счастливый игрок. * и ? Обратили внимание на заголовок предыдущей записи? Тогда поговорим о масках. Нет, совсем не карнавальных. Представим следующую стркутуру: /|+ clones| || + clone001| + clone002| + clone003| + clone004| + clone101| + clone110| + colne001| + colne101| + colne|+ clonesEX|+ docsEX|+ docs | + doc_future-bak + doc*nature+smth + docFcreature_smth + doc2progsmth + doc.no + totallyNOTa.doc Задача попроще. Предположим, мы хотим перетащить в папку clonesEX все файлы из папки clones, при этом копировать папку нельзя. Что делать? Здесь нам на помощь придут эти самые маски. Конкретнее — *. Звёздочка в пути заменяет нуль и более символов. Соответственно, команда: mv clones/* clonesEX. Отмотаем время назад и допустим, что нужно перетащить только файлы с colne. Подумав, составляем команду: cp clones/colne* cloneEX. К слову, эта команда также захватит с собою colne. А что, если нам нужны именно файлы с номерами?.. Звёздочка тут не поможет, поэтому воспользуемся знаком вопроса (?). Он заменяет ровно один символ. В нашем случае достаточно такого: cp clones/colne??? clonesEX. Или даже такого: cp clones/colne?* clonesEX. По этому принципу перетащим все файлы, начинающиееся с doc, заканчивающиеся smth и имеющего название, отделённого двумя символами от doc и smth, из docs в docsEX. Подумайте, какую команду можно использовать. Ответ: ТАБ! Завершим рассказ о шелле потрясающей кавишей [TAB]. Суть её проста и огромна — если Вы ввели часть пути, то нажатие ТАБа дополнит до первого совпадения. Ещё одно нажатие — следующее совпадение и т. д. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СТАНДАРТНЫХ ПРОГРАММ? Удивительно, но мы, наконец-то, рассмотрели все стандартные утилиты и принципы работы (пишите в commentsStart, если это не так). Потому я закрываю цикл "OpenOS. От дуба до Мастера". В будущем будут другие записи, которые, вероятно, рассмотрят вопрос OpenOS в плане предоставляемых АПИ и скрытых открытых возможностей. Благодарю за прочтение. ← -
Веб сервер на Lua. Часть 1: Установка
Fingercomp прокомментировал LeshaInc запись в блоге в IncluderWorld
О, неужели?)) Жду следующую часть, интересно, что писать будешь)) -
OpenOS. От дуба до Мастера. Часть четвёртая. [||·]
Fingercomp добавил запись в блоге в Fingercomp's Playground
Продолжаем беседу об операционной системе Bolge OpenOS. В этой записи речь пойдёт про те самые оставшиеся утилиты, которые облегчат жизнь программисту. Сложность: средне 60% Скучность: высокая 80% Дубовость: для продвинутых 65% Операционная система OpenOS в первую очередь покрывает вопросы (относительно) удобного программирования для OpenComputers. Конечно, это не исключает сторонние редакторы типа Sublime Text или Notepad++, но иметь такие средства нужно и важно. Давайте же я расскажу о них. УТИЛИТЫ ДЛЯ ПРОГРАММИРОВАНИЯ. Простой перечень утилит с пояснениями. address Наипростейшая из наипростейших утилит, может соперничать даже с print("Hello, world!"). Просто выводит адрес компьютера. Интереса ради, пропишите view /bin/address.lua. components Ещё раз я расскажу об этой программке. Она выводит список компонентов, подключённых к системе. Можно задать фильтр, тогда выведутся только указанные компоненты. Если же указать ключ -l (о них в следующей части), то для каждого компонента будут указываться методы. dmesg Данная программа случает все события и выводит информацию о них на экран. Можно указать фильтры событий для просулшивания через пробел. flash Та самая программа, которая записывает код на EEPROM. Ключ -l выводит код о текущего EEPROM, -r записывает код в файл, а -q заставляет не задавать вопросов. hostname Данная программа бессмысленна без пакета network. Но, тем не менее, она может устанавливать и выводить текущее имя компьютера. lua Если запустить без аргумента или с ключом -i, то запустится интерактивный сеанс Lua-интерпретатора, где можно запускать программы. При этом все библиотеки автоматически переносятся в _G, так что дополнительно подключать их не требуется. Если же указать файл, то скрипт предпримет попытку запуститься и выдаст сообщение при обнаружении ошибки. primary Синтаксис: primary <компонент> [адрес]. Если аргумент [адрес] опущен, то выводится информация о первичном компоненте, иначе — предпринимается попытка сделать данное устройство первичным. rc Программа управления сервисами (о них — в следующих частях). Синтаксис: rc <сервис> [команда] [аргументы]. redstone Предоставляет простой интерфейс управления редстоун-сигналами на первичной ред-карте/ред-блоке. По умолчанию синтаксис следующий: redstone <сторона> [значение]. Если [значение] не задано, выводится информация о текущем. Иначе — устанавливается. Для многожильных кабелей синтаксис следующий: redstone -b <сторона> <цвет> [значение]. Работа необязательного аргумента такая же. Для блоков, предоставляющих интерфейс беспроводной передачи ред-сигнала, команды следующие: redstone -w [сила]. Если [сила] задана, устанавливается значение на беспроводном передатчике. Иначе — выводится текущее значение силы. redstone -f [частота]. Устанавливает частоту, если задан аргумент, иначе — выводит текущую. sh Запускает сеанс командной строки, если не передано аргументов и io.stdin не перенаправлен. Иначе — читает команды из этого потока и выполняет их. umount Синтаксис: umount <точка монтирования>. Отмонтирует устройство по данной точке монтирования. Вот так. Следующая часть целиком и полностью посвящена шеллу, ему родимому. Это: переменные окружения, алиасы, ключи, аргументы, особенности работы шелла и прочее. Пока жду комментариев по этой части, пишите, если что-то непонятно. ← → -
[OC Updates] Обновление OpenComputers до версии 1.5.18
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
А как я без мануала-то разберусь?)) -
[OC Updates] Обновление OpenComputers до версии 1.5.18
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
А мы их завтра кушать будем, да кислотой запивать)) Погляжу, может даже обзор выложу в блог. -
[OC Updates] Обновление OpenComputers до версии 1.5.18
Fingercomp добавил запись в блоге в Fingercomp's Playground
Ей! Мы дождались, наконец, действительно интересного и полезного обновления OpenComputers — 1.5.18!! Ну, и это ещё четвёртая запись за сегодня)) Сегодня в выпуске: Добавлено: Наномашинки!! Новая система баффов/дебаффов и эффектов. См. 'video. Добавлена функция вращения голограмм. Голограммный проектор, очевидно, второго уровня. Транспозер может быть использован как апгрейд. [*]Изменено: Благодаря payonel, улучшен механизм автодополнения по [Tab]. Дроны теперь должны сниматься исключительно ключом. Шифт-клик без ключа теперь ведёт к включению дрона, как роботов или компьютеров. [*]Пофикшено: Потенциальный дюп жидкостей при использовании бочек из ExtraUtilities. Поведение os.date()/os.time(). Несколько других мелких багов. Потеециальный NullPointerException, если робот использует анализатор. Проблемы с рендером определённый предметов, которые держат роботы. 1.8: проблемы рендера при наведении на кнопки в GUI. -
OpenOS. От дуба до Мастера. Часть третья. [||·]
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
У меня планы сначала базовый слой написать, а потом всякие шаманства описывать. Но могу и в следующую часть впихнуть. -
OpenOS. От дуба до Мастера. Часть третья. [||·]
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
В одном из последних обновлений появился блочный режим работы жёстких дисков)) Можешь теперь писать обёртку под такой режим, с разделами и прочими фишками. Хотя мне проще просто скрафтить ещё один диск на 2 МБ -
OpenOS. От дуба до Мастера. Часть третья. [||·]
Fingercomp добавил запись в блоге в Fingercomp's Playground
Третья часть мануала по OpenOS, где я расскажу об идее монтирования файловых систем, а затем разбавлю повестью о пайпинге. Сложность: средне 60% Скучность: средне 55% Дубовость: для продвинутых 50% ФАЙЛОВЫЕ СИСТЕМЫ, ЗАКЛЮЧЕНИЕ. УСТРОЙСТВА И МОНТИРОВАНИЕ Приступаем к самой сложной штуке в OpenOS — это монтирование файловых систем. Итак, начнём. Логика работы Итак, начнём с того, что каждый накопитель — это устройство. У устройства есть свой адрес, который показывается при наведении мышкой. Устройство имеет определённую вместимость. Имеет количество свободной и занятой области. И, наконец, характеризуется наличием метки "Read-Only". Допустим, это устройство У имеет адрес Address, вместимость 2 МБ и занято 0.5 МБ. Другое устройство Д имеет адрес sserddA и такие же характеристики. В OpenOS выбирается одно основное устройство, которое становится корнем. У нас / = У. Оно имеет все стандартные файлы и папки. Но как перейти на устройство Д? Оказывается, в папке /mnt/ собраны ссылки на все устройства. Именами ссылок являются первые 3 буквы адреса устройства. Что интересно, даже если У — корень, ссылка на устройство всё равно будет в /mnt. Вот так: / Устройство У|│┅│+ mnt | |+ Add Устройство У |+ sse Устройство Д |┅ Монтирование Но что, если если у нас таких устройств — 5, например? Помнить все 5 адресов, пусть даже трёх первых букв, писать длинные пути — не-у-доб-но. Согласитесь? Поэтому в ОС есть возможность ручного монтирования. То есть, проще говоря, можно создать ссылку на устройство в любом желаемом месте. Вот только ln здесь не поможет — это ведь не файл, а совершенно другой раздел. Для этих целей служит команда mount. У неё два варианта работы: mount -a <адрес> <место назначения> — создаёт ссылку на устройство, адрес которого начинается с <адрес>, в заданной директории <место назначения>. При этом указаннной папки не должно быть до этого на диске. После этого в выбранной директории будут все файлы с устройства. Для устройства Д — mount -a sse /devD/. mount <путь /mnt/адрес> <место назначения> — также создаёт ссылку на устройство в месте назначения, только вместо адреса используется путь типа /mnt/адрес. Для устройства Д это — mount /mnt/sse /devD/. Директория, которая является ссылкой на устройство, наызвается точкой монтирования. df Эта команда отобразит все подключённые в данный момент хранилища данных, укажет точку монтирования и состояние. Для нашего компьютера было бы показано следующее: Filesystem Used Available Use% Mounted onAddress 512k 2M 25% /Address 512k 2M 25% /mnt/addsserddA 512k 2M 25% /mnt/sse Как видите, если у файловой системы несколько точек монтирования, то будет показана информация о каждой из них. label Это у нас названия простые и запоминающиеся. В реальности вместо них были бы эти ужасные длинные непонятные адреса. И чтобы сделать их понятными, можно повесить метку. Что проще: "835f48a-5df9-eb6a-36cb-6ab452d8f16a" или "Programs"? Думаю, всё же второе. Чтобы поставить такую метку, воспользуемся командой label, у которой опять два варианта работы: label -a <метка или часть адреса> <метка> — устанавливает данному диску метку. label <точка монтирования> <метка> — устанавливает диску по данной точке монтирования метку. Кстати, если не указывать метку, то выведется информация о текущей. И ещё, установочная дискета имеет метку "openos", а жёсткий диск с ОС — "OpenOS" по умолчанию. Информация При монтировании первым способом можно вместо части адреса ввести метку. ПАЙПИНГ Файлы Простейший пример — перенаправление вывода echo в файл. Для этого используется >. Смотрите: echo "Hello all!" > hi.all. Содержимое hi.all очищается (или создаётся чистый файл, если его не было), и весь вывод идёт туда. Таким образом, в файле будет следующее: Hello all! Если же необходимо из файла содержимое вывести в команду, используется команда <. Вот только примеров такому мне найти не удалось. Между командами Другой простейший пример — команда cat. Если Вы помните, она печатала содержимое всё подряд, и если его больше высоты экрана, то просто обрезается. Так вот, чтобы не случалось такого, используется команда more и пайпинг. Сразу скажу, как это сделать. more | cat <файл>. Обратите внимание на |. Этот символ обозначает, что весь вывод из правой команды надо перенаправлять в левую. Скажу по секрету — тут можно было обойтись даже без пайпинга. more умеет сама открывать и читать файлы. Но есть нам нужен не файл, а, например, какой-нибудь df — вот тут и потребуется пайпинг. В любом случае, эта штука является невостребованной, так как она недоделана. Вероятно, в будущем этот недостаток будет устранён, а пока просто запомним три оператора. Список терминов: монтирование — процесс создания ссылки на устройство точка монтирования — название ссылки на устройство метка — пользовательское имя для накопителя Что же, всё обещанное сделано. В следующей части я расскажу об остальных программах, которые так или иначе помогают в программировании. Жду пожеланий и вопросов. ← → -
OpenOS. От дуба до Мастера. Часть вторая. [|··]
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
А почему у меня не создаются? Вина эмулятора?.. ОК, поправлю. Да, можно и так. Но мне нужен был пример именно для `rm`. Обновил примеры для четырёх команд. -
OpenOS. От дуба до Мастера. Часть вторая. [|··]
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
Да, спасибо, поправил. В любом случае, вполне могут быть программы, которые неправильно будут работать с такими папками. -
OpenOS. От дуба до Мастера. Часть первая. [|··]
Fingercomp прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
Ответил в следующей части повествования -
OpenOS. От дуба до Мастера. Часть вторая. [|··]
Fingercomp добавил запись в блоге в Fingercomp's Playground
И снова здраствуйте. Я продолжаю описывать нелёгкий путь от дуба до Мастера в OpenOS. Начать предлагаю с вопросов, которые, к счастью, есть. Начинает у нас ЛесхаИнц (@@LeshaInc). И его вопрос: Бедный человек не разделяет, что принадлежит самой ОС, а что — предоставляемому АПИ компонентов. ОС принадлежит всё то, что написано именно для этой системы. То есть, например, в EEPROM этим кодом просто так Вы воспользоваться не сможете. АПИ компонентов предоставляет сам мод. И независимо от того, стоит ли на компьютере OpenOS, не стоит ли — АПИ мода всё равно присутствует, следовательно, частью OpenOS считать это ошибочно. Запомнил? Молодец. И больше не задавай глупых вопросов. Сложность: средне 40% Скучность: средне 35% Дубовость: для начинающих 30% Как и обещал, в этой части я поговорю о структуре ФС уже самой OpenOS и о первых инструментах, предоставляемых системой. СТРУКТУРА ФАЙЛОВОЙ СИСТЕМЫ OPENOS Файловая система OpenOS чрезвычайно похожа на оную из *nix. Сразу же после установки системы, у Вас появляются следующие папки: / // Корень|+ bin // здесь хранятся программы самой ОС|+ boot // здесь хранится загрузочный код ОС|+ etc // здесь хранятся файлы конфигурации| || + rc.d // папка скрипта-демона|+ lib // здесь находятся бибилиотеки самой ОС|+ usr // все пользовательские файлы | + man // папка файлов справочной системы | + misc // папка различных файлов Допустим, мы хотим узнать, какие программы есть в OpenOS. Для этого заходим в директорию /bin/ (см. часть первую, если не помните, как) и смотрим содержимое через ls. Поразившись количеством программ, можно выходить из директории. К ним мы вернёмся позже. mkdir Но вот, например, вам захотелось страстно создать в корне папку /kotiki/. Для этих целей присутствует утилита mkdir <имя папки>. В нашем случае нужно ввести mkdir /kotiki/. Обратите внимание, что не рекомендуются в названии папок пробелы и спецсимволы (могут возникнуть сложности с программами, но если Вы решились так делать, то заключите путь в "кавычки"), и называть папку так же, как файл на диске, не следует. К слову, если нужно сделать две папки, можно обойтись одной командой: mkdir <имя папки> [имя второй папки] [имя третьей папки] [...]. Тогда достаточно прописать, например, mkdir /kotiki/ /sobaki/, чтобы создать папку "kotiki" и "sobaki". К слову, сразу же после установки, пропишите команду mkdir /usr/bin/ /usr/lib. Это понадобится. rm Предположим, что вы по ошибке прописали mkdir /koriki/. Возникает вопрос — как удалить папку? Для этого предназначена команда rm <имя файла или папки> [имя второго файла или папки] [...]. Нужно удалить только одну папку, потому пишем: rm /koriki/ — и создаём правильную папку. Напомню, что rm может удалять ещё и файлы. mv Что, если Вам хочется не удалять всю папку, а только переименовать её? Или перетащить с диска на дискету? Воспользуйтесь командой mv <имя файла/папки> <место назначения>. Например, чтобы переименовать /koriki/ в обыкновенных котиков, пропишем mv /koriki/ /kotiki/ cp Куда же мы без копирования! Как в любой уважающей себя ОС, здесь тоже есть такая функция. cp <путь к копируемому файлу> <путь в место вставки файла>. Например, cp ../cat1/ ./. edit Но довольно возни с папками — мы пришли программировать! А не в папках копаться. Для создания и/или редактирования файла нужно прописать edit <имя файла>. Откроется редактор файлов. Управление такое же, как, например, в блокноте. Стрелочками перемещаться, ввод стандартный. Вот только для управления файлом вместо меню используются "горячие клавиши": [Ctrl] + — сохранение файла [Ctrl] + [w] — закрытие файла (файл НЕ сохраняется!!) [Ctrl] + [Del] — удаление строки [Ctrl] + [f] — поиск [F3] или [Ctrl] + [g] — поиск следующего совпадения Внизу справа отображается текущая позиция курсора. Запуск программ. PATH Чтобы запустить свою программу, пропишите путь до неё (например, myfirstprogram.lua). Если у файла расширение .lua, то писать его необязательно. Кроме того, если программа находится в /bin или /usr/bin (Ваши программы советую сохранять в последнюю папку), то вызвать их можно, просто прописав название программы без расширения, причём в любой папке. Именно так и работают стандартные программы (например, cd, mkdir и др.) То есть, при попытке запустить файл какой-либо, сначала обыскиваются директории в PATH (это /bin и /usr/bin) и, если программы такой не найдено, система пытается запустить файл в текущей директории. Если у Вас в текущей директории есть файл rm.lua, то, чтобы не запускать стандартную утилиту, пропишите ./rm.lua. Если указана директория в пути, то поиск в PATH пропускается. ДРУГИЕ СТАНДАРТНЫЕ ПРОГРАММЫ OPENOS man. Справочная система На этой команде я мог бы и закончить описание системы, так как для большинства стандартных программ есть описание в man. man — это команда, которая открывает файл справочной системы для чтения. Начните с man man. Вам расскажется о программе. А теперь пропишите команду ls /usr/man/. Вы увидите список файлов справочной системы. Например, resolution. Для просмотра файла пропишите man <название файла справочной системы>. В данном случае — man resolution. Для каждой изученной ранее команды прочитайте справочную информацию, чтобы Вы могли использовать их на полную силу. cat <имя файла> Простой просмотр содержимого файла. Нет возможности управления курсором, если содержимое больше высоты экрана — всё, ничего не поделать (на самом деле, это не так, с помощью more можно сделать это удобным, но для использования потребуется пайпинг, о котором я поговорю в другой раз). clear Очистка терминала. date Выводит текущие время и дату. echo Просто выводит данную строку на экран (echo [строка]) Строку желательно заключить в "кавычки", чтобы избежать разных проблем. В простом виде бессмысленна, нужна опять-таки для пайпинга. install Скопировать полностью содержимое всей файловой системы на другой накопитель, вместе со всеми Вашими файлами. ln <путь к файлу> [место назначения] Создать сиволическую ссылку на данный файл. Если место назначение не указано, то в текущую директорию вставляется ссылка с именем файла. К слову, эти ссылки виртуальные и не хранятся на файловой системе. После перезагрузки компьюетра они стираются. Таким образом, они могут создаваться даже на системах только для чтения! pwd Выводит на экран текущую рабочую директорию. Полезно, опять же, при пайпинге. reboot Перезагрузка системы. shutdown Остановка системы. resolution Изменение расширения экрана. Синтаксис: resolution <X> <Y>. Максимальное разрешение зависит от монитора и видеокарты. uptime Время работы системы which <файл> Выводит путь до указанной программы или сиволической ссылки. Например, which rm выведет /bin/rm.lua. yes [строка] Бесконечно повторяет заданную строку, или "y", если не задано. Сомнительная полезность. Списка терминов тут не будет, так как придётся копировать информацию из статьи. Всё, что было изучено — это программы и структура ОС. Да и на самом деле, я рассмотрел далеко не все программы и возможности, имеющиеся в OpenOS. В следующей части — о пайпинге и устройствах, а также о программах, с ними связанных, так что не пропустите, если Вам интересно. ← → -
Вот так: ▄ Цвет текста = нижний квадратик, цвет фона = верхний. Символ — нижняя половина блока.
-
OpenOS. От дуба до Мастера. Часть первая. [|··]
Fingercomp добавил запись в блоге в Fingercomp's Playground
Приветствую Вас в очередной записи. Решившись, что отвечать на вопросы типа "как скопировать программу на дискету" каждому проходящему — непозволительная роскошь, я и пишу это здесь. Цель: описать процесс постигания магии бессменных белых букв на чёрном фоне, да так, чтобы это было непонятно всем. Эта часть будет необычной в цикле, так как именно сюда я буду выливать прогресс и делать обновления. Что же, запаситесь терпением и приготовьтесь скучать, да так, как Вы ещё не скучали, ибо именно в этой Башне лежат все скучные вещи. Сложность: просто 25% Скучность: средне 65% Баланс дубовости: для начинающих 20% Опустим такую невероятно сложную вещь, как установка системы, о которой уже было рассказано на нашем форуме. Вы вытащили дискету, нажали [y] и затем [Enter], готовите уже свою мышку к кликательным пыткам, надеясь, что эти буковки на чёрном фоне до установки — всего лишь результат лени разработчиков, дожидаетесь загрузки и... "О, святые криперы, что это?! Они меня замучать хотят этими буковками непонятными?!" Что же, приветствуем Вас на борту этой замечательнейшей операционки, работающая на чистом Луа. Основные принципы: Вы можете выкинуть свою мышку (чего, к слову, мы делать не советуем). Всё управление идёт через клавиатуру, как минимум, в стандартных программах. Эта штука чрезвычайно похожа на ОС типа *nix. Если эти 4 знака Вам знакомы, понятны и не вызывают страха — поздравляю! Вы уже на 90% владеете инструментом. Вся система — это такой большой Проводник. Можно путешествовать по разным папками и смотреть их содержимое. Первым делом сразу советую выучить английский, хотя бы немного. Всё потому, что русского языка вы просто так не увидите. Документация на английском, подсказки на английском, команды на английском, в общем — всё на иностранном языке. Выучили? Тогда приступим. И вот, прочитав истинно скучную штуку (или пропустив, но это не по-крутому, знай), мы трём носик об этот квадрат Малевича, исписанный в лучших традициях русского народа надписями типа "здесь был Вася" "RAM", "OpenOS" и какого-то магического заклинания. И всё — в белой рамочке. А ниже нарисовано решето. Мигает штука, похожая на детальку из "Лего". В общем, непонятно даже, как можно пользоваться такой штукой. ФАЙЛОВАЯ СИСТЕМА CWD и ls Итак, представьте, что Вы открыли проводник. И сейчас Вы находитесь в папке "/", о чём говорит (-ят) символ (-ы) слева от решётки. То, что там написано, называется текущей директорией. По-английски — CWD (Current Working Directory). Проверить, что находится в текущей директории, поможет команда ls. Введите команду и нажмите [Enter]. Отобразится список файлов, причём, если у Вас монитор второго и третьего уровней, то синим будут обозначены директории, жёлтым — ссылки, а зелёным — программы. Иначе же всё будет белым цветом. cd Сложно? Это ещё только начало. Допустим, что список файлов в текущей директории Вас не удолевтворил, и Вы хотите большего. Что насчёт перехода в другую папку? В Проводнике вы кликали 2 раза по ней — здесь же придётся вводить имя папки вручную. Команда: cd <имя папки>. Обращаю внимание, что угловые скобки писать не нужно. Они показывают, что аргумент программе обязателен. Впрочем, об этом в другой раз. Допустим, нам вдруг страстно захотелось в папку /bin/. Пишем: cd /bin/. Вуаля! Слева от решётки появляется надпись /bin, и Вы оказываетесь в другой папке. Пути Итак, мы в /bin/. Думаю, нужно ознакомиться с файловой системой ОС. Для каждой папки есть: содержимое родитель корень путь Содержимое папки мы узнавать умеем — командой ls. А что такое родитель, корень и путь? Допустим, есть папка "Файлы". В ней — ещё 2 папки, "Документы" и "Программы". В папке "Документы" будут файлы "отчёт001", "отчёт002" и "отчёт003". В папке "Программы" — "Программы2" и "Игры". Итого, структура нашей системы такова (структура — это описание всего содержимого папки. Называется часто деревом): + Файлы | + Программы | | | + Программы2 | | | + Игры | + Документы | + отчёт001 + отчёт002 + отчёт003 Как видно, файл "отчёт003" находится в папке "Документы". Поэтому, для файла "отчёт003" родителем будет папка "Документы". В общем, это папка, в котором лежит файл или папка. Для "Документы" родитель — "Файлы", для "Игры" — "Программы", для программы — снова "Файлы". Вот так всё запутанно. Далее. Взгляните на дерево ещё раз. Как видно, у папки "Файлы" нет родителя. Эта папка называется корнем файловой системы. Все остальные папки так или иначе находятся в корне. Путь — это последовательная запись вложенных структур до нужного файла. Сначала папка "Файлы", в ней — папка "Документы", в "Документах" — "отчёт001". Следовательно, у файла "отчёт001" путь следующий: Файлы/Документы/отчёт001. В OpenComputers корнем является папка /, с которой всё и начинается. Следовательно, если папку "Файлы" поместить в "/", то для перехода в папку с файлом "отчёт002" можно прописать команду cd /Файлы/Документы/ Абсолютные и относительные пути. ./ и ../ Если путь начинается с корневой директории, то он абсолютен. Но есть пути относительные данной директории. Например, путь к папке "Игры" относительно "Программы2" таков: ../Игры/. Заметили ../? Этот путь есть в каждой папке и обозначает родительскую директорию (для корня ведёт на саму себя). То есть cd ../ переходит на директорию выше. Если прописать эту команду, находясь в папке "Игры", то Вы окажетесь в папке "Программы". Далее — в "Файлах", а так как это корень, то продолжение ввода не будет менять рабочую директорию. Кроме того, папка ./ ведёт на саму себя. То есть Файлы/ равен, например, Файлы/./././././././. И, напоследок, чтобы просмотреть список файлов без перемещения в нужную директорию, пропишите ls [путь до папки] Изначально, я продолжил запись описанием реальной файловой системы на ОС, но решил сократить объём повествования. Потому в следующей части — редактор, справочная система, объяснение структуры папок на ОС. В конце я привожу список новых слов и терминов: текущая директория — папка, в которой Вы находитесь. Известна как CWD (Current Working Directory) ls — просмотр содержимого текущей директории cd <путь> — перемещение по файловой системе структура — описание содержимого директории. Также известна как дерево родитель — предыдущая по вложенности папка. Директория, в которой расположен текущий каталог корень файловой системы — папка, не имющая родителя. Первая по вложенности. В OpenComputers — / путь — последовательная запись вложенных структур до нужного файла абсолютный путь — путь от корня до нужного файла/каталога относительный путь — путь от текущей директории до нужного файла/каталога ../ — ссылка на родительскую директорию ./ — указывающая на саму себя папка ls [путь до папки] — просмотр содержимого заданного каталога Повествование запутанное, сумбурное и непонятное, в лучших традициях Башни. Специально писал ночью для такого эффекта. Но, к сожалению, следующая часть будет веселее и активнее, с картинками и красотой. Жду оценок 1/5, игнорирования и злостных комментариев из-за этого. → -
Очень и очень удобная штука при разработке гуиферсов, когда эти чёрные полосы в ночных кошмарах снятся... Бррр. Тот же замок Тоторин вполне такой либой подогнать бы.
- 10 ответов
-
- 1
-
-
- масштаб
- разрешение
-
(и ещё 2 )
Теги:
-
Да знаю я. И даже знаю, почему система репутации только в плюс идёт здесь. Потому, что написать нормально и удобно не могут разрабы.
-
Аааааа... В общем, те же акции, только в профиль и с одной "компанией")) Мы можем их ещё и бегемотами назвать, вообще, звучать интереснее будет речь двух "экронатристафф"))
-
Всё предельно просто. Зер0 уже сформировал основные принципы ФБ. Хэш неудобен чем? — нагрузками. Один комп на дата-карте считающий хэш — эм, ОК. А если 2 на игрока, например? И таких игроков будет 30 в онлайне? Считай, — 60 хэшевычисляторов. А если какой-то папка-программист (у нас такие вообще есть?))) наштомпует штук 100 таких? 200? Не стоит недооценивать игроков — они и не на такое способны. В любом случае, загибающемуся серверу только хэши и считать, ага. Хотя, конечно, нагрузки всё равно достаточно низкие, но это не отменяет мои доводы. В любом случае, поставить генераторы и плюнуть — не особо как раз интересно и эффективно будет с точки зрения процесса, когда и валюта не особо ценная. Проще же просто накопать штук десяток алмазиков, да?))) Слишком уж много времени, короче. А в акциях игроку самому придётся следить за процессом, графиком изменения ценности, принимать решения. Интереснее же)) Награда за внимательность, в общем. Но это — (см. подпись) P. S. Ты ведь уже в команде проекта!
-
Мне не важно, что там творится в мире, пока я *на этом форуме*. Здесь — просто ещё одна идея, даже не твоя.
