1.0初识Linux
1.1虚拟机介绍
1.2VMware Workstation虚拟化软件
下载CentOS;
1.3远程链接Linux系统 &FinalShell
链接finalshell半天没连接进去
他说ip adress 看IP地址是在虚拟机上
win11主机是 终端输入: ifconfig
VMware虚拟机的设置 & ssh连接_sngee的博客-CSDN博客_vmware ssh连接
瑞吉外卖:P122 等开学学这个的时候再看吧//不爱看了 直接看老师PPT把
1.4拓展WSL(Ubuntu)环境
编辑Win11>可选功能>更多Windows tmd! Ubuntu一直各种报错
1.5虚拟机快照(关机之后制作快照 效率高)
Ctrl+l 清屏快捷键;
学校内容:Shell命令概述
shell作用及常见种类
2.1-Linux目录结构
2.2-Linux命令基础
2.3-ls命令入门
2.4-ls命令的参数和选项 [-a -l -h]
蓝色,第一列开头d 表示文件夹; 白色,第一列开头-表示单个文件
Linux 基础-文件属性与权限_linux查看文件属性_嵌入式视觉的博客-CSDN博客
ls -al查看文件属性与权限
2.5-cd(切换目录)-pwd(查看当前目录)命令
2.6-相对/绝对路径&特殊路径符
2.7-mkdir&du命令
2.8-touch(创)-file-cat&more(查)
cat命令本来用于连接多个文件的内容,但在实际使用中更多的用于查看文件内容
当文件内容较多时,使用cat命令往往只能看到文件的最后一部分内容,而无法分页逐屏显示,
more命令结合管道操作使用时(例如:ls -R /etc | more)无法向上翻页,但less命令可以
在分页阅读界面中,到文件末尾时more命令会自动退出,less命令不会
more和less都可以用于分页查看文本内容,具体使用哪一个看用户习惯
2.9-cp-mv-rm-通配符
2.10-grep-wc-管道符|
wc test.txt ; 默认就是全读相当于”-lwc“,会同时统计行数、单词数、字节数(含空格、回车符号)
2(行数l) 11(单词数,根据空格判断w) 59(当前文件字节数目c) test.txt(文件路径) ;
2.11-which-find搜索
“echo $PATH”可以查看PATH变量指定的内容
按名称查找:关键字为“-name”,根据目标文件的部分名称查找,允许使用“*”及“?”通配符。
按文件大小查找:关键字为“-size”,根据目标文件的大小进行查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括k(注意是小写)、M、G。
按文件属主查找:关键字为“-user”,根据文件是否属于目标用户进行查找。
按文件类型查找:关键字为“-type”,根据文件的类型进行查找,这里的类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。块设备指的是成块读取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)
2.12-echo(输出)-反引号'-
-重定向符>-head(头)tail(尾)
tail命令结合“-f”选项使用时,可以用于跟踪日志文件末尾的内容变化,实时显示更新的日志内容
2.13-vi编辑器
1)命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
2)输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息
3)末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符
ln建立连接-命令帮助
符号链接文件的作用相当于Windows系统中的“快捷方式”
对比讲解获得命令帮助的四个方法,使学员能够有效的获得命令的用法信息,为提高自学能力打下基础
man命令不仅能够查看命令帮助,还能够查看配置文件帮助,例如“man resolv.conf”
本页重点演示help、man的用法
Bash-3.1 中l默认包括56条内部指令:
bash, :, ., [, alias, bg, bind, break, builtin, cd, command, compgen,
complete, continue, declare, dirs, disown, echo, enable, eval, exec,
exit, export, fc, fg, getopts, hash, help, history, jobs, kill, let,
local, logout, popd, printf, pushd, pwd, read, readonly, return, set,
shift, shopt, source, suspend, test, times, trap, type, typeset,
ulimit, umask, unalias, unset, wait
Help cd ----bash内部命令
Ls –help
Man ls man cd
Info ls
gzip&bzip2-tar
对比讲解gzip和bzip2命令的用法,注意说明生成文件的后缀名称
gzip和bzip2命令使用的压缩算法有一定区别,但命令使用格式基本类似,通常认为bzip2的压缩效率要更好一些
这两个命令工具通常并不单独使用,而是与tar命令结合起来使用
tar命令详解
制作归档文件的意思是将许多零散的文件做成一个包(可以压缩,也可以不压缩)
小写字母“-p”选项用于保持原始文件权限等信息,大写字母“-P”选项用于保持原始文件的绝对路径,参考“man tar”帮助
使用tar命令时,选项前的“-”号引导字符可以省略
在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(见下页),以便节省磁盘空间,
less命令是对文件或其它输出进行分页显示的工具
Bash常用功能
命令历史
正确使用历史命令可以有效提高命令行输入的效率,例如:如果之前不久执行过“service network restart”命令,则重新修改了网卡的配置文件以后,通常只需要执行“!ser”操作即可调用该历史命令,以重启network服务
合理控制历史命令的条数可以提高安全性,root用户的命令历史一般建议设置为少于100条
命令别名
手动使用alias命令设置的别名只在当前Shell环境中有效
若需每次登录Shell环境时设置的别名都有效,需要修改宿主目录中的“.bashrc”文件,添加相应别名设置
正则表达式
创建grep命令
管道和重定向
Bash的标准输入输出
Linux系统是使用文件来描述系统的硬件、设备等资源的(例如已经学习过的硬盘、分区、光盘等)
充分了解输入输出设备可以更好的理解Shell的运行,为学习重定向操作、灵活编写系统管理脚本作好铺垫
/dev/stdin、/dev/stdout、/dev/stderr 这三个文件实际上也是一个符号链接,为了便于学员理解,这里无需讲解实际位置
Bash的重定向操作
在实际的Linux操作过程中,也可以变更输入输出内容的方向,而并不使用默认的标准输入输出设备(键盘和显示器),这种操作称为“重定向”
输出重定向实例
Bash的管道操作
awk命令用于以空格或制表位作为分隔,输出指定区域的字段数据,例如 ‘{print $2,$4}’ 表示只输出第2、4个字段的数据内容
关于awk命令的其他帮助信息,请自行参阅man手册页
阶段练习
1. 列出 /usr/share/doc 中以数字4结尾的文件.
2. 打印 /etc/hosts 中包含数字的所有行
3. 打印 /etc/hosts 中包含 127.0.0.1 的行
4. 打印 /etc/passwd 中冒号之间是三位数的行
ls /usr/share/doc I grep ‘4$’
grep ‘[0-9]’ /etc/hosts
grep ‘127\.0\.0\.1’ /etc/hosts
grep ‘:[0-9][0-9][0-9]:’ /etc/passwd
3.0第五章 用户和组管理
root用户的UID的固定值为0、root组帐号的GID号为固定值0
1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间
3.0.1用户账号文件-passwd-shadow
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患
后来经改进后,将密码转存入专门的shadow文件中(见下页)并严格控制权限,而passwd文件中仅保留密码占位符“x”
默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容
上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数
useradd-用户初始配置文件
设置/更改用户口令-passwd
“未设置密码”的用户帐号尚未完成初始化,处于不可登录状态,这与“空密码”的情况(已经为用户设置密码,但密码字串为空)是不同的
—— “未设置密码”的用户将被禁止登录系统,而拥有“空密码”的用户是可以在本地终端登录的
普通用户也可以使用passwd命令,但只能更改自己的密码,密码要求有一定的复杂性(如不要直接使用英文单词,长度保持在6位以上),否则系统可能拒绝进行设置
usermod修改-userdel删除用户账号
chage改变用户密码期限
Chage –d 0 用户账号名 ----过期密码(下次登陆前必须更改密码)----等同于命令:passwd –e
Chage -l 用户账号名 -----查看该用户的密码信息
Chage –E 0马上过去,-1 永不过期
3.0.2组帐号文件 -group、gshadow
与组帐号相关的配置文件也有2个,分别是/etc/group、/etc/gshadow
/etc/gshadow文件的应用极少,仅作简单介绍即可
group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,”分隔
amp 群组是添加 lamp 用户时默认创建的群组,在 root 管理员使用 useradd 命令创建新用户时,若未明确指定该命令所属的初始组,useradd 命令会默认创建一个同用户名相同的群组,作为该用户的初始组。正因为 lamp 群组是 lamp 用户的初始组,该用户一登陆就会自动获取相应权限,因此不需要在 /etc/group 的第 4 个字段额外标注。但是,附加组就不一样了,从例子中可以看到,我们将 lamp 用户加入 users 群组中,由于 users 这个群组并不是 lamp 的初始组,因此必须要在 /etc/group 这个文件中找到 users 那一行,将 lamp 这个用户加入第 4 段中(群组包含的所有用户),这样 lamp 用户才算是真正加入到 users 这个群组中。在这个例子中,因为 lamp 用户同时属于 lamp 和users 两个群组,所在,在读取\写入\运行文件时,只要是 user 和 lamp 群组拥有的功能,lamp 用户都拥有。一个用户可以所属多个附加组,但只能有一个初始组。那么,如何知道某用户所属哪些群组呢?使用 groups 命令即可。例如,我们现在以 lamp 用户的身份登录系统,通过执行如下命令即可知晓当前用户所属的全部群组:[root@localhost ~]# groupslamp users
通过以上输出信息可以得知,lamp 用户同时属于 lamp 群组和 users 群组,而且,第一个出现的为用户的初始组,后面的都是附加组,所以 lamp 用户的初始组为 lamp 群组,附加组为 users 群组。
添加组帐号
添加、删除组成员
使用“-M”选项时可以为指定组帐号定义成员列表(注意:会覆盖原有组成员),需要添加多个用户到指定的组中时非常方便
3.1-root用户-su-sudo
切换root用户:
su - root
123456
退回普通用户: exit或Ctrl+d
sql链接Linux
sudo命令
可以让一条普通命令带有root权限,语法:
需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限
3.2-用户和用户组
用户管理
getent-查看有哪些用户
3.3-查看权限控制信息
认知权限信息
rwx
案例
3.4-chmod命令
权限的数字序号
3.5-chown命令设置文件/目录的归属
需要设置文件或者目录的归属时,可以通过chown、chgrp命令进行
chown命令既可以修改属主,也可以修改属组,而chgrp命令只用于修改属组信息(因此并不常用)
!粘滞位SBIT
粘滞位主要是为公共目录(例如权限为777的)设置,作用是用户不能删除该目录中其他用户的文件(root用户除外)。sticky只对目录有效
SUID-SGID
如果现在需要在一个部门内设置共享目录,让部门内的所有人员都能够读取目录中的内容,那么就可以创建部门共享目录后,在该目录上设置SGID特殊权限位。这样,部门内的任何人员在里面创建的任何文件都会归属于该目录的所属组,而不再是自己的基本用户组。
ACL
也就是说,如果你有一个目录,需要给一堆人使用,每个人或每个群组所需要的权限并不相同时,在过去,传统的Linux三种身份的三种权限是无法达到的,因为基本上,传统的Linux权限只能针对一个用户、一个群组及非此群组的其他人设定权限而己,无法针对单一用户或个人来设计权限。而ACL的出现就是为了解决这个问题,实现更加细化的账户文件权限控制。
SUID:当设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。chmod u+s 文件
SGID:与上面的内容类似。用于设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的组属性.文件运行时运行者将具有所属组的特权chmod g+s 目录(针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
)sticky-bit:该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除其他用户创建的文件。sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源
粘滞位权限便是针对此种情况设置,当⽬录被设置了粘滞位权限以后,即便⽤户对该⽬录有写⼊权限,也不能删除该⽬录中其他⽤户的⽂件数据,⽽是只有该⽂件的所有者和root⽤户才有权将其删除。设置了粘滞位之后,正好可以保持⼀种动态的平衡:允许各⽤户在⽬录中任意写⼊、删除数据,但是禁⽌随意删除其他⽤户的数据
Chmod o+t /tmp
对于目录,默认权限=777-umask对于文件,默认权限=666-umask(文件默认无执行权限)
Umask 看权限
Umask –p 0022 (即目录是755,文件是644) 第一个0不用管
设定了ACL权限之后,我们查看该文件权限的时候会发现多了一个+号。
# 删除acltest1的所有acl权限设置
setfacl -b acltest1
tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:
-c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。-i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。-l:显示文件系统的很多参数。-j:转换为ext3文件系统。-m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比-o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数