RHCE第一周学习-RH124书籍总结
这几天在看600多页的红帽RH124培训书籍,想起其以前阅读的shell脚本编程书籍,算是复习一下,顺顺便补盲。现在将其中不熟悉、较少用的知识总结筛选记录出来,作为日后查阅复习。
1、localectl更改系统范围的区域设置。
2、wc可以统计多个文件,分别为行数、字数、字符数。
3、反斜杠 \ 可设置多行输入,提高可读性。
4、history命令中,!加开始的字符可以调用使用过的命令,ctrl + r在历史中搜索某一个模式的命令,esc + . 重用上一个命令的参数,!!重复上一条命令,!n调用第n个命令。
5、/tmp 10天删除,/var/tmp 30天删除。
6、rmdir仅仅删除空目录,mkdir -p创建缺失的父目录。
7、ln创建硬链接,ls -l可以查看链接数,ls -i可以查看文件的索引节点编号,每个硬连接指向存储设备上的同一数据。硬链接只能用于常规文件,且在同一文件系统上(df可以列出不同文件系统)。
8、ls -s创建软连接,软连接可以指向目录。原始文件删除后,软连接依然指向该文件,但是目标已经消失,创建一个同名文件后,会指向该文件。硬链接是将名称指向存储设备上的数据,软连接则是将名称指向另一个名称。、
9、模式匹配,*任意字符,?单个字符,[]匹配其中的某一个字符,{}生成里面的字符,可创建多个文件。
10、反斜杠可以防止参数被扩展,单引号阻止所以shell扩展。
11、man -k关键字标题和描述搜索,man -K执行全文本搜索,man的1(用户命令)、5(文件格式)、8(管理命令) 常用。man搜索不到需要mandb更新。pinfo也可查看更加详细的信息。
12、重定向stdin和stderr到file :> file 2>&1等于&>file ,>> file 2>&1等于&>> file 。很好识别,默认是1,先将1stdin重定向到文件,再将2stderr重定向到1stdin 。顺序很重要。
13、tee命令将标准输入复制到标准输出中,并将标准输出重定向到指定为命令参数的文件中。比如:ls | tee ./dfjg | more。
14、vim的可视模式,v选择字符,shift + V选择多行,ctrl +v 选择块。y复制,p粘贴。u撤销,x删除单个字符。
15、set、env列出所有的环境变量,unset取消环境变量,export -n取消但是不取消设置它。
16、id显示当前用户的信息,可以查看其他用户的信息,id + name。每个用户只有一个主要组,由/etc/passwd确定,可以有多个附加组,由/etc/group确定。
17、su -会带环境变量切换,su只是切换用户,还是使用原用户的环境。sudo操作会存在/var/log/secure日志中。sudo需要配置/etc/sudoers(visudo来编辑,或者在sudoers.d文件中新建),可以为用户或组添加提权,%代表组。sudo su - 与sudo -i时,环境变量不一样。
18、useradd添加新用户时会从/etc/login.defs、/etc/default/useradd读取,从/etc/skel中拷贝环境变量。userdel删除用户时,保留了主目录,新建用户拥有相同uid的话会继承它的文件。userdel -r删除用户目录。find / -nouser -o -nogroup 查无人拥有的文件或目录 。
19、echo 123456 | passwd --stdin 不用交互式设置密码。
20、groupdel修改组的属性,但是无法删除任何现有组的主要组,usermod -g可修改主要组,usermod -aG可添加附加组,usermod -G可修改附加组。
21、chage命令设置账户的到期时间,/etc/shadow密码字段有三条信息,salt字段可以保证密码相同时,加密后也不一样。date命令可以计算未来时间,date -d "+45 days" 。shell设置/sbin/nologin可不能交互式登陆。
22、chmod -R递归设置权限,who:u g o a 。chown更改文件的所有权, chown group:user file ,更改组以及用户所有权,组和用户之间使用冒号,chgrp也可以更改组所有权。
23、特殊权限 u+s(文件)以拥有文件的用户十分执行文件,g+s以拥有文件的组的身份执行文件(文件)或者新建文件是目录的组所有者(目录),o+t(目录)读写权限,但无法删除其他用户的文件。s识别特殊权限,如没有执行权限,则显示为大写S。
24、umask是以掩码来计算,目录默认777,文件默认666.
25、top命令的s列和ps命令的stat列显示每个进程的状态,ps -ef或者ps aux显示全部进程,风格不一样,ps不带参数显示此时终端关联的所有进程。pstree属树形显示。
26、ctrl + z可将前台进程发送到后台,fg %n可将后台转到前台,jobs显示作业列表,ps j显示作业相关信息。bg %n启动在后台已经暂停的进程。
27、kill默认是使用15编号的TERM, kill -l列出所有可用信号名称和编号,kill -9不可中断,killall根据名称中断多个进程,pklill根据名称中断进程,pkill -U 中断某个用户的所有进程。
28、w命令列出用户登陆和当前运行的进程。
29、内核每五秒钟收集一次当前的负载数,负载平均值(uptime、w、top)是1、 5 、15 分钟,lscpu得到系统由多少cpu,负载平均值除以cpu逻辑数,大于1表示资源饱和。
30、systemctl list-units --type=service 列出所有的激活状态的服务单元,加上--all列出所有服务单元,systemctl is-active network.service 判断是否运行,systemctl is-enabled sshd.service判断是否开机启动, systemctl --failed --type=service列出所有失败的服务。
31、systemctl reload重新加载配置文件,无需重新启动,区别于restart 。如不确定服务是否有重新加载配置文件的更改的功能,可使用reload-or-restart 。
32、systemctl list-dependencies sshd 列出依赖项, systemctl mask sendmail.service屏蔽服务防止与其他服务冲突,屏蔽操作会在配置目录中创建指向/dev/null的链接,该文件可阻止服务启动。systemctl list-unit-files可查看。unmask可取消。
33、服务器公钥的副本保存在known_hosts文件中,便于将来自动确认身份。stricthost keychecking可以设置是否第一次时需要验证。
34、ssh-keygen创建公钥和私钥,私钥权限和公钥权限必须为600和644。ssh-copy-id将公钥远程到目标系统。如果ssh私钥受密码保护 则可以使用ssh-agent临时将密码缓存在内存中。
35、sshd服务可以reload,不会像restart不会中断其他活动的ssh连接。
36、日志保存在/var/log中,systemd-journald和rsyslog处理syslog消息。大部分日志保存在messages中。rsyslog将syslog消息排序后写入重启后不保留的/var/log日志文件中。
37、rsyslog配置文件/etc/rsyslog.conf,logrotate轮转日志文件,调度每日运行一次logrotate程序,logger命令可以发送消息到rsyslog服务,默认为notice。
38、sysemd-journald服务将系统日志存储在带有索引的结构化二进制文件中,/run/log用于存储系统日志,在重启后清楚。journalctl检索系统日志。journalctl -n 5显示最后五条,journalctl -n 显示最后十条。journalctl -f实时输出最后十条。journalctl -p接收优先级的名称或编号。 journalctl --since 以及 journalctl --until输出限定时间段的日志。
39、journalctl -o verbose输出详细信息,里面的字段可以用来过滤日志,journalctl _SYSTEMD_UNIT=sshd.service 。
40、默认系统日志保存在/run/log/journal目录中,/etc/systemd/journald.conf中的参数Storage决定系统日志存储方式,persistent持久保持,volatile重启后不保存,auto是rsyslog决定使用持久还是易失性保存,run/log/journal存在则使用持久,否则易失性。auto为默认。即便是持久,并非所有数据都永久保留,有日志轮转机制。
41、timedatectl简要显示当前时间相关的系统设置, tzselect是交互方式识别准确的时区名称,但不会对时区设置更改,timedatectl set-timezone 更改系统时区, timedatectl set-timezone UTC , timedatectl set-time更改时间, timedatectl set-time启用或者禁用NTP。
42、chronyd服务通过与配置的NTP服务同步,chronyd服务使用NTP POOL PROJECT的服务器同步,不需要设置,但是孤立网络中需要更改NTP服务器 。 /etc/chrony.conf配置NTP服务器,修改后需要重启chronyd服务 。
43、chronyc 充当chronyd服务的客户端, chronyc sources验证与ntp服务器同步情况, chronyc sources -v可以显示额外说明,*表示作为当前时间源。
44、ipv6地址为128位,8组四个16进制半字节,多组连续零可以使用::来合并。如果有端口号,那么ipv6地址应该使用[]括起来 。ipv6地址使用标准的子网掩码/64,前一半为网络前缀,后一半为接口ID。通常分配48位的前缀,后16位用于子网,接口id全零。ping6的使用 。
45、ip link显示所有网络接口,ip addr show ens3查看单个网络接口, ip -s link show eth0显示统计信息,ip route显示路由信息,ip -6 route显示ipv6路由信息,traceroute或tracepath追踪路由,tracepath6与traceroute -6等于ipv6 。
46、ss 显示套接字统计信息,ss命令可以替换netstat。ss -lt
47、 nmcli device status(简写nmcli d s)显示网络设备状态, nmcli connection show显示连接eider列表, nmcli c s --active列出活动的连接。nmcli con add添加新的网络连接,nmcli con up name激活连接,nmcli dev disconnect device断开连接,且nmcli con down name不是最佳方法(配置了autoconnect,会立即激活连接)。
48、/etc/sysconfig/network-scripts里面是网络配置文件,nmcli con mod name会修改连接的设置,并会保存在连接配置文件中。nmcli con del name会删除连接以及配置文件。nmcli con reload在手动编辑配置文件后重新加载 ,但是接口依然需要重启(nmcli con up/down)才会失效 。
49、在RHEL 8/Centos 8上已废弃network.service(默认不安装),只能通过NetworkManager(NetworkManager.service)进行网络配置。
49、hostnamectl修改/etc/hostname文件,hostnamectl set-hostname ,hostnamectl status。
50、getent hosts hostname利用/etc/hosts文件测试主机名解析,如果没有条目则会检查/etc/resolv.conf配置文件。host hostname测试dns服务器连接。
51、tar命令,创建-c代表--create,解压-x代表--extract ,文件-f代表--file ,压缩-z代表--gzip。tar -cf归档,tar -xf解压(去除umask),tar -pxf保留权限解压。tar -cfz压缩归档,tar -xfz解压缩。
52、scp -r递归远程复制,sftp以以交互式上传下载文件,put上传,get 下载,mget 多个文件。 53、rsync仅同步差异部分,源目录加上尾斜杠后只复制目录中的内容而不是新建子目录,rsync -av --progress 可以显示进度条,可以替代cp查看进度。
54、rpm是低级工具,rpm -qa列出安装的软件包,rpm -qf查找提供文件的软件包,rpm -qc列出安装的软件包配置文件,rpm -i (rpm -ivh )安装本地的rmp包 。rpm -q检查是否安装包 。
55、rpm2cpio可将rpm包中的内容传递给cpio 程序,来提取所有文件或单个文件。rpm2cpio rmp_name | cpio -id 。
56、rmp包不能解决包依赖问题,yum可以。yum list列出软件,yum info 查看信息,yum provides pathname显示指定路径匹配的软件包 。yum update packetname更新软件包,yum remove 删除软件包 。 yum history查看安装和删除历史 。yum repolist all 列出存储库 。
57、 tmpfs和devtmpfs是内存中的文件系统,重启后消失。lsblk( lsblk -fp)列出指定块设备或使用可用设备的详细信息 。
58、图形桌面环境会自动挂载在/run/media/目录下,lsof列出打开的文件以及访问他们的进程。
59、locate从mlocate数据库中搜索,速度快,但是locate数据库每日自动跟新,只能找到上次数据库更新以来的文件,updatedb可用手动更新。find搜索整个文件系统来实时搜索。locate -i不区分大小写,locate -n指定数量 。
60、find格式,find /etc -name 'db' ,-iname 则忽略大小写。-user、-group、-uid、-gid搜索,-perm指定权限搜索,权限位8进制。-perm /644,斜杠代表匹配用户、组、其他中的至少一个,权限前面带-的表示要全部匹配 。-size代表大小搜索,-size 1M搜索大小为1m的文件(向上取整,也会显示小于1m的文件)。-size +10G、-size -10k。-type文件类型(d,f,l,b),
-mmin根据修改分钟数来搜索,-links查找硬链接数。