服务器类型:塔式服务器、刀片式服务器、机架式服务器
服务器基建:云服务器、物理服务器、虚拟服务器、容器
操作系统:centos、ubuntu、debain、欧拉、龙蜥、银河麒麟、中标麒麟
# 修改时区 timedatectl set-timezone Asia/Shanghai /etc/localtime # 日期时间 date 查看时间 date -s "年-月-日 小时:分钟:秒" 修改时间 date +"%F %T" 格式化打印时间 "%Y-%m-%d %H:%M:%S" date -d "+1 minute" 指定相对当前时候的某一个时间 # 同步时间 ntpdate ntp.aliyun.com # time.windows.com # 打印所在目录 pwd pwd # 查看某个目录下有什么内容 ls # -a|A 查看隐藏文件 -l 查看详细信息 -i 查看inode号 -h 人性化显示 -d 查看目录本身 # 切换目录 cd 目标地址 # . 当前目录 ..上一级目录 ~或不跟 家目录 - 切换到这里之前的目录 # 创建文件 touch 文件路径 # 删除文件 rm 文件或目录的路径 # -r 删除目录 -f 强制删除 # 关机和重启 init 0 或 poweroff init 6 或 reboot # 别名 alias 查看别名 alias 命令="需要设置别名的命令" # 设置别名 unalias 取消别名
目录结构 Linux 单根、Windows 多根
绝对路径 ls /etc/a.txt 相对 cd /etc/ ; ls a.txt
文件类型 - 普通文件 l 软链接 d 目录 b 设备
常用指令
vim
用户和组
# 历史命令记录 history # 打印信息到终端 echo "需要打印的信息" # -n 取消换行 -e 特殊字符有意义 echo "text" > a.txt # > 覆盖到文件中 >> 追加到文件中 # 创建目录 mkdir 路径 # -p 创建连级目录 -v 显示详细信息 # 复制 cp 源路径1[ 源路径2 源路径3] 目标路径 # -r 复制目录 # 移动 mv 源路径1[ 源路径2 源路径3] 目标路径 # mv 如果在修改时指定新的名字,也可以用来给文件改名 # 查看文件内容 cat 文件路径1[ 文件路径2 文件路径3] # 查看全部 -n 查看时显示行号 tail # 后面的部分 -n 行数 -f 实时查看 -F 包含-f功能,也可以等待文件创建 * 表示查看当前目录下的所有文件 head # 前面的部分 -n 行数 # 过滤文件内容 grep "需要过滤的关键字" 文件路径 # -r 递归过滤,可以过滤当前路径中的所有文件
4个模式: 默认模式(命令模式) # 进入方法:1、vim文件时默认进入这个模式或在其他模式下esc 编辑模式 # 进入方法 在命令模式下 i I a A o O 扩展命令模式 # 进入方法 在命令模式下 : 可视化模式 # 进入方法 在命令模式下 ctrl + v 或 shift + v :wq 保存退出
用户组相关文件 /etc/passwd 用户信息存放文件 /etc/group 创建用户时会自动创建同名组,组信息的存放文件 /etc/shadow 密码存放文件 /home/目录 用户家目录 /var/mail 用户邮箱 /var/spool/at 用户一次性计划任务 /var/spool/cron 用户计划任务 创建用户组 useradd 用户 # -s 指定登录shell -g 指定主属组 -G 指定附属组 groupadd 组 修改用户组 usermod -aG 组名 用户 # 追加用户到组 usermod -g 组名 用户 # 给用户修改主属组 groupmod -g 组 # 修改组信息 passwd 用户 # 修改用户密码,不写用户修改自己 -l 锁定用户 -u 解锁用户 gpasswd 组 # -a 添加用户到组 -M 指定组内成员 -d 从组中删除用户
基本权限UGO
高级权限
提权方法
特殊权限
隐藏权限
U user G group O other R 4 读 W 2 写 X 1 执行 [root@localhost ~]# ll -rw-r--r-- 1 root zhangsan 93605 Mar 15 09:29 a.txt 普通文件 用户-读写6 组-读4 其他人-读4 主-root 组-张三 # 设置权限 -R 递归设置 chmod 742 文件 chmod u=rwx,g=r,o=w 文件 # a表示所有角色 chmod u+r,o-w 文件 # 设置属主属组 chown 主:组 文件 # : 也可以写成. chown 主 或 chown :组 # 只改其中一个 su 切换用户 # 退出是exit或ctrl + d
suid # 给命令赋权,该命令所有用户使用将会像root权限一样 chmod u+s sgid # 给目录设置,该目录中所有创建的文件会继承目录的属组 chmod g+s sticky # 给目录设置,该目录中只有自己或root可以删除自己的文件,其他用户即便拥有删除权限,也不能删除 chmod o+t
1、chmod u+s #命令提权 2、visudo # 用户提权 3、setfacl # 给某个用户针对某个文件提权 # getfacl 查看
# 查看 lsattr # 设置 chattr +i # i是不可读写 a是可追加 chattr -i
查看进程
实时查看进程
处理进程
1、查看所有进程 ps aux ps -ef 2、查看网络进程 ss -anlp # -tnlp -unlp netstat 参数一样 3、lsof 根据文件或端口查看对应的进程 4、w 查看当前登录的用户终端进程 5、pidof pgrep 根据进程名称找到所有进程pid
top htop
# 杀死进程 -1 重新加载 -9 强制杀死 -15 正常杀死 -18 恢复 -19 挂起 kill 根据pid pkill 根据名字 killall 根据pid jobs 查看后台运行的进程 # 前后台 进程运行时 启动命令 & # 放到后台 bg % 工作号 # 后台运行 fg % 工作号 # 前台运行 进程运行中 ctrl + z # 放到后台,并停止 bg % 工作号 # 后台运行 fg % 工作号 # 前台运行 常用指令 free -m # 查看内存使用 -k 千字节 -g g字节 -h 人性化 uptime # 查看时间和cpu平均负载 rz # 上传 sz # 下载
管道
重定向
xargs
# 文件描述符 0 标准输入 1 标准正确输出 2 标准错误输出 & 混合输出 1>&2 正确到错误管道 2>&1 错误到正确管道 # 丢弃输出 ls / &>/dev/null # 丢弃错误 ls / 2>/dev/null # 分离 ls / /hello 1>a.txt 2>b.txt > 覆盖 >> 追加 # 输入重定向 cat <a.txt < 5.2 管道
前面的命令执行的结果中的正确输出 | 以标准输入的方式接受前面的正确输出 cat /etc/passwd | grep root xargs 指令 # 将接受管道前面推送的所有输出作为参数,按照规律交给后面的命令 echo -e "1.txt\n2.txt\n3.txt" | xargs -i touch {} # -i 的分割符必须是换行 echo "1.txt 2.txt 3.txt" | xargs -n 1 sh -c 'touch $0' # 第二种方法,-n可以决定每次接受几个参数六、磁盘管理
分区方式
文件系统
挂载
逻辑卷
raid 磁盘阵列
6.1 分区方式
MBR 4个主分区或3个主分区+1个扩展分区(逻辑分区) 不超过2T GPT 128个主分区 可以超过2T6.2 文件系统
xfs ext # 格式化 mkfs.xfs mkfs.ext4 mkswap # 挂载 临时 mount 设备 挂载目录 # -t xfs ext4 nfs -o 挂载模式 rw,remount 永久挂载 /etc/fstab /etc/rc.local # 记得加执行权限 查看所有磁盘设备的信息 lsblk 查看当前已挂载的磁盘和使用情况 df -Th 查看目录或文件的大小 du -sh6.3 逻辑卷
# 创建 1、添加磁盘 2、将磁盘制作为物理卷 pvcreate 3、将物理卷加入到卷组,没有可以创建 vgcreate vgextend 4、创建逻辑卷 lvcreate 扩容 当卷组有剩余空间 1、扩容逻辑卷 lvextend 2、扩容文件系统 resize2fs xfs_growfs 当卷组没有空间 1、添加磁盘 2、将磁盘制作为物理卷 pvcreate 3、将物理卷加入到卷组 vgextend 4、扩容文件系统 resize2fs xfs_growfs6.4 磁盘阵列
raid0 条带卷 读写:快 数据安全:低 磁盘利用率:100% raid1 镜像卷 读写:读快 数据安全:高 磁盘利用率:50% raid5 带有奇偶校验的条带卷 读写:一般 数据安全:中 磁盘利用率:n-1/n七、文件查找-打包压缩
文件查找
文件过滤
打包tar c、压缩 tar jJz
软硬链接
7.1 文件查找
find 要查找的文件路径 模式 维度: 时间 -atime -mtime -amin -mmin 大小 -size 名字 -name 类型 -type 权限 -perm 例:查找大于50M的以.txt结尾的文件 find / -name "*.txt" -a -size +50M # -a 是和 -o 是或 查找后的动作 find / -name "*.txt" -a -size +50M -ls # 查看详细信息 find / -name "*.txt" -a -size +50M -exec cp {} /tmp \; # 查找后拷贝 查找命令的位置 which whereis7.2 文件过滤
grep 关键字 文件 # -r 递归7.3 打包压缩
归档 + 压缩(gzip|bzip2|xzip) tar cvf 压缩包.tar 文件 tar cvzf 压缩包.tar.gz 文件 tar cvjf 压缩包.tar.bz2 文件 tar cvJf 压缩包.tar.xz 文件 解压缩 tar xvzf 压缩包 -C /etc # -C 指定解压缩的目录7.4 软硬链接
软链接 链接文件和源文件的inode号不相同 软链接的目标可以是目录 软链接可以跨文件系统配置 当源文件删除后,软链接失效 硬链接 链接文件和源文件的inode号相同 硬链接的目标不可以是目录 硬链接不可以跨文件系统配置 当源文件删除后,硬链接不失效 !!!!!!注意,删除软链接目录时,后面不要加/,rm -rf 软链接目录八、软件包管理
软件包的类型
软件的安装方式
8.1 软件包类型
软件包类型 .rpm # 查看当前系统中所有安装的软件包 rpm -qa # 安装过的包8.2 软件包安装方式
rpm 安装 rpm -ivh 包 # 安装 rpm -e 包 # 卸载 rpm -ql 包 # 列出所有安装的内容 rpm -qf 文件 # 查看某文件是哪个包安装的 rpm -qc 包 # 查看某个包都有哪些配置文件 yum 安装 yum install # 安装 yum reinstall # 重新安装 yum remove|erase # 卸载 yum clean all # 清空缓存 yum makecache # 创建新的缓存 yum repolist # 查看yum源信息 yum list # 查看源里面所有的包 yum provides # 查看某个命令是哪个包提供的 yum search # 在包的介绍中找关键字 yum history # 查看操作历史 yum history undo 编号 # 回滚 源码安装 三部曲 1检查 2编译 3安装 九、计划任务和日志
一次性计划任务和循环计划任务
日志服务和日志轮转
9.1 一次性计划任务
时间表达式有两种 1、具体的时间点 teatime noon midnight tommorrow 2022年的5月15日下午4点 at 4PM 2024-5-15 2、根据当前时间来定义的未来时间 at now +5minute at 4PM tommorrow 使用方法1 at 时间表达式 > 任务 > ctrl + d 结束 使用方法2 at 时间表达式 < 脚本任务 存放位置: /var/spool/at9.2 循环性计划任务
操作方法 crontab -l # 查看 crontab -e # 编辑 crontab -r # 删除 crontab -u # 指定用户,需要配合其他参数完成 表达式 * * * * * 任务 分 时 日 月 周 符号 * 每 / 隔 - 到 , 和 */2 3 10-15 3,5,8 * 存放位置 /var/spool/cron9.3 日志和日志轮转
日志服务 rsyslog /etc/rsyslog.conf 日志轮转服务 logrotate /etc/logrotate.d/ 对应修改某个日志的轮转文件十、web服务器
虚拟主机的维度 基于端口 基于域名 基于ip web服务器只能处理静态资源,动态资源需要后端进行处理十一、常用的配置文件
网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33 selinux配置文件 /etc/sysconfig/selinux 用户信息存放文件 /etc/passwd 本地解析文件 /etc/hosts 启动模块配置文件 /etc/grub2.cfg ftp配置文件 /etc/vsftpd/vsftpd.conf 挂载文件 /etc/fstab 开机执行文件 /etc/rc.d/rc.local yum仓库源存放位置 /etc/yum.repos.d yum配置文件 /etc/yum.conf 临时dns修改配置文件 /etc/resolv.conf 邮箱配置文件 /etc/mail.rc 系统级计划任务 /etc/crontab 日志轮转配置 /etc/logrotate.conf /etc/logrotate.d ssh配置文件 /etc/ssh/sshd_config 启动配置目录 /etc/systemd/system apache配置文件目录 /etc/httpd/conf/httpd.conf nginx配置文件目录 /etc/nginx/nginx.conf mysql配置文件 /etc/my.cnf 十二、常用端口
20 #FTP传输 21 #FTP连接 22 #SSH 23 # TELNET 终端网络 25 #SMTP 邮件 465 587 53 #DNS 67 #DHCP 服务端 68 #DHCP 客户端 80 #HTTP 110 #POP3 邮局协议版本3 123 #NTP 137 #NetBIOS 143 #IMAP 161 #SNMP 监听端口 162 #SNMP Trap端口 443 #HTTPS 3306 #mysql 9000 #php