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
202211月 03日 星期四 13:38:59 CST

# 显示UTC时间
[pengyuyan@CentOS7 ~]$ date -u
202211月 03日 星期四 05:39:09 UTC
[pengyuyan@CentOS7 ~]$ date --utc
202211月 03日 星期四 05:40:06 UTC
[pengyuyan@CentOS7 ~]$ date --universal
202211月 03日 星期四 05:40:31 UTC

# 根据给定时间字符串显示日志
[pengyuyan@CentOS7 ~]$ date -d '-1 day'
202211月 02日 星期三 13:42:03 CST
[pengyuyan@CentOS7 ~]$ date --date='-1 day'
202211月 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
202211月 03日 星期四 13:52:05 CST
[pengyuyan@CentOS7 ~]$ ls;date
公共  模板  视频  图片  文档  下载  音乐  桌面
202211月 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命令

操作分类:

  1. 翻页:

    space或f 向下翻页

    b 向上翻页

    Enter或j 向下滚动一行

    k 向上滚动一行

  2. 跳转:

    g 跳转到文件开头

    G 跳转到文件末尾

    行号+G 跳转到指定行号

    P或% 跳转到文件百分比的位置

  3. 关键词:

    /<关键词> 向下搜索关键词

    ?<关键词> 向上搜索关键词

  4. 标记:

    m<字母> 在当前位置打标记

    '<字母> 跳转到之前标记的位置

  5. 退出:

    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
20221213日 星期二 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
20221213日 星期二 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 登出终端
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐