以下技巧请务必保证你已经按照 安装NOILinux2虚拟机 完整执行完后再操作。
好不容易安装好的虚拟机,就别乱动了。复制一份副本出来用吧:“右键虚拟机 -> 复制 -> 选择好位置然后一路下一步”。
这样如果一不小心把副本玩崩了就不用重新装了,再复制一个副本出来就好。
这样咱的虚拟机和宿主机就可以互相传文件了!
但比赛时如果是虚拟机系统,请务必全程在虚拟机内完成代码,至少在宿主机完成代码后再在虚拟机内也编译运行一次。并且你也不能保证比赛时用的也是 VM VirtualBox。
点击“设备 -> 共享文件夹 -> 共享文件夹”,进入配置页面
右键点击“固定分配”,点击“添加共享文件夹”
按需配置
这样就搞定了!
换个好看的壁纸是 AK 的第一步,在桌面上“右键 -> 修改壁纸(Change Background...)”即可。
/
,所有目录文件逻辑上都在根目录下面。
/home/noi/Desktop/
路径就是根目录下的 home
文件夹里的 noi
文件夹里的 Desktop
文件夹。noi
的主文件夹路径一般是 /home/noi/
,当前用户的主文件夹可以用 ~
表示。Desktop
)、下载(Download
) 等子文件夹。.
” 和 “..
”,分别表示当前文件夹和上一级文件夹。a.cpp
在 Linux 中就是一个名称有五个字符的文件,文件名后缀有 .cpp
。但这不意味着 .cpp
这样的后缀名没用,很多代码编辑器会以此设置默认的语言高亮。并且咱比赛提交的选手文件夹里的每个源代码必须是 .cpp
的后缀名,一定注意!桌面(或某个文件夹里)“右键 -> 在终端中打开(Open in Terminal)” 即可打开终端。
<tab>
:当你想要再终端下敲击某个文件名或路径时,tab 键可以自动联想。
abcde.cpp
,abccd.cpp
,abcee.cpp
”a<tab>
:会自动补全为 abc
abcc<tab>
:会自动补全为 abccd.cpp
ls
:即 list,可以显示当前目录下的文件
ls -l
:以列表模式显示每个文件ls -a
:显示所有文件(包括隐藏的文件夹和文件)ls -al
:以列表模式显示所有文件(包括隐藏的文件夹和文件)cd
:即 change directory,可以改变当前所在的目录。
cd a
:跳转到当前文件夹下的名称为 a
的子文件夹cd ..
:跳转到上一级文件夹cd .
:跳转到当前文件夹,啥用没有cd /home/noi/Desktop
:跳转到用户 noi
的桌面文件夹cd ~
:跳转到当前用户的主文件夹pwd
:即 print working directory,显示完整的当前路径mkdir
: 即 make directory,创建一个文件夹
mkdir a
:在当前文件夹下创建了一个名称为 a 的子文件夹mkdir ~/Desktop/a
:在当前用户的主文件夹下的 Desktop
文件夹里创建了一个名称为 a 的子文件夹。mkdir /home/noi/Desktop/a
:上一个命令的完整版本。touch
:新建文件
touch a
:新建一个名称为 a 的空文件touch /xxx/xxx/a
:在某个指定路径下创建一个名称为 a 的空文件。sudo 命令
:即 super user do
,使用最高管理员权限(root
权限)运行后面的命令,一般在安装软件、更新系统等操作时会用到,比赛时一般用不到(也不建议在比赛时使用,sudo
可以做任何事,包括删除整个操作系统,因此造成的时间损失一般不会赔偿的)。rm
:即 remove
,删除命令。
rm a
:删除文件 a
rm -f a
:删除文件 a
,无需确认。rm -r a
:递归地删除文件夹 a
及其子文件夹。sudo rm -rf /
:目前你应该能读懂这个命令了,这表示用最高权限去删除整个根目录。运行完后操作系统会开始递归地删除所有文件。在这写这个命令不是为了让你去运行,而是由此提醒,新手阶段尽量不要去用终端命令删除文件,有时敲错一点点内容就会酿成大祸。cp
:即 copy
,复制命令。
cp a b
:复制一份当前目录下的 a
文件到当前目录,新文件名为 b
。a
和 b
都可以写带路径的文件,比如 cp /home/noi/a /home/noi/Desktop/b
。cp -r a b
:复制一份当前目录下的 a
文件夹到当前目录,新文件夹名为 b
。a
和 b
都可以写完整路径的。cat
:用来显示某个文本的内容
cat aplusb.cpp
:显示 aplusb.cpp
的内容。clear
:清空终端前面的内容diff
:检测两个文件的区别,类似 Windows 下的 fc
diff 1.out 1.ans
:检测 1.out
与 1.ans
的区别。time
:运行程序前加上这个可以测速
time ./aplusb.exe
:运行 ./aplusb.exe
并测速。ulimit -s unlimited
:开大程序运行栈空间。在终端下运行代码之前先运行一下这条命令即可。这里我们演示怎么在桌面创建一个 aplusb.cpp
,并完成编译运行。
首先在桌面“右键 -> 在终端中打开(Open in Terminal)” 即可打开终端。
输入 touch aplusb.cpp
来新建一个名为 aplusb.cpp
的空文件。
输入 gedit aplusb.cpp
敲击回车后即可使用 Linux 下的文本编辑器(类似于 Windows 下的记事本)打开源代码,完成代码编写(这一步也可以用其他文本编辑器打开桌面上的文件实现)。完成编写后关闭文本编辑器(点文本编辑器右上角的×)
敲编译命令进行编译 g++ aplusb.cpp -o aplusb.exe -O2 -std=c++14
,这里的 -o
是用来指定编译生成的程序名称,后面的名称不强制要求有 .exe
的后缀名,但写上也没关系,大家辨别文件会更轻松。其他编译选项一般试卷上都会写。敲击回车后就会开始编译,如果 CE
也会在此时显示 CE
原因。
命令行输入 ./aplusb.exe
,敲击回车后即可运行程序。
测试运行时可以用 <
和 >
来指定输入文件和输出文件,最后提交的代码不要忘了 freopen
!
可以用 diff
来比对文件区别、可以使用 time
来测速
比赛时没有网络,所以 vscode 都是不带插件版本的,但 vscode 可以看作一个带内嵌终端和文件管理的好用编辑器。使用 vscode 写代码,内嵌终端里命令行编译运行即可。
ctrl
配合 +/-
即可调整界面缩放。
这里我桌面上建好了选手文件夹(假设考号是 SN-001
,四道题是 a
,b
,c
,d
)
打开 vscode
后,在左上角依次点击:“文件(File) -> 打开文件夹(Open Folder...)”,然后打开选手文件夹。
右键左侧边栏,点击 Open in Integrated Terminal
即可打开内嵌终端。
点击左边的文件夹 a
, 点击左上角的新建文件图标,即可创建 a.cpp
,此时你就有了:
的好用写代码环境~
注意:中文系统的桌面路径是 /home/noi/桌面
,所以桌面上文件的路径有中文,可能会导致 code::block 错误,你可以把项目文件夹放到没有中文的主文件夹。
打开软件后,配置一下编译器(直接点击 OK 就好)
点击左上角的 “File -> New -> Project” 创建新项目
选择命令行程序(Console application),点击右边的 Go
配置项目
找到左边的 main.cpp
,即可编写代码。点击图中这个按钮即可编译运行。
默认终端非常不好看且不方便粘贴数据,可以修改为系统的终端。
点击 “Settings -> Environment...” 配置编译器选项。
按下图即可修改使用的终端。
和 DevC++ 差不多,保存为 .cpp
后缀后会有一个 Build,Build 之后即可运行。
和普通对拍差不多,只有 比对函数
有点区别