Настройка virtualBox
вторник, июня 14, 2011
Ярлыки: Программное обеспечение, linux
Коментариев: 2 штук(и)
Как Linux и Vista город не поделили.
вторник, сентября 04, 2007
Владельцы компьютеров с операционной системой Windows Vista из шведского города Лунд не могут выйти в Сеть. Во всяком случае, через обычный наземный канал.
По данным местной газеты, все дело в том, что сети Лунда целиком и полностью находится под управлением ОС Linux - главный сервер города с Vista работать не может.
Местный интернет-провайдер Lundis Energi обвиняет Microsoft в наличии программной ошибки. Местный представитель Microsoft уже посоветовал сменить конфигурацию сервера. Однако, как заявил провайдер, из-за чужих ошибок никто не намерен менять конфигурацию.
Дело может быть не только в технической сложности процедуры. Как известно, фанаты Linux довольно холодно относятся к Microsoft в целом, а предложение поменять что-либо в собственных настройках может рассматриваться, как посягательства на собственную свободу. Не исключено, что город будет ждать до тех пор, пока ошибку не исправит Microsoft. Кажется ждать им в этом случае придется долго.
Источник.
Ярлыки: Интересности
Коментариев: 9 штук(и)
Только не правда, что "шведы всегда жили чуть наособицу от остальной Европы". С такой наособицей что они делали под Полтавой, и какая уж наособица была во времена викингов :)
Проблема не так страшна, на самом деле. Во-первых, пользователям свисты хочется всё-таки предложить прочесть EULA - пока они смотрят в пустое окно броузера. Там сказано: никаких гарантий, никаких возмещений убытков. А во-вторых, процент пользователей висты ничтожен, все сидят либо на ХП, либо уже за маком, либо в Убунте.
Google: Прорыв в духе времени.
среда, августа 29, 2007
Ярлыки: Интересности, Google
Коментариев: 1 штук(и)
BASH. Часть 6. Раскрытие выражений
среда, августа 22, 2007
Когда оболочка получает какую-то командную строку на выполнение, она до начала выполнения команды осуществляет "грамматический разбор" полученной командной строки. Одним из этапов такого "разбора" является раскрытие или подстановка выражений (expansion). В оболочке bash имеется семь типов подстановки выражений:
- раскрытие скобок (brace expansion);
- замена знака тильды (tilde expansion);
- подстановка параметров и переменных;
- подстановка команд;
- арифметические подстановки (выполняемые слева направо);
- разделение слов (word splitting);
- раскрытие шаблонов имен файлов и каталогов (pathname expansion).
Раскрытие скобок
Раскрытие скобок проще всего пояснить на примере. Предположим, что нам нужно создать сразу несколько подкаталогов в каком-то каталоге, или поменять владельца сразу у нескольких файлов. Эти действия можно выполнить с помощью следующих команд:
[user]$ mkdir /usr/local/src/bash/ {old, new, dist, bugs}
[root]# chown root /usr/{ucb/{ex, edit} , lib/{ex?.?*, how_ex}}
В первом случае в каталоге /usr/local/src/bash/ будут созданы подкаталоги old, new, dist и bugs. Во втором случае владелец будет изменен у файлов:
/usr/ucb/ex
/usr/ucb/ex
/usr/lib/ex?.?*
/usr/lib/how_ex
/usr/ucb/edit
/usr/ucb/edit
/usr/lib/ex?.?*
/usr/lib/how_ex
То есть для каждой пары скобок генерируются несколько отдельных строк (их число равно числу слов, стоящих внутри скобок) путем приписывания к каждому слову из скобок (спереди) того, что стоит перед скобкой, и приписывания в конец каждого полученного слова того, что стоит после скобки.
Еще один пример: строка a{d,c,b}e при раскрытии скобок превращается в три слова ade асе abe. Раскрытие скобок выполняется до выполнения других видов подстановок в командной строке, причем все специальные символы, встречающиеся в командной строке, в том числе внутри скобок, сохраняются неизменными (они будут интерпретированы на следующих этапах анализа строки).
Замена тильды
Если слово начинается с символа тильды (~), все символы до первого слэша (или все символы, если слэша нет) трактуются как имя пользователя (login name). Если это имя есть пустая строка (то есть вслед за тильдой идет сразу слэш), то тильда заменяется на значение переменной НОМЕ. Если значение переменной НОМЕ не задано, тильда заменяется на полный путь к домашнему каталогу пользователя, запустившего оболочку.
Если вслед за знаком тильды (до слэша) стоит слово, совпадающее с именем одного из легальных пользователей, тильда и имя пользователя заменяются полным именем домашнего каталога этого пользователя. Если слово, следующее за тильдой, не является именем пользователя (и не пусто), то оно остается неизменным. Если вслед за знаком тильды стоит +, эти два знака заменяются на полное имя текущего каталога (то есть значение переменной PWD). Если за знаком тильды следует -, подставляется значение переменой OLDPWD.
Подстановка параметров и переменных
Символ $ используется для обозначения операций подстановки параметров, подстановки команд и подстановок арифметических выражений. Выражение или имя, следующее за $, может быть заключено в скобки; что необязательно, но удобно, т. к. позволяет отделить заменяемое выражение от следующих за ним слов или символов. Таким образом, чтобы в командной строке вызвать значение параметра (в частности, любой переменной), нужно вставить выражение вида $ {parameter}. Скобки необходимы только в том случае, если имя параметра состоит из нескольких цифр, или когда за именем следует символ, который не должен интерпретироваться как часть имени. Все значения переменных подвергаются подстановке знака тильды, раскрытию параметров и переменных, подстановке команд, подстановкам арифметических выражений, а также удалению специальных символов цитирования (см. ниже). Разделение слов не производится, за исключением случая "$@" (объяснение ниже ). Раскрытие шаблонов имен файлов и каталогов не производится.
Подстановка команд
Подстановка команд является очень мощным инструментом bash. Она заключается в замене имени команды на результат ее выполнения. Существует две формы подстановки команд:
$(command) и 'command'
Если применяется вторая из этих форм, то обратный слэш внутри кавычек трактуется как литерал, кроме тех случаев, когда за ним следует $, ', или \. Если же используется форма $(command), все символы внутри скобок составляют команду и ни один из них не считается специальным символом. Если подстановка производится внутри двойных кавычек, то в результатах подстановки не осуществляется разделение слов и раскрытие шаблонов имен файлов и каталогов.
Арифметичекие подстановки
Арифметические подстановки позволяют вычислить значение арифметического выражения и подставить вместо него результат. Существует две формы задания арифметических подстановок:
$[expression]
$((expression))
где expression трактуется так, как если бы оно было заключено в двойные кавычки, но встречающиеся в expression двойные кавычки трактуются как простой литерал. Внутри expression выполняются подстановки параметров и команд.
Синтаксис выражения expression подобен синтаксису арифметических выражений в языке С, подробнее об этом можно прочитать в разделе ARITHMETIC EVALUATION man-страницы по команде bash. Например, команда
[user]$ echo $ ((2 + 3 * 5))
в качестве результата выдает "17". Если выражение некорректно, bash выдает сообщение об ошибке.
Разделение слов
После завершения подстановок параметров, команд и арифметических выражений оболочка снова анализирует командную строку (в том виде, который она приобрела к этому моменту) и осуществляет разделение слов (word splitting). Эта операция заключается в том, что в командной строке ищутся все вхождения символов-разделителей, определенных в переменой IFS, и в соответствующих местах строки разделяются на отдельные слова. Если значение IFS равно пустой строке, разделение слов не производится. Если в командной строке не производилось никаких подстановок, то разбиение на слова не производится.
Раскрытие шаблонов имен файлов и каталогов
Подстановки имен путей и файлов (pathname expansion) используются для того, чтобы с помощью краткого образца или шаблона указать несколько имен файлов (или каталогов), соответствующих данному шаблону. После разделения слов, если не была задана опция -f, bash производит поиск в каждом слове командной строки символов *, ? и [. Если будет найдено слово с одним или несколькими вхождениями таких символов, то это слово рассматривается как шаблон, который должен быть заменен словами из лексикографически упорядоченного списка имен путей, соответствующих данному шаблону. Если имен, соответствующих шаблону, не найдено, и переменная nullglob не задана, слово не изменяется. Если эта переменная установлена, а путей, соответствующих шаблону, не найдено, слово удаляется из командной строки. Специальные символы шаблонов имеют следующее значение:
Символы шаблонов
* - Соответствует произвольной строке символов, включая пустую строку. Например, my*.txt будет заменено на myday.txt, myweek.txt и mymonth.txt (если такие файлы существуют), a *.jpg соответствует всем файлам с расширением jpg в указанном каталоге
? - Соответствует любому одиночному символу. Например, вместо шаблона file?.txt будут подставлены имена file1.txt и filex.txt, но не file10.txt
[...] - Соответствует любому символу из числа символов, указанных в скобках. Пары символов, разделенные знаком минуса, обозначают интервал; любой символ стоящий лексически между этими двумя символами, включая и символы, задающие интервал, соответствует шаблону. Если первым символом внутри скобок является (!) или (^), то считается, что шаблону (в данной позиции) соответствуют все символы, не указанные в скобках.
Шаблоны имен файлов очень часто применяются в командных строках, содержащих команду ls. Представьте себе, что вы хотите просмотреть информацию о содержимом каталога, в котором находится огромное количество разных файлов различных форматов, например, файлов с изображениями форматов GIF, JPEG, AVI и т. д. Чтобы получить только список файлов формата JPEG, вы можете использовать команду
[user]$ ls *.jpg
Если в каталоге имеется множество файлов, имена которых представлены четырехзначными номерами, то следующей командой можно вывести только список файлов с номерами от 0200 до 0499:
[user]$ ls -l 0[2-4]??.*
Удаление специальных символов
После того как все подстановки в командной строке сделаны, из нее еще удаляются все вхождения символов \, ' и ", которые служили для отмены специального значения других символов.
Другие части.
BASH. Часть 1. Введение.
BASH. Часть 2. Специальные символы.
BASH. Часть 3. Выполнение команд.
BASH. Часть 4. Стандартный ввод/вывод.
BASH. Часть 5. Параметры и переменные. Окружение оболочки.
BASH. Часть 6. Раскрытие выражений.
По книге В.Костромина "Linux для пользователя".
Ярлыки: документация, Работа в терминале, BASH, linux
Коментариев: 0 штук(и)
Minesweeper. Видеоролик.
четверг, августа 09, 2007
И вот, идя по стопам киностудий, снявших знаменитые фильмы по компьютерным игрушкам, некая студия решила снять свой ролик по этой милой игрушке.
Смотреть тут.
Ярлыки: юмор
Коментариев: 1 штук(и)
BASH. Часть 5. Параметры и переменные. Окружение оболочки.
вторник, августа 07, 2007
Понятие параметра в оболочке bash подобно понятию переменной в обычных языках программирования. Именем (или идентификатором) параметра может быть слово, состоящее из алфавитных символов, цифр и знаков подчеркивания (только первый символ этого слова не может быть цифрой), а также число или один из следующих специальных символов: *, @, #, ?, - (дефис), $, !, 0, _ (подчеркивание).Говорят, что параметр задан или установлен, если ему присвоено значение. Значением может быть и пустая строка. Чтобы вывести значение параметра, используют символ $ перед его именем. Так, команда Параметры разделяются на три класса: позиционные параметры, специальные параметры (именами которых как раз и служат перечисленные только что специальные символы) и переменные оболочки. Имена (идентификаторы) позиционных параметров состоят из одной или более цифр (только не из одиночного нуля). Значениями позиционных параметров являются аргументы, которые были заданы при запуске оболочки (первый аргумент является значением позиционного параметра 1, и т. д.). Изменить значение позиционного параметра можно с помощью встроенной команды set. Значения этих параметров изменяются также на время выполнения оболочкой одной из функций. Специальные параметры являются шаблонами, замена (подстановка) которых производится следующим образом. Специальные параметры, перечисленные в приведенной выше таблице, отличаются тем, что на них можно только ссылаться; присваивать им значения нельзя. Переменная с точки зрения оболочки — это параметр, обозначаемый именем. Значения переменным присваиваются с помощью оператора следующего вида Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$". Вообще-то в оболочке bash существует четыре приглашения, которые используются в разных ситуациях. Переменная PS1 задает вид строки приглашения, которая выдается тогда, когда оболочка ждет ввода команды. Вторичное приглашение, задаваемое переменной PS2, появляется тогда, когда оболочка ожидает от пользователя ввода еще каких-то данных, необходимых для продолжения работы запущенной команды или программы. По умолчанию переменная PS2 имеет значение ">". Вы уже имели возможность видеть это приглашение, когда запускали команду cat для ввода данных с клавиатуры в файл. Другой пример — команда ftp, после запуска которой приглашение тоже принимает такой вид. Приглашение, задаваемое переменной РSЗ, используется в команде select. Приглашение, задаваемое переменной PS4, выводится перед каждой командой в то время, когда bash отслеживает процесс выполнения. Значение по умолчанию - "+". Если у вас есть такое желание, вы можете изменить вид переменных PS1 и PS2. При этом можно использовать как любые символы, вводимые с клавиатуры, так и некоторое число специальных символов, которые при формировании строки приглашения декодируются в соответствии со списком, приведенной ниже (приведены только некоторые из них). Текущий номер команды (порядковый номер выполняемой команды в рамках текущей сессии) может отличаться от номера данной команды в списке истории команд, поскольку последний включает в себя команды, которые были сохранены в файле истории команд. После того как значение переменной, определяющей подсказку, прочитано оболочкой, в нем могут быть произведены подстановки в соответствии с правилами расширения параметров, подстановок в именах команд и арифметических выражениях, а также разбиения слов (word splitting). Например, после выполнения команды (поскольку в строке имеется пробел, кавычки обязательны) Еще одна очень важная переменная имеет имя PATH. Она задает перечень путей к каталогам, в которых bash осуществляет поиск файлов (в частности, файлов с командами) в тех случаях, когда полный путь к файлу не задан в командной строке. Отдельные каталоги в этом перечне разделяются двоеточиями. По умолчанию переменная PATH включает каталоги /usr/local/bin, /bin, /usr/bin, /usr/XHR6/bin, т. е. имеет вид: При осуществлении поиска оболочка просматривает каталоги именно в том порядке, как они перечислены в переменной PATH. Отметим, что можно включить в этот список и текущий каталог, добавив в переменную PATH точку. Однако этого не рекомендуется делать из соображений безопасности: злоумышленник может положить в общедоступный каталог команду, имя которой совпадает с одной из часто выполняемых суперпользователем команд, но выполняющую совершенно другие действия (особенно если текущий каталог стоит в начале перечня путей поиска). Эта переменная задает разделители полей (Internal Field Separator), которые используются при операции разделения слов при преобразованиях командной строки, выполняемых оболочкой перед тем, как запустить командную строку на исполнение. Значение этой переменной по умолчанию — "<Пробел><Таb><Символ_новой_строки>. Имя текущего каталога сохраняется в переменной окружения (с именем PWD), и значение этой переменной изменяется при каждом запуске программы cd (а также при смене текущего каталога любым другим способом, например, через Midnight Commander). Аналогичным образом полное имя (с указанием пути) домашнего каталога пользователя, запустившего данный процесс, сохраняется в переменной НОМЕ. Когда оболочка запускает на выполнение какую-то программу или команду, она передает им часть переменных окружения. Для того чтобы переменная окружения передавалась запускаемому из оболочки процессу, ее нужно задавать с помощью специальной команды export, т. е. вместо В таком случае все запускаемые из оболочки программы (в том числе вторичные экземпляры самой оболочки) будут иметь доступ к заданным таким образом переменным, т. е. могут вызывать их значения по именам.
[user]$ echo name
выдаст на экран слово name, а команда
[user]$ echo $name
выдаст значение переменной name (если таковое, конечно, задано).
Разновидности параметров
Специальные параметры.
[user]$ name=value
где name — имя переменной, a value — присваиваемое ей значение (может быть пустой строкой). Имя переменой может состоять только из цифр и букв и не может начинаться с цифры. Значением может быть любой текст. Если значение содержит специальные символы, то его надо взять в кавычки. Присвоенное значение этих кавычек не содержит, естественно. Если переменная задана, то ее можно удалить, используя встроенную команду оболочки unset.
Набор всех установленных переменных оболочки с присвоенными им значениями называется окружением (environment) или средой оболочки. Вы можете просмотреть его с помощью команды set без параметров (только, может быть, следует организовать конвейер set | less). В выводе этой команды все переменные окружения перечисляются в алфавитном порядке. Для того чтобы просмотреть значение одной конкретной переменной, вместо команды set (в выводе которой нужную переменную еще искать и искать) можно воспользоваться командой
[user]$ echo $rame
(правда, в этом случае вы должны знать имя интересующей вас переменной).
Среди переменных, которые вы увидите в выводе команды set, встречаются очень интересные переменные. Обратите, например, внимание на переменную RANDOM. Если вы несколько раз подряд выполните команду
[user]$ echo $RANDOM
вы каждый раз будете получать новое значение. Дело в том, что эта переменная возвращает случайное целое из интервала 0—32768.
Приглашения оболочки
Специальные символы для формирования приглашения
\а - Звуковой сигнал (ASCII-код 07)
\d - Дата в формате "День, месяц, число", например, Срд, Окт, 17
\h - Имя хоста (hostname) до первой точки
\H - Полное имя хоста
\t - Текущее время в 24-часовом формате: HH:MM:SS (часы:минуты:секунды)
\T - Текущее время в 12-часовом формате: HH:MM:SS
\@ - Текущее время в 12-часовом формате АМ/РМ
\u - Имя пользователя, запустившего оболочку
\w - Полное имя текущего рабочего каталога (начиная с корня)
\W - Текущий рабочий каталог (без указания пути)
\$ - Символ #, если оболочка запущена суперпользователем, и символ $, если оболочка запущена обычным пользователем
\nnn - Символ, имеющий восьмеричный код nnn
\n - Новая строка (перевод строки)
\s - Имя оболочки
\# - Текущий номер команды
\\ - Обратный слэш (a backslash)
\[ - Начало последовательности непечатаемых символов (этот символ может быть использован для того, чтобы включить в текст подсказки последовательность управляющих символов терминала)
\1 - Конец последовательности непечатаемых символов
\! - Порядковый номер данной команды в истории команд
[root]# PSl="[\u@\h \W]\$"
в стандартном приглашении будет выводиться квадратная скобка, имя пользователя, символ @, имя компьютера, пробел, название текущего каталога (без указания пути), закрывающая квадратная скобка и символ $ (если в оболочке работает простой пользователь) или § (если оболочка запущена от имени пользователя root).
Переменная PATH
/usr/local/bin:/bin:/usr/bin:/usr/XHR6/bin:
Для того чтобы добавить каталог в этот список, нужно выполнить следующую команду:
[root]# РАТН=$ PATH:new_path
Переменная IFS
Текущий и домашний каталоги
Команда export
[user]$ name=value
надо записать
[user]$ export name=value
Другие части.
BASH. Часть 1. Введение.
BASH. Часть 2. Специальные символы.
BASH. Часть 3. Выполнение команд.
BASH. Часть 4. Стандартный ввод/вывод.
BASH. Часть 5. Параметры и переменные. Окружение оболочки.
BASH. Часть 6. Раскрытие выражений
Из книги Виктора Костромина "Linux для пользователя".
Ярлыки: документация, Работа в терминале, BASH, linux
Коментариев: 2 штук(и)
Если не трудно, не могли бы сообщить свое имя, просто привык указывать реальные имена в качестве аторов материалов.