Open mikuQ opened 3 months ago
EPEL_fedora/RHEL_rocky
[root@RedHat yum.repos.d]# ls -l
总用量 8
-rw-r--r-- 1 root root 112 8月 23 17:17 EPEL_fedora.repo
-rw-r--r-- 1 root root 238 8月 23 17:37 RHEL_rocky.repo
[root@RedHat yum.repos.d]# dnf makecache
EPEL_fedora 716 B/s | 4.3 kB 00:06
BaseOS_rocky 83 kB/s | 2.3 MB 00:27
AppStream_rocky 232 kB/s | 8.0 MB 00:35
元数据缓存已建立。
[root@RedHat yum.repos.d]# dnf list | wc -l
29477
EPEL_aliyun/RHEL_aliyun
[root@RedHat yum.repos.d]# ls -l
总用量 8
-rw-r--r-- 1 root root 106 8月 23 17:44 EPEL_aliyun.repo
-rw-r--r-- 1 root root 244 8月 23 17:47 RHEL_aliyun.repo
[root@RedHat yum.repos.d]# dnf makecache
EPEL_aliyun 824 B/s | 4.3 kB 00:05
BaseOS_aliyun 182 kB/s | 2.3 MB 00:12
AppStream_aliyun 472 kB/s | 8.0 MB 00:17
上次元数据过期检查:0:00:01 前,执行于 2024年08月23日 星期五 17时48分36秒。
元数据缓存已建立。
[root@RedHat yum.repos.d]# dnf list | wc -l
29477
[root@RedHat yum.repos.d]# dnf repolist all
仓库 id 仓库名称 状态
AppStream AppStream_aliyun 启用
BaseOS BaseOS_aliyun 启用
EPEL EPEL_aliyun 启用
[root@RedHat yum.repos.d]#
[root@RedHat ~]# fastfetch
.MMM..:MMMMMMM root@RedHat
MMMMMMMMMMMMMMMMMM -----------
MMMMMMMMMMMMMMMMMMMM. OS: Red Hat Enterprise Linux 9.2 x86_64
MMMMMMMMMMMMMMMMMMMMMM Host: VMware Virtual Platform
,MMMMMMMMMMMMMMMMMMMMMM: Kernel: Linux 5.14.0-284.11.1.el9_2.x86_64
MMMMMMMMMMMMMMMMMMMMMMMM Uptime: 5 hours, 45 mins
.MMMM' MMMMMMMMMMMMMMMMMMMMMM Packages: 396 (rpm)
MMMMMM `MMMMMMMMMMMMMMMMMMMM. Shell: bash 5.1.8
MMMMMMMM MMMMMMMMMMMMMMMMMM . Display (Virtual-1): 800x600 @ 60 Hz
MMMMMMMMM. `MMMMMMMMMMMMM' MM. Terminal: /dev/pts/0
MMMMMMMMMMM. MMMM CPU: 12th Gen Intel(R) Core(TM) i7-12700H (4) @ 2.69 GHz
`MMMMMMMMMMMMM. ,MMMMM. GPU: VMware SVGA II Adapter
`MMMMMMMMMMMMMMMMM. ,MMMMMMMM. Memory: 540.61 MiB / 3.80 GiB (14%)
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM Swap: Disabled
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: Disk (/): 2.12 GiB / 59.97 GiB (4%) - xfs
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM Disk (/media/repos): 8.94 GiB / 8.94 GiB (100%) - iso9660 [Rea]
`MMMMMMMMMMMMMMMMMMMMMMMM: Local IP (ens192): 192.168.158.18/24
``MMMMMMMMMMMMMMMMM' Locale: zh_CN.UTF-8
[root@RedHat ~]#
@/dev/mapper机制 /dev/mapper下面的逻辑卷设备只是符号链接,真实的设备文件为/dev/下的dm设备。 这里有段英文:when udev support is enabled in LVM, the /dev/mapper/ isa symlink to /dev/dm-X (this was chosen to comply with udev requirements)https://listman.redhat.com/archives/linux-lvm/2010-July/msg00027.html
[root@ht8 sd_mod]# ll /dev/mapper
total 0
lrwxrwxrwx 1 root root 7 Jan 5 19:39 centos-root -> ../dm-0
lrwxrwxrwx 1 root root 7 Jan 5 19:39 centos-swap -> ../dm-1
@在命令行中使用cat往文本文件中写入一段文本
cat << EOF >> existing_file.txt
追加的第一行文本
追加的第二行文本
EOF
Shell脚本基础
shell脚本三要素 *一般以.sh结尾|行业规范 脚本声明 #!/bin/bash 脚本注释 #功能描述 脚本命令 reboot
简单脚本 vim miku.sh
#!/bin/bash
#初音未来
#注释可以多行/只能一行一行注释
pwd
ls -l
:wq! ./miku.sh
Shell脚本内置变量
echo $0 脚本名称本身
echo $# 接收参数总个数
echo $* 参数分别列出来
echo $1,$2,$3某一个参数值
判断 判断[是/否]关注对结果的要求/只有真/假两种结果 echo $? 结果为0就是真 echo $? 结果为非0就是真/取反后为真
[ -f /etc/fstab ] #是否是一个一般文件(文本/二进制程序/压缩包/图片/音频/视频) [ -d /etc ] #判断一个文件是否为目录 [ -r /etc/fstab ] #判断读权限 [ -e /etc/fstab ] #判断文件/目录是否存在
逻辑连接符
&& 逻辑与 若成功则执行
|| 逻辑或 若失败则执行
! 逻辑非 取反
命令A && 命令B || 命令C 若A成功则执行B若A失败则执行C
[ -e /etc/fstab ] && echo OK
[ `free -m | grep Mem: | awk '{print $4}'` -lt 1024 ] && echo "BUZU" || echo "ChongZu" 呵呵哒
运算符 5 -lt 8 5是否小于8 5 -gt 8 5是否大于8 8 -eq 8 8是否等于8
语句结果提取 $(命令) 等于``
if 条件句 单分支 双分支 多分支
ansible基础 自动化运维工具ansible 在中心服务器配置ansible inventory 主机清单|受管主机列表 1管5 5台受管主机进都不用进
ssh root@ 进入控制节点
yum
@Linux系统下的一些“规范” ●大小写敏感|严格区分大小写 ●命令与参数之间至少有一个空格 ●长格式参数不一定都规范(特例find -name的长格式参数只写一个-|tar cxvf可以不用写-) ●Ctrl+C结束当前进程 ●用Tab键补齐命令|参数|若不唯一敲两次回车显示所有命令 ●“FHS文件系统层次化标准”仅仅是一个行业规范性约束|您可以不遵守|您可以把文件乱放 ●root具有最高权限UID=0|无视普通权限|特殊权限|facl|能够格式化整个系统“/”
Linux常见目录
/
#根
/etc/fstab
#永久挂载文件
/root
#root用户家目录
/home
#普通用户家目录
/media
/mnt
/run
#用于挂载的目录
/dev
#设备目录
etc/ssh/sshd_config
#SSH全局配置参数
/var/log
#日志
@Linux 权限&分区基础
一般权限针对一类用户 超级用户不受一般权限控制
su - miku #-完整的的身份变更|所有环境变量同步切换 su - root #输密码
需要掌握的目录 /root #管理员的家目录 /dev /etc /home #普通用户家目录 /media /mnt /run #一个类型挂载目录看习惯用哪个 / #根目录
路径 绝对路径 #任何目录下都可以切换过去 相对路径 #只能进入当前目录下已有的目录
udev服务 hda #IED设备 sda #SATA|SCSI|abcd是被识别的顺序 sda1 #分区编码|主分区1-4 逻辑分区5-开始
分区格式 EXT2 rhel4 EXT3 rhel5 EXT4 rhel6 XFS rhel7 XFS rhel8 XFS rhel9 #XFS支持18EB
inode--->block inode指向block|存放文件名|属性 block实际文件存放位置
mount 设备(分区) 目录(挂载点) umount 设备/目录
/etc/fstab 设备 目录 分区格式 权限 0 0 #第一个0是否备份 第二个0是否自检
格式化硬盘
ls -l /dev/sd*
fdisk /dev/sdb
n
p
1
+2G
p
w
mkfs.xfs /dev/sdb1
partprobe
lsblk
fdisk -l
挂载
mount /dev/sdb1 /miku
df -h
vim /etc/fstab
/dev/sdb1 /miku xfs defaults 0 0
MBR分区表 扩展分区也占用一个主分区号,但是不能直接使用,要在上面建立逻辑分区才能使用。 主分区/扩展分区共享分区号1-4 逻辑分区从5开始 主分区/逻辑分区直接分区挂载使用 *扩展分区不能直接格式化使用/只是一个指针
SWAP
mkswap /dev/sdb5
swapon /dev/sdb5
vim /etc/fstab
/dev/sdb5 swap swap defaults 0 0
@新手命令
系统命令
reboot命令★用于重启系统,输入后回车执行即可
poweroff命令★用于关闭系统,输入后回车执行即可
echo命令★用于在终端设备上输出字符串或变量提取后的值,语法格式为:“echo [字符串] [$变量]”
date命令★用于显示或设置系统的时间与日期,语法格式为:“ date [+指定的格式]”
wget命令★用于在终端命令行里下载网络文件,英文全称为:“web get”,语法格式为:“wget [参数] 网址”
ps命令★用于查看系统中的进程状态,英文全称为:“processes”,语法格式为:“ps [参数]”
top命令★用于动态地监视进程活动及系统负载等信息,输入后回车执行即可
pidof命令★用于查询某个指定服务进程的PID号码值,语法格式为:“pidof [参数] 服务名称”
kill命令★用于终止某个指定PID值的服务进程,语法格式为:“kill [参数] 进程的PID”
killall命令★用于终止某个指定名称的服务所对应的全部进程,语法格式为:“killall [参数] 服务名称”
timedatectl命令★用于设置系统的时间,英文全称为:“time date control”,语法格式为:“ timedatectl [参数]”
pstree命令★用于以树状图的形式展示进程之间的关系,英文全称为:“process tree”,输入后回车执行即可
nice命令★用于调整进程的优先级,语法格式为:“nice 优先级数字 服务名称”
状态检测
ifconfig命令★用于获取网卡配置与网络状态等信息,英文全称为:“interface config”,语法格式为:“ifconfig [参数] [网络设备]”
uname命令★用于查看系统内核版本与系统架构等信息,英文全称为:“Unix name”,语法格式为:“uname [-a]”
uptime命令★用于查看系统的负载信息,输入后回车执行即可
free命令★用于显示当前系统中内存的使用量信息,语法格式为:“free [-h]”
who命令★用于查看当前登入主机的用户终端信息,输入后回车执行即可
last命令★用于调取主机的被访记录,输入后回车执行即可
ping命令★用于测试主机之间的网络连通性,语法格式为:“ping [参数] 主机地址”
tracepath命令★用于显示数据包达到目的主机途中所经过的路由信息,语法格式为:“tracepath [参数] 域名”
netstat命令★用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为:“network status”,语法格式为:“netstat [参数]”
history命令★用于显示执行过的命令历史,语法格式为:“history [-c]”
★★★冷命令★★★
sosreport命令★用于收集系统配置及架构信息并输出诊断文档,输入后回车执行即可
文件
cd命令★用于切换当前的工作路径,英文全称为:“change directory”,语法格式为:“cd [参数] [目录]”
ls命令★用于显示目录中的文件信息,英文全称为:“list”,语法格式为:“ls [参数] [文件名称]”
pwd命令★用于显示用户当前所处的工作目录,英文全称为:“print working directory”,输入后回车执行即可
find命令★用于按照指定条件来查找文件所对应的位置,语法格式为:“find [查找范围] 寻找条件”
locate命令★用于按照名称快速搜索文件所对应的位置,语法格式为:“locate 文件名称”
whereis命令★用于按照名称快速搜索二进制程序(命令)、源代码以及帮助手册文件所对应的位置,语法格式为:“whereis 命令名称”
which命令★用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为:“which 命令名称”
★★★冷命令★★★
tree命令★用于以树状图的形式列出目录内容及结构,输入后回车执行即可
文本阅读
cat命令★用于查看纯文本文件(内容较少的),英文全称为:“concatenate”,语法格式为:“cat [参数] 文件名称”
more命令★用于查看纯文本文件(内容较多的),语法格式为:“more [参数] 文件名称”
stat命令★用于查看文件的具体存储细节和时间等信息,英文全称为:“status”,语法格式为:“stat 文件名称”
grep命令★用于按行提取文本内容,语法格式为:“grep [参数] 文件名称”
cut命令★用于按列提取文本内容,语法格式为:“cut [参数] 文件名称”
wc命令★用于统计指定文本文件的行数、字数或字节数,英文全称为:“word counts”,语法格式为:“wc [参数] 文件名称”
head命令★用于查看纯文本文件的前N行,语法格式为:“head [参数] 文件名称”
tail命令★用于查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为:“tail [参数] 文件名称”
diff命令★用于比较多个文件之间内容的差异,英文全称为:“different”,语法格式为:“diff [参数] 文件名称A 文件名称B”
tr命令★用于替换文本内容中的字符,英文全称为:“translate”,语法格式为:“tr [原始字符] [目标字符]”
uniq命令★用于去除文本中连续的重复行,英文全称为:“unique”,语法格式为:“uniq [参数] 文件名称”
sort命令★用于对文本内容进行再排序,语法格式为:“sort [参数] 文件名称”
文件/目录管理
touch命令★用于创建空白文件或设置文件的时间,语法格式为:“touch [参数] 文件名称”
mkdir命令★用于创建空白的目录,英文全称为:“make directory”,语法格式为:“mkdir [参数] 目录名称”
cp命令★用于复制文件或目录,英文全称为:“copy”,语法格式为:“cp [参数] 源文件名称 目标文件名称”
mv命令★用于剪切或重命名文件,英文全称为:“move”,语法格式为:“mv [参数] 源文件名称 目标文件名称”
rm命令★用于删除文件或目录,英文全称为:“remove”,语法格式为:“rm [参数] 文件名称”
tar命令★用于对文件进行打包压缩或解压,语法格式为:“tar 参数 文件名称”
file命令★用于查看文件的类型,语法格式为:“file 文件名称
dd命令★用于按照指定大小的数据块个数来复制文件或转换文件,语法格式为:“dd if=参数值 of=参数值 count=参数值 bs=参数值”
@常用快捷键+命令 快捷键 Ctrl+C键:终止进程 Ctrl+L键:清屏 Ctrl+D键:退出
常用命令 clear ●清屏 ls -ld /etc ●单单只想要查看etc目录属性信息,则需要额外添加一个-d参数。
cd命令 cd / ●进入根目录 cd ~ ●进入家目录 cd ●进入家目录 cd .. ●进入上一层目录 cd - ●返回上一次所处目录
tar&find&whereis
stat
access atime 访问时间#文件内容最后被阅读的时间
modify mtime 修改时间#文件内容最后被修改的时间
change ctime 更改时间#文件属性最后被修改时间(属主|属组|一般权限|特殊权限|隐藏权限|facl)
tar czvf 压缩包名称.tar.gz 要压缩的目录名称 tar xzvf 压缩包名称.tar.gz #解压到当前目录
whereis 命令 #命令位置+手册 which 命令 #单纯命令位置 locate #需要配合updatedb命令使用|这个命令查找的是数据库/var/lib/mlocate/mlocte.db
find 特殊情况长格式命令只写一个-|命令速度慢因为是实时搜索 find -name /路径 #按照关键字查找文件 find -user /路径 #按用户归属查找文件
--type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
syslog
/var/log
日志目录/var/log/messages
#除以下外的所有日志/var/log/secure
#安全日志/var/log/maillog
#邮件日志/var/log/cron
#定期任务日志/var/log/boot.log
#启动日志firewall-cmd --runtime-to-permanent
systemctl enable --now sshd
firewall-cmd --permanent --zone=public --add-service=ssh #永久添加/当前不生效 firewall-cmd --reload #重新加载
firewall-cmd --zone=public --add-service=ssh #立即生效 firewall-cmd --runtime-to-permanent #转换成永久配置
临时修改Linux路由优先级
[root@RedHat ~]# ip route show
default via 192.168.174.1 dev ens160 metric 100
default via 192.168.158.254 dev ens192 metric 101
[root@RedHat ~]# ip route change default via 192.168.174.1 metric 101
[root@RedHat ~]# ip route change default via 192.168.158.254 metric 100
[root@RedHat ~]# ip route show
default via 192.168.158.254 dev ens192 metric 100
default via 192.168.174.1 dev ens160 metric 101
nmcli -f connection
nmcli -f NAME,FILENAME connection
查看硬件 lscpu lsmem lspci
系统信息 进程管理 日志排错 ps aux top iostat pidstat lsof kill kill all journalctl -k | grep -i "error" dmesg sar
命令补齐
dnf install bash-completion
apt install bash-completion
ubuntu开启root用户
sudo passwd root
su - root
ubuntu开启SSH登录
apt install -y ssh
systemctl enable ssh
systemctl start ssh
systemctl status ssh
网卡文件目录
nmcli -f NAME,FILENAME connection
/run/NetworkManager/system-connections/
@卸载红帽订阅
dnf remove -y subscription-manager
*使用dnf时总是弹出烦人的红帽订阅提示/卸载红帽订阅后解决。