使用入门:CLI 快速教程
以下主题可帮助您(网络管理员)开始使用 Junos OS CLI 来执行配置更改、在操作模式和配置模式之间切换、创建用户帐户以及执行一些基本命令。
注:
如果您需要 Junos OS 的基本介绍,请参阅 Junos OS 入门指南。
有关更深入的信息以及如何将 Junos OS 用于瞻博网络设备,请参阅 Junos OS 概述。
本 Junos OS CLI 指南假定您熟悉 Junos OS 概念和操作原则。
命令行界面入门
本主题介绍如何启动 Junos OS CLI、查看命令层次结构以及进行细微的配置更改。
注:
在开始之前,请确保设备硬件已设置并 Junos OS 已安装。您必须与设备进行直接控制台连接,或者使用 SSH 或 Telnet 对设备进行网络访问。如果设备未安装,请遵循设备附带的安装说明完成安装,然后再继续操作。
要登录设备并启动 CLI,请执行以下步骤:
以 root 的身份登录。
root 登录帐户拥有超级用户权限,可访问所有命令和语句。
启动 CLI:
root# cli
root@>
>命令提示符显示您处于操作模式。之后,进入配置模式,提示符将变为 #。
注:
如果您是第一次在设备上使用 root 帐户,请记住设备附带的 root 不需要密码。首次提交配置时,必须设置 root 密码。不允许通过 telnet 会话进行 root 访问。要通过 SSH 连接启用 root 访问,必须配置 system services ssh root-login allow 语句。
CLI 命令可能因平台和软件版本而异。CLI 包含多种获取可用命令相关帮助的方法。本部分将演示获取帮助的一些示例:
键入 ? 以显示操作模式下可用的顶级命令。
root@> ?
Possible completions:
clear Clear information in the system
configure Manipulate software configuration information
diagnose Invoke diagnose script
file Perform file operations
help Provide help information
monitor Show real-time debugging information
mtrace Trace multicast path from source to receiver
ping Ping remote target
quit Exit the management session
request Make system-level requests
restart Restart software process
set Set CLI properties, date/time, craft interface message
show Show system information
ssh Start secure shell on another host
start Start shell
telnet Telnet to another host
test Perform diagnostic debugging
traceroute Trace route to remote host
键入 file ? 以显示 file 命令的所有可能补全形式。
root@> file ?
Possible completions:
<[Enter]> Execute this command
archive Archives files from the system
checksum Calculate file checksum
compare Compare files
copy Copy files (local or remote)
delete Delete files from the system
list List file information
rename Rename files
show Show file contents
source-address Local address to use in originating the connection
| Pipe through a command
键入 file archive ? 以显示 file archive 命令的所有可能补全形式。
root@> file archive ?
Possible completions:
compress Compresses the archived file using GNU gzip (.tgz)
destination Name of created archive (URL, local, remote, or floppy)
source Path of directory to archive
在操作模式和配置模式之间切换
监视和配置运行中的 Junos OS设备时,可能需要在模式之间切换。在操作模式和配置模式之间切换时,命令提示符也会更改。操作模式提示符为右尖括号 (>)。配置模式提示符为井号 (#)。
要在操作模式和配置模式之间切换:
登录设备并键入命令并按 cli Enter 键时,您将自动进入操作模式:
---JUNOS 17.2B1.8 built 2018-05-09 23:41:29 UTC
% cli
user@host>
要进入配置模式,请在 CLI 操作模式下键入 configure 命令或 edit 命令。方括号 ([edit]) 中的提示符(也称为 横幅)表示您处于层次结构顶部的配置模式。例如:
user@host> configure
Entering configuration mode
[edit]
user@host#
CLI 提示符从 变为 user@host> , user@host#表示您处于配置模式,并显示一个横幅以指示层次结构级别。
您可以通过以下方式之一退出配置模式并返回到操作模式:
提交配置并退出:
[edit]
user@host# commit and-quit
commit complete
Exiting configuration mode
user@host>
退出而不提交:
[edit]
user@host# exit
Exiting configuration mode
user@host>
退出配置模式时,CLI 提示符将从 user@host# 更改为 user@host>,并且不再显示横幅。您可以根据需要不限次数地进入或退出配置模式,而不提交更改。
要显示 操作模式命令 的输出(如 show 在配置模式下时),请发出 run 配置模式命令。然后,指定操作模式命令:
[edit]
user@host# run operational-mode-command
例如,要在修改备份设备的 VRRP 配置时,显示当前设置的虚拟路由器冗余协议 (VRRP) 的主设备优先级值:
[edit interfaces xe-4/2/0 unit 0 family inet vrrp-group 27]
user@host# show
virtual-address [ 192.168.1.15 ];
[edit interfaces xe-4/2/0 unit 0 family inet vrrp-group 27]
user@host# run show vrrp detail
Physical interface: xe-5/2/0, Unit: 0, Address: 192.168.29.10/24
Interface state: up, Group: 10, State: backup
Priority: 190, Advertisement interval: 3, Authentication type: simple
Preempt: yes, VIP count: 1, VIP: 192.168.29.55
Dead timer: 8.326, Master priority: 201, Master router: 192.168.29.254
[edit interfaces xe-4/2/0 unit 0 family inet vrrp-group 27]
user@host# set priority ...
使用键盘序列导航和编辑 CLI
您可以在 CLI 中使用 Junos OS 键盘序列来导航和编辑命令行。您还可以使用键盘序列以滚动浏览最近执行的命令列表。下表列出了一些 CLI 键盘序列。这些序列与 Emacs 中使用的序列相同。
表 1: CLI 键盘快捷键
键盘序列
操作
Ctrl+b
将光标向后移动一个字符。
Esc+b 或 Alt+b
将光标向后移动一个单词。
Ctrl+f
将光标向前移动一个字符。
Esc+f 或 Alt+f
将光标向前移动一个单词。
Ctrl+a
将光标移动到命令行的开头。
Ctrl+e
将光标移动到命令行的结尾。
Ctrl+h、删除、 或退格键
删除光标前的字符。
Ctrl+d
删除光标位置的字符。
Ctrl+k
删除从光标到命令行末尾的所有字符。
Ctrl+u 或 Ctrl+x
删除命令行中的所有字符。
Ctrl+w, Esc+Backspace, 或 Alt+退格键
删除光标前的单词。
Esc+d 或 Alt+d
删除光标后的单词。
Ctrl+y
在光标位置插入最近删除的文本。
Ctrl+l
重绘当前行。
Ctrl+p
向后滚动,浏览最近执行的命令列表。
Ctrl+n
向前滚动,浏览最近执行的命令列表。
Ctrl+r
按相反顺序以递增的方式搜索 CLI 历史记录中与搜索字符串匹配的行。
Esc+/ 或 Alt+/
搜索 CLI 历史记录中以当前单词为前缀的单词。
Esc+。或 Alt+。
向后滚动,浏览最近在命令行中输入的单词列表。
Esc+number sequence 或 Alt+number sequence
指定执行键盘序列的次数。
在瞻博网络设备上配置用户帐户
本主题介绍如何使用 root 帐户登录瞻博网络设备并配置新用户帐户。您可以配置自己使用的帐户,也可以创建测试帐户。
要在设备上配置新用户帐户,请执行以下操作:
以 root 身份登录并进入配置模式:
root@host> configure
[edit]
root@host#
([edit]) 提示横幅表示您处于层级结构顶层的配置编辑模式。
对配置的 [edit system login] 部分进行更改:
[edit]
root@host# edit system login
[edit system login]
root@host#
括号中的提示符变为 [edit system login] ,表明您处于层次结构中的新级别。
现在添加新的用户帐户。在示例中, user1 表示用户名:
[edit system login]
root@host# edit user user1
此示例添加一个帐户 user1。
注:
用户帐户名可以包含句点 (.)。例如,您可以有一个 user.1用户帐户 。但是,用户名不能以句点开头或结尾。
为帐户配置完整名称。如果名称中包含空格,请用引号 (“ ”) 将整个名称括起来:
[edit system login user user1]
root@host# set full-name "User One"
配置帐户类别:帐户类别可设置帐户的用户访问权限:
[edit system login user user1]
root@host# set class super-user
为帐户配置身份验证方法和密码:
[edit system login user user1]
root@host# set authentication plain-text-password
New password:
Retype new password:
出现新密码提示时,输入系统可以加密的明文密码,然后确认新密码。
提交配置:
[edit system login user user1]
root@host# commit
commit complete
在您提交配置之前,配置更改不会处于活动状态。如果提交成功,将显示一条 commit complete 消息。
返回最高级别配置,然后退出:
[edit system login user user1]
root@host# top
[edit]
root@host# exit
Exiting configuration mode
注销设备:
root@host> exit
% logout Connection closed.
要测试更改的配置,请使用刚刚配置的用户帐户和密码重新登录:
login: user1
Password: password
---JUNOS 17.2B1.8 built 2018-05-09 23:41:29 UTC
user1@host>
登录时,应该可以在命令提示符处看到新用户名。
您已成功使用 CLI 查看设备状态并执行简单的配置更改。
注:
有关配置设备时要发出的命令的完整信息(包括示例),请参阅 Junos OS 配置指南。
在配置模式下使用 CLI 编辑器
本主题介绍可用于在 CLI 编辑器中进入配置模式的基本命令。本主题还介绍了用于导航配置层次结构、获取帮助以及提交或还原在配置会话期间所做的更改的命令。
任务
命令/语句
示例
编辑您的配置
进入配置模式。
启动 CLI 时,设备处于操作模式。您必须以显式方式进入配置模式。执行此操作时,CLI 提示符从 更改为 user@host>user@host#,并且层次结构级别显示在方括号中。
configure
user@host> configure
[edit]
user@host#
创建语句层次结构。
您可以使用 edit 命令在创建层次结构的同时移动到其中的新层级中。不能使用 edit 命令更改标识符的值。
edit hierarchy-level value
[edit]
user@host# edit security zones security-zone myzone
[edit security zones security-zone myzone]
user@host#
创建语句层次结构并设置标识符值。
该 set 命令与 类似 edit,只是层次结构中的当前级别不会更改。
set hierarchy-level value
[edit]
user@host# set security zones security-zone myzone
[edit]
user@host#
在层次结构中导航
向下导航至一个现有层级。
edit hierarchy-level
[edit]
user@host# edit security zones
[edit security zones]
user@host#
在层次结构中向上导航一个层级。
up
[edit security zones]
user@host# up
[edit security]
user@host#
导航至层次结构的顶部。
top
[edit security zones]
user@host# top
[edit]
user@host#
提交或恢复更改
提交配置。
commit
[edit]
user@host# commit
commit complete
从当前会话回滚更改。
使用 rollback 命令可从当前的配置会话恢复所有更改。在退出会话或提交更改之前运行 rollback 命令时,软件会将最近提交的配置加载到设备上。您必须在层次结构的 edit 层级输入 rollback 语句。
rollback
[edit]
user@host# rollback
load complete
退出配置模式
提交配置,然后退出配置模式。
commit and-quit
[edit]
user@host# commit and-quit
user@host>
退出配置模式而不提交您的配置。
您必须先使用 up 或 top 命令导航到层次结构顶部,然后才能退出配置模式。
exit
[edit]
user@host# exit
The configuration has been changed but not committed
Exit with uncommitted changes? [yes,no] (yes)
获取帮助
显示当前层级的有效选项列表。
?
[edit ]
user@host# edit security zones ?
Possible completions:
<[Enter]> Execute this command
> functional-zone Functional zone
> security-zone Security zones
| Pipe through a command
[edit]
另请参阅了解 Junos OS CLI 配置模式
检查瞻博网络设备的状态
在操作模式下,您可以使用 show 命令检查设备的状态并监控设备上的活动。
为了帮助您熟悉 show 命令,请执行以下步骤:
键入 show ? 以显示可用于监控路由器的 show 命令列表:
root@> show ?
Possible completions:
accounting Show accounting profiles and records
aps Show Automatic Protection Switching information
arp Show system Address Resolution Protocol table entries
as-path Show table of known autonomous system paths
bfd Show Bidirectional Forwarding Detection information
bgp Show Border Gateway Protocol information
chassis Show chassis information
class-of-service Show class-of-service (CoS) information
cli Show command-line interface settings
configuration Show current configuration
connections Show circuit cross-connect connections
dvmrp Show Distance Vector Multicast Routing Protocol info
dynamic-tunnels Show dynamic tunnel information information
esis Show end system-to-intermediate system information
firewall Show firewall information
helper Show port-forwarding helper information
host Show hostname information from domain name server
igmp Show Internet Group Management Protocol information
ike Show Internet Key Exchange information
ilmi Show interim local management interface information
interfaces Show interface information
ipsec Show IP Security information
ipv6 Show IP version 6 information
isis Show Intermediate System-to-Intermediate System info
l2circuit Show Layer 2 circuit information
l2vpn Show Layer 2 VPN information
lacp Show Link Aggregation Control Protocol information
ldp Show Label Distribution Protocol information
link-management Show link management information
llc2 Show LLC2 protocol related information
log Show contents of log file
mld Show multicast listener discovery information
mpls Show Multiprotocol Label Switching information
msdp Show Multicast Source Discovery Protocol information
multicast Show multicast information
ntp Show Network Time Protocol information
ospf Show Open Shortest Path First information
ospf3 Show Open Shortest Path First version 3 information
passive-monitoring Show information about passive monitoring
pfe Show Packet Forwarding Engine information
pgm Show Pragmatic Generalized Multicast information
pim Show Protocol Independent Multicast information
policer Show interface policer counters and information
policy Show policy information
ppp Show PPP process information
rip Show Routing Information Protocol information
ripng Show Routing Information Protocol for IPv6 info
route Show routing table information
rsvp Show Resource Reservation Protocol information
sap Show Session Announcement Protocol information
security Show security information
services Show services information
snmp Show Simple Network Management Protocol information
system Show system information
task Show routing protocol per-task information
ted Show Traffic Engineering Database information
version Show software process revision levels
vpls Show VPLS information
vrrp Show Virtual Router Redundancy Protocol information
使用 show chassis routing-engine 命令查看路由引擎状态:
root@> show chassis routing-engine
Routing Engine status:
Slot 0:
Current state Master
Election priority Master (default)
Temperature 31 degrees C / 87 degrees F
CPU temperature 32 degrees C / 89 degrees F
DRAM 768 MB
Memory utilization 84 percent
CPU utilization:
User 0 percent
Background 0 percent
Kernel 1 percent
Interrupt 0 percent
Idle 99 percent
Model RE-2.0
Serial ID b10000078c10d701
Start time 2005-12-28 13:52:00 PST
Uptime 12 days, 3 hours, 44 minutes, 19 seconds
Load averages: 1 minute 5 minute 15 minute
0.02 0.01 0.00
使用 show system storage 命令查看设备上的可用存储:
root@> show system storage
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 865M 127M 669M 16% /
devfs 1.0K 1.0K 0B 100% /dev
devfs 1.0K 1.0K 0B 100% /dev/
/dev/md0 30M 30M 0B 100% /packages/mnt/jbase
/dev/md1 158M 158M 0B 100% /packages/mnt/jkernel-9.3B1.5
/dev/md2 16M 16M 0B 100% /packages/mnt/jpfe-M7i-9.3B1.5
/dev/md3 3.8M 3.8M 0B 100% /packages/mnt/jdocs-9.3B1.5
/dev/md4 44M 44M 0B 100% /packages/mnt/jroute-9.3B1.5
/dev/md5 12M 12M 0B 100% /packages/mnt/jcrypto-9.3B1.5
/dev/md6 25M 25M 0B 100% /packages/mnt/jpfe-common-9.3B1.5
/dev/md7 1.5G 196K 1.4G 0% /tmp
/dev/md8 1.5G 910K 1.4G 0% /mfs
/dev/ad0s1e 96M 38K 88M 0% /config
procfs 4.0K 4.0K 0B 100% /proc
/dev/ad1s1f 17G 2.6G 13G 17% /var
另请参阅使用操作模式命令管理程序和进程
查看瞻博网络设备上的文件和目录
回滚配置更改
本主题介绍如何使用该 rollback 命令将未提交但经过修订的配置返回到最近提交的 Junos OS 配置状态。如果您进行配置更改后,决定不保留更改,即可使用 rollback 命令。
以下过程说明如何在瞻博网络设备上配置 SNMP 运行状况监视器,然后返回到最近提交的配置(不包括运行状况监视器)。配置 SNMP 运行状况监视器后,它就可以提供带有设备文件系统使用情况、CPU 使用情况和内存使用情况预定义监控功能的网络管理系统 (NMS)。
进入配置模式:
user@host> configure
entering configuration mode
[edit]
user@host#
显示 SNMP 的当前配置(如果有):
[edit]
user@host# show snmp
未出现 snmp 语句,因为设备上尚未配置 SNMP。
配置运行状况监视器:
[edit]
user@host# set snmp health-monitor
显示新配置:
[edit]
user@host# show snmp
health-monitor;
health-monitor 语句表示设备上已配置 SNMP 运行状况监视器。
要返回到最近提交的配置,请输入 rollback 配置模式命令:
[edit]
user@host# rollback
load complete
再次查看配置,确保您的配置更改不再显示:
[edit]
user@host# show snmp
未出现 snmp 配置语句。运行状况监视器配置不再显示更改。
输入 commit 命令激活已回滚到的配置:
[edit]
user@host# commit
退出配置模式:
[edit]
user@host# exit
Exiting configuration mode
您也可使用 rollback 命令返回到早期配置。
另请参阅返回到最近提交的配置
配置路由协议
本主题提供的配置示例将介绍如何配置具有两个 SONET 接口的 OSPF 骨干区域。
最终配置如下所示:
[edit]
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/0 {
hello-interval 5;
dead-interval 20;
}
interface so-0/0/1 {
hello-interval 5;
dead-interval 20;
}
}
}
}
快捷键
长配置
更改路由协议配置
快捷键
您可以使用以下两个命令为整个配置创建快捷方式:
[edit]
user@host# set protocols ospf area 0.0.0.0 interface so-0/0/0 hello-interval 5 dead-interval 20
[edit]
user@host# set protocols ospf area 0.0.0.0 interface so-0/0/1 hello-interval 5 dead-interval 20
长配置
本部分将提供比先前创建的 OSPF 配置更长的示例。配置过程中将讲解如何使用 CLI 的不同功能。
发出 configure 命令,进入配置模式:user@host> configure
entering configuration mode
[edit]
user@host#
请注意,提示符已更改为井号或哈希符号 (#),用于表示配置模式。
要创建上述配置,首先要编辑 protocols ospf 语句:[edit]
user@host# edit protocols ospf
[edit protocols ospf]
user@host#
现在添加 OSPF 区域:[edit protocols ospf]
user@host# edit area 0.0.0.0
[edit protocols ospf area 0.0.0.0]
user@host#
添加第一个接口:[edit protocols ospf area 0.0.0.0]
user@host# edit interface so-0/0/0
[edit protocols ospf area 0.0.0.0 interface so-0/0/0]
user@host#
您现在有四个嵌套语句。
设置发送间隔和无效间隔。 [edit protocols ospf area 0.0.0.0 interface so-0/0/0]
user@host# set hello-interval 5
user@host# set dead-interval 20
user@host#
您可以使用 show 命令查看当前级别上的配置: [edit protocols ospf area 0.0.0.0 interface so-0/0/0]
user@host# show
hello-interval 5;
dead-interval 20;
[edit protocols ospf area 0.0.0.0 interface so-0/0/0]
user@host#
您已完成此级别,因此请转到一个级别并查看到目前为止已完成的操作:
[edit protocols ospf area 0.0.0.0 interface so-0/0/0]
user@host# up
[edit protocols ospf area 0.0.0.0]
user@host# show
interface so-0/0/0 {
hello-interval 5;
dead-interval 20;
}
[edit protocols ospf area 0.0.0.0]
user@host#
因为已经转移到 area 语句,所以将显示 interface 语句。
添加第二个接口:[edit protocols ospf area 0.0.0.0]
user@host# edit interface so-0/0/1
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# set hello-interval 5
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# set dead-interval 20
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# up
[edit protocols ospf area 0.0.0.0]
user@host# show
interface so-0/0/0 {
hello-interval 5;
dead-interval 20;
}
interface so-0/0/1 {
hello-interval 5;
dead-interval 20;
}
[edit protocols ospf area 0.0.0.0]
user@host#
向上移动到顶级层级,查看已完成的配置:[edit protocols ospf area 0.0.0.0]
user@host# top
[edit]
user@host# show
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/0 {
hello-interval 5;
dead-interval 20;
}
interface so-0/0/1 {
hello-interval 5;
dead-interval 20;
}
}
}
}
[edit]
user@host#
此配置现在包含所需的语句。
在提交配置(并由此激活)之前,请验证配置是否正确:[edit]
user@host# commit check
configuration check succeeds
[edit]
user@host#
提交配置以便在设备上将其激活:[edit]
user@host# commit
commit complete
[edit]
user@host#
更改路由协议配置
假设您决定在接口 so-0/0/1上使用不同的失效间隔和你好间隔。您可以对配置进行更改。
通过键入要编辑的语句的完整层次结构路径,直接转到相应的层次结构级别:
[edit]
user@host# edit protocols ospf area 0.0.0.0 interface so-0/0/1
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# show
hello-interval 5;
dead-interval 20;
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# set hello-interval 7
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# set dead-interval 28
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# top
[edit]
user@host# show
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/0 {
hello-interval 5;
dead-interval 20;
}
interface so-0/0/1 {
hello-interval 7;
dead-interval 28;
}
}
}
}
[edit]
user@host#
如果您决定不在第一个接口上运行 OSPF,请删除以下语句:[edit]
user@host# edit protocols ospf area 0.0.0.0
[edit protocols ospf area 0.0.0.0]
user@host# delete interface so-0/0/0
[edit protocols ospf area 0.0.0.0]
user@host# top
[edit]
user@host# show
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/1 {
hello-interval 7;
dead-interval 28;
}
}
}
}
[edit]
user@host#
已删除语句中的所有内容都将随之被删除。您也可在顶级层级输入 delete protocols ospf,清除整个 OSPF 配置。
也许您决定对其余接口的你好间隔和无效间隔使用默认值,但希望 OSPF 在该接口上运行。在这种情况下,请删除你好间隔计时器和无效间隔计时器:
[edit]
user@host# edit protocols ospf area 0.0.0.0 interface so-0/0/1
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# delete hello-interval
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# delete dead-interval
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# top
[edit]
user@host# show
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/1;
}
}
}
[edit]
user@host#
您可以同时设置多个语句,只要它们都是同一层次结构的一部分即可。层次结构由从顶部向内的语句路径以及底部的一个或多个语句组成。同时设置多个语句可以大大减少必须输入的命令数。
要返回接口 so-0/0/1上的原始你好间隔计时器和死间隔计时器,请输入:
[edit]
user@host# edit protocols ospf area 0.0.0.0 interface so-0/0/1
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# set hello-interval 5 dead-interval 20
[edit protocols ospf area 0.0.0.0 interface so-0/0/1]
user@host# exit
[edit]
user@host# show
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/1 {
hello-interval 5;
dead-interval 20;
}
}
}
}
[edit]
user@host#
您还可以像以前一样重新创建另一个接口,只有一个条目:
[edit]
user@host# set protocols ospf area 0.0.0.0 interface so-0/0/0 hello-interval 5 dead-interval 20
[edit]
user@host# show
protocols {
ospf {
area 0.0.0.0 {
interface so-0/0/0 {
hello-interval 5;
dead-interval 20;
}
interface so-0/0/1 {
hello-interval 5;
dead-interval 20;
}
}
}
}
[edit]
user@host#