Linux基础(vim)
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)的更多相关文章
- Linux基础-vim编辑器
使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world” 命令行模式输入i,进入编辑模式 写入HelloWorld,按ESC进入命令行模式,输入:进入扩展模式输入wq保存退出 ...
- linux 基础 VIM 编辑器
- 【linux基础】vim多窗口功能
前言 实现多个文档文件在同一个屏幕上显示多个窗口. 实现过程 在指令列模式输入『:sp {filename}』即可!那个 filename 可有可无, 如果想要在新窗口启动另一个文件,filename ...
- 【Linux基础】vim如何显示文件名称
前言 使用vim的时候有时候需要查看文件路径或者名称,本文对此进行记录. 操作过程 一般模式下 method1: :f method2: 快捷键CTRL+g/G(大小写均可); method3: 查看 ...
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- Linux课程实践一:Linux基础实践(基础操作)
一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...
- 实践一:Linux基础实践
一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...
随机推荐
- codeforces 501 B Misha and Changing Handles 【map】
题意:给出n个名字变化,问一个名字最后变成了什么名字 先用map顺着做的,后来不对, 发现别人是将变化后的那个名字当成键值来做的,最后输出的时候先输出second,再输出first 写一下样例就好理解 ...
- Audio / Video Playback
For Developers > Design Documents > Audio / Video Playback Interested in helping out? Ch ...
- Linux下通过rdesktop连接Windows远程桌面
rdesktop是linux下支持Windows远程桌面连接的客户端程序,在linux系统下可通过它远程访问Windows桌面,支持多种版本.rdesktop是sourceforge下支持GPL协议的 ...
- elementui的时间选择器开始时间和结束时间的限制
开始时间不能大于结束时间 html代码部分 方法部分 开始时间和结束时间可以选同一天 <template> <div class="range-wrapper"& ...
- webStrom的破解以及汉化
破解方法: 把JetbrainsCrack-3.1-release-enc.jar包放到bin目录下,然后把webstorm64.exe.vmoptions文件用文本打开, 在最后面加上一句-java ...
- caioj 1071 动态规划入门(二维一边推4:相似基因) (最长公共子序列拓展)
复制上一题总结 caioj 1069到1071 都是最长公共字序列的拓展,我总结出了一个模型,屡试不爽 (1) 字符串下标从1开始,因为0用来表示字符为空的情况,而不是第一个字符 (2) ...
- 【UVa 12563】Jin Ge Jin Qu hao
[Link]: [Description] KTV给你T秒的唱歌时间; 你有n首一定要唱的歌; 然后有一首很变态的歌有678s,你想在T秒结束之前唱一下这首歌; 因为这样的话,你能尽量晚地走出KTV( ...
- 使用YUM安装ZABBIX监控
http://blog.csdn.net/aqw123456fdg/article/details/48135477 http://www.cnblogs.com/enjoycode/p/zabbix ...
- ArcGIS api for javascript——加入动态地图
描述 这个示例展示了增加一个按用户缩放或平移服务器每次绘制的地图.这样的地图没有切片的cache并被调用一个动态地图服务图层.ArcGISDynamicMapServiceLayer表示ArcGIS ...
- ORA-01555错误总结(二)
这篇文章紧接着上一篇"ORA-01555错误总结(一)".主要描写叙述延迟块清除导致的ORA-01555错误. 以下是一些简介(上一遍已经介绍过) ORA-01555错误是一种在o ...