第一篇 基本配置
第1章 安装RHEL8
第一章内容主要是如何使用VMware安装RHEL8,笔者在以前的文章中进行过整理,可参考:
三种网络模式:https://blog.csdn.net/u010230019/article/details/126759779
其他的设置可以选用默认,或者参考其他网络文章
第2章 基本命令的使用
2.1 终端设置
关于终端切换,这里需要注意,默认终端切换按【ctrl + alt + Fn】(n=1~
6),默认提供6个控制台,第1,2个控制台为图形界面,第3~
6为字符界面(命令行),另外默认按键可能和VMware冲突,所以需要设置下VMware的按键。
tty
dev/tty3
不过笔者一般都是用MobaXterm通过ssh远程服务器或虚拟机
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty),pts(pseudo-terminal slave)是pty的实现方法
2.2 输入命令的语法
命令的格式:
命令 参数
命令 -选项 参数
这里只介绍命令的格式,因为linux的命令实在太多太多了
2.3 介绍shell
linux自带的shell有很多种,例如
[root@server ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/usr/bin/tmux
/bin/tmux
/usr/bin/zsh
/bin/zsh
默认用户的shell
[root@server ~]# cat /etc/passwd|grep yurq|awk -F: '{print $7}'
/bin/bash
tab键能够自动补齐命令,前提命令存在
history能够查看历史命令,即使用过的命令,详细可以参考笔者前面的文章
调整命令中光标的位置:
- 【Ctrl + A】或【Home】把光标调到行首
- 【Ctrl + E】或【End】把光标调到行尾
- 【Ctrl + u】删除光标到行首内容,不包括光标位置字母
- 【Ctrl + K】删除光标到行尾内容,包括光标位置字母
2.4 用户切换
su user
su - user
带不带-
差别在与切换用户之后的环境变量不一样,带-
切换后,为user的环境变量,而不带则为切换前用户的环境变量
sudo -i
切换到root用户,并且为root的环境变量
第3章 了解linux分区及常用命令
linux的文件系统像一个倒装树,详细可参考
CHAPTER 1 Linux Filesystem Management https://blog.csdn.net/u010230019/article/details/129358051
CHAPTER 2 目录及文件 https://blog.csdn.net/u010230019/article/details/129364611
3.1 路径
.
表示当前目录
..
表示上一层目录
另外一定要搞懂绝对路径和相对路径
https://blog.csdn.net/u010230019/article/details/132158986
3.2 创建和删除目录
创建目录
mkdir [-p] path
带不带-p
意义在于是否可以嵌套创建目录
删除目录
rmdir
不过只能删除空目录,基本没人用了,大家都用
rm -rf path
-r 递归
-f 强制
不过这个命令还是挺危险的,很多公司不允许使用
3.3 cd
切换目录
cd path #进入path
cd ~ #回到自己的家目录
cd ~user #能够直接进入user用户家目录
cd - #回到前一次所在目录
cd .. #切换到上一层目录
cd / #切换到根目录
3.4 拷贝和剪切
拷贝
cp [-r] /src /dest
-r 递归
拷贝还有很多参数,例如修改atime,创建软硬链接等等,详细参考
https://blog.csdn.net/u010230019/article/details/132158986
剪切
mv [-fui] /src /dest
linux里也叫移动(move),如果同一目录内进行剪切,那就是重命名
3.5 常见命令归纳
file
查看文件类型
file [-b] /path/file
wc
统计文件行数,单词数和字符数
wc -l /path/file
wc -w /path/file
wc -c /path/file
touch
创建文件或修改文件的atime,ctime,mtime
touch /path/file
详细参考 https://blog.csdn.net/u010230019/article/details/132163514
通过stat可以查看文件状态
[root@server ~]# stat 123
File: 123
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 52007051 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2023-10-17 00:38:52.421169099 +0800
Modify: 2023-10-17 00:38:52.421169099 +0800
Change: 2023-10-17 00:38:52.421169099 +0800
Birth: 2023-10-17 00:38:24.431167489 +0800
通过ls -l
可以看到touch后的已存在的文件的mtime会发生变化
ln
ln用于创建软硬连接
ln [-s] 源文件 链接
带-s
创建的为软链接,不带则创建的为硬链接,关于软硬链接
alias/unalias
alias用于创建命令别名
alias 别名='命令’
unalias 取消别名
cat/tac/nl
cat能够查看文件内容
cat [-An] /file
-A 显示全部内容,包括换行符,制表符等
-n 显示行号
nl 也能查看文件,并且自带行号
tac反向查看文件
more/less
more/less能够翻页查看文件,值得一提的是,man命令默认就是使用less查看
head/tail
head/tail 查看文件头/尾 N行
head -N /file 或 head -n N /file
tail -N /file 或 tail -n N /file
N代表数字
ls
显示文件或目录列表
ls [-aAlrt]
-a 不隐藏以.开头的项目
-A 列出除.和..的任何项目
-t 按时间排序
-l 显示详细信息
-r 倒序
date
显示时间
date [选项] [+格式]
这里的常用格式,包括
%Y 年
%F 年-月-日
%R 时:分
%T 时:分:秒
[root@server ~]# date "+%F %T"
2023-10-17 01:36:59
设置时间
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
设置时间2012-12-21 10:00:08
date 122110002012.08
hwclock
同步时间
hwclock [-sw]
hwclock -s 将硬件时间同步到系统时间
hwclock -w 将系统时间同步到硬件时间
3.6 重定向
格式
命令 重定向符号 /file
标准输出和标准错误的重定向符号,包括:
>
>>
2>
2>>
&>
&>>
标准输入的重定向符号,包括
<
<<
[root@server ~]# cat > file << eof
> 123321
> eof
[root@server ~]# cat file
123321
详细参考:https://blog.csdn.net/u010230019/article/details/132043803
3.7 管道
管道用于把前面命令的执行结果,提供给后面命令当作输入
格式
命令1 | 命令2
第4章 获取帮助
4.1 whatis
whatis:即字面意思,查看某个明令是干嘛的(在第一次使用whatis时需要运行命令mandb
来激活)
[root@server ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
[root@server ~]# man 1p ls
实际whatis并不能为我们提供什么帮助,只是提供了man的索引
4.2 --help 选项
命令 --help
可以查看命令的具体用法
4.3 man
manual 简写,手册。由于linux命令实在太多,而且每个命令又有众多参数,选项,所以linux为我们内置了手册
man 命令
可以通过whatis 查找命令的索引,在使用man进行查询详细信息
第5章 vim辑器
详细按键参考:https://blog.csdn.net/u010230019/article/details/129978699
第6章 归档与压缩
6.1 归档
这里需要说明:归档和压缩在linux和windows中可能有些许差异,因为windows中压缩包含了归档,平时并没有归档的概念
归档,可以简单理解为把多个文件打包成一个文件(并不是压缩),linux中常用工具有tar、cpio。tar在链接中有说明,所以这里介绍下cpio,虽然该命令在实际运维中用的很少。
格式:
cpio [选项] [<|>] 文件名
常用选项如下:
-i或--extract:将文件从归档文件中还原出来;
-o或--create:将文件打包到归档文件中;
-t或--list:列出归档文件中包含的文件;
-v或--verbose:显示正在处理的文件名;
-z或--gzip:通过gzip压缩来加压缩/解压缩文档;
-c或--io-size:设置缓存大小;
-F或--file-format:设置输出文件的格式;
-B或--format:设置输入文件的格式;
-M或--multi-volume:多卷归档模式;
-C或--directory:指定处理文件的目录;
--no-preserve-owner:不保留原文件所有者和属性;
--no-absolute-filenames:不使用绝对路径名。
[root@server yurq]# ls /opt/*|cpio -o > opt.cpio
1037 blocks
[root@server yurq]# cpio -it < opt.cpio
/opt/dnf-4.14.0-2.fc38.noarch.rpm
/opt/repomd.xml
/opt/yum-4.14.0-2.fc38.noarch.rpm
1037 blocks
[root@server yurq]# cpio -i < opt.cpio
cpio: /opt/dnf-4.14.0-2.fc38.noarch.rpm not created: newer or same age version exists
cpio: /opt/repomd.xml not created: newer or same age version exists
cpio: /opt/yum-4.14.0-2.fc38.noarch.rpm not created: newer or same age version exists
1037 blocks
[root@server yurq]# cpio -id < opt.cpio
cpio: /opt/dnf-4.14.0-2.fc38.noarch.rpm not created: newer or same age version exists
cpio: /opt/repomd.xml not created: newer or same age version exists
cpio: /opt/yum-4.14.0-2.fc38.noarch.rpm not created: newer or same age version exists
1037 blocks
[root@server yurq]# cpio -uid < opt.cpio
1037 blocks
详细参考 https://www.python100.com/html/61763.html 写的很详细
6.2 压缩
常用的压缩工具有gzip,bzip2,zip,一般都是和tar结合使用,zip除外
第7章 服务管理
详细可参考: https://blog.csdn.net/u010230019/article/details/132336029
[root@server yurq]# systemctl list-unit-files
UNIT FILE STATE VENDOR PRESET
proc-sys-fs-binfmt_misc.automount static -
-.mount generated -
boot.mount generated -
dev-hugepages.mount static -
dev-mqueue.mount static -
...
可列出所有服务
7.1 管理服务当前状态
查看服务状态
[root@server yurq]# systemctl is-active httpd
[root@server yurq]# systemctl is-active sshd
[root@server yurq]# systemctl status sshd
启动、重启、关闭服务
[root@server yurq]# systemctl start httpd
[root@server yurq]# systemctl restart httpd
[root@server yurq]# systemctl stop httpd
禁用服务
[root@server yurq]# systemctl mask httpd
[root@server yurq]# systemctl unmask httpd
7.2 管理服务开机自动启动
[root@server yurq]# systemctl enable httpd
[root@server yurq]# systemctl disable httpd
7.3 判断服务名是什么
[root@server yurq]# systemctl list-unit-files --type=service|grep ssh
sshd-keygen@.service disabled disabled
sshd.service enabled enabled
sshd@.service static -
sssd-ssh.service indirect disabled