openEuler

314 阅读10分钟

[toc]

信创时代下的国产操作系统发展趋势

时间安排:

日期时间内容
2022.10.2018:30-20:30openEuler操作系统入门 命令行操作基础
2022.10.2118:30-20:30使用VIM编辑器 用户管理
2022.10.228:30-12:00权限管理
14:00-17:30管理文件系统及存储
2022.10.238:30-12:00日常系统管理 使用Shell脚本
14:00-17:30openEuler管理员综合实践

15道+试验

硬件 软件(基础软件OS 、中间件、应用软件)

openEuler,linuxOS,

硬件 软件 之间的一个接口层 OS ,管理软件,调度底层资源

linux最早在1991.支持i386通用硬件

GPL传染性:linux的OS lgpl:linux的运行库。

linux内核+自由软件=发行版本 openEuler 社区维护。

BIOS BMC

VirtualBox | vmware workstation + openEuler-20.03-LTS-x86_64-dvd.iso

右边的Ctrl | ctrl+Alt

root用户密码配置 大小写数字特殊字符 三种 8位以上

最小化安装界面

登录界面login: 用户名

密码

[root@localhost ~]#

当前登录用户@主机名 当前工作目录]#代表当前登录用户是一个管理员、$当前登录用户是一个普通用户

~代表当前用户家目录

ip addr 查看ip

ifconfig查看ip

linux的基本命令

1. linux常用登录、注销、重启、关机等命令

last


exit命令的作用是退出系统,它的使用权限是所有用户。还可以退出用户登录。

root->aa->bb

主要参数:exit命令没有参数,运行后退出系统进入登录界面。


shutdown命令的作用是关闭计算机,使用权限是超级用户。

shutdown -r 重启

shutdown -h 关机。(硬关机、软关机)

halt命令的作用是关闭系统,使用权限是超级用户。

init 0 关机

init 6 重启


reboot命令的作用是重新启动计算机,使用权限是系统管理者


2. linux shell命令。

kernel+自由软件组成

shell 壳,命令-->控制指令,命令的集合。

shell目前使用的是bash,内部命令,help 内部命令获取命令帮助

自由软件带来的命令:外部命令 外部命令 --help获取命令帮助

man

linux通用命令格式 可能不那么通用

命令 [选项] [参数...]

短选项以-引导,引导单个字母实现命令的功能,多个短选项可以连续

长选项以--引导

linux一切皆文件,所有文件都在根目录下,符号为/

目录(文件夹)也是文件, 目录中会有文件 目录/文件

graph TD
A(/根目錄)-->B(bin放置的是可运行程序)
A(/根目錄)-->C(sbin放置的是root用户可运行程序)
A(/根目錄)-->D(boot系统启动时相关的文件)
A(/根目錄)-->E(dev设备文件)
A(/根目錄)-->F(etc系统的配置文件)
A(/根目錄)-->G(home普通用户默认家目录)

graph TD
A(/根目錄)---->H(root用户家目录)
A(/根目錄)---->I(lib链接库文件)
A(/根目錄)---->J(lib64链接库文件)
A(/根目錄)---->K(proc数据加载到内存)
A(/根目錄)---->L(usr第三方软件安装的位置)
A(/根目錄)---->M(var不断增长数据的文件)

ls:list的缩写,列出。ls 一般后边的参数为目录,代表列出目录内文件名字

ls  /     #列出根目录下内容
ls  /etc/fstab#  列出/etc/fstab文件本身
ls  /root
ls -a /root   #-a显示全部文件,.开始的是隐藏文件
ls -l /root   ##-l显示文件的详细属性
  • 目录类命令

    ls

    pwd:print working directory,打印当前工作目录。登录用户,默认会进入用户家目录。

    绝对路径:从/出发去找文件

    相对路径:从当前目录出发去找文件

    cd: 切换工作目录。

    cd /etc/     绝对路径
    cd etc      相对路径
    cd .    ###`.`  代表当前目录
    cd ..   ###`..` 代表父目录
    cd ~     ### `~` 代表当前用户家目录
    cd -    ### `-` 代表上一次的工作目录
    cd ~用户
    

    mkdir:创建目录

    mkdir [选项]  参数
    mkdir  目录  
    mkdir  -p  目录1/目录2/目录3……
    
  • 文件类命令

    touch 创建一个空文件 ,如果文件已存在,则刷新文件访问时间。

    touch path/filename

    cp:复制文件到某个地方。

    cp  某些文件   某个地方
    cp  file1 /test  
    cp   -r  aa  /test   ##复制文件夹一定要加-r,迭代
    复制文件,如果目的的路径的最后一位如果不存在,则复制相当于改名。
    

    mv:剪切文件到某个地方

    mv  某些文件   某个地方
    mv  file1 /test  
    mv   aa  /test  
    剪切文件,如果目的的路径的最后一位如果不存在,则剪切相当于改名。
    

    rm删除文件

    rm  某些文件
    rm  -f  某些文件  ##强制删除多个文件,无需确认
    rm  -rf 某文件及目录  ###
    rm  -rf  ./*  删除当前目录下所有文件。
    rm  -rf /root/aa    删除对象是aa
    rm  -rf  /root  删除对象root
    rm  -rf   root   删除对象root
    

    find:查找文件

    find  查找范围   查找条件###查找范围一般为最大的/
    find   查找条件     ##默认认为查找范围是当前目录
    条件:
    -name 名字
    -type 类型    d目录  f 文件 l 连接文件
    -user 用户
    
  • 文件内容类命令

    echo 在屏幕上打印输出内容

    echo 123
    echo openEuler
    echo aa   
    echo $aa  打印aa的值
    

    cat查看文件内容

    cat 文件

    less 使用翻页的形式去看文件

    less 文件

    ↑↓切换   enter  
    空格翻页  pageup  pagedown
    /word可以去找word     win不区分大小写,linux区分大小写 Word
    q退出
    

    more 文件

    只能往下翻
    会显示阅读百分比
    

    tail 查看文件的末尾十行

    tail  aa   ##
    tail  -3 aa   
    tail -n 3 aa    查看后三行
    tail  -f  文件   会实时查看文件末尾更新,查看日志
    
    

    head 查看文件的前十行

    head aa ##
    head  -3 aa
    head  -n 3 aa
    
    

    grep查找文件内容,默认输出所在行

    grep  "内容"    文件   
    grep  -i "内容"    文件      忽略大小写
    grep  -v  "内容"    文件     #反向输出
    

    管道:管道符| 将管道前命令输出拦截,交给管道后命令使用。

    cat anaconda-ks.cfg | grep System 
    ls  /etc  | grep fstab
    man systemd | grep NOTES -A   3
    查看man systemd命令中NOTES单词的后三行
    ip address  | less
    
    
  • 辅助命令

    归档命令tar,解归档

    -f 指定归档文件 ,行业内默认,文件名末尾为.tar,linux没有文件后缀。

    -c 创建归档
    -x 释放归档
    -t 查看归档包内文件
    -v 显示上述过程中参与的文件
    -P 保留源文件权限
    -z
    -J
    -j
    tar -cvf /root/test.tar    aa     1    2
    将文件 aa 1 2 打包为  /root/test.tar
    

重定向:输入重定向 输出重定向。

输出重定向:命令的输出传输到一个文件中。 > 标准输出

 echo 123 > aa   将123输出到文件而不显示在屏幕上。
 echo 123 >> aa  将123追加到文件而不显示在屏幕上。

标准错误重定向:将标注错误重定向到文件中。 2>

wdw 2> aa 
cat  aa

标准输出和错误可以都重定向: &>

find  / -user aa &> aa

ln :连接文件

软连接:快捷方式   硬连接:原文件的拷贝
ln   aa  bb   不加选项,做的是硬连接
ln -s /root/test/ /home/   做的是软连接,连接/root/test到/home/test
  • 补充

wc:wordcount单词统计,

wc  -l   文件  #查看文件的行数
wc -c  文件@#查看文件的字符
wc -w 文件 
3. vim编辑器

vi:命令模式、编辑模式、末行模式

image-20221022091033473
vi 文件   ###编辑文件   命令模式
a键是在光标后一格开始输入字符
i是在光标前开始输入字符
o另起一行输入字符

vim操作用途
命令模式
gg跳转首行
G跳转末行
nG跳转第n行
/word搜索word
yy复制当前行
p粘贴到光标后
P粘贴到光标前
x删除光标所在字符
dd删除当前所在行,剪切
nyy|ndd复制当前所在行以及下边的n-1行|
末行模式
:r 文件读入文件内容
:q退出(未修改)
:wq保存退出
:q!不保存退出
:wq!强制保存退出
/word从上往下查找word,n匹配下一个,N匹配上一个
?word从下网上查找word,n匹配下一个,N匹配上一个
:s/old/new找到第一个old替换为new
:s/old/new/g找到第一个old所在行,里边的所有的old替换为new
:#,ns/old/new/g替换#行到n行,里边的所有的old替换为new
:%s/old/new/g替换#行到n行,里边的所有的old替换为new
4. 软件仓库repository

openEuler默认软件仓库使用的是/etc/yum.repos.d文件夹下所有以.repo结尾的文件。

#mount /dev/cdrom /media/

vi /etc/yum.repos.d/aa.repo

[asas] name=ruanjianyuan baseurl=file:///media gpgcheck=0

dnf install vim -y

与或非 或| 与& 非!

[aa] repo_id

name=aa repo_name

baseurl= 书写的路径下,可以看到repodata文件夹。

gpgcheck= 0|1 关闭校验|开启 gpgkey

5. 用户管理

linux基于用户身份对资源进行访问控制。

uid用户id。普通用户id从1000开始。

account用户:会配置密码。让他登录系统

software用户:让他登录软件 samba的用户等。

用户组:管理用户,GID

基本组:在创建用户时,默认会创建同名的基本组,仅用作标识。 主组

附加组:一般用来配置权限后,将用户加入组中,给用户匹配对应的权限。

id root      #id 用户             
uid=0(root)        gid=0(root)           groups=0(root)
查看用户的uid  用户所属组的id(基本组)   用户所属组(基本组、附加组)

/etc/passwd:账户信息文件

root:x:0:0:root:/root:/bin/bash

用户账户:密码占位:用户的id:用户基本组的id:说明、概要、全名:用户的家目录:登录shell

/etc/shadow:影子文件,用户账户密码文件

root:!:19286:0:99999:7:::

1970.1.1unix诞生日期

用户名:密码:密码上次修改时间:密码最短有效天数:密码最长有效天数:密码过期多少天以前进行告警:

useradd     用户名          ### 添加用户
useradd -D   ##用户创建默认规则
-u  指定新建用户uid的
useradd  -u 10010 dd
useradd  -d /share ee   指定家目录
useradd  -M  ff    不创建用户家目录
useradd  -N  gg  不创建用户基本组
useradd  -s /sbin/nologin   hh   指定用户无法登录系统
-g 基本组
-G 附加组
useradd  -g 10002  ii
useradd  -G 10002  jj
passwd  用户##此格式用来给指定用户配置密码, 这个格式仅限root可用
passwd###用户给自己配密码,普通用户需要输入原密码
echo  huawei | passwd   --stdin  用户   ##给用户设置密码

standard stdin标准输入 stdout标准输出

userdel  -r 用户 ###删除用户
usermod 修改已有用户的属性
usermod   -u  uid 用户     ##修改用户的uid
-d  更改家目录
-m 移动家目录 
usermod -md /share  aa   将用户家目录移动成/share
-s  /bin/bash    /sbin/nologin  
-g
-G
usermod  -aG group01  cc
usermod  -aG group02  cc

su

su  用户###切换用户
su  ###切换到root
root使用无需密码

su - 切换环境(文件、环境变量)

su - 用户###切换用户
su - ###切换到root
root使用无需密码

su - 和sudo -i 都可以切换到root用户,su -需要输入root的密码 sudo -i输入的是当前用户密码

chage  -l aa   查看用户的密码策略
chage -d 2020-01-01  aa   更改用户上次密码修改时间
chage -m 7 -M 30 aa  设置aa用户密码在7-30天内时有效的
chage  -W 7 aa  设置aa用户密码在过期七天前告警
chage  -I 3 aa  设置用户密码在过期3天后禁用用户。

用户组:基本组 附加组

groupadd  组名###添加组
-g  指定GID
gpasswd 组成员管理。
gpasswd  -a  用户  组  #将用户加入组中
gpasswd  -d  用户  组  #把用户从组中删除
groupdel  删除用户组
groupdel  组名
如果组是一个用户的基本组,默认是不能删除这个组。

访问权限:用户对文件拥有的可读、可写、可执行。对于目录,可写意味着,用户可以再目录中对于文件创建、删除、重命名等;可执行权限意味着,可以切换到这个目录。

读r 4 写w 2 执行x 1

1 234567

所有权:文件的属主(归属用户) 属组(归属用户组)

ls -l aa
-rw-------. 1 root root 638 Oct 22 03:44 aa
第一个-代表当前是一个文件, d代表目录,l代表链接文件
rw-------  每三位为一段,分成三段   rw-    ---   ---  属主权限    属组的权限  其他用户权限

chmod #修改用户对文件的权限   root及文件属主可用
方法一:chmod ugoa+-=rwx   file
chmod u+x aa 
chmod g+r aa
chmod o=rw aa
chmod a=rw aa

方法二:chmod  nnn  file 
chmod  777 aa   rwxrwxrwx 
chmod 755 aa   rwxr-xr-x
chmod  -R 777 /test/    修改test目录权限,以及修改test中文件的权限。

chown#owner 更改归属
chown 用户   文件  #
chown :用户组  文件   |  chown  .用户组   文件  
-R
chown root:root  /home/aa
umask反掩码
777 umask  计算得到创建目录的权限。目录权限去掉执行权限就是创建的权限。
umask   077
700
将文件创建权限局限在可控范围内。

ACL:访问控制列表。控制某个用户或者用户组对某个文件具体的权限划分。不必考虑原有的文件权限。

setfacl   设置文件的访问控制列表
setfacl  -m u:aa:rw /test/cc    设置用户aa对于文件的权限是rw
setfacl  -m g:aa:rw /test/cc    设置用户组aa对于文件的权限是rw
getfacl 文件###  获取文件访问控制列表
sefacl  -x u:aa  /test/cc 去除用户aa对于文件的ACL权限
setfacl  -b   /test/cc  删除文件的ACL权限
  1. 软件管理

    源码包 ·移植· 二进制包

    openEuler采用rpm包管理机制,.rpm .src.rpm(源代码包)。rpm采用单独的数据库记录软件安装信息(软件大小、版本、架构、软件包相互依赖。)

    bash-5.0-12.oe1.x86_64.rpm

    软件名 -软件版本-补丁号.软件平台.硬件平台

    rpm  管理软件
    -i 安装
    -e 卸载
    -q 查询query
    -v 显示过程
    -h 以#显示进度
    --nodeps   忽略依赖
    rpm -ivh    软件包路径    ###安装软件
    rpm -qi 软件包名   ###查询已安装软件包信息   rpm -qi vsftpd
    rpm  -qc 软件包   ###查询已安装软件包的配置文件 rpm -qc vsftpd
    rpm -ql 软件包  ###查询软件相关文件   
    rpm  -qf 文件   ###查询文件属于哪个软件
    rpm  -qa  ##列出系统所有已安装软件  rpm -qa |grep bash
    

    yum:使用rpm包管理机制作为基础,查询依赖,并且利用python2作为基础,解决软件依赖问题。dnf-3

    yum源即是DNF源,/etc/yum.repos.d下以.repo结尾的文件。
    配置完成后
    dnf  repolist   -v  生成dnf缓存到本地,可以确定dnf源是否是对的
    dnf   install  软件包名   -y###安装软件
    dnf provides 命令   ###查询命令属于哪个软件
    dnf  list ###列出软件仓库的软件
    dnf list  installed###列出已安装软件包
    dnf  info 软件包##查看软件包信息 dnf   info   vsftpd
    dnf  remove  软件包 ###卸载软件包
    ###软件包组
    dnf grouplist  ##列出软件包组
    dnf group install "软件包组"##安装
    dnf  install  "@软件包组" ##安装
    dnf  group remove "软件包组"##卸载
    

    生成编译配置 && 编译 && 安装

    源代码中得configure程序 执行会生成一个Makefile ,按照Makefile去进行编译、安装

    ./configurre --prefix=/usr/local/Python 生成一个Makefile 指定软件安装路径

    make -j16 编译 -j指定编译的线程数

    make install

可能出现的bug

ensp AR41错误 vmware worktstation vmnet8和1不存在

virtualbox

卸载软件 安装ccleaner清理注册表 重启 安装软件

  • File exists 文件已存在

  • No such file or directory没有这个文件或目录

  • overwrite '/test/file2'? 是否覆盖 y|n

  • Is a directory 是一个目录

  • Capslock按键,大写锁定键,不推荐使用 shift+a =A

  • Permission denied 无权限

  • Failed dependencies 错误的依赖关系,安装软件时,依赖软件未安装。