Это имеет мало общего с xterm. Вы могли сделать то же самое с двумя оболочками, не вызывая xterm вообще. В этом отношении Вы могли сделать это с одной оболочкой (см. ниже).
Каждый процесс имеет текущий рабочий каталог. Это не прослежено по имени, но как указатель (более или менее) на сам каталог. (Я не уверен, как это представлено внутренне; это может быть что-то как главные и незначительные номера устройств и inode число для каталога.)
Оболочка, работающая в Вашем первом xterm, имеет test_01
как его текущий каталог. Тот каталог затем переименован (другим процессом) от test_01
кому: test_01_old
- но это - все еще тот же каталог, и процесс оболочки все еще имеет его как свой текущий каталог.
Ядро не помнит название текущего каталога, но Ваша оболочка делает. Это использует эту информацию при выполнении встроенного pwd
команда. Оболочка под Вашим первым xterm не заметила, что каталог был переименован, поэтому когда Вы вводите pwd
это печатает кэшируемый путь.
Но /bin/pwd
внешняя команда, и она не имеет доступа к кэшируемой информации оболочки. Это работает путем запуска с текущего каталога (чье имя это сразу не знает), смотря на ..
запись, и пересекающий иерархию каталогов, пока это не добирается до корня (т.е. каталог, чей ..
точки входа к себе); это затем печатает элементы пути, в обратном порядке разграниченные /
персонажи.
Например, я просто сделал следование моей системы (Ubuntu 12.04, колотите 4.2.24):
$ pwd ; /bin/pwd
/home/kst
/home/kst
$ mkdir test_01
$ cd test_01
$ pwd ; /bin/pwd
/home/kst/test_01
/home/kst/test_01
$ mv /home/kst/test_01 /home/kst/test_01_old
$ pwd ; /bin/pwd
/home/kst/test_01
/home/kst/test_01_old
$ cd $(/bin/pwd)
$ pwd ; /bin/pwd
/home/kst/test_01_old
/home/kst/test_01_old
$
Как видете, pwd
и /bin/pwd
последовательны, пока я не переименовываю текущий каталог; затем встроенная оболочка pwd
печать, чем это помнит текущий каталог, чтобы быть. Но когда я делаю cd $(/bin/pwd)
, эти два находятся в синхронизации снова.
Установите отдельный сервер для действия как сопоставитель. Я рекомендовал бы, чтобы любое выполнение Unix связало. Затем имейте тот сервер вперед внутренние домены только к 10.1.1.1 при разрешении всего остального нормальный путь.
Существуют инструкции относительно того, как сделать, связывают, делают это в этом вопросе.
Я сделал сервер DNS, где это легко настроить, как зарегистрировано здесь:
http://maradns.samiam.org/deadwood/doc/Deadwood-HOWTO
Конфигурация выглядела бы примерно так в Дедвуде:
bind_address = "127.0.0.1, 192.168.1.42"
recursive_acl = "127.0.0.1/16, 192.168.1.1/24"
chroot_dir = "/etc/maradns"
root_servers = {}
root_servers["."]="198.41.0.4, 192.228.79.201, 192.33.4.12, 199.7.91.13,"
root_servers["."]+="192.203.230.10, 192.5.5.241, 192.112.36.4, 128.63.2.53, "
root_servers["."]+="192.36.148.17, 192.58.128.30, 193.0.14.129, 199.7.83.42, "
root_servers["."]+="202.12.27.33"
root_servers["company.de."]="192.168.1.111"
filter_rfc1918 = 0
bind_address: IP внутреннего сервера DNS
recursive_acl: дюйм/с позволил использовать рекурсивный сервер DNS
chroot_dir: Куда сервер выполняется
root_servers [". "]: корневые серверы имен ICANN
root_servers ["company.de".] = "192.168.1.111"
IP сервера, который разрешает что-либо, что заканчивается "company.de".
filter_rfc1918 = 0: Позвольте именам с дюйм/с как 192.168.0.123 решать
Это может также быть установкой к, скажем, обычно серверам имен Google использования:
bind_address = "127.0.0.1, 192.168.1.42"
recursive_acl = "127.0.0.1/16, 192.168.1.1/24"
chroot_dir = "/etc/maradns"
upstream_servers = {}
upstream_servers["."]="8.8.8.8, 8.8.4.4"
upstream_servers["company.de."]="192.168.1.111"
filter_rfc1918 = 0