可以参考的网站:Linux的菜鸟教程
(以防意外 先拍摄快照 后期转到拍摄快照的位置)
先将虚拟机关机,再开机,得把鼠标点进去,在如下图中中断内核的自动运行,在此处按e
(上面的是正常进入红帽时的内核版本 下面的是需要救援时才需要进入的)
vmlinuz代表内核模式
在linux这一行末尾加上rd.break (相当于打断内核的加载)
把一个根系统加载了读写权限
为指定用户修改密码,并将此内容在开启过程时运行
等待即可
ethernet ens160 ens336 ens16777736
#IP A 有环回地址 #ifconfig
#hostname查看主机名
[用户@连接到的主机 当前所在目录路径(工作目录)]命令提示符# $ [root@localhost ~]
目录等于文件夹
hostname
localhost.local
家目录 创建用户自动创建一个和用户同名的目录
通用匹配符 ~
#pwd print work doing direct 打印正在工作的完整路径
我是谁 我在哪 我要做什么
#hostname A 改主机名为A
#hostnamectl set-hostname www 永久更改主机名,重启也生效
命令格式
命令
命令 参数(对象)
命令 -选项
命令 -短选项(一个字母)(方式) 参数
命令 --长选项(完整的单词)
VMware-workstation
www.xshell.com 下面有家庭学校免费版 远程连接工具
iso 镜像
osi 七层
ios 苹果操作系统
机架式
刀片式
塔式
小型机
部署学习环境:虚拟机VMware workstation+红帽8.5
查看命令解释器 echo $SHELL
[root@RHCSA ~]# sh
sh-4.4# exit
exit
[root@RHCSA ~]#
[root@RHCSA ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@RHCSA ~]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
ssh 22
关机 shutdown -h now poweroff 相当于断电 halt -f 强制关机
重启 reboot
[root@www ~]cat /etc/redhat-release Red Hat Enterprise Linux release 8.5 (Ootpa)
[rootawww~]#uname -r 内核版本
4.18.0-348.e18.x8664
主版本.子版本.bug修改次数-编译版本号.企业.架构
passwd 设置用户密码修改用户密码 -d删除 管理员:可以指定用户名可以更改任意用户的密码 不需要旧密码删除用户密码 密码可以不满足复杂规则要求 普通用户:不能指定用户名默认只能更改自己的密码
文件结构:
/
root home
|
radhat
cd切换目录
绝对路径:一切从根开始查找 /home/redhat
相对路径:相对于当前所在路径开始查找 cd redhat
cd ../../.. 返回上一级的上一级的上一级
~当前用户家目录
.当前目录
..上一级目录
-匹配上一次所切换的路径
linux思想:一切皆文件
ls list
命令 -选项... 参数...
ls -a 把隐藏文件也显示出来 (. .. 两个目录的属性)
ls -l== ll 长格式显示文件信息(文件基本属性文件名)
ll -h 以人类可读的形式 文件大小单位标记
ll -d 显示指定目录的属性信息
ll -i 显示文件的inode节点号
Irwxrwxrwx. 1 root root 7 Jun 21 2021 bin
第一列
权限标识符
第二列
硬链接次数
第三列
文件的所属用户
第四列
文件的所属组
第五列
大小
第六列
创建时间或者修改时间
第七列,最后一列
文件名
1 l代表链接文件
*用于不同目录下文件的共享。* 链接文件一般指的是一个文件的软连接(或符号链接) 软链接相当于给原文件创建了一个快捷方式, 如果删除原文件,则对应的软链接文件也会消失。 如果想要创建一个文件的链接文件 可以使用 ln 命令来创建 文件名为浅蓝色
2 -代表普通文件
用于存放数据、程序等信息的文件。 类比于windows下的txt文档,可以在里面编辑内容 他一般是灰色字体,绿色字体的是可执行文件,红色字体的是压缩文件。
3 d代表目录文件(文件夹)
Linux 中的目录也是文件,目录文件中保存着该目录下其他文件的 inode 号 和文件名等信息,目录文件中的每个数据项都是指向某个文件 inode 号的链接,删除文件名就等于删除与之对应的链接。 蓝色
设备文件 (黄色) 分为块设备文件和字符设备文件
4.b表示块设备文件:用于与I/O设备提供连接的一种文件, 块设备有磁盘、光盘等, 设备文件一般存放在 /dev/ 目录下,
5 C 字符设备文件
字符设备文件以字节流的方式进行访问,字符设备就是输入输出设备,键盘,鼠标,显示器,甚至是终端,终端就是标准的输入输出设备
6 p 管道文件
主要用于在进程间传递数据。
可以使用 mkfifo 命令来创建一个管道文件
在 FIFO 中可以很好地解决在无关进程间数据交换的要求,FIFO 的通信方式类似于在进程中使用文件来传输数据,只不过 FIFO 类型的文件同时具有管道的特性,在读取数据时,FIFO 管道中同时清除数据。
棕色
7 s 套接字文件 套接字(socket)文件通常用于网络数据连接。 套接字= (IP地址:端口号)
紫色
FHS(文件系统层次化标准)
/ Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/bin Binary的缩写,存放普通用户可执行的程序或命令
/boot 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动
/dev dev 是设备(device)的英文缩写。包含所有的设备文件
/etc 存放了系统管理时要用到的各种配置文件和子目录
/home 存放一般用户的个人目录
/lib 是库(library)英文缩写,存放系统的各种库文件
/lib64 存放系统本身需要用到64位程序的共享函数库(library)
/mnt/media 可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点
/opt 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统
/proc 可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的
/root 超级用户的个人目录,普通用户没有权限访问
/run 保存自系统启动以来描述系统信息的文件
/sbin 和/bin类似,这些文件往往用来进行系统管理,只有root可使用
/srv srv 是服务(server)的简写,服务启动之后需要访问的数据目录
/sys 本目录是将内核的一些信息映射文件,以供应用程序所用
/tmp 用来存放不同程序执行时产生的临时文件。
/home 存放一般用户的个人目录
/usr 一般用户程序安装所在的目录,用于安装各种应用程序
/var 通常各种系统日志文件放在这里
元数据 数据
文件属性 内容
文件名是目录文件中的数据
硬链接:多个文件指向同一个节点号
创建多个硬链接 防止误删除 对文件名进行备份
面试重点:软硬链接区别
(1)符号链接又叫软链接,和原文件不是一个文件。例如Windows的快捷方式,
作用特点:在指定路径查找某个文件访问快速便捷,删除源文件快捷方式不能访问
创建对象:文本文件目录文件都可以创建,并且可以跨文件系统
创建链接文件:ln -s 原文件 链接文件
如何判断是否是链接文件:l
(2)硬链接
慨念:多个文件名指向同一个node
作用特点:防止用户误删除,备份(仅对文件名备份)
创建对象:对目录文件不能创建并且不可以跨文件系统(跨盘)
创建硬链接:n原文件新文件
ln -选项 参数
ln 创建硬链接文件
ln 源文件 目标文件(创建的链接文件)
-s 创建一个软链接文件
ln -s 源文件目标文件(创建的链接文件)
touch a.txt
mkdir dirname 创建目录文件
ln -s a.txt a.lnk
ll 查看
echo 12345 >> a.lnkcat a.txt
注:创建链接文件如果源文件和目标文件不在同一个路径,源文件和目标文件都用绝对路径
创建一个文本文件
touch 文件名(区分大小写)
创建硬链接
touch file
ln file fff
inode号相同
echo this is a file >> file 编辑文件内容
为什么目录文件的链接次数为2
每一个目录都有一个当前目录的标识符 .
[root@RHCSA ~]# touch /root/file
[root@RHCSA ~]# ln -s /root/file /haha
lrwxrwxrwx. 1 root root 10 Oct 23 14:05 haha -> /root/file
[root@RHCSA /]# touch /home aaa
[root@RHCSA /]# touch /a.txt
[root@RHCSA /]# ln -s /home/aaa /a.txt[root@RHCSA /]# ln /home/aaa /root/A
date命令
date 查看当前时间
[root@RHCSA ~]# date
Sun Oct 23 22:53:33 CST 2022
按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令如下所示:
[root@RHCSA ~]# date "+%Y-%m-%d %H:%M:%S" 如果没有双引号,则为两个参数
2022-10-23 22:54:39
将系统的当前时间设置为2020年11月1日8点30分的date命令如下所示:
[root@kongd ~]# date -s "20201101 8:30:00"
Sun Nov 1 08:30:00 CST 2020
将系统的当前时间设置为月日时分年.秒的格式
[root@RHCSA ~]# date 101112122020.10
Sun Oct 11 12:12:10 CST 2020
cal 命令
1752 9月
少了12天
英国更换历法
timedatectl命令
timedatectl [参数]
timedatectl status 显示状态信息
timedatectl list-timezones 列出已知时区
timedatectl set-time 设置系统时间
[root@kongd ~]# timedatectl set-time 2021-05-18
timedatectl set-timezone 设置生效时区
[root@kongd ~]# timedatectl set-timezone Asia/Shanghai
wget命令
wget [参数] 网 址
-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
[root@kongd ~]# wget https://down.qq.com/qqweb/LinuxQQ/linuxqq_2.0.0-b2-1089_x86_64.rpm
[root@kongd ~]# rpm -i linuxqq_2.0.0-b2-1089_x86_64.rpm
rpm红帽的下载格式
创建目录(make directory)——mkdir命令
命令格式: mkdir [-p] [/路径/]目录名 -p——可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖
mkdir -pv p1/p2/p3/p4 v详细的
统计目录及文件的空间占用情况——du命令
功能:查看某个目录中的各级子目录所占用的磁盘空间数。
命令格式: du [选项] [目录名] 如果不跟目录名,则缺省为当前目录。
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。
-s 只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小。
-h 以K,M,G为单位显示磁盘使用情况,以提高信息的可读性。
复制(copy)文件或目录--cp命令
功能:目录或文件的复制。
命令:cp [选项] 源文件 目标文件
-a 通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录
-d 拷贝时保留链接。
-f 在覆盖已经存在的目标文件时不提示。
-i 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷 贝。
-p 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标 文件必须为一个目录名。
-l 不作拷贝,只是链接文件
移动(mv)文件或目录--mv命令
mv命令用于剪切或重命名文件
语法格式为:“mv [参数] 源文件名称 目标文件 名称”。 剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某 个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作
删除(remove)文件或目录--rm命令
格式:rm [选项] 文件或目录名及路径
功能:删除文件或目录,可包含一个或多个文件名(各文件间用空格分隔)或用通配符表达,以实现删除多 个文件或目录。
-f 在覆盖已经存在的目标文件时不提示。
-i 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷 贝。
-r 递归删除整个目录树
touch [选项] 文件或目录名列表
功能: 若指定的文件或目录已存在,则将文件或目录的日期和时间修改为当前系统的日期和时间。 若指定的文件不存在,则以指定的文件名创建空文件
创建多个文件
查看文件
1.查看文本文件的内容——cat命令
命令格式:cat [选项] 文件名列表
说明:文件名可使用通配符
常用选项:
-n——对输出内容中的所有行标注行号。
-b——对输出内容中的非空行标注行号。
2.分页查看文件内容——more和less命令
命令格式: more | less [选项] 文件名
常用选项:
-数字——仅适用于more命令,用来指定分页显示时每页的行数。
+num——指定从文件的第num行开始显示。
-c——从顶部清屏然后显示文件内容。
3.命令:head | tail [选项] 文件名 默认十行
常用选项有:
-num——指定需要显示文件多少行的内容,若不指定,默认只显示十行。
-f——使tail不停地去读取和显示文件最新的内容, 以监视文件内容的变化。这样有实时监视的效果。
tail命令更多的用于查看系统日志文件,以便于观察重要的系统消息,特别是结合使用-f选项,tail会自动实时 地把打开文件中的新消息显示到屏幕上,从而跟踪日志文件末尾的内容变化,直至按【Ctrl+C】键终止显示 和跟踪。
vi
没有颜色
vim
有颜色
u撤回
d+enter 删除当前所在行以及下一行
dd 删除当前所在行
4dd 删除开始以下的四行
dG 光标位置删除到文档尾
dgg 删除光标当前位置到行首
x 删除光标所在字符
S删除所在行 并进入insert
yy 复制
4yy 复制开始以下的四行
cc 剪切
5cc 剪切开始以下的四行
p粘贴
行号 G 跳转到指定行
G 跳转到最后一行
gg 跳转到第一行
$ 跳转到一行行尾
^ 一行行首
命令--->插入模式:
A 插入内容到行尾
a 插入内容到下一个字符
O 插入内容到光标所在位置上一行
o 插入内容到光标所在位置下一行
S 删除光标所在行并插入
s 删除光标所在字符并插入
i 当前位置
I 行首
末行模式
:set nu 设置行号
:set nonu 不显示行哈
?bin 查找bin 高亮
:noh 取消高亮
:45 跳转到45行
:q 退出
:q!强制退出
:wq! 强制保存退出
:w file11 把文件也写到file11里面
:r /etc/passwd 读取到光标所在行的下一行
:s /要替换的字符串/替换后的字符串/g
:s /0/2/ 替换 当前所在行的第一个
:%s /0/2/ 该文件的所有行
:%s /0/2/g 替换 在文档中所有都替换
ctrl+z 直接退出进程
[root@RHCSA ~]# rm -rf .user.swp
ctrl+v --> 键盘选取对应的块标记---> I---> 编辑内容 ---->按esc
nano也可以编辑
变量是可以命名的内存空间
4.6
单引号强引用
管道符
passwd root
echo redhat | passwd --stdin root 标准输入流
head -5 /etc/passwd |tee file 会覆盖
head -5 /etc/passwd |tee -a file 只会添加
cat /etc/passwd > file 重定向符 会覆盖
cat file
cat /etc/passwd >> aaa 追加重定向符 追加写入
< 输入重定向符
cat < /etc/passwd 输出到屏幕了 (省略)
<<终止结束符
cat << EOF
[root@RHCSA ~]# cat << EOF
> 1
> 234
> EOF
1
234
[root@RHCSA ~]#
[root@RHCSA ~]# cat << EOF > bbb
> 1
> 2
> 3
> EOF[root@RHCSA ~]# cat bbb
1
2
3
1正确 2错误 &正确和错误
head -3 /etc/passwd 1> ccc 2>bbb 将正确结构写到ccc里面 将错误写到bbb里面
head -3 /etc/passwd > file 2>&1 等价于 head -3 /etc/passwd &>file 将错误输出的和正确输出的都输出
grep命令
关键字标红并输出
-c 关键字 有几行
-i 忽略大小写
-n 显示行号
-v 显示没有这个关键字的行
-A -A 2:搜索时显示匹配到的那一行以及下2行
-B 搜索时显示匹配到的那一行以及上2行
-C 搜索时显示匹配到的那一行以及上下2行
-O 显示关键字一共出现过多少个
* 表示通配符
grep命令如果有特殊字符需要用单引号
^顶尖符 行首
$ 行尾
grep '[abc]' aaa 将aaa包含abc字符的内容显示
grep '[a-z]' aaa 将aaa中有字母的显示
grep '^[^1,34/5]' aaa 将在行首不包含1,34/5的显示
grep '^$' aaa 显示空白行
^# 匹配以井号开头的
grep -v ^# /etc/login.def |gref -v ^$ 不显示以井号开头 不显示空行
grep -r haha ./* 搜索haha在哪个目录下
文本剪切 cut
-d 指定分隔符
-f 指定列
-c 指定第几个字符
--output-delimiter= 指定分隔符号
cut -d : -f 1 /etc/passwd
cut -c 1-3 /etc/passwd
cut -d : -f 3,4,5 --output-delimiter=" " /etc/passwd
sort 按字符比较
-t 指定间隔符
-n 按数值
-r 按逆序
-k 指定字段排序
[root@RHCSA ~]# sort -rn -t : -k 3 /etc/passwd
uniq 只去重连续的行
-c 统计重复的行的次数
-d 只显示重复的行
-D 显示重复出现的所有行
一般先排序,再去重
sort aaa | uniq
history 显示所敲的命令
tr 替换命令
tr -c 反选定
tr -t 等长度字符替换
tr -d 删除指定字符
tr -s 多个连续的字符替换为某一个字符
[root@RHCSA ~]# history | tr -s " " " " | cut -d " " -f 3- | sort | uniq -c | sort -n | tail -3
8 cd ~
12 ls
31 ll
把命令最高的前三行显示
wc 参数 文件名 统计指定文本文件的行数,字数或字节数
wc -l 只显示行数
-w 统计单词数
或 echo /etc/passwd 文件一共有`cut -d : / -f : 1`行
`` 等价于 $()
一个中文占三个字节 繁体字是占四个字节
which 查找文件路径 基于5个环境变量
查找的是可执行文件 x
whereis 查找环境变量下的文件 不是可执行文件也可以找到
locate 123 路径有123的都显示出来 基于数据库搜索
updatedb 更新数据库 数据库可以提高读写速度
find查找
find [查找路径] 寻找条件 操作
/
-atime 访问时间
-mtime 修改时间 文件内容修改
-ctime 改变时间(改动时间属性 权限)
4 第四天前的这一整天
-4 <=4天前
+4 4天前的
find / -mtime -30 30天内修改过的文件
find / -newer f1 ! -newer f2 查找在f1之后在f2之前的文件
find -prune 排除
find /pub -path /pub/dir -prune -o -name 6
-o 代表或者
find / -type f -name abc 找文本文件并且文件名叫abc
find / -type f -a -name abc
find / -name 1* -o -name *1 找到以1开头或以1 结尾的文件
find -size 50 K 以单位来搜索
find -user -group -nouser -nogroup -uid -gid
find -inum
find -ok
find -exec 以换行符为分割
find -perm
|xargs 参数传递 一次性
find / -name test -ok rm -rf {} \;
zip命令 压缩后源文件还在
zip 文件名
zip -r 递归压缩
zip -m test1.zip test2.zip 添加
zip -d 23.zip 2 删除
zip text.txt -x test1.txt 文件排除某个文件
zip -9 压缩率最高的
gzip和gunzip命令 压缩后源文件不在了
bzip2、bunzip2
xz、unxz命令
tar命令 对多个文件压缩 不在同一路径下
tar [选项] 打包文件名 被打包的源文件或目录列表
-c 创建
-x 释放
-t 查看压缩包的文件信息
-v 显示详细信息
-f 压缩包名 多个文件包名
-p
-z
[root@RHCSA ~]# type cd
cd is a shell builtin
查看命令帮助手册
man 内置命令
man 1 目录名 查看第五章节
命令 --help
passwd 该当前命令
命令的返回结果
echo $? 查看命令是否执行成功 0表示成功 非0是失败
pinfo选项
可以超链接
info
time cd / time touch file查看执行时间
cd内置命令 几乎没有时间
touch外置命令 几微秒
alias 别名
#alias userfile="cat /etc/passwd"
#userfile 则可查看
仅在当前终端生效
永久生效
#vim /etc/bashrc
G o
在最后写
#alias userfile="cat /etc/passwd"
重新加载程序 或 #bash
unalias 取消别名
vim ~/.bashrc 只针对当前用户
su 用户 切换用户
#su -l redhat
#su - redhat 更改用户并切换自己家目录
pstree 查看进程
#注释
history
vim ~/.bash_history
history -w
清空历史
rm -rf ~/.bash_history
history -c
history 3 显示最近三条
history -w
cat ~/.bash_history
!3 匹配上三条所执行的命令
!!3
!-3
快捷键
ctrl+l 清屏
通配符
* 匹配任意字
? 单个字符
[] 方括号内任意一个
[^]
私有模式:默认用户对应的组是和用户同名的组
公有模式:
用户的类别
管理员:root root 0 (用户id为0一定是管理员用户)
普通用户: 1--65535
系统用户 1-999 1-200 系统用户 权限比管理员低一些 比普通用户高一些
一般用户 redhat 1000-60000
可登录式shell
非登陆式shell
name:password:UID:GID:GECOS:directory:shell
用户名
密码占位符
用户的1D
组ID (标记当前用户的基本组)
用户的猫述和注释
用户家目录~ /home
shell 可登录式shell 例 /bin/bash
非登陆式shell 例 /sbin/nologin
查看这个用户 id 用户名
cat /etc/passwd | grep ^用户名 行首是关键字信息
修改用户信息 usermod [选项] 用户
更改登录名称 usermod -l 更改后的名字 更改前的名字
修改用户id uid -u 1000 尽量1000以后
修改基本组GID -g 1000
修改用户的附加组(默认没有附加组,等于添加) -G root
描述信息做标记 -c 18910017654
指定家目录 -d /
更改用户的shell -s /sbin/nologin
锁定该用户 -L root用户可访问 其他普通用户登录就不行
解锁用户 -U
删除用户信息
userdel -r 用户名 递归删除 如果这个基本组只有一个用户,则会删除这个基本组
userdel 用户名 在/home中和 /var/spool/mail还有的
添加用户信息
useradd和 mod类似 补充 -r指定用户为系统用户
useradd -r user2 创建系统用户
#cat /etc/default/useradd
#cat /etc/login.defs -------->设置了创建用户的默认信息
组类别
管理组
蔷通组:
默认组,基本组
额外组
groupadd
id -g user1 查看用户的组id
id -u user1 查看用户id值
id user1 查看用户的uid和gid
cat /etc/group | grep ^g1 查看g1的组名是否存在
cat /etc/group
组名:组密码占位符:gid:该组中的用户名
groupmod
groupmod -n 组名 更改组名
-g 更改组id
groupdel 组名
groupdel g1 额外组不管里面有没有用户,都可以被删除
groupdel user1 不能删除基本组
/etc/shadow 用户密码
/etc/gshadow 组密码
更改密码
1.#passwd更改当前用户的密码
2.#echo redhat | passwd --stdin root 对于root用户修改密码 密码暴露 可以删除这条历史信息
通过 history -d 183 来删除 history -c 是删除所有的历史纪录
3.chpasswd < 文本文件 可以修改多个账户的密码 文本文件有 用户名:密码
4.echo redhat:123456 | chpasswd 修改redhat的密码
cat /etc/shadow 记录了所有用户的密码
第二个字段 密码 如果没有密码 用!!或 * 表示
第三个字段 是最近一次更改密码的时间,以距离1970年1月1日的天数表示
第四个字段 密码最短时间 如果0 则可以长期使用
第五个字段 密码最长时间 99999 永不过期
passwd -m 修改密码的最长时间
passswd -n 修改密码的最短时间
passwd -w 警告(快过期了)
-l 锁定
-u 解锁
gpasswd g1 修改组密码
newgrp g1 更改为组g1
#gpasswd -a 用户名 组名 将用户加入组
#gpasswd -r 删除组密码
#usermod usermod -G 组名 用户
#gpasswd - d 将用户从组中移除
#gpasswd -M 用户名1,用户名2 组名 一次性将多个用户加入到指定组中
#gpasswd -A 用户名 组名 将此用户设置为组长
#gpasswd -R 锁定组密码
实验
创建学习组1,学习组2; 他们的组gid分别为1111,2222,添加成员并将uid为1088,
和uid为1066的成员为两组的组长,其中一组组长有一个处号’1aoda.
不同学习组进入需要密码才能进入(设置密码):即使密码泄露也不希望组之外的成员进入。
#groupadd -g 1111 stu1
#groupass -g 2222 std2
#useradd -u 1088 haha
#useradd xixi
#useradd -u 1066 user1
#useradd user2
#usermod -G std1 haha
#gpasswd -a xixi std1
#gpasswd -M user1,user2 std2
#gpasswd -A haha std1
#usermod -c laoda haha
#gpasswd std1
#gpasswd std2
#gpasswd -R std1
#gpasswd -R std2
给用户授权一些权限
vim /etc/sudoers
redhat不设置密码
#users
当前主机的用哪些身份做了验证 远程登录的身份
root root redhat
#w 查看登录信息
#whoami
当前用户信息
#groups redhat
显示当前的属于的组
#last 近期主机的登录的用户
rwx
每三组字符为一组 三组:所属用户的权限 所属组权限 其他用户的权限
./+ 扩展权限标识符 . 没有扩展权限 +有扩展权限
8 4 2 1
d r w x r-x r-x. 2 root root 6 Jul music
7 5 5
文本文件:r 查看文件内容(cat tac more less tail head vim nano grep)
w 编辑文本内容 (vim nano echo > >> cat <
x 执行(运行文本内容)命令文件
目录文件:r ll ls ls-l 查看目录文件中的文件
w 在该目录下创建或者删除文件
x 打开目录文件 cd
系统中默认创建文本的权限是什么?644 默认最高权限666
系统中默认创建目录的权限是什么?755 默认最高权限777
权限掩码值:#umask=022(权限过滤符) 按字符过滤
#umask=033
666 rw- rw- rw-
033 --- -wx -wx
633 rw- r-- r-- 644 (不借位 按字符想减)
权限修改方式:
chown更改文件的所属用户 chown 所属用户 FILENAME
( 只能root用户可以修改 ) chown 所属用户:所属组 FILENAME
chown .所属组 FILENAME
chgrp更改文件的所属组 chgrp 所属组 FILENA777ME
chmod 更改文件权限 chmod ugo=rwx FILENAME chmod u=rw.g+w.o-r FILENAME
chmod 644 FILENAME
chmod 6 FILENAME == 006 66=066
(作为管理员可以更改任意文件权限,但是普通用户只能改属于改自己的文件)
./1 执行当前目录的1文件
对于目录文件有读取权限:rw
写权限:rwx
文件三组权限的匹配顺序:
首先判读发起者用户(登录用户)是否是文件的所属用户,是:只匹配所属用户位的权限
不是:判断是否是该文件的所属组用户,如果是只匹配组权限,不是,直接匹配其他用户位的权限。
权限匹配规则:(安全上下文)
判读可执行文件进程发起者身份,通过进程文件的发起者身份对目标文件是否有读写执行文件
命令文件 (当前终端的发起者身份)
直接判断发起者身份对于目标文件是否是所属用户,是直接判断文件所属用户的权限;是:只匹配所属用户位的权限 不是:判断是否是该文件的所属组用户,如果是只匹配组权限,不是,直接匹配其他用户位的权限。
将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:
文件 /var/tmp/fstab 自 root 用户所有
文件 /var/tmp/fstab 属于组 root
文件 /var/tmp/fstab 应不能被任何人执行
所有其他用户(未来)能够读取 /var/tmp/fstab
#cp /etc/fstab /var/tmp/fstab
#chown root /var/tmp/fstab
#chgrp root/var/tmp/fatab
#chmod ugo-x /var/tmp/fstab
#chmod -x /var/tmp/fstab = chmod a-x /var/www/fstab
#chmod o+r /var/tmp/fstab
创建具有以下特征的协作目录 /home/managers:/home/managers 的组用权是 sysmgrs。
目录应当可被 sysmgrs 的成员读取,写入和访问。但任何其他用户不具这些权限。 (当然,root 用户有权访问系统上的所有文件和目录)。
#mkdir /home/managers
#groupadd sysmgrs
#chown .sysmgrs
/home/managers
1811588
#chmod g=rwx /home/managers
#chmod o=-/home/managers
#chmod g=rwx,o=-/home/managers #chmod 770 /home/managers
特殊权限:
u+s 4 SU1D所属用户的特权位/禁锢位 (仅对一个可执行文件(命令)设置有意义,该命令文件的进程的所属用户不是用户发起者身份,而是对一个可执行文件(命令)文件自身的身份) rws 没有的话rwS
g+s 2 SG1D所属组的特权位/禁锢位(可对一个可执行文件(命令)设置有意义,该命令文件的进程的所属组不是用户发起者的基本组,而是可执行文件(命令)自身的所属组)可对目录文件设置:对该目录的所属组禁锢:后期用户在该目录下创建的文件的所属组都是目录文件的所属组。
0+t 1 sticky 冒险位 (仅对目录文件设置有意义,用户只能删除该目录属于自己的文件,不删除别人的文件)
扩展权限:
查看文件的扩展权限
#getfacl FILENAME
设置扩展权限
对于指定用户设置扩展权限 #setfacl -m u:redhat:rwx FILENAME
对于指定组设置扩展权限 setfacl -m g:g1:rwx FILENAME
删除扩展权限
删除指定用户扩展权限#setfacl -x u:redhat: zhang1
清空扩展权限列表#setfacl -b FILENAME
网络管理:
对当前主机配置动、静态ip地址
(1)自动获取地址
ip地址
掩码
网关
dns
(2)手动配置地址
nmcli 网络管理命令行工具
nmcli device show 显示设备属性信息(详细信息)
设备 status 查看设备和配置(会话)连接状态
delete 删除指定的网卡设备
connect 连接
disconnect 断开连接(设备和会话的连接)
nmcli connection
会话(配置)
vim /etc/sysconfig/network-scripts/ifcfg-ens160
1.添加ens160设备会话(配置)文件
网络管理命令 添加 设备类型 以太网卡 设备名 ens160 会话名 home
[root@localhost ~]# nmcli connection add type ethernet ifname ens160 con-name home
Connection 'home' (23565ffe-898c-4c55-8373-f2d54de34751) successfully added.2.手动配置地址---home配置文件
[root@localhost ~]# nmcli connection modify home ipv4.method manual ipv4.addresses 192.168.10.222/24 ipv4.gateway 192.168.10.2 ipv4.dns 114.114.114.114 +ipv4.dns 8.8.8.8 connection.autoconnect yes
[root@localhost ~]# nmcli connection up home 激活会话(配置)文件
----------------------------
[root@localhost ~]# nmcli connection modify home ipv4.method manual
[root@localhost ~]# nmcli connection modify home ipv4.addresses 192.168.10.123/24
[root@localhost ~]# nmcli connection modify home ipv4.gateway 192.168.10.2
[root@localhost ~]# nmcli connection modify home ipv4.dns 114.114.114.114
[root@localhost ~]# nmcli connection modify home connection.autoconnect yes
3.home配置文件---动态获取ip地址
(1)[root@localhost ~]# nmcli connection modify home ipv4.method auto
将home会话静态模式改为动态获取模式(静态地址没有删除,所以激活该会话文件,默认静态和动态地址都有)
[root@localhost ~]# nmcli connection up home 激活会话(配置)文件
(2)[root@localhost ~]# nmcli connection edit home
nmcli> goto ipv4
nmcli ipv4> remove addresses 192.168.10.222
nmcli ipv4> remove dns 114.114.114.114
nmcli ipv4> remove gateway 192.168.10.2
nmcli ipv4> set method auto
nmcli ipv4> save
nmcli ipv4> quit
将home会话静态模式改为动态获取模式,先删除静态地址信息,更改模式
[root@localhost ~]# nmcli connection up home 激活会话(配置)文件
对当前主机配置动静态p地址
自动获取地址
p地址
掩码
网关
dns
手动配置地址
图形化界面
nmtui
nm-connection-editor
软件包 包名
获取软件包
网上下载,,本地获取
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
/mnt 临时挂载点
mount /dev/
baseos
rpm
-qa 查询所有已安装的软件包
rpm -qa |grep 包名字符串
-ql 查看软件释放的文件
-qf 通过文件绝对路径可以找出该文件通过哪个包释放
-ivh 安装软件包
-evh 卸载软件包
-Uvh 更新软件包
-qpi 查看软件包详细信息
yum install [-y] 包名 安装指定的软件包,-y则在工作过程中需要使用者响应, 这个选个参数可以直接回答yes
yum update [-y] 包名 升级指定的软件包或主机中所有已安装的软件包
yum remove [-y] 包名 卸载已经安装在系统中的指定的软件包
yum provides 文件名 查找指定的文件属于哪个包; rpm -qf
yum info 包名 查看指定软件包的详细信息 rpm -qpi
yum repolist [all] 查看系统中yum资源库配置信息
yum search 模糊包名 查看模糊包名的软件包
yum grouplist 查看仓库里而所有包组
yum groupinfo 包组名 查看指定包组里而的详细信息
yum groupinstall 包组名 安装指定包组里面的所有包
yum list all 列出仓库里所有可安装的软件包
yum list installed [包名] 列出己经安装的所有的或指定的rpm包(包名中可使用匹配符) rpm -qa
yum clean all 清除下载到本机的指定的软件包或所有软件包的yum源缓存
rpm 简单,需要加载配置 yum/dnf 需要加载配置
包名 软件名
必须指定包的路径
不能自动解决依赖关系
1.确认包的所在位置(本地,网络获取-开源镜像站centos fedora rucky)
#mount /dev/sr0 /mnt 仅在当前主机运行状态下生效
2.yum配置文件(仓库文件)
vim /etc/yum.repos.d/*.repo
[源表示名]
name=描述信息
baseurl=本地协议/网络协议
gpgcheck=公私要验证0关闭 1开启
enabled= 启用 0关闭 1开启
配置本地源
[root@localhost Packages]# cat /etc/yum.repos.d/base.repo
[BaseOS]
name=RHEL8-BaseOS-pkg
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
#网络源
[BaseOS1]
name=BaseOS1
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os
gpgcheck=0
[AppStream1]
name=AppStream1
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/AppStream/x86_64/os
gpgcheck=0
3.安装软件包
#dnf install 软件
配置 编译 安装
案例一:tar源码包安装
(1)安装编译程序,编译工具
#dnf install gcc gcc-c++ make
(2)解压源码程序包
#rz --把源码包传输到linux主机
(源码程序包必须放在一个对普通用户有rx权限的目录下)
#mkdir /test --把包放在test目录 755
#cd /test 对包解压缩
#tar -zxvf tar-1.29.tar.gz
(3)配置
#cd tar-1.29
#su - redhat
$cd /test/tar-1.29
$./configure
$exit
(4)编译
#make
(5)安装
#make install
window--linux
(1)xftp---sftp安全文件传输协议--端口22
(2)linux中安装lrzsz
rz ---接受文件
sz FILENAME 发送文件
linux--linux
(1)sftp
(2) scp 文件 目标主机对应的路径下 发送文件
#scp /root/134 [email protected]:/root
scp 目标主机对应的路径下文件 目录下 接受文件
#scp [email protected]:/root/132 /root
-r 发送接受目录文件
appstream
dnf 对软件仓库的进行管理
#dnf clean all 清除缓存
#dnf remove 软件名 == #dnf erase 软件名 -y 卸载 -y可以不用输入y
#dnf groupinstall 组名 组安装
#dnf provides /usr/etc/vim
#dnf search ftp
#jobs 查看后台进程
#w
平均负载值
一分钟 五分钟 十分钟
uptime
ps 显示前台的进程
# ps -ef 所有进程
uid pid ppid c stime tty time cmd
root 5304 4969 0 09:53 pts/0 00:00:00 ps -ef
发起者 进程号 父进程 cpu的占用率 启动时间 终端
#ps aux 静态显示
ps aux --sort %cpu | less 以进程所占大小进行排序
#pstree 树状结构 没有命令
pgrep -l sshd
重点:top 每隔三秒刷新 动态的
top - 10:24:02 up 4:45, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 265 total, 1 running, 263 sleeping, 1 stopped, 0 zombie 各类进程的数量信息
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st cpu的统计结果
MiB Mem : 1806.2 total, 579.7 free, 682.1 used, 544.4 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 956.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 187500 13796 8940 S 0.0 0.7 0:01.70 systemd
pr 优先级 ni
-d
-b
-n
kill -9 5220 强制杀死进程
killall 命令
sleep 60 睡60s
sleep 600 & 放在后台运行
fg 1 把后台放前台
bg %2 让作业2在后台运行
ctrl+z 把前台放后台
nohup 保护进程
& 把前台进程放后头
vim fdisk nmcli dnf
为什么分区 只能对分区指定文件系统类型(格式化类型)
多个分区 方便管理(可以定义多种文件系统类型,文件类型分类存储)
linux / swap /boot 一般
/ swap 必须
磁盘单位: 扇区---512个字节
块------4k
dos --mbr 一扇区 512 446 主引导程序 64 四个分区表项 一个分区表占用16 2结束标记
只能把一个主分区=扩展分区+逻辑分区 (最好24)
gbt 可128个分区
.
1.是否具备分区条件
#lsblk 查看系统块设备
2.fdisk(mbr) 不可大于2tb parted(gbt) 可大于2tb
fdisk /dev/nvme0n2
3,指定文件系统类型
#mkfs.xfs /dev/nvme0n2p1
#mkfs.ex4 /dev/nvme0n2p2
4.使用分区
#mount /dev/nvme0n2p1 /p1 临时挂载
文件系统名称 挂载点目录
#umount /p1
挂载点或者文件名称
vim /etc/fstab
文件系统名称 挂载点目录 格式类型 参数 检查 是否备份(0 1 2)
#mount -a
#reboot
5.检查方法
#mount 查看所有挂载点信息
#df -h 文件系统
swap分区
#parted