教程
获取ssh教程配套的远程服务器账号的信息:
homework 4 getinfo
创建作业 & 测试作业的正确性
homework 4 create 可以重新创建所有lesson_4的作业
homework 4 create id 可以单独创建lesson_4的第id个作业
e.g. homework 4 create 0 可以只重新创建lesson_4的第0个作业
homework 4 test 可以评测lesson_4的所有作业
作业
创建好作业后,先进入文件夹/home/acs/homework/lesson_4/,然后:
(0) 进入homework_0文件夹,要求:
[1] 该文件夹内容为空
[2] 配置服务器账号的密钥登陆方式。服务器信息可以通过如下命令获得:
homework 4 getinfo
将服务器账号的名称(Host)配置成:myserver
(1) 进入homework_1文件夹,下列描述中的“本地”均表示当前文件夹。要求:
[1] 在myserver服务器上创建并清空文件夹:~/homework/lesson_4/homework_1/
[2] 将本地的main.cpp文件上传到myserver中的~/homework/lesson_4/homework_1/目录中。
[3] 在本地创建文件夹dir。
[4] 将myserver中的/etc/lsb-release文件复制到dir中。
(2) 进入homework_2文件夹,下列描述中的“本地”均表示当前文件夹,要求:
[1] 在myserver服务器上创建并清空文件夹:~/homework/lesson_4/homework_2/
[2] 将本地的dir文件夹上传到myserver中的~/homework/lesson_4/homework_2/目录中。
(3) 进入homework_3文件夹,下列描述中的“本地”均表示当前文件夹,要求:
[1] 在本地创建文件夹dir。
[2] 将myserver中的/var/lib/locales/supported.d文件夹下载到本地dir文件夹中。
(4) 进入homework_4文件夹,编写脚本remote_mkdir.sh和remote_rmdir.sh,要求:
[1] 在myserver服务器上创建并清空文件夹:~/homework/lesson_4/homework_4/
[2] 本地目录下仅包含remote_mkdir.sh和remote_rmdir.sh
[3] remote_mkdir.sh和remote_rmdir.sh具有可执行权限
[4] remote_mkdir.sh接收一个传入参数。格式为 ./remote_mkdir.sh directory_name
该操作可以在myserver服务器上的~/homework/lesson_4/homework_4/目录下,创建一个名为directory_name的文件夹
[5] remote_rmdir.sh接收一个传入传输。格式为 ./remote_rmdir.sh directory_name
该操作可以将myserver服务器上的~/homework/lesson_4/homework_4/目录下的名为directory_name的文件夹删掉。
[6] 注意:传入的文件参数可能包含空格。两个脚本均不需要判断传入参数的合法性。
homework_0
进入 homework_0
文件夹,要求:
ㅤㅤ[1] 该文件夹内容为空
ㅤㅤ[2] 配置服务器账号的密钥登陆方式。服务器信息可以通过如下命令获得:
ㅤ ㅤ homework 4 getinfo
ㅤㅤ将服务器账号的名称(Host
)配置成:myserver
配置服务器别名
在~/.ssh目录下创建文件:config
cd ~/.ssh
vim config
内容:
Host myserver
HostName 123.57.47.211
User acs_2102
配置密钥登录
ssh-keygen
ssh-copy-id myserver
homework_1
homework_1
进入 homework_1
文件夹,下列描述中的 本地 均表示当前文件夹。要求:
[1] 在 myserver
服务器上创建并清空文件夹:~/homework/lesson_4/homework_1/
ㅤㅤ[2] 将本地的 main.cpp
文件上传到 myserver
中的 ~/homework/lesson_4/homework_1/
目录中。
ㅤㅤ[3] 在本地创建文件夹 dir
。
ㅤㅤ[4] 将 myserver
中的 /etc/lsb-release
文件复制到 dir
中。
# myserver
ssh myserver
[1] mkdir homework/lesson_4/homework_1 -p # -p 不存在则创建
# acs
cd homework/lesson_4/homework_1
[2] scp main.cpp myserver:homework/lesson_4/homework
[3] mkdir dir
[4] scp myserver:/etc/lsb-release dir
homework_2
进入 homework_2
文件夹,下列描述中的 本地 均表示当前文件夹,要求:
ㅤㅤ[1] 在 myserver
服务器上创建并清空文件夹:~/homework/lesson_4/homework_2/
ㅤㅤ[2] 将本地的 dir
文件夹上传到 myserver
中的 ~/homework/lesson_4/homework_2/
目录中。
# myserver
[1] mkdir homework/lesson_4/homework_2 -p
# acs
cd homework_2
[2] scp -r dir myserver:homework/lesson_4/homework_2
homework_3
进入 homework_3
文件夹,下列描述中的 本地
均表示当前文件夹,要求:
ㅤㅤ[1] 在本地创建文件夹 dir
。
ㅤㅤ[2] 将 myserver
中的 /var/lib/locales/supported.d
文件夹下载到本地 dir
文件夹中。
cd homework_3
[1] mkdir dir
[2] scp -r myserver:/var/lib/locales/supported.d dir
homework_4
进入 homework_4
文件夹,编写脚本 remote_mkdir.sh
和 remote_rmdir.sh
,要求:
ㅤㅤ[1] 在 myserver
服务器上创建并清空文件夹:~/homework/lesson_4/homework_4/
ㅤㅤ[2] 本地目录下仅包含 remote_mkdir.sh
和 remote_rmdir.sh
ㅤㅤ[3] remote_mkdir.sh
和 remote_rmdir.sh
具有可执行权限
ㅤㅤ[4] remote_mkdir.sh
接收一个传入参数。格式为 `./remote_mkdir.sh directory_name
ㅤㅤ该操作可以在 myserver
服务器上的 ~/homework/lesson_4/homework_4/
目录下,
ㅤㅤ创建一个名为 directory_name
的文件夹
ㅤㅤ[5] remote_rmdir.sh
接收一个传入传输。格式为 ./remote_rmdir.sh directory_name
ㅤㅤ该操作可以将 myserver
服务器上的 ~/homework/lesson_4/homework_4/
目录下的名为 directory_name
的文件夹删掉。
ㅤㅤ[6] 注意:传入的文件参数可能包含空格。两个脚本均不需要判断传入参数的合法性。
# myserver
[1] mkdir homework/lesson_4/homework_4
# acs
[2] vim remote_mkdir.sh vim remote_rmdir.sh
[3] chmod +x remote_mkdir.sh chmod +x remote_rmdir.sh
[4] # remote_mkdir.sh
#! /bin/bash
ssh myserver mkdir homework/lesson_4/homework_4/\"$1\"
[5] # remote_rmdir.sh
#! /bin/bash
ssh myserver r homework/lesson_4/homework_4/\"$1