1, vi编译器
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:n 向止查找key:N )
二,底行模式:保存退出,执行Shell命令
1保存(写入): w write
2退出: q
3保存退出: wq
4、不保存退出: q!
5、显示行号: set nu
6、 !shell
三,插入模式:编写内容
插入模式-》命令模式: esc
2 linux用户管理
1,创建用户命令两条:
adduser
useradd
2,删除命令:
userdel
二、两个用户创建命令之间的区别
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。
三、使用adduser
例如:
sudo adduser apple
输出显示:
默认情况下:
adduser在创建用户时会主动调用 /etc/adduser.conf;
在创建用户主目录时默认在/home下,而且创建为 /home/用户名
如果主目录已经存在,就不再创建,但是此主目录虽然作为新用户的主目录,而且默认登录时会进入这个目录下,但是这个目录并不是属于新用户,当使用userdel删除新用户时,并不会删除这个主目录,因为这个主目录在创建前已经存在且并不属于这个用户。
为用户的命令分配root的权限:
root为用户分配的部分权限都是记录在:/etc/sudoers
注:每次sudo时都会去/etc/sudores中检查该用户的分配策略
1、为某机器上某用户分配某种命令的权限
1.1为该用户分配所有机器的所有命令
用户名 ALL=(ALL) ALL
1.2为该用户分配所有机器的某条命令
用户名 ALL=(ALL) command
常用命令行选项:
(1) -d: 指定用户的主目录
(2) -m: 如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。
(3) -s: 指定用户登录时的shell版本
(4) -M: 不创建主目录
例如:
sudo useradd -d "/home/tt" -m -s "/bin/bash" tt
解释: -d “/home/tt" :就是指定/home/tt为主目录
-m 就是如果/home/tt不存在就强制创建
-s 就是指定shell版本
修改tt密码:
sudo passwd tt
五、删除用户命令
userdel
(1)只删除用户:
sudo userdel 用户名
(2)连同用户主目录一块删除:
sudo userdel -r 用户名
六、相关文件:
/etc/passwd - 使 用 者 帐 号 资 讯,可以查看用户信息
/etc/shadow - 使 用 者 帐 号 资 讯 加 密
/etc/group - 群 组 资 讯
/etc/default/useradd - 定 义 资 讯
/etc/login.defs - 系 统 广 义 设 定
/etc/skel - 内 含 定 义 档 的 目 录
编译器:将指定的语言翻译成机器语言
语言的发展历史:
1、机器语言:由0/1组成的指令 (计算机可以直接识别)
2、汇编指令:用助记来替代二进制指令
3、高级语言:用自然的语言来与机器沟通
Linux的编译器:gcc/g++/QT
gcc编译器:是一款优秀(1、编译语言多,2、质量高)的编译器
源程序:用高级语言编写的程序的文件
c语言: .c
c++语言:.cpp .C
java: .java
OC : .oc
编译:
1、 gcc 源程序.c 注:如果没有指定可执行文件名,默认生成a.out
2、指定可执行文件名:
gcc 源程序.c -o 可执行文件名
执行程序:路径/程序名
【3、编译过程:(函数) 】
C语言:是高级语言中的一种,是面向过程语言。(强语言)
程序=算法+数据
1、数据:基本数据类型(整型,字符整型,浮点型)
常量:不可改变的量
变量:可以改变的量
整型:
整型常量:十进制(0 -1 9 ) 八进制01010 16进制0x 【0 1 2,...,9,a,b,c,d,e,f】
整型变量:可以改变的量
类型:int short long (4 2 8Byte)
有无符号:signed unsigned (图4)
定义变量:[有无符号] 类型 变量名; (分配存储空间)
注:如果没有标名有无符号,则默认为有符号位
[signed] short a;
字符:
1.字符常量:'a'
普通字符:'a'
转义字符:'\n' '\'' '\t' '\\'
字符串常量:"abcdef"
2.字符变量:
3.ASCII码:由于计算机只能识别0/1,只能由一串01组成的来替代字符
3、各进制转换为十进制:
十进制的权:10
二进制的权:2 1010---》
八进制的权:8
4、计算机的存储单元:存储信息的空间
最小的存储单元:bit (0或1) 10->1010 16bit
基本存储单元:Byte 1Byte=8bit
其他: 1Kb=1024Byte=2^10Byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
原码(二进制):10-》 0000 1010 -1-》1000 0001
反码 10-》 1111 0101 (原码取反)-1-》 1111 1110
补码 10-》 1111 0110 (反码+1) -1-》 1111 1111
运算符:
1、求某数据类型或者变量的存储空间长度: sizeof 注:以Byte为单位
2、赋值运算符:
左值=右值; 注:左值必须为变量