noi linux下怎么运行一个文件

 我来答
lilipat
高粉答主

2017-11-05 · 每个回答都超有意思的
知道大有可为答主
回答量:3万
采纳率:94%
帮助的人:4984万
展开全部
noi linux 安装与使用

昨天兴致勃勃的装上了NOI linux (用的WINDOWS 下安装) …… 我去,明明就是Ubuntu么…… noi的影子都见不到。
后来使用的时候发现?!!! 编译出来的程序居然没法运行?
准确的说是这样子的,g++ 编出来的程序是没有后缀限制的,你想要他是什么就是什么。在LINUX下运行程序不是像WINDOWS一样,默认可执行文件后缀为.exe 在linux下,什么后缀的文件都能运行(.txt也行哦),那么linux用什么来确定那些文件应该像程序一样运行,那些该用记事本之类的软件打开呢?
就是用权限,你可以右键你编的程序文件,点权限属性页,你会看到一个选项框:"以程序执行此文件",按理来说打上勾就可以双击运行了。正常情况下,打上勾后,双击运行,会弹出一个窗口,询问你是要运行它还是用其他软件打开它。
当然,为文件添加运行权限还可以用终端(就是命令行一类的东西啦~)命令: chmod a+x xqy.exe
xqy.exe是你的程序文件(当然,不一定是.exe后缀,g++默认是是.out) a是all 全体用户的意思 x是可执行的意思, +是添加的意思
但是,但是,你知道吧,我打上勾了以后,下一秒,那个勾居然自动取消了,自动取消了你知道吧!居然无法修改权限?!!!!
郁闷啊…………
查了半天资料,一句话把我给点醒了…… “windows的分区没有x这个权限位”……
就是说,怎么回事呢,前面不是提到我是从windows下安装的么,那时候不是要求你选择要安装的硬盘么?安装程序仅仅是把你所选择的硬盘格式化成了linux支持的ext4格式。但是,其他的盘还只是fat格式,而我们知道文件的权限是记录在文件系统中的,实际上就是一组二进制位标记,而windows支持的fat ntfs 都是没有 x 也就是“以程序执行此文件”这个位标记的,就是说,用fat ntfs 的格式的盘从理论上来讲就是不可能运行linux的程序的!!!坑爹坑爹坑爹!!!
去你的,果断格式化掉所有的硬盘,直接格成ext4 话说果然能用了啊……
但是,但是,重启之后,重启之后,电脑永久滴停留在了启动界面的黑屏状态…………
(引导扇区被破坏……)
话说咱们不是从windows下安装的linux么,所以此时的linux就是被阉割过的,不是完整的linux,他仅仅是写入了windows C盘下的boot文件,并没有真正的为磁盘写入引导,用的还是windows的引导,所以,在安装的时候你应该竟发现,是不允许安装在C盘的…… 然而,我们之前不是把所有的盘都格式化了么,于是启动引导也就木有了……
同志们,如果你已经跟我一样了的话…… 还是刻盘来得快啊……
如果不带刻盘的话,你就必须:会dos命令 会GNU Grub ,进行手动引导硬盘上的iso镜像文件进行完整安装……
(如果电脑上没有GNU Grub的话…… 貌似可以用U盘引导(更麻烦了,还是刻盘吧))
可惜本文不是装门介绍手动引导的…… 反正我是坎坎坷坷手动引导成了……
还有刻盘的时候一定要直接刻iso文件,不能解压以后再直接刻文件啊,那样可出来的也是木有引导扇区的!……
终于安装好完整的了,进去以后忽然发现,欢迎画面变成了NOI的徽标…… 原来NOI那帮家伙只是改了完整版的系统,留了个“windwos下安装”来坑你爹……
话说NOI LINUX还是可以的,已经帮你卸载掉了没必要的各种文字、媒体处理软件,自动安装了各种编译器。话说Ubuntu的文本编辑器(Gedit)很给力啊,带自动着色,自动换行,话说c++有了这个和终端(就是命令行)连IDE都不用了呢!
总之,千万不要在windows下安装啊,那就是个浪费你时间,损你硬盘的坑爹货!
=========================== 现在开始扯淡 ========================================
忽然发现好多人在看我的帖子啊…… 那我就再多说几句吧~
首先呢 虽然我在上面把 “运行权限” 这个问题弄得太复杂了 但是呢,好消息是 你比赛的时候根本不需要考虑权限 ==! 因为编译器(至少是G++)会自动给你设置权限!(当然 前提是你的硬盘支持这个权限==!)
还有呢 noi linux 下的编辑器真的很好用啊 只要改变一下颜色 实在想不出为什么还要用IDE (那边一怎么办呢? 嗯 我一直以来都是自己写脚本,用命令行调试的),至少比DEV-C++ 好用多了多了多了多了……
话说我建议大家还是用命令行编程 因为这样就可以很好地与 GDB 结合在一起,而且相当简洁 快速。
但是如果打命令行太麻烦了该怎么办呢? 写个脚本就可以了
在WINDOWS 下 我们可以写这样一个BAT文件:
echo off
color 1f
set g++="D:\Program Files\DEV-CPP\Bin\g++.exe"
set test=F:\xqy\C++\OI\TEST
set gdb="D:\Program Files\DEV-CPP\Bin\gdb.exe"
set oi=F:\xqy\C++\OI
:loop
set /p now=please set now adress :
cd %now%
set g=%g++% "%now%\main.cpp" -g -o "%now%\main.g.exe"
set db=%gdb% "%now%\main.g.exe"
set r="%now%\main.g.exe"
cmd
goto loop
很简单吧~ 更简单的是什么呢? 以后你切题的时候就把这个脚本打开,然后 输入你的当前工作目录(你在这个目录下的程序文件名必须是: main.cpp) 之后呢,你要编译的时候就只需要输入: %g% 调试的时候: �% 运行: %r% 相当简洁了吧!!!!!

linux 下的版本呢? 额 我这忘了 一直在用 windows (现在也是)改天去linux上再看吧…… :
啊 我想起来了 可是文件内容太长了 就又开了个帖子:
【NOI linux】 shell 相关

是时候写个笔记记录一下关于 noi linux shell 的内容了
我编程一般是习惯使用 命令行(脚本) 的,但是每次都输入 g++ main.cpp -g -o main.g 岂不是太累了?于是便使用一个脚本来简化它吧~

echo XDB
echo ---- all copyright reserves xqy -----
echo
export g="g++ main.cpp -g -o main.g"
export db="gdb main.g"
export r=./main.g
gnome-terminal

echo 命令么 就不说了(在屏幕上输出)
export 相当与 DOS 里的 SET , 设置变量(宏)
gnome-terminal 是运行终端的意思
cd 更改当前工作目录
dir 查看当前工作目录下的文件

把这个东西保存为 ***.sh 然后在属性里面赋予它 执行权限(右键->属性->权限->允许以程序执行文件)

以后你写代码的时候就可以统一把文件命名为main.cpp 比如说我写了一个文件在 /xqy/main.cpp
之后运行脚本,使用 cd dir 命令移动到 xqy 下面 输入: $g 我就可以编译了
输入 $db 就可以调试了
输入 $r 就直接运行了
简单了横多吧!!!

还有几条好用的shell命令:

clear 清屏 (linux的屏幕不像dos一样是自动清屏的 用到一定时候就必须手动清屏 否则对内存的消耗会很大的!)
echo xxx > in.in 向 in.in 文件中写入 xxx 内容
cat in.in 读取全部的 in.in文件中的内容 并输出
chmod 设置文件权限
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式