一、vi编辑器:
1、三种模式:命令模式、插入模式、底行模式
命令模式:
(1)从命令模式切换插入模式:
i:光标所在左侧插入 I光标移动到所在行的最左侧
o:光标移动到下一行(新的一行) O:光标移动到上一行(新的一行)
a:光标移动到所在行的右侧输入 A:光标移动到所在行的最右侧
(2)复制:
行:nyy n>0
单词:nyw n>0
(3)粘贴:p
(4)撤销到上一步骤:u
(5)恢复到上一步骤:ctrl+r
(6)替换:
替换一个字符:r
连续替换:R
(7)定位行:
上:n-
下:n+
(8)删除:
删除字符:nx(右) nX(左) n>0
删除行:ndd n,n1 dd
(9)查找关键字:
/Key_value (key是关键字的名称)(向下查找key:n 向上查找key:N)
底行模式:
(1)显示行号:set nu
(2)取消行号:set nonu
(3)读取文本文档的内容:
cat(全部读取)
more(一屏一屏读取)
(4)文件对某“用户”操作的“权限”:
权限:r(可读)(4) w(可写)(2) x(可执行)(1)
用户:创建人u 群组g 其他人o
修改权限:
chmod 创建人+/-权限,群组+/-权限,其他人+/-权限 文件
例:
去掉读的权限
chmod u-r,g-r,o-r 文件名
每个用户:4(读) 2(写) 1(执行) 4+0+0=4(只读) 4+2+0=6(可读写不能执行)
例:chmod 644 文件名(创建人可读写,组群只可读,其他人只可读)
二、虚拟机用户与编译器
1、虚拟机用户权限
(1)为用户分配root的权限:
root为用户分配的部分权限都是记录在:/etc/sudoers
注:每次sudo时都会去/etc/sudores中检查该用户的分配策略
(2)为某机器上某用户分配某种命令的权限
为该用户分配所有机器的所有命令
用户名 ALL=(ALL) ALL
为该用户分配所有机器的某条命令
用户名 ALL=(ALL) command
2、编译器
(1)编译器:将制定的语言翻译成机器语言
语言的发展历史:
机器语言:由0/1组成的指令(计算机可以直接识别)
汇编语言:用助记符来替代二进制指令
高级语言:用自然语言来和机器沟通
Linux的编译器:gcc/g++/QT
(2)gcc编译器:是一款优秀的的编译器(可编译语言多,编译质量高)
源程序:用高级语言编写程序的文件
c语言:.c
c++语言:.cpp、.C
Java:.java
OC:.oc
编译:
1、gcc源程序.c 注:如果没有指定可执行文件名,默认生成a.out
2、指定可执行文件名:
gcc 源程序.c -o 执行文件名
例:gcc data.c -o data
三、C语言基础
1、c语言
(1)c语言是高级语言的一种,是面向过程语言。(强语言)
程序=算法+数据
(2)数据:基本数据类型(整型,字符型,浮点型)
常量:不可改变的量
变量:可以改变的量
(3)整型:
整型常量:十进制(-1 0 9) 八进制01010 16进制0x 【0,1,2,...,9,a,b,c,d,e,f】
整型变量:可以改变的量
类型:int short long(4 2 8 Byte)
有无符号:signed unsigned
定义变量:[有无符号] 类型 变量名; (分配存储空间)
注:如果没有标明有无符号,则默认有符号位
[signed] short a;
(4)字符:
字符常量:‘a’
普通字符:‘a’
转义字符:‘\n’‘\t’‘\’ '\\'
字符串常量:“asdfghjkl”
ASCII码:由于计算机只能识别0/1,只能由一串01组成的来替代字符