Linux基础(3)
Linux基础(3)
写程序的阶段
- 只写一个.c文件,在.c文件中写一个函数(main函数),把所有功能都推到main函数中
- 只写一个.c文件,在.c文件中除了main函数以外还有其他的功能函数
- 多文件的形式写项目
main.c 存放的是主函数和功能函数的调用
func.c 存放的是功能函数的实现
func.h 存放的是功能函数的声明以及各种定义
makefile 脚本文件,存放的是一些编译规则 - 可以把.c文件做成库文件(静态库和动态库)
Linux的编辑器和编译器
编辑器(编写程序)
在Linux环境中有很多vi vim gedit emacs,我们主要使用vim
在命令模式下的操作
光标的定位
h(向左) j(向下) k(向上) l(向右)
| 命令 | 作用 |
|---|---|
gg |
光标回到首行 |
G |
光标回到末行 |
23G |
快速定位到第23行 |
/关键字 |
光标定位到出现关键字的位置 (n从上往下查找,N从下往上查找) |
文本的编辑
| 命令 | 作用 |
|---|---|
yy |
复制(把光标所在行的内容进行复制) |
p |
粘贴(粘贴到光标所在行的下边) |
P |
粘贴(粘贴到光标所在行的上边) |
dd |
剪切/删除(把光标所在行的内容进行剪切) |
3yy |
复制光标所在行往下三行的内容 |
3dd |
剪切光标所在行往下三行的内容 |
3p |
粘贴到光标所在行的下边三次 |
3P |
粘贴到光标所在行的上边三次 |
ygg |
从首行到当前行进行复制 |
yG |
从首行到当前行进行复制 |
x |
删除光标所在位置的内容 |
D |
删除光标所在位置之后的内容 |
u |
undo撤销 |
ctrl+r |
redo重做 |
r |
替换(只替换一个字符) |
切换模式
iIaAoO 切换到编辑模式(插入模式): 切换到命令行模式(底行模式)v 切换到可视模式
当我们切换到可视模式,可以在此模式下调整代码格式
- 进入可视模式
- 选中要调整格式的代码
- 按
=进行调整
可视模式下我们可以输入V进入切换到可视行模式,ctrl + v切换到可视块模式
可视块模式下可以进行增删改的操作
块插入
- 进入可视块模式 ctrl + v
- 选中要插入的位置
- 按 I 进入到插入模式
- 输入要插入的内容
- 按两下esc
块删除
- 进入可视块模式 ctrl + v
- 选中要删除的位置
- 按 d 进行删除
块替换
- 进入可视块模式 ctrl + v
- 选中要替换的位置
- 按 r 进行替换
- 录入要替换的内容
在编辑模式下的操作
函数名的补齐 ctrl + p
在命令行模式下的操作
保存与退出
| 命令 | 作用 |
|---|---|
w |
保存 |
q |
退出 |
wq |
保存并且退出 |
wqall |
保存所有文件退出所有文件 |
wqa |
保存所有文件退出所有文件 |
q! |
强制退出 |
查找和替换
| 命令 | 作用 |
|---|---|
3,7 s/zack/root/ |
把第3-7行首次出现的zack替换成root |
3,7 s/zack/root/g |
把第3-7行所有出现的zack替换成root |
% s/zack/root/g |
把文件中出现的所有zack替换成root |
使用vim打开多文件
vim -p 多个文件
可以使用ctrl + alt + pgdn/pgup切换要操作的文件vim -o 多个文件vim -O 多个文件
可以使用ctrl + ww 切换要操作的文件
可以修改vim的配置文件
- 修改
/etc/vim/vimrc会影响所有用户 - 修改
~/.vimrc会影响当前用户
编译器
gcc编译器依赖于cc编译器,都是X86环境下的编译工具
arm-linux-gcc(交叉编译工具链),是ARM平台的编译工具
大端格式和小端格式的问题
- 什么是大端格式,什么是小端格式
- 设计一套程序,判断当前的环境是大端格式还是小端格式
使用gcc编译程序时
- 编译之后什么都没有提示,程序没有语法问题,会生成可执行文件
- 编译之后报警告,程序有点问题,但是不是致命问题,也会生成可执行文件
- 编译之后报错误,程序有致命问题,不会生成可执行文件
默认生成可执行文件的名字叫做a.out,执行可执行文件./a.out
1 | gcc hello.c -o hello #指定了生成的可执行文件的名字hello |
用户管理
用户的分类
功能上的分类:普通用户和超级用户
超级用户是在安装Linux系统时,操作系统默认创建的用户
普通用户是之后再创建的用户就是普通用户
范围上的分类:本地用户和网络用户
创建在本地计算机中的用户是本地用户
创建在远端服务器上的用户是网络用户
用户的创建
注意 : 虽然都是Linux操作系统,但是不同的操作系统会有不同的处理
当创建用户时,伴随着会出现一下操作
当创建用户时,系统会为新创建出的用户分配一个ID号,叫做UID
系统会为新创建出的用户创建一个同名的组,会为组分配一个ID号 GID
系统默认会把新创建的用户添加到新创建的组中,该组也叫做该用户的主组
系统默认会在
/home/目录中创建一个同名的目录,作为该用户的家目录系统会把/etc/skel/目录中的文件当作默认的配置文件拷贝家目录中
系统会把用户的信息记录到
/etc/passwd文件中
root:x:0:0:root:/root:/bin/bash
| 意义 | |
|---|---|
root |
用户名 |
x |
代表的是密码(密码存放在/etc/shadow) |
0 |
UID UID : 0 超级用户 UID : 1 - 499 系统用户 UID : 500以上 普通用户 |
0 |
GID |
root |
用户的标志 |
/root |
家目录的路径 |
/bin/bash |
使用的是哪种命令解释器 |
- 系统会把用户的密码记录到/etc/shadow文件中
root:$6$WsTIl5zL$6dD0Mv:19186:0:99999:7:::
| 意义 | |
|---|---|
root |
用户名 |
| 加密以后的密码 | |
19186 |
上次更改密码的日期(从1970-1-1到现在的天数) |
0 |
最短密码的期限(按天算,0代表无期限) |
99999 |
最长密码的期限(按天算) |
- 系统会把用户组的信息记录到
/etc/group文件中
用户管理的命令
| 命令 | 作用 |
|---|---|
sudo useradd 用户名 |
创建用户 |
sudo passwd 用户名 |
为新用户设置密码(修改密码) |
sudo su 用户名 |
切换用户 |
ctrl + d |
结束当前用户登陆终端 |
sudo userdel 用户名 |
删除用户(只删除用户) |
sudo userdel -r 用户名 |
删除用户(伴随着创建的东西都会被删除掉) |






