跟着彭于晏学习Linux操作系统——一个月带你轻松玩转
Linux系统基础
CentOS 系统安装
新建虚拟机
-
菜单-文件-新建虚拟机

-
选择自定义

-
下一步

-
稍后安装

-
选择系统

-
设置名和位置

-
cpu分配2个

-
内存分配4G

-
网络使用NAT

-
下一步

-
下一步

-
创建新磁盘

-
配置硬盘,建议分配80G-200G之间

-
下一步

-
完成

-
配置光盘
单击-编辑虚拟机设置

通过浏览找到操作系统ISO文件,单击确定。

安装过程
- 开机

-
选择-Install CentOS 7-回车(先单击系统安装界面,通过上下键选择。)

-
选择安装过程中语言

-
安装信息摘要如下:

-
配置-软件选择

-
选择-带 GUI 的服务器-完成

-
选择安装位置

自动配置分区

-
关闭kdump


-
配置网络


打开后选择配置进行手动配置IP。

IP配置信息统一使用如下:
- IP地址:10.1.8.10
- 子网掩码:24
- 网关:10.1.8.2
- DNS 服务器:223.5.5.5,223.6.6.6

-
设置主机名

-
开始安装

-
设置 ROOT 免密为666


-
创建用户


-
等待安装完成,重启。

许可证配置
-
接受许可证

-
同意,并单击完成。

-
完成配置

登录

根据自己习惯选择:GNOME或者GNOME经典。

环境界面-一直选择 前进 即可。



在线帐号界面选择跳过


帮助信息,关闭即可。

关机打快照。
xshell 和 xftp 安装和配置
下载:
- xshell:http://192.168.50.200/course-materials/softwares/base/09.Xshell-8.0.0095p.exe
- xftp:http://192.168.50.200/course-materials/softwares/base/09.Xftp-8.0.0095p.exe
安装过程
安装过程省略。
xshell 使用
打开xshell,在终端中输入ssh laoma@10.1.8.10,回车。
-
ssh是命令
-
laoma 是用户名。之前安装系统的时候,创建了一个普通用户,使用该用户。
-
10.1.8.10是目标服务器IP地址。
弹出的界面选择接受并保存。

输入之前设定的密码,我这里是:666。

显示如下界面,表示登录成功。

添加到链接栏

效果如下:
使用链接栏中条目登录

终端外观属性调整


整体窗口调整,根据需要勾选相应条目。

xftp 使用
打开xftp工具,链接栏输入10.1.8.10(服务器的IP)后回车,在弹出的界面输入用户名。

输入密码

登录成功

文件的上传和下载
- 上传:将左侧文件拖拽到右侧。
- 下载:将右侧文件拖拽到左侧。

中文乱码处理
乱码是编码方式和解码方式不一致导致的,我们只需要打开xftp 找到左上角点击文件-属性,点击选项按钮。

勾选使用UTF-8编码。

重启xftp我们看一下有没有解决

桌面环境介绍
桌面介绍

终端设置
设置终端属性:字体



快捷键:
- 新建终端(ctrl+alt+N)
- 新建标签(ctrl+alt+T)

背景和锁屏设置


语言和输入法设置

Linux 命令行
Linux 命令行
控制台
Console,也就是控制台,也称为终端,提供命令行输入数据和展示命令行输出数据。
- 物理控制台,用于与系统交互的硬件接口。
- 虚拟控制台, 名称为tty1–tty6,通过ctrl + alt + F1…F6切换。tty1是图形化程序所在的终端。
ctrl + alt + F3 进入3号虚拟控制台,登录后,执行tty命令,效果如下:
输入密码的时候,屏幕是不显示任何字符的。

shell 介绍

shell,用于解析终端中输入的字符串,交由kernel执行,并将执行结果显示到终端中。Linux命令行由shell程序提供。在Linux发展过程中,产生了多种shell程序。Bash是类UNIX系统中最成功的shell,也是用户的默认shell。
命令提示符
作用:提示计算机正在等待用户的输入。
# 代表普通用户提示符,提示符最后是有一个空格。
[pengyuyan@CentOS7 ~]$ date
# 代表管理员提示符
[root@CentOS7 ~]#
shell 解析字符串的语法
shell命令行,通过空格分隔,包涵三个部分:
- 命令,第一部分必须是命令,代表要执行的程序,其后可能跟着选项或参数。
- 选项,调整命令的行为或作用。通常以一个或两个
-符号开头,例如(-a --all)。 - 参数,典型的参数是命令的目标,命令后面可能接多个参数。
Enter键,shell开始解析命令行中字符串,并交由kernel执行。
示例:
[pengyuyan@CentOS7 ~]$ ls -1 /home
# ls,是命令
# -l,是选项
# /home,是参数
# 只用命令情况
[pengyuyan@CentOS7 ~]$ ls
公共 模板 视频 图片 文档 下载 音乐 桌面
# 使用不同格式选项,-a和--all都是用于显示所有文件,包涵.开头的隐藏文件
[pengyuyan@CentOS7 ~]$ ls -a
. .bashrc .esd_auth .mozilla 模板 下载
.. .cache .gnupg .ssh 视频 音乐
.bash_logout .config .ICEauthority .Xauthority 图片 桌面
.bash_profile .dbus .local 公共 文档
[pengyuyan@CentOS7 ~]$ ls --all
. .bashrc .esd_auth .mozilla 模板 下载
.. .cache .gnupg .ssh 视频 音乐
.bash_logout .config .ICEauthority .Xauthority 图片 桌面
.bash_profile .dbus .local 公共 文档
# 使用参数,指定目标,查看目录/etc/yum文件清单
[pengyuyan@CentOS7 ~]$ ls /etc/yum
fssnap.d pluginconf.d protected.d vars version-groups.conf
命令行语法示例
[pengyuyan@CentOS7 ~]$ date
2022年 11月 03日 星期四 13:38:59 CST
# 显示UTC时间
[pengyuyan@CentOS7 ~]$ date -u
2022年 11月 03日 星期四 05:39:09 UTC
[pengyuyan@CentOS7 ~]$ date --utc
2022年 11月 03日 星期四 05:40:06 UTC
[pengyuyan@CentOS7 ~]$ date --universal
2022年 11月 03日 星期四 05:40:31 UTC
# 根据给定时间字符串显示日志
[pengyuyan@CentOS7 ~]$ date -d '-1 day'
2022年 11月 02日 星期三 13:42:03 CST
[pengyuyan@CentOS7 ~]$ date --date='-1 day'
2022年 11月 02日 星期三 13:43:04 CST
[pengyuyan@CentOS7 ~]$ date --date='100 day'
2023年 02月 11日 星期六 13:44:00 CST
# 特殊案例
[pengyuyan@CentOS7 ~]$ date -d "-1 year +3 month +10 days"
2022年 02月 13日 星期日 14:20:59 CST
# 以给定格式显示时间
[pengyuyan@CentOS7 ~]$ date +%Y%m%d
20221103
[pengyuyan@CentOS7 ~]$ date +%Y-%m-%d
2022-11-03
[pengyuyan@CentOS7 ~]$ date +%Y/%m/%d
2022/11/03
一行要执行多个命令,使用分号(;)分隔。
[pengyuyan@CentOS7 ~]$ ls
公共 模板 视频 图片 文档 下载 音乐 桌面
[pengyuyan@CentOS7 ~]$ date
2022年 11月 03日 星期四 13:52:05 CST
[pengyuyan@CentOS7 ~]$ ls;date
公共 模板 视频 图片 文档 下载 音乐 桌面
2022年 11月 03日 星期四 13:52:08 CST
# 错误的示例
[pengyuyan@CentOS7 ~]$ ls date
ls: 无法访问date: 没有那个文件或目录
小编在这里给大家拓展一下date命令的用法:
date
作用:用来查看或者设置系统日期和时间
语法:date [选项] [格式]
常见选项:
选项 作用
-d 查看过去或者未来的日期
-s 设置系统时间(需要管理员权限)
-u 显示或设置协调世界时
常见格式:
格式 作用
%Y 年份(四位) 例如:2026
%y 年份(两位) 例如:26
%m 月份
%d 日
%H 小时
%M 分钟
%S 秒
%A 星期几(完整) 例如:Wednesday
%a 星期几(简写) 例如:Wed
%B 月份名(完整) 例如:July
%b 月份名(简写) 例如:Jul
常见组合:
date 显示当前系统时间
date "+%Y-%m-%d" 显示年月日
date "+%H:%M:%S" 显示时分秒
date "+%Y-%m-%d %H:%M:%S" 显示日期+时间
date -d "2 days ago" 显示两天前的时间
date -d "next Monday" 显示下周一的时间
date +%s 显示Unix时间戳
bash 执行命令
bash 执行命令
passwd
作用:管理用户密码。
语法:passwd [选项] <账号>
常见选项:
选项 作用
-l 锁定指定账户的密码
-u 解锁被-l选项锁定的密码
-d 删除用户密码
-e 立即使密码过期,下次登陆强制更改密码
# 普通用户修改密码
[pengyuyan@CentOS7 ~]$ passwd
更改用户 pengyuyan 的密码 。
为 pengyuyan 更改 STRESS 密码。
(当前)UNIX 密码:`123`
新的 密码:`redhat`
无效的密码: 密码少于 8 个字符
新的 密码:`12345678`
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
新的 密码:`55TurnK3y`
重新输入新的 密码:`55TurnK3y`
passwd:所有的身份验证令牌已经成功更新。
# root 用户管理账户密码
[root@CentOS7 ~]# passwd laoma
更改用户 pengyuyan 的密码 。
新的 密码:`redhat`
无效的密码: 密码少于 8 个字符
重新输入新的 密码:`redhat`
passwd:所有的身份验证令牌已经成功更新。
# 删除用户密码,实现用户登录不需要密码
[root@CentOS7 ~]# passwd -d pengyuyan
清除用户的密码 pengyuyan。
passwd: 操作成功
# 锁定用户密码,用户将无法登录
[root@CentOS7 ~]# passwd -l pengyuyan
锁定用户 pengyuyan 的密码 。
passwd: 操作成功
# 解锁用户密码,用户可以正常登录
[root@CentOS7 ~]# passwd -u pengyuyan
解锁用户 pengyuyan 的密码。
passwd: 操作成功
file
作用:判定文件类型。
语法:file [选项] [文件名]
[pengyuyan@CentOS7 ~]$ file /etc/yum
/etc/yum: directory
[pengyuyan@CentOS7 ~]$ file /etc/fstab
/etc/fstab: ASCII text
# /bin/file是二进制程序
[pengyuyan@CentOS7 ~]$ file /bin/file
/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=58f6c8b82ee70887d7136a7181ffc8fa18030cde, stripped
cat
作用:一次性读取文件内容
语法:cat [选项] [文件]
常见选项:
-n 显示行号,输出内容的所有行编号
-b 显示行号,对空白行不编号
-s 压缩连续的空白行,将多个连续空白行合并为一个空行输出
-A 显示所有隐藏符号
[pengyuyan@CentOS7 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.8.88 CentOS7.redhat.fun CentOS7
# -A选项等于-vET,用于显示行尾加个$,用^I显示制表符(tab键)
[pengyuyan@CentOS7 ~]$ cat -A /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4$
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6$
10.1.8.88^ICentOS7.redhat.fun^ICentOS7$
# 一次性查看多个文件(只需要用空格将文件隔开)
cat 文件1 文件2 文件3
[pengyuyan@CentOS7 ~]$ cat /etc/hosts /etc/fstab
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.8.88 CentOS7.redhat.fun CentOS7
#
# /etc/fstab
# Created by anaconda on Wed Nov 2 17:31:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=047729d6-683f-4aec-b614-28d20ce0a90c /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
head
作用:显示文件头部内容。
语法:head [选项] [文件名]
如果只查看一个文件,默认不显示标题
如果查看多个文件,默认显示标题
常见选项:
-n <行数> 显示文件第一行—指定行数
-c <字节数> 显示文件从开头到指定的字节数
-q 当查看多个文件时,不显示文件名标题,只输出多个文件内容
-n -<行数> 显示(总行数-输入指定行数)的所有内容
[pengyuyan@CentOS7 ~]$ head /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
# 只看前4行内容
[pengyuyan@CentOS7 ~]$ head -n 4 /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# 查看文件所有内容,除了最后3行
[pengyuyan@CentOS7 ~]$ head -n -3 /etc/profile
tail
作用:显示文件尾部内容。
语法:tail [选项] [文件]
常见选项:
-n<行数> 显示文件最后的指定行数(例如行号是20,显示文件最后20行)
-n +<行数> 显示指定行数到末尾的全部内容
-f 实时追踪文件新增内容
-F 文件被删除或轮转也会被追踪
[pengyuyan@CentOS7 ~]$ tail /etc/profile
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
[pengyuyan@CentOS7 ~]$ tail -n 4 /etc/profile
done
unset i
unset -f pathmunge
# 从第四行到最后所有行内容
[pengyuyan@CentOS7 ~]$ tail -n +4 /etc/profile
less
作用:交互式、翻页查看文件内容。
语法:less [选项] [文件]
常见选项:
-N 显示行数
-S 不换行,显示长行,可用左右箭头滚动查看
+<命令> 打开后立即执行某个less命令
操作分类:
翻页:
space或f 向下翻页
b 向上翻页
Enter或j 向下滚动一行
k 向上滚动一行
跳转:
g 跳转到文件开头
G 跳转到文件末尾
行号+G 跳转到指定行号
P或% 跳转到文件百分比的位置
关键词:
/<关键词> 向下搜索关键词
?<关键词> 向上搜索关键词
标记:
m<字母> 在当前位置打标记
'<字母> 跳转到之前标记的位置
退出:
q 退出less查看器
# 使用less查看多页文档,可以翻页,搜索等
[pengyuyan@CentOS7 ~]$ less -N /etc/profile
# 在less查看文件过程中常见指令:
# / 搜索,n(next)搜索下一个,N搜索上一个。
# 上下方向键 逐行查看,左右键左右翻页
# pageup和pagedown 上下翻页
# q,退出文档查看
wc
作用:统计文件行数、单词数、字节数。
语法:wc [选项] [文件]
如果不带任何选项,wc会同时输出三列:行数、单词数、字节数
常见选项:
-l 统计行数
-w 统计单词数
-c 统计字节数
-m 统计字符数
-L 统计文件中最长行的长度
[pengyuyan@CentOS7 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.8.88 CentOS7.redhat.fun CentOS7
[pengyuyan@CentOS7 ~]$ wc /etc/hosts
3 13 197 /etc/hosts
# 统计文件line数量
[pengyuyan@CentOS7 ~]$ wc -l /etc/hosts
3 /etc/hosts
# 统计文件word数量
[pengyuyan@CentOS7 ~]$ wc -w /etc/hosts
13 /etc/hosts
# 统计文件bytes数量
[pengyuyan@CentOS7 ~]$ wc -c /etc/hosts
197 /etc/hosts
# 统计多个文件数据
[pengyuyan@CentOS7 ~]$ wc /etc/hosts /etc/fstab
3 13 197 /etc/hosts
12 60 541 /etc/fstab
15 73 738 总用量
tab 按键
补全功能:补全命令、补全选项、补全参数
# tab 一次,就出结果,说明匹配结果
# tab 两次,才补全出结果,说明匹配结果不唯一
# 补全命令
[pengyuyan@CentOS7 ~]$ pas<tab><tab>
passwd paste pasuspender
[pengyuyan@CentOS7 ~]$ pass<tab>
# 自动显示为
[pengyuyan@CentOS7 ~]$ passwd
# 补全选项
[pengyuyan@CentOS7 ~]$ passwd --d<tab>
# 自动显示为
[pengyuyan@CentOS7 ~]$ passwd --delete
# 补全参数
[pengyuyan@CentOS7 ~]$ file /e<tab>
# 自动显示为
[pengyuyan@CentOS7 ~]$ file /etc/
history 命令
作用:管理、查看和操作当前用户在shell会话中执行过的历史命令
用法:history [选项]
常见选项:
-c 清空当前shell会话中的历史记录
-d<偏移量> 删除指定(序号)的那条历史命令
-a 将当前会话的历史行追加到历史文件中
-n 从历史文件中读取所有未被读取的行
# history命令查看帮助不能使用 history --help
[pengyuyan@CentOS7 ~]$ help history
history: history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]
显示或操纵历史列表。
带行号显示历史列表,将每个被修改的条目加上前缀 `*'。
参数 N 会仅列出最后的 N 个条目。
如果给定了 FILENAME 文件名,则它将被作为历史文件。否则
如果 $HISTFILE 变量有值的话使用之,不然使用 ~/.bash_history 文件。
如果 $HISTTIMEFORMAT 变量被设定并且不为空,它的值会被用于
strftime(3) 的格式字符串来打印与每一个显示的历史条目想关联的时
间戳,否则不打印时间戳。
退出状态:
返回成功,除非使用了无效的选项或者发生错误。
[pengyuyan@CentOS7 ~]$ history
1 date
2 date -u
3 date --utc
4 date --universal
5 date -d '-1 day'
... ...
# 情况历史操作记录
[pengyuyan@CentOS7 ~]$ history -c
# 使用上下键查找历史命令的时候,只能查找现有的历史命令中命令
[pengyuyan@CentOS7 ~]$ history
1 history
2 echo hello world
3 ls
4 hostname
5 history
# 调用历史第2条命令,显示第2条命令后,然后执行该命令
[pengyuyan@CentOS7 ~]$ !2
echo hello world
hello world
# 从下网上匹配最后一个以ho开头的命令,显示并执行该命令
[pengyuyan@CentOS7 ~]$ !ho
hostname
CentOS7.wanho.net
# 使用-w选将历史命令写入到文件~/.bash_history
[pengyuyan@CentOS7 ~]$ history -w
[pengyuyan@CentOS7 ~]$ cat ~/.bash_history
history
echo hello world
ls
hostname
history
echo hello world
hostname
history
history -w
script 命令
作用:记录终端发生的一切
用法:script [选项] 文件
常见选项:
文件 指定日志文件名,记录到输出文件
-a 以追加模式写入,不覆盖原有文件内容,将新记录追加到末尾
-q 安静模式,启动和停止时不显示提示信息
-f 实时刷新,每次有输出立刻输入文件
-c 运行命令,而不是交互式shell
-e 返回子进程的退出码
-t 将时间数据输出到文件
# 记录终端中历史操作,并保存到指定文件,还可以同时记录操作时间
[pengyuyan@centos7 ~]$ script --timing=time.log record.log
# 或者
[pengyuyancentos7 ~]$ script -ttime.log record.log
[pengyuyan@centos7 ~]$ echo hello world
hello world
[pengyuyan@centos7 ~]$ hostname
centos79.linux.com
[pengyuyan@centos7 ~]$ date
2022年 12月 13日 星期二 17:10:13 CST
[pengyuyan@centos7 ~]$ history -c
[pengyuyan@centos7 ~]$ echo goodbye
goodbye
[pengyuyan@centos7 ~]$ exit
exit
Script done, file is record.log
# 查看日志内容
[pengyuyan@centos7 ~]$ cat record.log
脚本启动于 2022年12月13日 星期二 17时10分02秒
[pengyuyan@centos7 ~]$ echo hello world
hello world
[pengyuyan@centos7 ~]$ hostname
centos79.linux.com
[pengyuyan@centos7 ~]$ date
2022年 12月 13日 星期二 17:10:13 CST
[pengyuyan@centos7 ~]$ history -c
[pengyuyan@centos7 ~]$ echo goodbye
goodbye
[pengyuyan@centos7 ~]$ exit
exit
Script done on 2022年12月13日 星期二 17时10分27秒
# 动态回放日志
[pengyuyan@centos7 ~]$ scriptreplay -t time.log record.log
bash 快捷键
| 快捷键 | 作用 |
|---|---|
| Ctrl+a 或者 Home | 光标定位到命令行开头 |
| Ctrl+e 或者 End | 光标定位到命令行末尾 |
| Ctrl+u | 删除光标位置到命令行开头 |
| Ctrl+k | 删除光标位置到命令行末尾 |
| Ctrl+<- | 光标向左跳转一个单词 |
| Ctrl±> | 光标向右跳转一个单词 |
| Ctrl+r | 搜索历史命令 |
| Ctrl+w | 向左删除一个参数 |
| Esc(松开)+. | 打印上一个命令的最后一个参数 |
| Ctrl+l(L的小写) | 清空屏幕 |
| Ctrl+d | 登出终端 |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)