查看目录下所有文件夹
ls /(想要查看的路径)
查看本机ip地址
ip addr
输出结果中不同颜色代表不同的文件类型,
其中蓝色表示目录,
绿色表示可执行文件,
浅蓝色表示链接文件,
红色表示压缩文件,
黄色表示设备文件等
用户在磁盘中查找文件时,所历经的文件夹线路称为文件路径
路径跳转
cd 所要跳转的路径
绝对路径 ->从根目录开始往下递进(根目录为/)
相对路径 ->从当前目录开始往下递进(./可以省略)
创建目录
mkdir 目录名称
创建多层目录
mkdir -p(小写的)
显示当前工作目录
pwd -P(大写的)
显示当前目录下隐藏文件
ls -a
显示目录详细信息
ls -l
删除空文件夹
rmdir 想要删除的空目录路径
连同上级空目录一起删除
rmdir -p
创建文件
touch 文件名.文件类型
显示文件内容(无法编辑)
cat 想要查看的文件路径 -->
cat -n 想要查看的文件路径 -->除了显示内容之外,还显示行数
more -->打开大文件使用
只显示符合条件的搜索内容
grep '搜索关键字' 需要搜索的文件
复制
cp 源文件 目标文件 -->复制,成功后源文件还存在
移动
mv 源文件 目标文件 -->移动,成功后源文件不存在
删除
rm 文件路径 -->删除
vim 编辑器指令
光标指令: 0 ->移动到此行首个字符
$ ->移动到此行末尾字符
gg -->移动到首行首字符
G -->移动到末尾行首字符
/检索的关键字 ->定位到关键字所在位置
/^该行首字符 ->定位到首字符为检索字的行
/检索行的尾字符$ ->定位到末尾为检索字得行
编辑指令:
yy ->复制当前行
p ->粘贴
dd ->删除
u ->撤销上一步操作
末行模式指令:
:wq ->保存并退出
:w ->保存(不退出)
:q ->退出(不保存)
:w! ->强制保存
:q! ->强制退出
:set nu ->显示行号
:set nonu ->不显示行号
命令模式:对文件进行 复制,删除,粘贴,检索等操作
编辑模式:对文件进行新增,修改等操作(在命令模式下按i进入编辑模式)
末行模式:对文件保存,退出等操作
显示指定文件或文件夹的详细信息
stat 文件路径
获取指定文件的类型
file 文件路径
查看当前账户/其他账户 uid/gid
id
id 账户名
查看当前文件夹下文件及文件夹所属账户
ll
查看进程列表
ps aux|less
创建用户
useradd 用户名 //会默认创建一个和用户名一样的组
useradd 用户名 -G 组名 //前提是已经创建分组了 //往主组之后添加新组
useradd 用户名 -d 文件夹路径 //给新创建的用户指定操作目录
默认生成的uid是在现有最大id的基础上+1
useradd 用户名 -u 指定用户编号(编号只能为数字且不可重复)
useradd 用户名 -g 指定用户主组编号/名称 //直接替换主组,只保留一个组
创建组
groupadd 组名
groupadd 组名 -g 编号(gid)//创建指定编号的组
组的作用:
可以更方便的对部分用户做权限操作
例如
ss01用户 刚开始只是普通权限,由于工作需要,需要对权限进行调整
那么可以直接把ss01加入该权限的组中即可,不用再单独设置权限。
给账户添加组
gpasswd -a yangyang01 dcc01
//yangyang01是要修改的账户名
//dcc01是要添加进的组名(只能是组名不能是gid)
查看组的信息
tail /etc/group
//新创建的组会在文件的最下面显示
删除用户
userdel 用户名
userdel -r 用户名 //删的更彻底
修改用户密码
passwd 用户名
普通用户获取管理员权限
sudo su
修改某一个文件或文件夹的属主/属组
chown 所要修改的账户名 修改的文件/文件夹路径
//如果要同时修改属主和属组则
chown 所要修改的账户名.所修改的组名 修改的文件/文件夹路径
修改文件属组
chgrp 所修改的组名 修改的文件/文件夹路径
//若要修改该文件夹下所有文件的属组则
chgrp -R 所修改的组名 修改的文件/文件夹路径
//-R为递归参数
修改文件权限
chmod 对象+权限 文件/文件夹路径
//删除所有对象的权限
chmod a=- 文件/文件夹路径
//同时给不同身份修改权限 不同身份操作之间用,隔开
chmod u=r,g=rx,o+w 文件/文件夹路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jiHRRBgC-1658409792284)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211014133623435.png)]
权限类型
读取 r 4
写入 w 2
执行 x 1
chown和chmod的区别
//chown相当于改变文件/文件夹的所属权 相当于你买了个房子钥匙给你了,只有拿钥匙的人才能进入
//chmod相当于改变文件访问模式 相当于你虽然没有钥匙,但是门是开着的,你随时可以进入
宝塔面板安装代码
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
查看某文件/文件夹的ACL权限
getfacl 文件路径
设置某文件/文件夹的ACL权限
setfacl -m u:zhangsan:rw 文件路径
//-m参数可以修改该文件的ACL权限
//其中u表示user,g表示组
//zhangsan表示需要修改权限的用户名
//rw表示读写权限
setfacl -x u:zhangsan 文件路径
//-x参数可以删除用户对该文件的所有权限
setfacl -b 文件路径
//-b参数可以删除该文件所有ACL权限
ACL权限高级特性
最大有效权限mask
setfacl -m mask::r 文件路径 //将该文件的mask权限设为r,设置完成后无论该文件用户拥有怎样的权限,实际权限只有r
要注意的是mask并不影响全部用户,仅仅只对设置ACL权限的用户受影响。
继承权限
setfacl -m d:u:zhangsan:rwx 文件路径
//继承上级目录权限
//zhansgsan指的是用户名
//rwx指的是权限
//d指的是default继承指令
高级权限
suid
chmod u+s 文件路径
//任何用户在执行该文件时,其身份是该文件的属主,在进程文件(二进制,可执行)上增加SUID
//权限,让本来没有相应权限的用户也可以访问没有权限访问的资源。
sgid
chmod g+s 文件路径
//在一个程序上添加SGID,用户在执行过程中会获得该程序用户组的权限(
//相当于临时加入了程序的用户组)
//当某一个文件夹设置了sgid权限,其子文件/文件夹会继承该文件夹属组
Sticky权限
chmod o+t
当前用户对目录具有w、x权限,在该目录下建立文件或目录,仅有自己与root才有权删除该文件
注意:仅对子文件夹生效,子文件夹的后级不生效
文件属性chattr
查询文件隐藏属性lsattr
a 使文件无法用vim编辑器修改
i 无法接受任何形式的修改
umask进程掩码
umask 想要缺省的权限
例:
umask 0777
//为删除创建文件默认全部权限
系统4大核心资源
Disk IO 磁盘
Memory 内存
CPU 中央处理器
Network 网络
进程的组成
•已分配内存的地址空间。
•安全属性,包括所有权凭据和特权。
•程序代码的一个或多个执行线程。
•进程状态。
•每个进程都有一个唯一的进程标识PID,一个PID只能标识一个进程,PPID为父进程ID,需要给该进程分配系统资源。
进程的三种状态
•就绪态:进程已经具备运行条件,但是CPU还没有分配过来。
•运行态:进程占用CPU,并在CPU上运行。
•阻塞态:进程因等待某件事发生而暂时不能运行。
按照CPU占用来排序进程信息
ps aux --sort -%cpu
查看进程详细信息
ps -ef
自定义查看进程信息
ps axo 想要查看的信息名称
查看进程pid的几种方式
cat 文件路径
pidof 进程名
pgrep 进程名
动态查看进程
top
top -d //设置刷新时间
top -p//查看指定进程
按M键按照内存占用排序
按P键按cpu占用排序
按N键以pid大小排序
按R键对排序进行反转
按F键显示自定义显示字段
按上下键移动
按空格键选中
按q键退出自定义显示字段
按W键保存自定义显示字段
按1键显示所有CPU的负载
进程数据含义
load average xxx,xxx,xxx //cpu1分钟 5分钟 15分钟平均负载值
users //当前用户数
top -xxxxx //当前时间
up xxxx //启动后运行的时间
Tasks: xxx total //进程的个数
x running //正在使用cpu进程的个数
xxx sleeping //进程休眠个数
x stopped //进程停止个数
x zombie //进程僵死个数
%Cpu(s): //cpu使用情况
KiB Mem //内存使用情况
KiB Swap //交换分区使用情况
获取当前在线用户名
users
结束进程
kill pid
//pid为进程编号
kill -信号编号 pid
//不同编号对应不同效果
killall 服务名称
//终止该名称下所有进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ASTsGwhA-1658409792287)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211109182649705.png)]
使用yum安装vsftpd服务程序
yum -y install vsftpd //安装
systemctl start vsftpd //启动
安装vim编辑器
yum -y install vim
作业控制
sleep 进程名 //带&符号的是后台运行,不带则在前台运行
jobs //显示当前shell中作业列表及状态
bg 作业编号 //修改进程前后台,前台改为后台,
fg 作业编号 //后台改为前台
Ctrl+c //结束当前进程
Ctrl+z //暂停当前进程
kill %作业编号 //终止作业
每一个进程在运行中都会打开一些文件,每一个文件都会有一个指定的数字标识,这个标识就叫做文件描述符
0、1、2这3个文件描述符,这也是绝大多数进程都有的。0表是为标准输入,可以理解为键盘输入;1表示为标准输出,输出到终端;2表示为标准错误,输出到终端;3及以上为常规文件的描述符
date > date.txt //输出重定向到date.txt(覆盖)
date >> date.txt //输出重定向到date.txt(追加)
linux > date.txt //错误重定向到date.txt(覆盖)
linux >> date.txt //错误重定向到date.txt(追加)
dd if=/dev/zero of=dsj01.txt bs=1M count=2
//把数据从指定文件里按指定大小指定次数复制到指定文件中
//if后跟源文件 of后跟目标文件 bs后跟单次复制大小 count后跟复制次数
at now +60 min
cat <<SKP
+--------------------------------+
| |
| |
| ================== |
| 脚本测试功能 |
| ================== |
| |
| 1.查询ip |
| 2.安装vim编辑器 |
| 3.安装mysql |
| 4.退出 |
| |
+--------------------------------+
SKP
echo "请输入指令:"
read abc
if [ $abc -eq 1 ]
then
ip addr
elif [ $abc -eq 2 ]
then
yum -y install vim
elif [ $abc -eq 3 ]
then
yum -y install mysql
elif [ $abc -eq 4 ]
then
exit
fi
调用脚本指令
bash 脚本名称.sh
shell脚本中的if
if 空格 [ 空格 $abc -eq 1 空格]
then
要执行的指令
elif
另外一个要执行的指令
fi
fdisk -l 查询MBR分区
lsblk 查询硬盘
fdisk 磁盘路径 mbr分区指令
//m 查看帮助
//n 分区 p表示主分区 e表示逻辑分区
//p查看分区情况
//w保存分区
//yum -y install gdisk 下载gdisk插件
gdisk 磁盘路径 gpt分区指令
//?查看帮助
//n开始分区
//p查看分区
//w保存分区
mkfs.xfs /dev/nvme0n1p1 xfs文件系统格式化
mkfs.ext4 /dev/sdb1 ext4文件系统格式化
mount 分区路径 挂载路径
df -h 查看文件系统挂载点
pvcreate 磁盘路径 将磁盘格式化为物理卷
pvscan 查看物理卷
lvscan 查看逻辑卷
vgcreate 组名 创建卷组
lvcreate -L 100M -n qf01 dataqf
//100M指的是逻辑卷大小,qf01逻辑卷名字 dataqf 卷组名
echo 查找某个变量
which 文件名
tar -czf 压缩后的文件名 需要压缩的路径
tar -xvf 解压文件的名称 -C 解压到某个文件夹
盘路径 mbr分区指令
//m 查看帮助
//n 分区 p表示主分区 e表示逻辑分区
//p查看分区情况
//w保存分区
//yum -y install gdisk 下载gdisk插件
gdisk 磁盘路径 gpt分区指令
//?查看帮助
//n开始分区
//p查看分区
//w保存分区
mkfs.xfs /dev/nvme0n1p1 xfs文件系统格式化
mkfs.ext4 /dev/sdb1 ext4文件系统格式化
mount 分区路径 挂载路径
df -h 查看文件系统挂载点
pvcreate 磁盘路径 将磁盘格式化为物理卷
pvscan 查看物理卷
lvscan 查看逻辑卷
vgcreate 组名 创建卷组
lvcreate -L 100M -n qf01 dataqf
//100M指的是逻辑卷大小,qf01逻辑卷名字 dataqf 卷组名
echo 查找某个变量
which 文件名
tar -czf 压缩后的文件名 需要压缩的路径
tar -xvf 解压文件的名称 -C 解压到某个文件夹