=================================
2022-7-13
=================================
一.温故知新
命令的补充
ln //用来创建链接文件
ln 源文件 目标文件 //创建的是硬链接文件
ln -s 源文件 目标文件 //创建的是符号链接文件
find //查找文件
grep //检索文件内容
man手册的使用
Ubuntu系统软件的安装
1.sudo apt-get install
2.从官网下载软件包,进行安装
sudo dpkg -i
3.从官网下载源码包,进行安装
./config
make -j4
make install
二.编辑器和编译器
1.编辑器(编写程序)
vi vim gedit emacs
vim : 是vi编辑器的高级版本
注意 :
1.vim后边需要加文件名
2.vim除了可以打开文件以外也可以创建文件
3.保存退出,不要直接关闭终端,否则会生成交换文件
vim 文件名
|
按iIoOaA V 按 :
编辑模式(插入)<-----命令模式----->命令行模式(底行)
-----> <-----
按 esc 删除 :
1)在命令模式下的操作
1>光标的定位
h(向左) j(向下) k(向上) l(向右)
gg 光标回到首行
G 光标回到末行
23G 光标定位到第23行
/要找的内容 光标直接定位到出现要找的内容的位置
(n向下查找 N向上查找)
2>文本的编辑
yy 复制(把光标所在行的内容进行复制)
p 粘贴(把复制的内容粘贴到光标所在行的下面)
P 粘贴(把复制的内容粘贴到光标所在行的上面)
dd 剪切/删除(把光标所在行的内容进行剪切)
3yy 复制3行内容
3dd 剪切/删除3行内容
3p 粘贴3次(粘贴到光标所在行的下面)
3P 粘贴3次(粘贴到光标所在行的上面)
ygg 从首行到光标所在行进行复制
yG 从光标所在行到末行进行复制
x 删除光标所在位置的内容
D 从光标所在位置到行末进行删除
u 撤销(undo)
ctrl + r 重做(redo)
r 替换(只能替换一个字符)
3>模式的切换
iIoOaA 进入编辑模式(插入模式)
: 进入命令行模式(底行模式)
v 进入可视模式
--------------------------------
调整代码格式
a. 进入到可视模式中
b. 把需要调整格式的代码通过上下键选中
c. 按 = 进行调整
注意 : 让张老师调代码,先把代码格式调整好了
--------------------------------
V 进入可视行模式
ctrl+v 进入可视块模式
--------------------------------
块插入
a.ctrl + v进入到可视块模式
b.通过上下键选择要插入的块
c.进入编辑模式(I在选择的块前插入A在选择的块后插入)
d.录入要插入的内容
e.按两下 esc
块删除
a.ctrl + v进入到可视块模式
b.通过上下键选择要删除的块
c.按 d 进行删除
块替换
a.ctrl + v进入到可视块模式
b.通过上下键选择要替换的块
c.按 r 进入替换的操作
d.录入要替换的字符
--------------------------------
R 进入替换模式
2)在编辑模式下的操作
1>文本补齐的功能
ctrl + p
3)在命令行模式下的操作
1>保存退出
:w 保存
:q 退出
:wq 保存并且退出
:q! 强制退出
:wqa 保存所有文件,退出所有文件
2>查找和替换
:3,7 s/root/zack/
把3-7行第一次出现的root替换成zack
:3,7 s/root/zack/g
把3-7行出现的所有的root替换成zack
g 代表的是全局的意思
:% s/root/zack/g
把全文出现的所有的root替换成zack
% 代表的是全文的意思
4)修改vim的配置文件
vim /etc/vim/vimrc 会影响所有用户
vim ~/.vimrc 会影响当前用户
可以从网上找各种vim的配置方法
5)使用vim打开多个文件
注意 : 不要用vim一次性打开多个文件,否则vim会崩溃
vim -O 多个文件 //以纵向的标签栏打开多个文件
vim -o 多个文件 //以横向的标签栏打开多个文件
可以使用ctrl + w(两下)切换文件
vim -p 多个文件 //以标签页的形式打开多个文件
可以使用ctrl + alt + pgup/pgdn切换文件
2.编译器
在X86环境中有gcc编译器和cc编译器
gcc编译器依赖于cc编译器
在ARM环境中需要使用交叉编译工具链 : arm-linux-gcc
X86环境和ARM环境会有大端格式和小端格式的区分
--------------------------------------------
设计一套程序,测试当前环境是大端格式和小端格式
--------------------------------------------
gcc .c文件
1.编译之后什么都没有提示,代表程序没有语法错误,会生成可执行文件
2.编译之后报出警告,代表程序有点问题,但是不是致命的错误,
也会生成可执行文件
3.编译之后报出错误,代表程序有致命的问题,不会生成可执行文件
默认生成的可执行文件的名字是a.out
以 ./a.out 的方式执行可执行文件
gcc hello.c -o hello //可以指定生成的可执行文件的文件名
gcc -Wall hello.c //可以列出所有警告
三.用户管理
1.用户的分类
功能上区分 : 超级用户 和 普通用户
超级用户是在安装Linux操作系统时自动创建的用户
普通用户是由超级用户或者普通用户创建出来的
范围上区分 : 本地用户 和 网络用户
创建在本地计算机上的用户是本地用户
创建在远端服务器上的用户是网络用户
2.用户创建的描述
注意 : 虽然都是Linux操作系统,但是不同公司有不同区别
当创建用户时,伴随着会创建一系列的东西
1)系统会为新创建的用户分配一个唯一的编号,叫做UID
2)系统会为新创建的用户,创建一个同名的组,
并且分配一个唯一的编号,叫做GID
3)系统会把新创建的用户加入到同名的组中,这个组也叫做这个用户的主组
4)系统会在/home/目录中创建一个同名的目录,作为新用户的家目录使用
5)系统会把/etc/skel目录中的文件拷贝到新用户的家目录中,
作为基础的配置文件进行使用
6)系统会把新用户的信息记录到/etc/passwd文件中
查看/etc/passwd文件
注意:
1>/etc/passwd文件中每一行就是一个用户的信息
2>/etc/passwd文件中每个信息通过 : 分割
root:x:0:0:root:/root:/bin/bash
1>root 代表的是用户名
2>x 代表的是密码(密码移到了/etc/shadow文件)
3>0 代表的是UID
----------------------
UID : 0 是超级用户
UID : 1 - 499 是系统用户
UID : >= 500 是普通用户
----------------------
4>0 代表的是GID
5>root 代表对于该用户的描述
6>/root 代表该用户的家目录
7>/bin/bash 代表该用户登陆Linux终端时使用的命令解释器
7)系统会把用户的密码记录到/etc/shadow文件中
查看/etc/shadow文件
zack:$6$1bVyc6zY$GrJ/9j8jngCDD54QkuDEgZqQJnlWV.MG2ngEFvHkQ dLlkC7AINt6jsm74f8FZvFRuWK5zcz1kf29/LnzakCkd/:19182:0:9999 9:7:::
1>zack 代表的是用户名
2>$6$ 代表的是加密之后的密码
3>19182 上次更改密码的日期(从1970-1-1开始算)
4>0 最短的密码期限(按天算,0代表无最短期限)
5>99999 最长的密码期限(按天算)
6>7 密码的警告期限
8)系统会把新用户的组的信息记录到/etc/group文件中
3.用户的创建
sudo useradd 用户名 //创建用户(用户名不能重复)
sudo passwd 用户名 //修改用户的密码
sudo su 用户名 //切换用户
ctrl + d //结束当前终端用户的登陆
sudo userdel 用户名 //删除用户(只删除用户)
sudo userdel -r 用户名//除了删除用户,伴随着会删除创建的东西
四.文件权限的管理
1.文件权限的介绍
在Linux操作系统中用户访问的任何文件都是有权限的
权限可以分为基本权限和特殊权限
1)基本权限
rwx rw- r--
文件所属者的权限 文件所属组的权限 其他用户的权限
符号 数字 含义 对于普通文件的影响 对于目录文件的影响
r 4 可读 是否可以读取文件内容 是否可以列出目录的子文件
w 2 可写 是否可以修改文件内容 是否可以创建或删除子文件
x 1 可执行 是否可以执行文件内容 是否可以访问目录内容
2)修改文件的权限
sudo chmod 权限 文件名 //修改文件的权限
//由于权限的表示方法有符号表示和数字表示,所以本身修改权限的方法有很多
//如果修改目录的权限想要影响子文件或者子目录,需要加-R
sudo chmod -R 权限 文件名
1>使用符号表示法
rwx rw- r--
文件所属者的权限 文件所属组的权限 其他用户的权限
u g o
u 表示文件所属者的权限
g 表示文件所属组的权限
o 表示其他用户的权限
a 表示所有用户的权限
u+r
sudo chmod g-w 文件名
o=x
2>使用数字表示法
数字表示法也叫做八进制表示法
sudo chmod 456 test
//test的文件所属者是r--
//test的文件所属组是r-x
//test的其他用户是rw-
3)修改文件的属主和属组
sudo chown 名字 文件 //用来修改文件的属主
sudo chown .名字 文件 //用来修改文件的属组
sudo chown 名字.名字 文件
//既修改文件的属主也修改文件的属组
==============================================
实验
1.创建用户 sudo useradd tom
2.修改用户密码 sudo passwd tom
3.创建家目录 sudo mkdir /home/tom
(tom目录创建之后本来属于root用户)
4.拷贝模板配置文件 sudo cp /etc/skel/.* /home/tom
5.修改家目录的属主属组 sudo chown -R tom.tom /home/tom
6.修改命令解释器 sudo vim /etc/passwd
把tom用户的命令解释器修改成/bin/bash
保存退出
7.切换用户->做实验
==============================================