Документация по ОС FreeBSD Четверг, 25.04.2024, 17:57
Приветствую Вас Гость
Меню сайта

Главная » FAQ


"2Tab" - это двойное нажатие клавиши <Tab>
 
$ 2Tab - показать все возможные команды;
 
$ / 2Tab - показать структуру каталога;
 
$ * 2Tab - показать все подкаталоги;
 
$ ~ 2Tab - показать всех пользователей из /etc/passwd;
 
$ $ 2Tab - показать все переменные;
 
$ @ 2Tab - показать содержимое /etc/hosts

~ - домашний каталог;
 
~user - домашний каталог пользователя user;
 
~+ - текущий каталог;
 
~- - предыдущий каталог;
 
=команда - полный путь до бинарника команды.

$ zmodload zsh/zftp - загружаем модуль zftp;
 
$ zftp open ftp.kernel.org - подключаемся к серверу;
 
$ zftp login anonymous "" - регистрируемся;
 
$ zftp binary - переходим в бинарный режим передачи файлов;
 
$ zftp cd pub/linux/kernel/v2.6 - переходим в нужный каталог;
 
$ zftp get a.tar.bz2 > b.tar.bz2 - получаем файл;
 
$ zftp close - закрываем соединение.

Преобразовать обычный текста в формат PostScript можно с помощью утилиты a2ps. Её удобно использовать для печати обычных ASCII файлов (подробно о настройке lpd-фильтров печати и сетевой печати, отдельная страница этого сайта посвящена вопросам безопасности). Основная проблема с русскими буквами.

Чтобы появились русские буквы:

Смотрим, где a2ps ищет шрифты:

a2ps --list=defaults

Скачиваем русские шрифты i18n-fonts-0.1.tar.gz (или более новую версию, если она появилась). Эти шрифты можно найти на многих ftp-серверах, в частности, на ftp://ftp.enst.fr/pub/unix/a2ps/.

Распаковываем этот архив. Там есть две директории: afm и fonts. Копируем их содержимое в соответствующие директории, выданные командой a2ps --list=defaults.

Запускаем скрипт afm/make_fonts_map.sh. Он находится в той же директории, что и .afm-файлы (есть он и в дистрибутиве шрифтов). Он создаёт файл fonts.map.new, этим файлом надо заменить существующий fonts.map.

Всё шрифты привязаны.

Пробуем:

a2ps -X koi8 text >text.ps

Если вы не хотите каждый раз указывать кодировку вручную, то поправьте конфигурационный файл (я предпочитаю править /usr/local/etc/a2ps-site.cfg). Укажите в нём:

Options: --encoding=koi8

Проще всего воспользоваться системой LaTeX.

Сперва делаем PostScript:

#!/bin/sh
f=DBI
pod2latex -out $f.t $f.pm
( cat doc-head-12pt.tex
 perl -pe 's/section\*/section/g' $f.t.tex
 cat doc-tail.tex ) > $f.tex
latex $f.tex
latex $f.tex
dvips -o $f.ps $f.dvi

Совет: если вы создаёте русский POD-документ и вам выдаётся странная ошибка, что POD не обнаружен, то поправьте в модуле Pod::Find строчку unless(-f $file && -T _ && ($file =~ /\.(pod|pm|plx?)\z/i || -x _ )). Выкиньте из неё проверку -T — она не воспринимает файл, как текстовый, если в нём есть не-ASCII символы, коими являются русские буквы.

Здесь предполагается, что DBI.pm (или любой другой файл с POD-документацией) находится в текущей директории, а файлы doc-head-12pt.tex и doc-tail.tex имеют примерно следующее содержание:

файл doc-head-12pt.tex:

% Задаём глобальные атрибуты документа
%\documentclass[11pt, twocolumn]{article}
\documentclass[11pt]{article}
%\usepackage[magstep2]{scale}

%\usepackage[a3paper]{geometry}

% Изменяем поля
\addtolength{\hoffset}{-.9in}
\addtolength{\textwidth}{1.8in}
\addtolength{\voffset}{-1.1in}
\addtolength{\textheight}{2.2in}
% Отступ абзацев
\setlength{\parindent}{1cm}
% Расстояние между абзацами
\setlength{\parskip}{0pt}
% Русский стиль оформления абзацев
%\usepackage{indentfirst}

% Оговариваем кодировку документа
% (обычно POD-документы англоязычны, но вы можете создать
% свой собственный на любом языке)
%\usepackage[cp866]{inputenc}
% \usepackage[koi8-r]{inputenc}
% \usepackage[russian]{babel}
% \selectlanguage{russian}
%\usepackage{draftcopy}

% Включаем графический пакет
% (это только для опытных пользователей, которые
% сами разрабатывают документацию в POD)
%\usepackage[dvips]{graphicx}
%\graphicspath{{ps/}}
% Макрос для вставки картинок
%\newcommand{\inspsfig}[3]{
%\begin{figure}[!htbp]
%\begin{center}
%\includegraphics[angle=0, width=#2\textwidth]{#1}
%\end{center}
%\caption{#3}
%\label{text}
%\end{figure}
%}

% Задаём межстрочный интервал
\linespread{1}

% Документ начался
\begin{document}
% В начале документа генерируем оглавление и ...
\tableofcontents
% ... список иллюстраций
%\listoffigures
% Можно начать документ со следующей страницы
\newpage
% а можно просто задать отступ
%\vspace{50mm}

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

файл doc-tail.tex:

\end{document}

Скрипт создаёт PS-файл с которым можно сделать любые преобразования. Например, если на выходе нужен буклет, то это можно сделать так:

#/bin/sh
f=DBI
pstops '4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)' $f.ps $f-up.ps
pstops '4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)' $f.ps $f-down.ps

Получатся два файла (у нас: DBI-up.ps и DBI-down.ps). Это все верхние и все нижние странички. То есть печатаете сперва верхние, потом переворачиваете всю пачку и печатаете нижние. Потом складываете пачку пополам, прошиваете, и буклет готов.

Все полученные PSы можно переделать в PDFы:

#/bin/sh
gs -sOutputFile=${1%.ps}.pdf \
 -dBATCH -dNOPAUSE \
 -sPAPERSIZE=a4 \
 -sDEVICE=pdfwrite \
 $1

Допустим надо запустить программу от пользователя script на хосте down. Делается это очень просто:
 
ssh script@down /usr/home/script/bin/prog --prog-params
 
Единственный «недостаток» у вас каждый раз будет запрашиваться пароль.

Если у вас нет открытого ключа, то создаём его:
 
cd ~/.ssh
ssh-keygen -t dsa
 
Теперь у вас есть открытый ключ.
 
Заходим на удалённый хост и добавляем ваш ключ к списку авторизованных ключей:
 
ssh script@down # у вас запросят пароль
scp you@yourhost:~/.ssh/id_dsa.pub ~/.ssh/temp
cat ~/.ssh/temp >> ~/.ssh/authorized_keys
rm ~/.ssh/temp
 
Теперь ssh будет пускать пользователя you с хоста yourhost на хост down пользователем script без пароля. То есть при запуске скриптов, как показано выше, пароль запрашиваться не будет.

Очень удобный способ генерации паролей:
 
openssl rand -base64 24

Для генерации md5-сумм существуют отдельные утилиты (под FreeBSD — md5, под Linux — md5sum), но выдают информацию в разных форматах. openssl — более универсальный метод:
 
openssl md5 файл

Зашифровать файл:

openssl enc -aes-256-cbc -salt -in входной_файл -out зашифрованный_файл

Эта команда дважды спросит пароль для шифрования.

openssl enc -d -aes-256-cbc -in зашифрованный_файл -out расшифрованный_файл

Спросит пароль.

Того же самого эффекта можно доиться, управляя стандартными потоками:

# шифруем
openssl enc -aes-256-cbc -salt < входной_файл > зашифрованный_файл
# расшифровываем
openssl enc -d -aes-256-cbc < зашифрованный_файл > расшифрованный_файл

Полезный пример:

# создаём защищённый паролем tar-архив
tar czf - your_dir | openssl enc -aes-256-cbc -salt >file.tgz
# распаковываем этот архив
openssl enc -d -aes-256-cbc < file.tgz | tar xzf -

Создать patch:
 
diff старый_файл новый_файл > patch_файл
 
 Наложить patch:
 
patch старый_файл patch_файл
 
Естественно порядок файлов везде важен.

Во FreeBSD есть две утилиты для подсчёта md5-сумм файлов. Они выдают один а тот же результат, но в несколько разном формате, что очень неудобно, если надо сравнить файлы (по суммам), лежащие на машинах. Поэтому я написал маленький скрипт, эмитирующий поведение недостающей утилиты.
 
!/bin/sh
md5 -- "$@" | sed -E 's/^MD5 \((.*)\) = ([^[:space:]]+)/\2  \1/'
 
Они, конечно, не позволяют использовать ключи командной строки, но обычно это как раз то, что нужно.

Очень полезная утилита smartctl

/usr/local/sbin/smartctl -a /dev/ad4

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

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate 0x000f 100 100 051 Pre-fail Always - 0
 3 Spin_Up_Time 0x0007 253 253 025 Pre-fail Always - 5760
 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 77
 7 Seek_Error_Rate 0x000f 253 253 051 Pre-fail Always - 0
 8 Seek_Time_Performance 0x0025 253 253 015 Pre-fail Offline - 0
 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 5899
 10 Spin_Retry_Count 0x0033 253 253 051 Pre-fail Always - 0
 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 61
194 Temperature_Celsius 0x0022 050 043 000 Old_age Always - 50
196 Reallocated_Event_Count 0x0032 253 253 000 Old_age Always - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age Always - 0
201 Soft_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0
202 TA_Increase_Count 0x0032 253 253 000 Old_age Always - 0

На самом деле информации выдаётся на много больше.
Информация о нагрузке на диски в реальном масштабе времени: gstat и iostat -w 1.
Информация о swap'e: swapctl -lh
Информация о всех открытых файлах fstat.
Есть ещё systat.

Чтобы X-сервер не ожидал внешних соединений, его следует запускать с ключом -nolisten tcp. То есть, в простейшем случае, если вы запускаете X с помощью xinit, команда будет выглядеть так:
 
xinit -- -nolisten tcp
 
Если вам нужно время от времени подключаться к X-серверу снаружи, то самым удобным решением является запуск Xnest — отдельного X-сервера с собственными параметрами безопасности.

Демон печати по умолчанию запускается в очень беспечном режиме, позволяя практически кому угодно использовать вашу машину для печати. Чтобы оставить право печати только себе, запустите lpd с ключом -s:
 
killall lpd
lpd -s
 
Чтобы сервер запускался сам с этим ключом, при старте системы, добавьте в /etc/rc.conf строки:
 
lpd_enable="YES"
lpd_flags="-s"

По умолчанию syslogd запускается с ключом -s, это обеспечивает некоторый уровень защиты. Но чтобы демон не пытался слушать внешние порты, его следует запускать с ключом -ss. Для этого пишем в /etc/rc.conf:
 
 syslogd_flags="-ss"

Все просто, потому и быстро забывается ;)

1. Устанавливаем:
root@localhost# pkg_add -r ntp

2. Записываем в /etc/crontab:
55    23    *    *    *    root    /usr/sbin/ntpdate ntp.rinet.ru
Думаю, за пять минут до полуночи, раз в сутки - достаточно для весьма точной синхронизации времени.
P.S.: ntp.rinet.ru - это сервер точного времени моего провайдера. В принципе, открыт для всего интернета, но лучше поискать ближайший.

$ vi ~/.zshrc
 
setopt autocd
 
alias -g ...='../..'
 
alias -g ....='../../..'
 
$ . ~/.zshrc
 
Теперь, чтобы вернуться на три директории вверх, достаточно набрать «....».

Например, переведем 20 из dec в hex и обратно:
 
$ echo "obase=16;20" | bc
 
14
 
$ echo "ibase=16;20" | bc
 
32

(~/devel/www)% cvs -fq -d andrey@cvs.openbsd.ru:/cvs diff -u -p \
 
-r1.23 -r1.24 docs/howto-bridge.html | vim -

# vi /var/named/conf/named.conf:
 
zone "doubleclick.com" {
 
type master;
 
file "master/doubleclick.com";
 
};

# vi /var/named/master/doubleclick.com:
 
[[ здесь идет стандартная SOA-запись ]]
 
ad.doubleclick.com. IN A 127.0.0.1
 
*.doubleclick.com. IN A 127.0.0.1

# rndc reload

% uptime | awk '{ while($3--) a=a"="; print "|" a ">"}'
 
|=====================>

Изменяем размер шрифтов интерфейса Firefox (добавить строку в 
~/.mozila/firefox/ИМЯ_ПРОФИЛЯ.default/chrome/userChrome.css):

* {font-size: 10pt :important}

Перезагружаем .Xdefaults

$ xrdb ~/.Xdefaults

$ mencoder dvd:// -ovc xvid -oac mp3lame -xvidencopts bitrate=-700000 -o файл.avi

$ ffmpeg -i фильм.avi -s qcif -r 12 -ac 1 -ar 8000 -b 30 -ab 12 мини-фильм.3gp

Системные команды, которыми можно проверить ресурсы системы:

top -mio – показать I/O по процессам
top -S – показать системные процессы в топе (по дефолту они не показываются)
gstat – нагрузка на диски
iostat -d -w1 -c7 – нагрузка на диски
systat -io start 1
diskinfo -t da0 – тест на дисковую производительность
tunefs -p /var/ – информация о настройках файловой системы
vmstat -z чего не хватает
vmstat -i прерывания по устройствам
netstat -i ошибки на интерфейсах
systat -ifstat – интенсивность передачи трафика
netstat -inb – передано через интерфейс в байтах
netstat -w1 – количество пакетов/ошибок/байт на интерфейсе
sysctl kern.ipc.numopensockets – количество открытых сокетов
df -H – количество свободного места
df -i – количество свободных инодов


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

Клавиатурные комбинации в Midnight Commander имеют особенность: комбинация Ctrl + Х означает, что нужно нажать CTRL и клавишу X, отпустить и потом нажать нужную клавишу.(Пример: нажимаем Ctrl + X отпускаем и жмем C )

Итак, некоторые комбинации клавиш Midnight Commander:

Ctrl + R обновляет активную панель;

Ctrl + X C посмотреть/поменять права (chmod) для отмеченных файлов;

Ctrl + X O посмотреть/поменять владельца (chown) для отмеченных файлов;

Ctrl + S или Alt + S открывает диалог быстрого поиска (вводимые символы отображаются не в командной строке, а в строке поиска);

Ctrl + X A открывает диалог виртуальных файловых систем;

Ctrl+ \ вызывается меню часто используемых каталогов.

Ctrl + X J показываются все фоновые задачи.

Ctrl + X T послать выделенные объекты в командную строку

Ctrl + X S создать символическую ссылку (symlink)

Ctrl + X Q быстрый просмотр содержимого файла на второй панели.

Ctrl + X I быстрый просмотр информации о текущем объекте на второй панели.

ESC + T или ALT + T cмена вида панели (стандартный, укороченный, расширенный);

ESC + H или ALT + H вызов списка последних выполненных команд;

Alt + G отмечает первый файл или каталог в отображаемом списке на панели

Alt + R отмечает средний файл или каталог в отображаемом списке на панели

Alt + J отмечает последний файл или каталог в отображаемом списке на панели

Alt + O неактивная панель переходит в каталог на который указывает активная панель.

Alt + . не показывать или показать скрытые файлы или каталоги.

Alt + , переключить режим отображения панелей (вертикально/горизонтально).


1-50 51-100 101-147
Форма входа

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024