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. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...
随机推荐
- 关于vsphere的 许可证配置问题
exsi未获得许可情况: exsi的许可证: vcenter server 未获许可: vcenter server的许可证: 写在最后: 无所不能的中国人,百度一下 许可证 就什么多有了,佩服,佩 ...
- UI体系的本质是结构化存在
UI体系的本质是结构化存在: UI系统的问题需要使用结构化的思维来处理.
- NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法
个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...
- 我的投资案例(3)-看好互联网和金融两大朝阳行业,参投入股垂直金融招聘平台"职业梦CareerDream.cn"
作为一名喜欢读书,关注中国和欧美国家发展的知识青年, 同时作为一名程序员和对金融投资感兴趣的业余爱好者,本人一直看好 以IT互联网为代表的科技和以投资VC为代表的金融,这2大朝阳行业的发展. ...
- Unity C# 设计模式(二)简单工厂模式
定义: 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例 ...
- POJ 1723 SOLDIERS
SOLDIERS Time Limit: 1000ms Memory Limit: 10000KB This problem will be judged on PKU. Original ID: 1 ...
- swift 动态设置UILabel的高度
import UIKit class ViewController3: UIViewController { override func viewDidLoad() { ...
- Android Support Library 23.2用法简析
写在前面的几句话 前几天谷歌发布了android-support-library-23.2支持库,这一次23.2版本增加了一些新的支持库以及新的功能.接下来这篇文章,就是对这些新功能部分做简单的用法介 ...
- GitHub开源控件的使用合集
Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...
- Python(三) 变量与运算符
一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1, a='1', a=(1,2), ...