Виртуальные интерфейсы можно создать с помощью инструментария iproute2 .
ip link add veth0 type veth peer name veth1
Это приведет к созданию 2 интерфейсов veth0
и veth1
. Подумайте о них 2 как о концах трубы. Любой трафик, отправленный в veth0
, будет исходить из veth1
и наоборот.
Если требуется маршрутизация трафика, можно выполнить следующие действия:
sysctl -w net.ipv4.conf.veth0.forwarding=1
Это позволит ядру пересылать трафик, поступающий от veth0
(поэтому используйте veth1
для используемой конечной точки).
Другой вариант - установка моста с veth0
и другим интерфейсом. Тогда любой трафик, поступающий через виртуальный интерфейс, будет направляться в сеть, как если бы ваша машина просто действовала как коммутатор.
Есть много других вещей, которые вы можете сделать с этим трафиком (маскировать его, перенаправлять, DNAT и т.д.), но это зависит от того, что вы пытаетесь сделать.
Чтобы разорвать его:
ip link del veth0
-121--5767-
man xmodmap
говорит:
Список имен ключей можно найти в файле заголовка (без префикса XK_), дополненный базой данных/ usr/local/share/X11/XKeysymDB ключей.
Для вашего примера, соответствующая строка X11/keysymdef.h:
#define XK_rightdoublequotemark 0x0ad3 /* U+201D RIGHT DOUBLE QUOTATION MARK */
Последние версии этого файла имеют заголовок комментария, который описывает, как надежно проанализировать его с помощью Perl
/etc. для любых необходимых действий машины, включая создание таблицы обратного хода.
-121--76477-
При использовании Bash и его способности выполнять завершение с помощью клавиши Tab существует 2 аспектов завершения, которые могут путаться.
Если ввести букву в подсказке и перейти на Tab , вы заметите описываемое поведение.
$ el Tab
el4-rpmlint el5-rpmlint elbadmin elfedit elif elinks else
Это поиск в системе $ PATH
и представление исполняемых файлов, соответствующих критериям поиска, т.е. el
.
Однако при наличии каталога таких файлов, как приведенный ниже, можно использовать те же самые возможности завершения с помощью Tab .
Примеры файлов:
$ ls -1
efile.pdf
elementary_differentail_equations_and_boundary_value_problems_9ed_boyce_diprima.pdf
elements1.pdf
Делать этом:
$ ls el Tab
Bash автозавершит это до слова элемент
. В этот пункт она остановится, так как это самая большая последовательность, которая является общей для группы файлов (или одного файла) в текущем каталоге. Если вы дважды нажмете Tab , Bash выведет список файлов, соответствующих этому элементу:
$ ls element Tab Tab elementary_differentail_equations_and_boundary_value_problems_9ed_boyce_diprima.pdf elements1.pdf
$ ls element
После этого вы вернетесь в то же место в приглашении. Баш в основном сделал ls элемент *
для вас в тот момент. Если ввести букву или две, чтобы помочь Bash в том, какой файл вы хотите из подмножества он представил вам и нажмите Tab еще раз, он попытается сопоставить некоторые из ваших файлов с вашим расширенным рядом теперь в ответ на запрос:
$ ls elementa Tab
Будет достаточно, чтобы получить остальное имя файла:
$ ls elementary_differentail_equations_and_boundary_value_problems_9ed_boyce_diprima.pdf
Как объясняется в Zram Wiki :
zram (ранее называвшийся compcache) может создавать блочные устройства на основе RAM. Это экспериментальный (промежуточный) модуль ядра Linux начиная с версии 3.2.
Итак, если вы используете ядро до 3.2, вам необходимо скопировать следующий сценарий (взятый из здесь ) в /etc/init.d/zram
:
### BEGIN INIT INFO
# Provides: zram
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: Use compressed RAM as in-memory swap
# Description: Use compressed RAM as in-memory swap
### END INIT INFO
# Author: Antonio Galea <antonio.galea@gmail.com>
# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization
FRACTION=75
MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo`
CPUS=`grep -c processor /proc/cpuinfo`
SIZE=$(( MEMORY * FRACTION / 100 / CPUS ))
case "$1" in
"start")
param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '`
modprobe zram $param=$CPUS
for n in `seq $CPUS`; do
i=$((n - 1))
echo $SIZE > /sys/block/zram$i/disksize
mkswap /dev/zram$i
swapon /dev/zram$i -p 10
done
;;
"stop")
for n in `seq $CPUS`; do
i=$((n - 1))
swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" &
done
wait
sleep .5
modprobe -r zram
;;
*)
echo "Usage: `basename $0` (start | stop)"
exit 1
;;
esac
give он исполняет права с
chmod +x /etc/init.d/zram
, затем проинструктирует вашу систему запустить его во время загрузки, с помощью команды
insserv zram
. После следующей перезагрузки вы увидите своп с
swapon -s
, который будет выглядеть так:
Filename Type Size Used Priority
/dev/zram0 partition 381668 380716 10