目录
3.using编译指令(using编译指令会将空间中的所有实体一次性全部导入)
Linux常用命令
文件类(补充)
$tree:显示当前目录结构(使用该命令需要先执行$sudo apt install tree下载软件包)
$mv 文件1 位置:将文件移动到指定位置(或者重命名文件)
$cp 文件 位置:将文件复制到指定位置
$cp 文件 位置/文件名:复制文件的同时改名字
$cp -r 目录:复制目录文件
$scp 源文件 目标路径:远程复制文件
$rm -r 目录名:删除目录
$rm 文件路径/文件名:删除文件(有-r删除目录文件,没有删除文件)
$ln 文件1 文件2:建立两个文件的硬链接(建立硬连接的两个文件是同一个文件)
$ll -ali:显示inode结点数
$ln -s 文件1 文件2:建立文件1和文件2的软连接(软连接两个文件的引用计数不变,12月前面的数字表示的不是大小,而是软连接文件的长度)
创建文件的时候在文件名前加一个. 创建的文件即为隐藏文件
$find 起始目录 查找表达式:查找文件
$tar -c(z)vf 文件.tar.gz 文件位置(不加z只打包不压缩)
$tar -xzvf 文件名:解压缩文件
$tar -xzvf 待解压缩文件 -C 路径:将*tar.gz的文件解压到指定目录下,必须要使用-C选项,指定的目录必须存在,否则失败。
通用指令(补充)
$df (-h):查看磁盘情况,-h可加可不加,加-h得到的显示更符合人类习惯
$du -h --max-depth=1:查看某一个目录的情况
$top:查看当前系统的情况(退出按q)
$free (-h):查看内存使用情况
vim编辑器
vim编辑器有三种模式:1.普通模式 2.编辑模式 3.底栏模式
1.普通模式(按esc进入普通模式)
(1)光标移动
^ 移动到行首 $移动到行尾 h向左移动一个字符 j向下移动一个字符 k向上移动一个字符 l向右移动一个字符 w跳到下一个单词的开头 e跳到下一个单词的末尾 b回退到上一个单词的开头
ctrl+f 向下移动一格屏幕 ctrl+b向上移动一个屏幕
gg移动到文件的最开始 G移动到文件的末尾
进入底栏模式(按:进入底栏模式)输入:n 移动到n行
(2)删除操作
x删除光标位置所在的字符 dd删除光标所在行(相当于剪切,按p就会粘贴刚才删掉的行) ndd删除光标所往下的n行 dnG删除从光标所在行到第n行 dw 从光标所在位置删除一个单词 dnw 从光标所在位置删除n个单词
进入底栏模式输入:n1,n2d回车 删除n1-n2之间的所有行
(3)撤销操作
u 撤销刚才的操作
(4)复制操作
yy 复制光标所在的行 nyy复制光标所在的行往下的n行 ynG复制光标所在的行到n行的内容
进入底栏模式:n1,n2y回车 复制n1-n2之间的所有行
2.编辑模式
从普通模式进入编辑模式
i 在光标所在位置编辑 o 在光标所在下一行编辑
进入普通模式 按esc
进入底栏模式输入 :w 编辑完成之后,对文件进行保存
:wq 编辑完成之后,保存退出
3.底栏模式
按:进入底栏模式 可以执行外部命令
编译工具链GCC
程序从编纂源码到可执行程序需要经过的步骤
预处理
汇编
编译
链接
形成可执行文件test2
不过实际应用中可以直接使用$gcc filename.c -0 filename(cpp文件用$g++ filename.cc) 来完成上述步骤
c++语法知识
命名空间
命名空间的使用方式分为:1.作用域限定符 2.using声明机制 3.using编译指令
1.作用域限定符
1 #include <iostream>
2
3 namespace wangdao{
4 int number=1;
5 void dispaly(){
6 printf("dispal\n");
7 }
8 }//end of namespace wangdao
9
10
11
12 int main()
13 {
14 //:: 作用域限定符
15 wangdao:: dispaly();
16 return 0;
17 }
2.using声明机制(推荐使用)
#include <iostream>
2
3 namespace wangdao{
4 int number=1;
5 void dispaly(){
6 printf("dispal\n");
7 }
8 }//end of namespace wangdao
9
10 namespace wangdao::display;
11
12 int main()
13 {
14 //:: 作用域限定符
15 wangdao:: dispaly();
16
17
18 return 0;
19 }
3.using编译指令(using编译指令会将空间中的所有实体一次性全部导入)
1 #include <iostream>
2
3 namespace wangdao{
4 int number=1;
5 void dispaly(){
6 printf("dispal\n");
7 }
8 }//end of namespace wangdao
9
10 using namespace wangdao;
11
12 int main()
13 {
14 //:: 作用域限定符
15 wangdao:: dispaly();
16
17
18 return 0;
19 }
20
命名空间的嵌套使用
1 #include <iostream>
2
3 namespace wangdao{
4 int number=1;
5 void dispaly(){
6 printf("dispal\n");
7 }
8 }//end of namespace wangdao
9
10 using namespace wangdao;
11
12 int main()
13 {
14 //:: 作用域限定符
15 wangdao:: dispaly();
16
17
18 return 0;
19 }
20
运行结果
匿名命名空间
为了兼容c语言,c++提供了匿名命名空间,c中的函数都可以认为是存放在匿名命名空间中
::printf("dispaly\n");