部署环境:虚拟机VMware workstation+红帽8.5
linux的操作界面称为Shell ,shell有以下分类
- 图形界面 KDE,GNOME
- 字符界面 bash shell ;csh shell zcsh shell tcsh shell ;sh shell
查看当前的shell类型
[root@xiaoyun ~]# echo $SHELL
/bin/bash
shell的提示符
普通用户 $ 超级用户(root) #
[root@xiaoyun ~] --[root用户@主机名 当前目录名]
[rhcsa@xiaoyun root] --[当前登录用户名@主机名 当前目录名]
注:~ 是主目录的简写表示
shell通过两个环境变量来控制提示符格式,即PS1和PS2
PS1 可以修改提示符格式 默认值为[\u@\h \W]\$ --用户名@主机名 当前目录
默认:
[root@xiaoyun ~]# echo $PS1
[\u@\h \W]\$
PS2 一条命令多行连接显示的信息
默认:
[root@xiaoyun ~]# echo $PS2
>
修改PS2的提示符为next line
[root@xiaoyun ~]# PS2="next line:"
[root@xiaoyun ~]# echo $PS2
next line:
[root@xiaoyun ~]# echo hello\
next line:world
helloworld
[root@xiaoyun ~]# echo hello\
next line:word\
next line:happy
hellowordhappy
使用桌面终端访问命令行
- 终端
方法一;从仪表板访问终端
方式二:Alt+F2,打开Enter a Conmmand,输入gnome-terminal
- 虚拟终端:同一台终端虚拟出多个终端,他们互不影响,他们就是虚拟终端,默认有6个。通过ctrl+alt+f[1/2/3/4/5/6]来切换
第一个虚拟终端(tty1)为图形界面
第二到六个(tty2~tty6)为字符界面
一些相关命令(主命令 选项 参数(操作对象))
- 使用重启和关机命令
重启:reboot,shutdown -r now
关机:shutdown -h now,poweroff
2.查看当前linux发行版信息
[root@xiaoyun ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.1 (Ootpa)
3.查看内核版本
[root@xiaoyun ~]# uname -r
4.18.0-348.e18.x8664
主版本.子版本.bug修改次数-编译版本号.企业.架构
4.查看ip
[root@xiaoyun ~]# ip a
常用的简单命令
注:【ctrl+c】中断正在执行的命令
【ctrl+l】清屏
- su- 用户名 切换用户
- 暂时修改主机名 hostname或者hostnamectl
永久修改 set-hostname
- 查看当前目录 pwd
- 切换目录 cd+路径
直接回到当前用户主目录 cd ~
回到当前目录的上一级目录 cd ..
回到当前目录 cd .
回到之前的目录 cd -
- 修改密码 passwd
- 删除密码 passwd -d 用户名
注:普通用户密码设置有限制(需要长于8个字符)
暴力破解root密码
重启系统(第一行为红帽的内核版本,第二行为救援模式)
在quite后面输入rd.break
按ctl+x
这里的sysroot是以只读的形式挂载的,所以要改为可读可写的方式来挂载
修改密码(进入/sysroot子系统来修改密码)
创建一个文件,并退出
再次输入exit退出,等待百分比
关于文件类型和目录结构
- ls 查看当前目录文件
ls -a 把隐藏文件显示出来
ls -l 显示长文件
ll-h 文件显示大小单位
ll -d 显示指定目录本身信息
ll -i 显示文件索引节点号(一个索引节点代表一个文件)
文件类型
- - 普通文件 (.txt)
- d 目录文件
- l link,链接文件(软连接-快捷方式)
- c 字符设备文件
- b 块设备文件
- p 管道文件
-rw-------. 1 root root 1657 Mar 18 2022 anaconda-ks.cfg
权限标识符,硬链接次数,文件的所属用户,文件的所属组,文件大小,修改时间,文件名
inode 文件存储硬盘中,所分配的编号
要想了解inode,还必须从文件存储说起。
硬盘上最小的存储单位是“扇区”(sector),大小为512字节,约等于0.5kb(1kB = 1000B(字节, Byte))。
但是操作系统在读取数据的时候,以扇区为单位读取的话,效率低。
所以出现了“块”(block),块由多个扇区组成,4kb的块大约是8个扇区,以“块”为单位,一次连续读取多个扇区,提高了效率。
“块”是硬盘上最小的存取单位。
文件数据存储在扇区,那么文件的元信息(文件创建者,文件大小,创建日期等)存储在哪呢?
inode区用来存储文件的元信息。(inode中文名索引节点)
我们用stat的来查看文件的元信息
[root@xiaoyun ~]# stat file
File: file
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 17397483 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-10-29 14:51:23.334549191 +0800
Modify: 2022-10-23 14:04:18.180457560 +0800
Change: 2022-10-23 14:04:18.180457560 +0800
Birth: -
对inode区和block区的理解
硬盘初始化,系统将硬盘存储分为两大区域,一个是inode区,一个是block区。
对于iNode区很好理解,其实他是一个数组,数组下表对应着iNode编号,每个元素都是一个结构体,这个数组中存在着block指针,从inode指向block区的对应文件。
而block区就是存放文件的数据,inode的指针指向block所对应的数据,这样一来,两个之间的联系自然形成了。
系统在访问一个文件时,具体的步骤是这样的:
读取inode编号--》读取inode信息(block指针)--》根据指针找到block中的数据信息
用bt命令查看硬盘所用情况统计
[root@xiaoyun ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 907000 0 907000 0% /dev
tmpfs 924748 0 924748 0% /dev/shm
tmpfs 924748 9948 914800 2% /run
tmpfs 924748 0 924748 0% /sys/fs/cgroup
/dev/mapper/rhel-root 15616000 5422096 10193904 35% /
/dev/nvme0n1p1 506528 172560 333968 35% /boot
tmpfs 184948 1168 183780 1% /run/user/42
tmpfs 184948 3484 181464 2% /run/user/1000
/dev/sr0 10717954 10717954 0 100% /run/media/rhcsa/RHEL-8-5-0-BaseOS-x86_64
tmpfs 184948 4 184944 1% /run/user/0
硬链接
通常情况下,一个inode编号对应一个文件。但是在linux系统允许的情况下,存在一个inode编号对应多个文件,这就是硬链接。
多个文件名的inode编号相同,根据以上对inode区的理解,不难猜出,修改其中一个文件,其他的文件内容会受影响。
但是删除其中一个文件,其他文件却不受影响.
基础理解
概念:一个block指针指向多个block区
特点:对文件的备份,防止误删
创建对象:不可以对目录创建硬链接,并且只能在同一个文件系统中创建
创建一个硬链接
[root@xiaoyun ~]# ln file file23243.link
[root@xiaoyun ~]# ll
total 108
-rw-r--r--. 3 root root 0 Oct 23 14:04 file23243.link
软连接(快捷方式)
软连接和硬链接不同,软连接指向的是文件名,所以文件的inode链接数不变。
假设文件a是文件b的软连接,访问文件a,系统自动导入文件b,文件a的内容就是文件b的路径。
文件a依赖文件b,删除文件b,访问文件a会报错。
创建一个软连接
[root@xiaoyun ~]# ln -s file2 file435
[root@xiaoyun ~]# ll
total 108
lrwxrwxrwx. 1 root root 5 Oct 31 10:23 file435 -> file2
删除文件file2
[root@xiaoyun ~]# rm -f file2
[root@xiaoyun ~]# ll
total 108
lrwxrwxrwx. 1 root root 5 Oct 31 10:23 file435 -> file2
[root@xiaoyun ~]# cat file435
cat: file435: No such file or directory
Linux系统的目录结构---一切皆文件
/ | 根目录 |
/bin | binary(二元的) 存放所有用户的可执行文件或命令 |
/boot | 存放系统启动时所需文件,建议不要修改,不然系统无法启动 |
/dev | device(设备) 存放设备文件 |
/etc | etc(et cetera 等等) 用来存放系统的配置文件,其实放的都是零零碎碎的东西,是个文件遗留 |
/home | 普通用户的家目录 |
/lib | library(库) 存放库文件 |
/lib64 | 存放系统所用到的64位共享函数库 |
/media | linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 |
/opt | optional(可选) 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 |
/proc | Processes(进程) /proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里。 |
/root | 超级权限者的用户主目录 |
/run | 一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。 |
/sbin | Superuser Binaries (超级用户的二进制文件) 存放管理员可使用的命令文件 |
/srv | server 服务 存放一些服务启动之后需要访问的数据目录 |
/sys | 本目录是将内核的一些信息映射文件,以供应用程序所用 系统文件 |
/tmp | temporary(临时) 的缩写这个目录是用来存放一些临时文件的 |
/usr | unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 一般用户程序安装所在的目录,用于安装各种应用程序 |
/var | variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 |
setfacl(扩展权限)
setfacl可以分配更精确的文件权限,对特殊用户和组可以单一控制。例如某一个普通用户不能访问某文件。
acl针对单一用户或文件进行权限控制。
查看acl参数
[root@xiaoyun ~]# getfacl a
# file: a
# owner: root
# group: zhangsan
user::rw-
group::rw-
other::r--
选项
-m 更改文件的访问控制列表
-x 删除一条
-b 彻底所有删除(包括-x遗留的mask)
给指定用户设置acl(lisi只有读的权限)
[root@xiaoyun ~]# setfacl -m u:lisi:r a
[root@xiaoyun ~]# getfacl a
# file: a
# owner: root
# group: zhangsan
user::rw-
user:lisi:r--
group::rw-
mask::rw-
other::r--
mask是对acl设置的限制:acl的设置一定要在mask范围之内,如果超过范围,无效。