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(全选模式) , =

Linux基础(vim)的更多相关文章

  1. Linux基础-vim编辑器

    使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world” 命令行模式输入i,进入编辑模式 写入HelloWorld,按ESC进入命令行模式,输入:进入扩展模式输入wq保存退出 ...

  2. linux 基础 VIM 编辑器

  3. 【linux基础】vim多窗口功能

    前言 实现多个文档文件在同一个屏幕上显示多个窗口. 实现过程 在指令列模式输入『:sp {filename}』即可!那个 filename 可有可无, 如果想要在新窗口启动另一个文件,filename ...

  4. 【Linux基础】vim如何显示文件名称

    前言 使用vim的时候有时候需要查看文件路径或者名称,本文对此进行记录. 操作过程 一般模式下 method1: :f method2: 快捷键CTRL+g/G(大小写均可); method3: 查看 ...

  5. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  6. Linux课程实践一:Linux基础实践(SSH)

    一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...

  7. Linux基础3(文件权限)

    文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...

  8. Linux课程实践一:Linux基础实践(基础操作)

    一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...

  9. 实践一:Linux基础实践

    一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...

随机推荐

  1. node使用express命令报错找不到ejs的解决方法

    首先确定已经全局安装过好几遍express和express-generator,但一使用express命令直接报找不到ejs模块,全局和本地安装ejs都没用,nodemon模块报同样错误,找不到deb ...

  2. 题解 P2504 【[HAOI2006]聪明的猴子】

    这道题要坑死人啊... 第一次做40分,其他RE,改了一次之后就变成20分了... 究其原因,是有一个数组(dis)开的太小了,于是最后本蒟蒻就随手开了个五百万,然后,就AC了. 看到有一篇题解说求距 ...

  3. centos同步网络北京时间

    sudo yum -y install ntpdate ntp sudo ntpdate time.windows.com sudo hwclock -w

  4. 关于Github Pages

    迁移Github Pages 我稍微有一点强迫症,实在是忍受不了整洁的界面有一些推广的广告.正所谓博客平台不重要,重要的是要有干货,CSDN首页满屏的广告也就忍受了,但是自己的文章的页面有广告看着实在 ...

  5. Oracle拾遗

    这次学习Oracle视频.还是学到了不少东西的. 首先,这是一次系统的学习.对自己的知识体系是一次查漏补缺,曾经仅仅是简单的会用,如今看到出的问题,非常easy就能够想到是哪一部分出了问题.尤其是如今 ...

  6. 前端编程提高之旅(十二)----position置入值应用

    这次内推项目用到的遮罩及其页面下方button都涉及一个概念position置入值得概念.效果图例如以下: 一个元素position属性不是默认值static.那么该元素被称为定位元素. 定位的元素生 ...

  7. 多client并发登录

    //LoginClient.java package mySocket; import java.io.BufferedReader; import java.io.InputStreamReader ...

  8. 4.angularJS-指令(directive)

    转自:https://www.cnblogs.com/best/p/6225621.html 指令(directive)是AngularJS模板标记和用于支持的JavaScript代码的组合.Angu ...

  9. 1.MVC概要与angular概要、模板与数据绑定

    转自:https://www.cnblogs.com/best/p/6242011.html#_label3_0_8_2 一.前端MVC概要 1.1.库与框架的区别 1.2.AMD与CMD 1.2.前 ...

  10. java静态类、静态方法、静态代码块,静态变量及实例方法,实例变量初始化顺序及内存管理,机制

    1.当一个类被第一次使用时,它需要被类加载器加载,而加载过程涉及以下两点: (1)在加载一个类时,如果它的父类还未被加载,那么其父类必须先被加载: (2)当类加载到内存之后,按照在代码中的出现顺序执行 ...