一、文件管理
1.linux目录结构
/ ###linux操作系统的根目录
/sbin ###管理员可执行命令的文件目录
/bin ###普通用户可执行命令的文件目录
/lib ###操作系统的库文件目录
/lib64 ###操作系统的库文件目录
/etc ###配置文件目录
/root ###root的家目录
/home ###普通用户的家目录
/usr/local ###一般的软件安装目录
/tmp ###临时文件存放目录
/media ###媒体介质目录
/mnt ###一般的挂载目录
2.文件管理
文件创建:
touch 文件名
多个文件创建:
touch 文件1 文件2 文件3
目录创建:
mkdir 目录名
多个目录创建:
mkdir -p 目录1 目录2 目录3 ###创建的是同级目录
mkdir -p 目录1/目录2/目录3 ###创建的是子目录
文件删除和目录删除:
rm 文件名
rm -f 文件名
rmdir 目录名
rm -rf 目录名
复制文件和目录复制:
cp 文件 文件1
cp -r 目录 目录1
移动文件和目录移动:
mv 文件 新目标目录下
mv目录 新目标目录下
查看文件内容:
cat
head
more
tail
grep
vi/vim编辑器:
0 ###跳到当前行行首
$ ###跳到行尾
yy ###复制当前行
nyy ###表示复制从当前行往后的n行
p ###粘贴
gg ###跳到文件行首
G ###跳到行尾
二、用户管理
1.用户相关文件
用户基本信息文件
用户基本信息文件:/etc/passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
用户基本信息文件有7列信息,6个:号隔开,具体信息如下
用户名:密码占位符:用户uid:用户组id:描述:用户家目录:用户登录的shell
用户密码文件
用户密码文件:/etc/shadow
用户密码文件有9列信息,8个:隔开,具体如下:
[root@localhost ~]# cat /etc/shadow
root:$6$H7E8LF3.ktcnTzue$4gO7uGcmFqZsVwdmPIH0Ept9oB3mNafPwfCeYXaSWSMp.16NMkXRdmcDekjyR24TTPh9u4.xfTXw8s4Ev9NVc.::0:99999:7:::
用户名:密码信息:密码天数:最短密码修改时间间隔:密码最长有效期:密码到期告警时间:密码失效以后还可以使用的天数:密码只能使用的天数:备用
2.用户的增删改
增加用户:
useradd -u:指定uid -g:指定gid -G指定附加组
删除用户:
userdel -r:把用户相关的文件也删除掉
修改用户:
usermod
3.用户组相关文件
用户组基本信息文件
用户组文件: /etc/group
用户组文件有4列信息组成,3个:号隔开,具体如下:
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
组名:组密码(一般不设置):组id号:组成员
用户组密码信息文件(了解)
用户组密码信息文件:/etc/gshadow 一般不设置用户组的密码,所以基本没什么用
4.用户组的增删改
增加用户组:
groupadd 组名
删除用户组:
groupdel 组名
修改用户组:
groupmod 组名
三、权限管理
1.基本权限
基本权限主要是ugo rwx ####u表示用户本身,g表示用户组,o表示其它用户 r表示读权限,w表示写权限,x表示执行权限,rwx也可以对应数字421
修改权限:
chmod
修改属主、属组:
chown
2.特殊权限
suid:
chmod u+s 让其它用户拥有属主的权限
acl:
getfacl 查看不属于ugo里其他人的权限
setfacl 让其他人拥有不属于ugo里的权限
权限掩码umask:
修改umask掩码,会影响在操作系统内创建文件/文件夹的权限 ,创建文件夹的权限是用0777-umask掩码,创建文件的权限是用0777-umask掩码-0111
四、进程管理
1.静态查看进程
命令:ps
ps aux 查看所有进程
ps aux --sort 列名 排序
ps -ef 查看进程关系
2.动态查看进程
命令:top
top - 11:25:24 up 1:09, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 201 total, 2 running, 199 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 0.7 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1935.1 total, 944.6 free, 762.7 used, 398.8 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1172.4 avail Mem
第一行:命令名称 时间 开机时间 登录用户数 cpu负载情况:1分钟 5分钟 15分钟
第二行:进程数 总进程数 正在运行进程数 睡眠进程数 停止进程数 僵尸进程数
第三行:cpu百分比 用户占比 系统占比 第四行:内存情况 总内存 空闲内存 使用内存 内存缓存 第五行:交换内存情况
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 108292 16700 10924 S 0.0 0.8 0:00.80 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
进程ID 用户 系统优先级 优先级 虚拟内存 真实内存 共享内存 cpu占比 内存占比 占用时间 进程名
3.进程的前后台
前台运行不释放终端,直到进程运行完毕退出
执行程序在后面加&放到后台运行
4.进程优先级调整
命令:renice
5.虚拟文件系统
/proc 这个目录下有每一个进程的目录,以进程的ID号命名,当进程被杀死,/proc下的目录也会被删除
五、重定向和管道
1.标准输入重定向
符号:<
2.标准输出重定向
符号:> ###会覆盖内容
符号:>> ###追加内容
3.标准错误输出重定向
符号:2>
4.管道
|
tee:三重管道
特殊管道:xargs
六、存储管理
1.磁盘管理
磁盘分区的两种格式:MBR、GPT,MBR最多只能4个主分区,若需要更多的分区,只能划分3个主分区,一个扩展分区,在扩展分区里边划分逻辑分区
创建分区:
fdisk /dev/sda
依次顺序:填写n创建分区,选择为p还是e,p为主分区,e为扩展分区,如果是扩展分区,分区大小容量用完,然后在扩展分区里在划分逻辑分区
格式化分区:
mkfs.ext4或者mkfs.xfs
挂载分区:
mount -t ###只是临时挂载
写在/etc/fstab下 例如格式:/dev/sda1 /mnt/sda1 ext4 defaults 0 0 ###永久挂载
写在开机自启动加载文件下.bashrc 格式:mount -t ext4 /dev/sda1 /mnt.sda1 ###永久挂载
2.lvm管理
名词: lvm 逻辑卷管理 pv 物理卷 vg 卷组 lv 逻辑卷
pv 物理卷:
pvcreate /dev/sda 将磁盘sda创为物理卷
vg 卷组 :
vgcreate vg1 /dev/sda 添加物理卷sda到卷组vg1中,没有卷组名的用vgcreate创建,有卷组名的用vgextend扩展卷组容量
lv 逻辑卷:
lvcreate -n lv1 -L +1G vg1 从vg1卷组中分出1G,用来创建lv1,有逻辑卷名的,扩展逻辑卷用lvextend
注意:这里如果是扩展lvm的容量的话,用lvextend扩展,扩展后lvdisplay可以看到lvm的容量增加了,但是df -Th看分区容量并没有增加,需要用xfs_growfs 去刷新逻辑卷,比如xfs_growfs /dev/vg1/lv1
格式化文件系统:
mkfs.ext4 /dev/vg1/lv1 将逻辑卷格式化文件系统
挂载:
创建一个空文件夹,用来挂载逻辑卷 mount /mnt/lv1 /dev/vg1/lv1
3.swap管理
swap叫交换分区,该分区主要用来做内存缓冲,当内存不够用的时候,会把内存中一部分睡眠进程放到swap分区中,以缓解内存的压力,swap分区的空间来自于硬盘空间
七、raid和文件系统
1.文件系统
文件系统类型:
windows fat16、fat32、NTFS
linux ext3(redhat5以前)、ext4(redhat6)、xfs(redhat7以后)
ext4和xfs的区别:
ext4文件系统最大支持1EB、xfs文件系统最大支持8EB
块和inode的概念:
块是文件内容存储的最小单位,默认是4k,inode是索引节点,inode主要存储文件编号,如果inode号达到最大数量,就无法再创建文件,如果块的存储达到磁盘分区最大容量,就无法再往块里边写入内容
2.raid
硬raid:
在开机之前做
软raid:
在开机以后做
raid0:
至少两块盘,主要提升读写速率,但是一块盘坏了,数据无法恢复
raid1:
至少两块盘,主要提升安全性,一块盘坏了,另外一块盘可恢复数据,但是存储容量只有50%
raid5:
至少3块盘,一块盘做奇偶校验运算结果,数据分别存储在另外两块盘中,读写速率提升了,存储容量也达到了n-1/n,数据安全性也得到了保障
raid5例子:
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{e,d,f,g} ###-C:创建raid /dev/md0 raid设备 -l5 raid5 -n3 raid成员数量 -x1热备磁盘数量
mkfs.xfs /dev/md0 ###格式化
mount /dev/md0 /mnt/md0 ###挂载
mdadm -D /dev/md0 ###查看详细信息
mdadm /dev/md0 -f /dev/sde -r /dev/sde ####模拟磁盘坏了并移除 -f fail -r remove
mdadm /dev/md0 -a /dev/sde
3.链接
软链接:
ln -s 源文件 链接文件
源文件修改–>软链接文件修改,源文件删除,链接问价失效
硬链接:
ln 源文件 链接文件
源文件修改–>硬链接文件修改,源文件删除,硬链接文件内容还在,但是不能跨磁盘分区创建硬链接
八、文件查找和解压缩
1.文件查找
which:多用于查找命令
locate:locate是查找数据库,开始时数据库会更新,刚创建的内容,locate是查找不到的,需要用updatedb更新
find:
按文件名查找
find / -name 文件名
按大小查找
find / -size 大小 ###+表示大于,大小前面不加符号表示等于,-表示小于
指定查找深度
find / -maxdepth 5 -name 文件名
按权限查找
find / -perm 755
按用户/用户组查找
find / -user yaoyuan find / -group yaoyuan
按文件类型查找
find / -type s
查找后处理
find / -name 222.txt -delete ###删除
find / -name 222.txt -exec cp -rvf {} /tmp \; 复制
2.打包和压缩
打包:
tar -cf /etc
解打包:
tar -xf /etc.tar
打包压缩:
gzip
tar -zvcf /etc etc.tar.gz
bzip
tar -jvcf /etc etc.tar.bz
xzip
tar -Jvcf /etc etc.tar.zx
九、软件管理
1.rpm包管理
yum 方式:
yum源配置路径 /etc/yum.repos.d/XXX.repo
安装
yum install -y 软件名
yum update ###更新操作系统所有包到最新
查询
yum repolist ###查询仓库
yum list 软件名 ###查询软件包
yum provides 软件名 ###根据软件名称查询包的来源
卸载
yum remove -y 软件名
rpm 方式:
安装
rpm -ivh 软件包名
查询
rpm -qa 软件包名
卸载
rpm -evh 软件包名
2.源码包管理
下载源码包
解压
配置
编译
安装
十、计划任务
1.一次性调度
命令:at
at now+1min ###一分钟后执行,按crtl+d提交
atq ###查询任务
2.循环调度任务
* * * * * //表示 分 时 日 月 周
* * * * * ###表示每分钟执行
*/5 * * * * ###表示每5分钟执行
0 2 * * * ###表示每天凌晨2点执行
0 2 10 * * ###表示每个月10号的凌晨2点执行
0 2 10 5 * ###表示每年5月10日凌晨2点执行
0 2 * * 5 ###表示每周五凌晨2点执行
循环调度任务存储文件位置/var/spool/cron
crontab -e ###编辑调度任务
crontab -l ###查询调度任务
crontab -r ###删除调度任务
crontab -u username ###root用户编辑普通用户的调度任务
十一、日志管理
1.系统主日志程序
rsyslogd
2.系统主日志程序配置文件
配置文件:/etc/rsyslog.conf
日志的定义规则:
设备
authpriv、mail、cron、auth等称为设备
级别
debug、info、warning、error、critical、alert、emerg、none称为级别
文件位置
需要自定义日志输出的文件位置
3.常见日志
/var/log/messages ###系统消息日志
/var/log/secure ###系统安全日志
/var/log/cron ###定时任务日志
十二、网络管理
1.配置文件配置网络(centos stream 9)
vim /etc/NetworkManager/system-connections/ens160.nmconnection
[root@localhost ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection
[connection]
id=ens160
uuid=16a09fa9-9144-3af4-9993-af5dcc0d8bdf
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1721549625
[ethernet]
[ipv4]
address1=192.168.168.149/24,192.168.168.2
dns=8.8.8.8;
method=manual
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
注意:centos7的网络配置文件位置在/etc/sysconfig/network-scrpits/ifcfg-ens33
2.nmcli命令配置网络
nmcli con mod ens160 ipv4.address 192.168.168.149/24 ###设置ipv4地址
nmcli con mod ens160 ipv4.method manual ###设置为静态地址
nmcli con mod ens160 ipv4.gateway 192.168.168.2 ###设置网关
nmcli con mod ens160 ipv4.dns 8.8.8.8 ###设置dns服务器地址
3.主机名更改和网络测试工具
主机名修改:
hostnamectl set-hostname XXX ###命令行修改
vim /etc/hostname ###在文件中修改
网络测试工具:
ping ###发送包的数量和回包的数量相等,则网络正常
ip route ###查看路由表
traceroute ###路由追踪
ip neighbor ###查看网络邻居
4.服务器初始化配置
关闭防火墙
systemctl stop firewalld ###临时关闭防火墙
systemctl disables firewalld ###永久关闭防火墙
systemctl status firewalld ###查看防火墙状态
关闭selinux
selinux也是防火墙,主要是控制程序对文件的访问
getenforce ###获取selinux状态
set enforce 0 ###临时关闭selinux
sed -i s/=enforcing/=disabled/g /etc/selinux/config ###永久关闭selinux
配置yum源
yum源配置文件文职 /etc/yum.repos,d/xxx.repo ###参考软件管理的配置