【SRE笔记 2022.8.16】
Xsell使用技巧补充
- 勾选此处,选择即复制。
- ctrl+insert:复制
- shift+insert:粘贴
centos 7 root密码重置
方法一
- 在系统登录选择界面使用方向键选择第二项,按e进入配置
- 找到下图标记点
- 修改为rw init=/sysroot/bin/sh
- 之后ctrl+x进入单用户模式输入如下命令
- chroot /sysroot
- passwd root
- 修改密码
- 创建标签文件
- exit退出
- 重启系统
- 之后输入修改后的密码,可正常登录系统。
方法二
- 和方法一类似,同样是调整内核参数,添加rd.break,如下图
- 使用Ctrl+X组合键进入当用户模式,如下图
- 输入命令
- mount -o remount,rw /sysroot(注意有空格)
- chroot /sysroot
- passwd root
- 修改密码
- touch /.autorelabel
- exit
- 重启后可输入修改后的密码登录系统。
numtui配置网络
- 如果添加的网卡没有在可视化界面显示出来,可以手动添加
- 之后和手动配置IP一样的操作
Bash
bash命令行图解
命令行提示符
- #号提示符代表超级管理员,$为非超管用户。
- ~(波浪线)代表用户的家目录
控制变量
- Linux命令提示符由PS1环境变量控制,PS1是Prompt String 1的缩写,它是Linux/Unix下的用于控制提示信息的环境变量,PS1是交互式的shell用于控制用户输入提示信息的环境变量,类似的还有PS2、PS3和PS4。
[root@aaa~]# echo $PS1
[\u@\h \W]\$
PS环境变量具体参数
- \d 代表日期,格式为weekday month date,例如:“Mon Aug 1”
- \H 完整的主机名称。例如:我的机器名称为:fc4.aaa,则这个名称就是fc4.aaa
- \h 仅取主机的第一个名字,如上例,则为fc4,.aaa则被省略
- \t 显示时间为24小时格式,如:HH:MM:SS
- \T 显示时间为12小时格式
- \A 显示时间为24小时格式:HH:MM
- \u 当前用户的账号名称
- \v BASH的版本信息
- \w 完整的工作目录名称。家目录会以 ~代替
- \W 利用basename取得工作目录名称,所以只会列出最后一个目录
- # 下达的第几个命令
- $ 提示字符,如果是root时,提示符为:# ,普通用户则为:$
- [ 字符"["
- ] 字符"]"
- ! 命令行动态统计历史命令次数
PS1-PS4说明
bash命令行操作快捷键
- ctrl+a:在命令行开头
- ctrl+e:到结尾
- ctrl+u:删除光标前内容,
- ctrl+k:删除光标后内容
- ctrl+d:退出当前会话(logout)
- ctrl+l:清屏
- ctlr+s::锁屏
- ctrl+q:解锁屏
- ctrl+z:暂停正在执行的程序
- esc+.:调出上一个命令最后一个空格后的内容
- ctrl+左右方向键:以单词为单位向左或右移动。
bash 语法
- 命令 【选项】 【路径/文件/目录】
[root@aaa ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo
linux常见命令
bash内置命令
- bash软件里自带的命令,在系统里没有对应的使用手册文件,
- alias, bg, bind, break, builtin, caller, cd, command, compgen, complete, compopt, continue, declare, dirs, disown, echo,enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help, history, jobs, kill, let, local, logout, mapfile, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait。
帮助命令
- 查看帮助 man + 命令
- help + 内置命令
- 查看帮助:命令 --help
查询历史命令 history
- history -d 指定序号删除某些命令,histtory -d 10 删除第10行。
- history -c 清空所有命令
- !(英文状态)sys:执行最近的以sys卡头的命令,
- !!(英文状态)或者方向键上:上一个命令。
- ctrl+r:搜索想要执行的命令(命令历史中)。
The remote SSH server rejected X11 forwarding request.
Last login: Tue Aug 16 16:55:13 2022 from 10.0.0.1
(reverse-i-search)`l': ls
关机重启命令
- shutdown 关闭重启
- -r 重启
- -r now 立刻重启
- -r +1 1分钟后重启
- h 关机 halt
- -h +1
- -h now
- reboot 重启
- init 切换运行级别
- inti 0 关机
- init 6 重启
- halt 关机
- poweroff 关机
- logout 注销
- exit(ctrl+d)退出
- systemctl reboot 重启
- systemctl poweroff 关闭系统并切断电源
- systemctl halt 关闭系统CPU停止工作
which:可查看程序路径
pwd命令
- 查询当前路径
cd命令
- cd .切换到当前目录。
- cd…切换到当前目录的上级目录。
- 切换到家目录
- cd ~或者cd 啥都不加
- cd -上一次所在的目录
ls命令
- -a 显示所有文件(包含隐藏文件,以.开头的文件)
- -d 显示目录本身
- -t 按时间排序
[root@aaa ~]# ll -d a
drwxr-xr-x. 3 root root 15 Aug 16 19:09 a
mkdir命令
- 数字序列,{1…20}
[root@aaa ~]# echo {1..20}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
- 批量创建多个目录
[root@oaaa ~]# mkdir a{1..12}
[root@aaa ~]# ll
total 4
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a1
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a10
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a11
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a12
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a2
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a3
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a4
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a5
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a6
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a7
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a8
drwxr-xr-x. 2 root root 6 Aug 16 19:06 a9
-rw-------. 1 root root 1470 Aug 14 18:14 anaconda-ks.cfg
- 递归创建 mkdir -p a/b/c/d/e
tree命令
- 以树形结构显示内容
- -L+层数 :-L 1 1层
- -d:只显示目录
[root@aaa b]# tree /root/
/root/
├── a
│ └── b
│ └── c
│ └── d
│ └── e
│ └── f
│ └── g
├── a1
├── a10
├── a11
├── a12
├── a2
...
Linux的目录结构
windows目录扩展
- windows 查看目录结构:
tree /F
- Linux的目录显示是正斜线,windows是反斜线
- 1 Linux系统的目录结构是一个有层次的倒立的树状目录结构,根是所有目录的起始点,一切从根开始。
- 2 不同目录下的数据可跨越不同的磁盘分区或不同的磁盘设备,设备可以随意挂载到任意目录上使用。设备和目录是分离的。
- 3 所有的目录都是按照一定的类别有规律地组织和命名的。
- 4 挂载点是磁盘访问的入口,是一个目录。磁盘等设备需要挂载后才能正常使用。
- 5 绝对路径是指以根为起始点的路径,例如/tmp、/root;
- 相对路径是指相对于非“/”路径的路径,既路径开头没有“/”斜线,例如etc/sysconfig、opt/tmp等。
根一级目录
[root@aaa /]# tree -L 1
.
├── bin -> usr/bin #/bin = /usr/bin 普通用户二进制命令目录,权限低。,可通过ls /bin 查看该目录命令合集
├── boot #内核及引导程序所在目录,通过du -sh /boot查询的结果为163M。系统版本为centos7.9。
├── dev #设备目录(磁盘、光驱)
├── etc #系统基础服务配置文件所在目录(yum、rpm安装的软件)
├── home #普通用户的家目录
├── lib -> usr/lib #32位库文件所在目录(接口,调用)
├── lib64 -> usr/lib64 #64位库文件所在目录(接口,调用)
├── media #媒体、光驱等挂载点
├── mnt #临时的挂载目录(如U盘、移动硬盘)
├── opt #第三方程序目录
├── proc #虚拟的文件系统、内核和进程信息的目录。
├── root #超管的家目录
├── run #可忽略,不重要
├── sbin -> usr/sbin #/sbin = /usr/sbin 管理员使用的二进制命令目录,权限高。
├── srv #可忽略,不重要
├── sys #虚拟的文件系统
├── tmp #整个系统的临时目录,所有用户都可进入该目录进行各种操作(网络攻击跳板目录,可以监控)
├── usr #类似windows的 c:/prgram file 应用程序所在目录
└── var #数据变化目录,日志文件存放目录。
19 directories, 0 files
- boot 文件下内容,包含标红的内核部分
- 参考网址
https://www.pathname.com/fhs/pub/fhs-2.3.html
配置文件
1 网卡的配置文件
- /etc/sysconfig/network-scripts/ifcfg-eth0
2 DNS客户端配置文件
- 也可在这里配置dns,当然网卡配置DNS优先。
- /etc/resolv.conf
[root@oaaa ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 10.0.0.254 #因为是DDCP,出口为网关地址
3 主机名配置文件
- /etc/hostname
查询主机名命令
uname -n
hostname
修改主机名
- ①图形化nmtui
- ②hostnamectl set-hostname 主机名
- ③vi /etc/hostname
4 系统本地的DNS解析文件:/etc/hosts
5 配置开机设备自动挂载的文件:/etc/fstab
- 将光盘临时挂载(重启失效)到mnt目录,mount /dev/cdrom /mnt
- 第1列为设备名称或者UUID或者磁盘标签,可以通过blkid查看设备uuid。
- 第2列为设备的挂载点,既访问设备的入口。
- 第3列为设备的文件系统类型。可通过man mount查看。
- 第4列为挂载的属性,可通过man mount查看。
- 第5列为是否进行备份。
- 第6列是否开机时做磁盘检查,0为不做检查,1、2为检查。
- 挂载光驱的格式是iso9660,对应上图的xfs、swap列。
6 存放开机自启程序命令的文件(类似windows的msconfig)
- /etc/rc.local 该文件软链接到/etc/rc.d/rc.local。
[root@aaa etc]# ll rc.local
lrwxrwxrwx. 1 root root 13 Aug 16 00:55 rc.local -> rc.d/rc.local
7 配置在用户登录终端前显示信息的文件
- /etc/issue。
- 如下图
[oldboy@aaa root]$ cat /etc/issue
\S
Kernel \r on an \m
8 配置用户登录后执行的脚本所在目录
/etc/profile.d