OI教程-Linux入门
0.什么是Linux
-
Linux是Linus Torvalds在1991年创造出来的操作系统,属UNIX系。
-
狭义的Linux指Linux内核,开放一套接口供开发者调用,与硬件交互。
-
Linux可以在许多平台上运行,且功能强大。
-
NOI Linux 2基于大名鼎鼎的Ubuntu定制打包而来。具体版本为Ubuntu20.04LTS,即2020年4月发布的长期支持版,稳定性好,对老旧硬件极为友好。
-
Linux的换行符为
\n(换行),不同于Windows的\n\r(换行回车)。
更多的请自行查阅相关资料
1.命令提示符
打开终端,你会发现如下字样:
user@computer: ~ $
其中 user 是用户名, computer 是主机名, ~ 是当前所在目录,为相对 $HOME 的相对路径。末尾的 $ 就是提示符了。
Linux中具有最高权限的用户是 root 。
2.基本命令使用
NOI Linux中默认使用的SHELL是BASH。
在Linux的各个虚拟终端间切换的快捷键是 Ctrl+Alt+Fn 。
man
可以查看一个命令的帮助手册,如 man man,即为查看man命令的手册。
按 q 退出。
--help
常用的命令选项,大多数命令都支持,如 man --help 。
打印帮助信息。
pwd
这个命令会显示当前所在的文件夹(绝对路径)。
uname
可以看到当前的系统信息。不出意外的话输出应该是 Linux 。可以加入命令选项 -a 查看详细信息
ls
这个命令的用处很大,可以看到当前目录下有那些文件与目录
有以下命令选项:
-
-a显示包括隐藏的目录与文件 -
-l列表格式(看起来更清爽,同时显示出更多信息)。 -
-h人类可读。注意看文件大小那里。
命令选项是可以叠加的,如 ls -a -l -h 等同于 ls -alh。
Linux系统严格区分大小写,但是文件和文件夹是可以同名的。 ls 命令的输出有多种颜色,文件与文件夹会以不同的颜色标注。
cd
切换到某个目录 cd <目录名> 。
如果不跟参数则回到 $HOME 目录。
特别地, . 表示当前目录, .. 表示上一层目录
cat
读取某个文件 cat <文件名> 。
mkdir
创建新的文件夹 mkdir <目录名> 。
touch
创建新的文件 touch <文件名> 。
rm
删除文件或目录 rm <文件或目录名> 。若删除目录,需要 -r 选项表示递归删除。
cp
拷贝文件或目录 cp <旧> <新> 。若拷贝目录,需要 -r 选项表示递归拷贝。
mv
移动文件或目录 mv <旧> <新> ,一般用来重命名。没有 -r 选项。
3.vim基础操作
vim是一款终端下的文本编辑器,功能十分强大。
输入 vim 进入vim界面。
vim有许多模式,如普通模式,插入模式,命令模式等。多按几次ESC ,你总能回到普通模式。
普通模式下无法编辑文本,可以按 : 进入命令模式输入命令,也可以按 i , a 进入插入模式。
打开文件可以使用 vim <文件名> ,也可以在命令模式输入 :e <文件名> 。
保存文件,在命令模式输入 :w 。退出则是 :q 。
保存并退出可以是 :wq , ZZ 或 :x 。
若要强制退出,使用 :q! 。
查找字符串,可以在普通模式下输入 /<string> 。
定位到某一行,可以在命令模式输入 :<line> 。
4.g++编译器基本操作
g++是一款编译器,可以将您的c++代码编译为可执行文件
Linux下的可执行文件没有固定扩展名,但不应该是 .exe , .com (Windows下可执行文件)或 .dll (Windows下动态链接库)。
Linux同样提供gdb来调试程序,此处不过多展开。
-
-g生成调试信息。 -
-Wall生成所有警告信息。 -
-Werror视警告为错误。 -
-O2开启中级优化。蒋炎岩老师的课程中有关于编译优化的内容 -
-c只生成不可执行的目标文件。仅激活预处理、编译和汇编。可以看看这篇来自CSDN的文章 -
-w关闭所有警告。不建议! -
-o <文件名>指定输出文件名。 -
-std=<cpp_version>指定版本,常用c++11与c++14。 -
-static静态编译,不依赖库。
5.执行文件
ls -l 命令会显示文件及目录的权限。格式为 drwxrwxrwx 。
若有 d ,则为目录;若有 x ,则为可执行文件。
假如现在有可执行文件 a.out :
其权限就可以是 -rwx------ 。
执行: ./a.out 。
从文件(1.in)中读取作为标准输入: ./a.out < 1.in 。
将从标准输出内容保存到文件(1.out): ./a.out > 1.out 。
其他例子,如将ls的结果保存到文件: ls > lslog.txt 。
使用 > 默认每次覆盖。若在原文件的末尾追加,请使用 >> 。
Linux中可以使用ps列出当前在运行的进程以及其资源占用率。
使用kill可以终止一个进程 kill < name | pid > 。
使用time命令可以获取程序运行耗时。如 time ./a.out 。 real 最接近真实的耗时。
写在最后
这篇教程旨在带您快速入门linux,
有不完善之处还请指出。
祝各位OIer获得理想的成绩。