1.源文件到可执行文件经历了什么?

gcc -E main.c -o(输出) main.i

第一阶段:预处理:加载了include文件

gcc -S main.i -o main.s

第二阶段:编译(编译成汇编文件)

gcc -c main.s -o main.o

第三阶段:汇编(汇编成二进制文件)

gcc main.o (-o hello[生成的文件]可加不可家)

第四阶段:链接(链接函数库)

2.Linux常用操作:

C语言最早是论文级别的,各个公司实现了一些标准,一些版本的差异,厂商(微软,Gnu...),还有不同的平台有些差异。

2.1 内核版本:

centOS和ubuntu都是linux内核。

fdisk -l:查看插入的优盘,(有权限,必须是root)(要设置虚拟机usb控制器中usb的兼容性3.0即可)。

linux的命令:

ls -l /home:查看home下的详细文件
ls /home:查看home文件下的文件
su:切换用户,切换的普通用户不用密码,切换到管理员root需要密码并且显示唯一的标识#。
清屏:clear(c+l);
pwd:显示当前目录路径,描写路径时Tab补全。
mkdir:新建文件夹
./ :当前路径下(一般省略)
cd .. : 上一级文件

相对路径和绝对路径:

相对路径:相对于当前文件的路径。
绝对路径:相对于根目录文件的路径。

文件操作:

touch: 新建文(可称成多个)
mkdir: 新建文件(..)
rm -rf: 删除(-f:foirce,-r:recursive)
mv : 剪切文件(后面根文件和路径)
cp -r(recursive递归包括所有的) : 文件夹的拷贝
mv A B:修改文件A为文件B
cp A B:备份(cp config config.bak)假如备份后修改一个文件,出错无法还原后,则用备份的覆盖修改的。(cp config.bak config)
cat A : 直接打印到此文件中
head (-n行数) A : 查看文章头
tail (-n行数) A : 查看文章尾
less,move
find (路径) -name A :查找具体文件

用户管理:

su :切换用户(家目录,root有专门的家“root/”,其他的用户家目录“/home/userName”,cd 空可查看。)
useradd A : 添加用户(必须是root用户)
passwd B : 给用户添加密码
userdel A : 删除一个用户(但是home文件夹下依然有这个用户--- userdel -r A:全部删掉)没删除的原因,没切换一个用户后要让切换的用户exist退出,不然占用一个终端。
userdel guilin : 查看终端

网络命令:

ifconfig : 查看自己的网络
双方ping命令ping通,说明网络是通的。说明网络是通的。
set service network restart : 网络重启。
setup 重设置网络相关配置ip等
service network restart : 网络重启
service iptables(防火墙) status :查看防火墙
service iptables stop : 关闭防火墙
chkconfig iptables off : 禁用防火墙
sestatus : 查看所有的防火墙状态
setenforce 0 : SELinux防火墙的关闭

vim文本编辑器

在命令行中vim回车即可打开vim编辑器
shift+: : 进入末行执行命令模式
:q : 退出
:w : 保存
:wq : 保存退出
:w 名字 :另存为
重点:命令模式
vim hello.c(相当于新建一个hello.c文件)并且打开,但是如果关闭,路径下是没有此文件的,要保存。
vimtutor工具:vimtutor -g zh(中文版vim介绍 )
删除:光标在字符上按住x.
末尾添加:shift+A移动到末尾并且为处插入模式。按0回到行首
dw : 删除光标的单词
d$ : 删除光标以后的一行
de : 和dw一样只是保留了空格
2dw : 删除2个单词
2w/e : 光标向后的两个单词
u : 回退
U : 整行还原
(n)dd : (剪切)删除光标的一行
ctr + r : 撤销之后再撤销(u无法代替)
dd + p : 剪切复制
dd + yy : 复制
r : 光标所在的字符按r修改(单个字符替换)
R : 光标后的整个替换
c(n)w/e/$ : 在修改的单词,删除单词直接进入插入模式
gg : 本文开头
shift+g : 文章末尾
(500)+gg : 调到固定的行

搜索类命名:

/查找的单词 + n : 往下跳,shift+n 向上

配对括号类:

shift + % : 可出现配对的括号

替换类命令:

:s/thee/the/g : 光标所在的行的thee替换为the.
n1,n2 s/thee/the/g : n1,n2行中的thee替换为the
:%s/thee/the/g : 改变每个文件中的每个匹配单词
:%s/thee/the/gc : 找到整个文件中所要替换的每个匹配的单词,并且对每个单词提示是否替换。

vim内执行外部命令

:ls,touch aa.c   ...等回车重新回到编辑器。

打开类命令:

o : 在当前行的下一行插入
shift + O :上一行
a : 和i一样在单词的后面
e : 每个单词的后面插入
R : 对一个单词继续进行替换

复制类命令:

yy + p : 复制一行黏贴
v(可视模式)+方向键(选中)+ y到要复制的地方j+g,在输入p即可复制粘贴。
yw : 复制一个单词

vimrc配置命令:

esc+i : 的使用,相当于向前进格。
esc,esc+i,o,shift+O
已简单的hello world为例
#include<>,时esc+i即可进入尖括弧里插入操作,int main() esc,o,即可进如此行的下一行插入操作,{},esc,i,回车打括弧的分行,tab键缩进...
:set 设置的只是在此文件编辑器中使用
vimrc全局配置;...
代码格式化:gg shfit + v(行选),shfit + g(全选模式) , =

最新文章

  1. jquery双向列表选择器DIV模拟版
  2. 表单验证——jquery validate使用说明【另一个教程】
  3. 【POJ 1228】Grandpa&#39;s Estate 凸包
  4. .NET 反射的使用
  5. Matlab实现movieLens转矩阵
  6. MySQL: InnoDB 还是 MyISAM? (转载)
  7. java中的基本数据类型存放位置
  8. C++:对象数组
  9. cf D. Renting Bikes
  10. poj 2773 利用欧拉函数求互质数
  11. Ants (POJ 1852)
  12. thinkphp后台向前台传值没有传过去的小问题
  13. Python学习之路——装饰器
  14. Linux本地yum源配置以及使用yum源安装gcc编译环境
  15. python要开始记录了20181125
  16. IDEA 导入javaWeb项目
  17. SpringBoot初始教程之Redis集中式Session管理
  18. ElasticSearch关键概念
  19. 利用正则表达式去除所有html标签,只保留文字
  20. 【uoj#225】[UR #15]奥林匹克五子棋 构造

热门文章

  1. 运维派 企业面试题3 为上题中的 &quot;十个随机字母_test.html&quot; 文件 更名
  2. iOS开发—— UIImage数据的保存
  3. css columns 与overflow结合的问题
  4. Linux服务器性能评估与优化
  5. 13-Linux中进程与线程的概念以及区别
  6. Spring Cloud学习笔记【四】断路器Hystrix
  7. 轻松python专题--文本
  8. vue24-webpack+vue-loader
  9. Git简介以及与SVN的区别
  10. 7. java操作MongoDB,采用_id查询