mikuQ / miku

miku
GNU General Public License v3.0
2 stars 1 forks source link

Linux-百科 #59

Open mikuQ opened 3 months ago

mikuQ commented 3 months ago

@卸载红帽订阅dnf remove -y subscription-manager *使用dnf时总是弹出烦人的红帽订阅提示/卸载红帽订阅后解决。

[root@RedHat yum.repos.d]# dnf makecache
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

[root@RedHat yum.repos.d]# dnf remove -y subscription-manager
移除完毕!
[root@RedHat yum.repos.d]# dnf provides subscription-manager
上次元数据过期检查:0:12:19 前,执行于 2024年08月23日 星期五 17时20分21秒。
mikuQ commented 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
mikuQ commented 3 months ago

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]#
mikuQ commented 3 months ago
[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 ~]#
mikuQ commented 3 months ago

@重置root密码:https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/9/html/configuring_basic_system_settings/changing-and-resetting-the-root-password-from-the-command-line_managing-users-and-groups#resetting-the-forgotten-root-password-on-boot_changing-and-resetting-the-root-password-from-the-command-line

mikuQ commented 3 months ago

@/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
mikuQ commented 3 months ago

@在命令行中使用cat往文本文件中写入一段文本

cat << EOF >> existing_file.txt
追加的第一行文本
追加的第二行文本
EOF
mikuQ commented 3 months ago

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 条件句 单分支 双分支 多分支

mikuQ commented 3 months ago

ansible基础 自动化运维工具ansible 在中心服务器配置ansible inventory 主机清单|受管主机列表 1管5 5台受管主机进都不用进

ssh root@ 进入控制节点
yum
mikuQ commented 3 months ago

@Linux系统下的一些“规范” ●大小写敏感|严格区分大小写 ●命令与参数之间至少有一个空格 ●长格式参数不一定都规范(特例find -name的长格式参数只写一个-|tar cxvf可以不用写-) ●Ctrl+C结束当前进程 ●用Tab键补齐命令|参数|若不唯一敲两次回车显示所有命令 ●“FHS文件系统层次化标准”仅仅是一个行业规范性约束|您可以不遵守|您可以把文件乱放 ●root具有最高权限UID=0|无视普通权限|特殊权限|facl|能够格式化整个系统“/”

mikuQ commented 3 months ago

Linux常见目录 / #根 /etc/fstab #永久挂载文件 /root #root用户家目录 /home #普通用户家目录 /media /mnt /run #用于挂载的目录 /dev #设备目录 etc/ssh/sshd_config #SSH全局配置参数 /var/log #日志

mikuQ commented 3 months ago

@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
mikuQ commented 3 months ago

@新手命令

系统命令

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=参数值”
mikuQ commented 3 months ago

@常用快捷键+命令 快捷键 Ctrl+C键:终止进程 Ctrl+L键:清屏 Ctrl+D键:退出

常用命令 clear ●清屏 ls -ld /etc ●单单只想要查看etc目录属性信息,则需要额外添加一个-d参数。

cd命令 cd / ●进入根目录 cd ~ ●进入家目录 cd ●进入家目录 cd .. ●进入上一层目录 cd - ●返回上一次所处目录

mikuQ commented 3 months ago

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 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)

mikuQ commented 3 months ago

syslog

mikuQ commented 3 months ago
firewall-cmd --runtime-to-permanent
systemctl enable --now sshd
mikuQ commented 3 months ago

firewall-cmd --permanent --zone=public --add-service=ssh #永久添加/当前不生效 firewall-cmd --reload #重新加载

firewall-cmd --zone=public --add-service=ssh #立即生效 firewall-cmd --runtime-to-permanent #转换成永久配置

mikuQ commented 3 months ago

临时修改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
mikuQ commented 3 months ago
nmcli -f connection
nmcli -f NAME,FILENAME connection
mikuQ commented 3 months ago

查看硬件 lscpu lsmem lspci

mikuQ commented 3 months ago

系统信息 进程管理 日志排错 ps aux top iostat pidstat lsof kill kill all journalctl -k | grep -i "error" dmesg sar

mikuQ commented 2 months ago

命令补齐

dnf install bash-completion
apt install bash-completion
mikuQ commented 2 months ago

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/