原创

    Linux 入门教程

    内容概要:

    第一章:Liunx 的介绍

    一、什么是 Linux

    二、Linux 的版本

    1、内核版本

    2、发行版本

    VMware 安装完成后

    三、安装 Linux 系统

    我将使用的 VMware 虚拟机 来安装 Liunx 操作系统,具体安装步骤如下:

    Linux 安装步骤:
    1、安装 VMware 虚拟机 2、下载 Linux 镜像 3、安装 Liunx 系统

    1、安装 VMware 虚拟机

    虚拟机的安装和普通电脑软件安装一样,这个就不演示了。虚拟机点击左侧下载: VMware 虚拟机下载 【链接是百度云,提取码是:6666 】 安装之后打开如下:

    2、下载 Linux 镜像

    以下是各种 Linux 镜像下载地址 ,选择下载即可。如下图:

    3、安装 Liunx 系统

    刚安装好是无法联网的,通过以下设置即可联网。 操作如下:

    4、启动虚拟机可能遇到的问题

    第一个问题:无法连接到虚拟机,未能将…… 具体如下图:

    解决方法: 上网搜索并下载 微软常用运行库.exe 进行依赖安装即可

    第二个问题:VMware Workstation 与…… 具体如下图:

    # 解决方法:
    
    1、打开 Windows PowerShell(管理员)
    2、运行命令:bcdedit /set hypervisorlaunchtype off
    3、打开命令行,运行命令:msinfo32
    4、重启电脑即可
    

    重启之前如下图:

    重启之后如下图:

    TIPS: 现在就能愉快的玩耍 VMware 虚拟机了 ^_^

    四、使用 Linux 系统

    1、小白命令汇总

    init 0              # 让 Linux 系统关机
    init 3              # 由图形界面进入到命令行
    startx              # 由命令行进入到图形界面
    exit                # 退出当前用户
    su - root           # 用户切换操作:切换到 root 管理员用户
    su - Jack           # 用户切换操作:切换到 Jack 普通用户
    ls /                # 查看根目录下的文件或文件夹,例如:ls /root   ls /bin  ls /sbin
    type cd             # 查看 cd 命令是内部命令还是外部命令。ls 是外部命令,cd 是内部命令
    

    2、root 用户和普通用户

    如果 非 root 用户 登陆,用户名后面显示的是 "$" ,如下图:

    如果是 root 用户 登陆,用户名后面显示的是 "#" ,如下图:

    3、使用终端

    使用终端的三种方式:
    1、图形终端 2、命令行终端 3、远程终端(SSH , VNC)

    4、常见目录介绍

    在 Linux 系统中,一切皆文件。那就来看看 Linux 系统的常见目录。 如下图:

    TIPS: Linux 的介绍 到此结束!

    第二章:Linux 的系统操作

    在 Linux 系统中,一切皆文件。 如下图:

    一、万能帮助命令

    为什么要学习帮助命令: Linux 的基本操作是命令行,里面有海量的命令不适合我们死记硬背, 所以当我们不知道如何使用一个 Liunx 命令时,我们就可以使用以上的三种帮助命令来获取相关命令介绍,从而学会如何使用该命令。帮助命令如下图:

    1、man 帮助命令

    通过上图介绍,我们知道了 man 命令 的相关用法。举个例子,如果我们不知道 ls 命令 怎么用,那么就使用 man ls 来获取 ls 命令的相关介绍。当然了,我们也可以使用 man man 来获取 man 命令的相关帮助。如下图:

    man 后面为什么要加上章节呢? 因为有些命令是重名的,不加上章节的话,就容易相关命令弄混。 举例如下:

    # 命令 passwd 帮助
    man 1 passwd
    
    # 文件格式规范中的 passwd 帮助
    man 5 passwd
    
    # 如果不知道是哪一章的命令
    man -a passwd
    

    2、help 帮助命令

    上图中有 内部命令外部命令 ,那么如何区分呢?欲知详情,请看下图:

    TIPS: 由上图可知, cd 命令 是内部命令,ls 命令 是外部命令。

    3、info 帮助命令

    info 帮助命令是英文的,理解优点难度。下图是 ls 的 info 帮助命令:

    二、文件操作相关命令

    man pwd                     # 查看 pwd 命令帮助信息
    pwd                         # 显示当前目录名称
    pwd --help                  # 显示帮助信息,然后退出
    pwd --version               # 显示版本信息,然后退出
                               
    cd                          # 更改当前的操作目录
    cd /                        # 回到根目录
    cd -                        # 返回上一次操作
    cd ..                       # 返回上一级
                               
    cd /path/to/...             # 绝对路径
    cd ./path/to/...            # 相对路径
    cd ../path/to/...           # 相对路径
                               
    ls                          # 查看当前目录下的文件
    ls -l .                     # 这个 . 是作为参数,代表当前目录,默认可省略
    ls [选项] [文件名]          # 选项是用来扩充 ls 命令的功能,文件名是 ls 命令的参数
    
    clear                       # 清除屏幕,Ctrl + L 也行
    

    1、初识 ls 命令

    Linux 中文件的颜色代表了是否有权限,有时 ls 命令 会提示权限不足,说明当前的用户还没有权限查看当前的文件。 如下图:

    以下各种命令都在图片中了,这样方便查看效果:

    2、初识 cd 命令

    三、目录操作相关命令

    # 创建一级文件夹
    mkdir /guo               # 在根目录下创建 guo 文件夹
    mkdir guo                # 在当前目录创建 guo 文件夹
    mkdir A B C              # 在当前目录创建 A B C 三个文件夹
    mkdir A                  # 如果文件已经存在,那么会提示无法船创建目录
    
    # 创建多级文件夹
    mkdir A/E                # 在 A 文件夹里创建 E 文件夹
    mkdir A/E/F              # 在 A 文件夹下的 E 文件夹里创建 F 文件夹
    mkdir -p A/G/H           # 这样创建可以一次性创建多个文件夹,不需要一个一个地创建
    
    # 删除文件夹
    rmdir /guo           # 删除根目录下的 guo 文件夹,如果文件夹非空,会无法删除
    rm -r /a             # 删除根目录下的 guo 文件夹,如果文件夹非空,会进行提示
    rm -r -f /a          # 删除根目录下的 guo 文件夹,如果文件夹非空,不会进行提示
    rm -r -f / a         # 这条命令慎用,一旦执行,操作系统就没了。慎用~~~
    
    # 复制文件和目录
    touch f-A            # 创建一个文件
    cp guo /tmp          # cp 是 copy 的意思,命令表示把当前 guo 这文件复制到 tmp 文件夹下
    cp -r guo /tmp       # guo 如果是文件夹,就要用这条命令,是文件,就用上一条命令即可
    cp -v f-A /tmp       # 把文件复制到 tmp 目录,并且显示进度条,去掉 -v 则不显示进度条
    cp -p f-A /tmp       # -p 表示保留原先文件的时间
    cp -a f-A /tmp       # -a 表示保留原先文件的的所有属性。例如:权限、作者、创建时间等等
    
    # 移动和重命名文件和文件夹
    mv f-A f-B           # 把文件 f-A 重命名为 f-B,其实 Linux 底层做的就是一个移动操作
    mv f-A /tmp          # 把文件 f-A 移动到 tmp 文件夹下面
    mv /tmp/f-A /f-C     # 移动操作和重命名操作同时进行,把 tmp 文件夹下的 f-A 文件移动到根目录并重命名为 f-C
    

    1、创建和删除目录

    2、移动和复制目录

    3、通配符知识

    四、文本查看相关命令

    cat file-1                # 查看文件
    head file-1               # 查看文件开头部分,默认 10 行
    head -3 file-1            # 查看文件开头前 3 行内容
    
    tail file-1               # 查看文件结尾部分,默认 10 行
    tail -3 file-1            # 查看文件结尾 3 行内容
    tail -f file-1            # 动态追踪文件,如日志文件
    
    wc file-1                 # 显示结果:行数为13、单词数92、字节数598
    wc -l file-1              # 显示文件的总行数
    more file-1               # 按行显示内容
    less file-1               # 使用 less 可以随意浏览文件,比 more 更强大
    

    五、打包和压缩相关命令

    tar cf /AA.tar /etc          # tar 命令的选项是没有减号的,选项中的 f 代表打包成文件
    ls -l /AA.tar                # 查看文件大小,单位是字节
    ls -lh /AA.tar               # 查看文件大小,单位是兆
    
    # 打包并压缩
    tar czf /AA.tar.gz /etc      # z 代表集成了 gzip 压缩命令,此处代表打包并压缩
    tar cjf /AA.tar.bz2 /etc     # j 代表集成了 bzip2 压缩命令,此处代表打包并压缩,且压缩程度比 gzip 高,耗时也更多
    
    # 解压
    tar xf /AA.tar -C /guo       # 解压 AA.tar ,-C 代表指定解压到某个目录,它的后面就是解压的目的地。如果不写 -C ,那么会报错
    tar zxf /AA.tar.gz -C /guo   # 解压 AA.tar.gz
    tar jxf /AA.tar.bz2 -C /guo  # 解压 AA.tar.bz2
    
    # 小提示:
    # tar.gz 的缩写 tgz , tar.bz2 的缩写 tbz2 。
    # tar xf 也可以解压 tar.gz 和 tar.bz2 等压缩文件。
    

    六、vim 的四种模式

    vi 与 vim 的区别:
    1、多级撤消:在 vi 中,按u只能撤消上次命令,而在 vim 里可以无限制的撤消。 2、易用性:vi 只能运行于 unix 中,而 vim 不仅可以运行于 unix,还可用于 windows、mac 等多操作平台。 3、语法加亮:vim 可以用不同的颜色来加亮你的代码,在 vi 中没有。 4、对 vi 完全兼容:可以把 vim 当成 vi 来使用。

    小结一下: vi 和 vim 都是 Linux 中的编辑器,不同的是 vim 比较高级,可以视为 vi 的升级版本。vi 适用于文本编辑,但是 vim 更适用于写代码。注意事项: 如果不在正常模式,就按 Esc 即可回到正常模式。

    那我们来练习一下,在 Liunx 终端输入 vi ,然后就进入到了 vi 模式:

    在 Liunx 终端输入 vim ,然后也可以进入到了 vim 模式:

    1、vim 命令汇总

    # 正常模式下可进行的操作
    ## 光标移动操作  上下左右键盘也可以移动光标,但是如果是字符终端对文本进行控制,那么可能产生乱码   
    h                  # 光标向左移动
    j                  # 光标向下移动
    k                  # 光标向上移动
    l                  # 光标向右移动
    gg                 # 直接跳转到第一行
    G                  # 跳转到最后一行
    ^                  # 来到光标所在行开头
    $                  # 来到光标所在行结尾
    
    ## 文本复制、剪切、粘贴、撤回、恢复等操作
    yy                   # 复制光标所在位置的一整行,此处复制产生换行
    y$                   # 复制光标所在位置到行末,此处复制不产生换行
    n yy                 # 复制 n 行,n 是数字,起始位置为光标所在位置算作第一行
    n y$                 # 复制 n 行,n 是数字,起始位置为光标所在位置到行末算作第一行
    dd                   # 剪切光标所在一整行,包括换行符
    d$                   # 剪切光标所在一整行,不包括换行符
    p 或 P               # 粘贴操作,直接按 p 即可把复制的内容粘贴到光标位置
    u                    # 撤回操作
    ctrl + r 或 R        # 恢复操作
    x                    # 删除单个字符,即光标所在字符会被删除
    r + 需替换字符        # 替换单个字符,即光标所在字符会被替换成其他字符
    :set nu              # 显示行号 
    n shift + g          # 跳转到指定行,n 代表行数,此操作类似于 Windows 中的 ctrl + g
    
    ## 模式进入操作
    小写 i                 # 进入到插入模式
    大写 I                 # 进入到插入模式
    小写 o                 # 进入到插入模式
    大写 O                 # 进入到插入模式
    小写 a                 # 进入到插入模式
    大写 A                 # 进入到插入模式
    小写 s                 # 进入到插入模式
    大写 S                 # 进入到插入模式
    小写 v                 # 进入到可视模式,选中光标所在的字符,上下左右移动的单位是字符
    大写 V                 # 进入到可视模式,选中光标所在的行,上下移动的单位是行
    冒号 :                 # 进入到命令模式
    esc键                  # 回到正常模式
    ctrl + v               # 可视块,以列为单位,相当于 Windows 中的 alt 键的块,然后插入需要的值,按 esc 即可看到效果
    
    # 命令模式可进行的操作
    ## 保存和退出操作
    :w           # 保存已有文件名的文件
    :wq          # 保存已有文件名的文件并退出
    :x          # 保存已有文件名的文件并退出
    :w /a.txt    # 保存没有文件名的文件,并保存到根目录下的 a.txt
    :q           # 表示退出
    :qa!         # 强制退出且不保存
    :q!          # 表示不保存
    !+linux命令  # 临时执行一条 Linux 命令,例如:!ifconfig,表示临时查看 ip 地址
    
    ## 查找和替换命令
    /+查找内容   # 文本查找,正斜杠后面不要空格,除非你需要查询空格,按小写 n 查找下一个匹配项, 大写 N 查找上一个匹配项
    :s/x/B       # 单个字符替换,把光标所在位置的 x 替换成 B
    :%s/x/B      # 全文替换,把整篇文本每行的第一个 x 替换成 B,如果一行存在多个 x,只会替换第一个
    :%s/x/B/g    # 全文替换,把全文的 x 替换成 B,如果一行存在多个 x,那么全部都会被替换成 B
    3,5/x/B      # 指定范围替换单个匹配字符,每行被找到的第一个 x 会被替换成 B,范围在第 3 行到第 5 行
    3,5/x/B/g    # 指定范围全局替换,第三行到第五行所有匹配字符 x 都会被替换成 B
    
    ## 对 vim 的设置
    :set nu         # 显示行号,单次生效
    :set nonu       # 不显示行号,单次生效
    :set hlsearch   # 高亮显示,单次生效
    :set nohlsearch # 去除高亮显示,单次生效
    
    ## 修改 vim 配置文件,使设置永久生效
    vim /etc/vimrc  # 编辑 vim 配置文件
    :set nu         # 然后到最后一行添加此代码,表示每次使用 vim 编辑文本都会显示行号
    

    2、正常模式

    正常模式下的各种命令操作汇总:

    # 光标移动操作  上下左右键盘也可以移动光标,但是如果是字符终端对文本进行控制,那么可能产生乱码   
    小写 h         # 光标向左移动
    小写 j         # 光标向下移动
    小写 k         # 光标向上移动
    小写 l         # 光标向右移动
    
    # 文本复制、剪切、粘贴、撤回、恢复等操作
    yy               # 复制光标所在位置的一整行,此处复制产生换行
    y$               # 复制光标所在位置到行末,此处复制不产生换行
    n yy             # 复制 n 行,n 是数字,起始位置为光标所在位置算作第一行
    n y$             # 复制 n 行,n 是数字,起始位置为光标所在位置到行末算作第一行
    dd               # 剪切光标所在一整行,包括换行符
    d$               # 剪切光标所在一整行,不包括换行符
    p 或 P           # 粘贴操作,直接按 p 即可把复制的内容粘贴到光标位置
    小写 u           # 撤回操作
    ctrl + r 或 R    # 恢复操作
    x                # 删除单个字符,即光标所在字符会被删除
    r + 需替换字符   # 替换单个字符,即光标所在字符会被替换成其他字符
    :set nu          # 显示行号 
    n shift + g      # 跳转到指定行,n 代表行数,此操作类似于 Windows 中的 ctrl + g
    gg               # 直接跳转到第一行
    大写 G           # 跳转到最后一行
    ^                # 来到光标所在行开头
    $                # 来到光标所在行结尾 
    
    # 模式进入操作
    小写 i         # 进入到插入模式
    大写 I         # 进入到插入模式
    小写 o         # 进入到插入模式
    大写 O         # 进入到插入模式
    小写 a         # 进入到插入模式
    大写 A         # 进入到插入模式
    小写 s         # 进入到插入模式
    大写 S         # 进入到插入模式
    
    冒号 :         # 进入到命令模式
    esc键          # 回到正常模式
    
    小写 v         # 进入到可视模式,选中光标所在的字符,上下左右移动的单位是字符
    大写 V         # 进入到可视模式,选中光标所在的行,上下移动的单位是行
    ctrl + v       # 可视块,以列为单位,相当于 Windows 中的 alt 键的块,然后插入需要的值,按 esc 即可看到效果
    

    3、插入模式

    4、命令模式

    命令模式 也叫做 末行模式 ,即在文件最后一行进行操作。 如下图:

    命令模式相关的命令汇总:

    # 保存和退出操作
    :w                 # 保存已有文件名的文件
    :wq                # 保存已有文件名的文件并退出
    :w /a.txt          # 保存没有文件名的文件,并保存到根目录下的 a.txt
    :q                 # 表示退出
    :qa!               # 强制退出且不保存
    :q!                # 表示不保存
    !+linux命令        # 临时执行一条 Linux 命令,例如:!ifconfig,表示临时查看 ip 地址
    
    ## 查找和替换命令
    /+查找内容         # 文本查找,正斜杠后面不要空格,除非你需要查询空格
                       # 按小写 n 查找下一个匹配项, 大写 N 查找上一个匹配项
    :s/x/B             # 单个字符替换,把光标所在位置的 x 替换成 B
    :%s/x/B            # 全文替换,把整篇文本每行的第一个 x 替换成 B,如果一行存在多个 x,只会替换第一个
    :%s/x/B/g          # 全文替换,把全文的 x 替换成 B,如果一行存在多个 x,那么全部都会被替换成 B
    3,5/x/B            # 指定范围替换单个匹配字符,每行被找到的第一个 x 会被替换成 B,范围在第 3 行到第 5 行
    3,5/x/B/g          # 指定范围全局替换,第三行到第五行所有匹配字符 x 都会被替换成 B
    
    # 对 vim 的设置
    :set nu                 # 显示行号,单次生效
    :set nonu               # 不显示行号,单次生效
    :set hlsearch           # 高亮显示,单次生效
    :set nohlsearch         # 去除高亮显示,单次生效
    
    
    # 修改 vim 配置文件,使设置永久生效
    vim /etc/vimrc          # 编辑 vim 配置文件
    :set nu                 # 然后到最后一行添加此代码,表示每次使用 vim 编辑文本都会显示行号
    

    修改 vim 配置文件,使设置永久生效。 操作如下图:

    5、可视模式

    第三章:Linux 的服务管理

    一、用户和用户组管理

    在 Windows 系统中,一般情况下是一个用户使用当前操作系统。但是在 Liunx 系统中,它是多用户操作系统,所以会有多个用户使用同一个操作系统。这时,我们就要对这些用户进行相应管理了。在 Liunx 系统中,用户分为 root 用户普通用户 。root 用户可以操作系统的一切,而普通用户只能使用被分配的权限, 不能进行危害系统的操作。

    1、用户与用户组相关命令

    useradd Tom                 # 新建 Tom 用户
    id Tom                      # 判断系统是否有这个用户
    passwd Tom                  # 为 Tom 用户设置密码
    passwd root                 # 修改 root 用户密码
        
    userdel Tom                 # 删除 Tom 用户,这样删除的话,用户的家目录会被保存,不会被删除。
                                # 这样子可以防止删除用户的同时不会把数据给删了
    userdel -r Tom              # 彻底删除 Tom 用户,家目录也会被删除
    
    usermod -d /home/a2 a1      # -d 表示修改用户家目录位置。这条命令就是把原来 a1 位置移到了 a2 位置,
                                # 相当于此用户搬了一次家
    chage                       # 对用户的生命周期进行设置
    
    groupadd group01            # 新建 group01 用户组
    usermod -g group01 Tom      # 把 Tom 的用户组改为 group01
    useradd -g group01 Tom      # 新建 Tom 用户并加入到 group01 用户组
    

    2、新建用户

    新建一个用户之后,Linux 系统会做哪些事情呢?首先: 会给用户分配一个家目录,位置在 /home/用户名第二: 用户还会被记录到 etc/passwd 文件当中,如下图。只要包含 Tom 这一行,就说明有这个用户存在。第三: 用户还会被记录到 /etc/shadow 文件当中,这是与用户密码相关的文件。图片如下:

    温馨小提示: 1、如果创建用户时没有指定组,那么系统就会创建和用户同名的组。
    2、root 用户才有权限创建用户,普通用户没有此权限。

    3、删除用户

    # 删除用户
    userdel Tom                    # 删除用户,但是保留了家目录和邮箱命令
    userdel -r Tom                 # 彻底删除用户,清空用户数据
    userdel -f Tom                 # 强制删除用户,但是保留了家目录和邮箱命令
    

    如果使用 userdel Tom 命令删除该用户时,并不能删除该用户的所有信息。此命令只是删除了 /etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow 四个文件里的该账户和组的信息。默认情况下。我们创建了一个用户账号,同时也会创建一个家目录和一个用户邮箱,位置在 /var/spool/mail 目录以用户名命名。

    4、修改用户

    使用 usermod 命令chage 命令 可以修改用户信息、用户的生命周期以及用户密码等等相关操作。如下图:

    # usermod 命令和 chage 命令
    usermod                           # 可用来修改用户帐户的各项设定
    usermod -d /home/Toms tom         # 把 tom 用户的家目录修改为 Toms
    chage                             # 修改帐号和密码的有效期限!
    

    TIPS: 详情参考他人博客

    5、新建用户组

    如果有三个用户,他们需要相同的权限,或者是希望操作相同的文件时,然而我们并不想对每一个用户单独设置,那该怎么办?我们就把他们加入到一个用户组,这样他们就有了相同的权限,也方便我们对一类用户进行管理。

    # 用户组相关命令
    groupadd group02                  # 新建 group02 用户组
    usermod -g group02 user1          # 把 user1 的用户组改为 group02
    useradd -g group02 Lisa           # 新建 Lisa 用户并加入到 group02 用户组
    groupdel group02                  # 删除 group02 用户组
    

    6、用户切换 su 和 sudo

    有的时候我们需要临时将用户身份变一下,该怎么办呢?举个例子:我们想测试一下普通用户对某一个目录是否具有权限,当前用户是 root 用户,那该怎么办?当然,我们可以退出 root 用户,然后登陆该普通用户,但是这样很麻烦。有没有更简单的方法呢?当然有,如下:

    su - user1            # 符号 - 的作用就是切换用户的同时,并把当前运行环境变更为 user1 的环境
    su user1              # 不带减号,不完全切换,环境带不过去,还在 root 目录下
    

    温馨小提示:

    1、root 用户到普通用户,不需要输入密码。
    2、普通用户切换到普通用户,要输入密码。
    3、普通用户到 root 用户,要输入密码。

    有时候,普通用户想使用命令行关机,但是权限不足,需要切换到 root 用户。这样的话,root 用户的密码就暴露了,普通用户可以拿着密码 干点坏事 。那么如何让普通用户关机且不给 root 密码呢?这么做,如下:

    useradd user03       # root 用户模式下新建用户
    shutdown -h 30       # 30 分钟关机
    su - user03          # 切换到普通用户模式
    shutdown -c          # 停止关机操作,此时是 user03 普通用户,会提示权限不足
    
    # 如果我一定要 user03 执行这条命令呢,该怎么办?
    # 1、把 root 用户密码告知 user03 ,但是这样做不安全,万一它拿着密码干坏事呢?
    # 2、使用 sudo 命令,给 user03 设置密码,然后给他分配 停止关机操作的权限,接下来就操作一下吧
    
    # 给 user03 设置密码,此时在 root 用户模式下,只有root 模式才可以对用户进行相关操作
    passwd user03        # 输入自己密码即可,密码是看不到的
    visudo  
    
    # 如果不知道要授予权限的命令位置在哪里,就是用 :!which 相关命令
    :!which shutdown
    
    # 注意:字符终端使用 localhost , 图形终端使用 ALL
    

    7、用户和用户组配置

    # /etc/passwd 用户的配置文件,分为七个字段
    # 第一个字段:用户名称。如:root 用户
    # 第二个字段:是否需要密码 如 X 代表要,不写则不需要,就是登陆的时候以及其他操作不需要密码
    # 第三个字段:用户 uid ,Linux 系统中,不是靠 用户名称识别用户,而是靠用户的 uid 识别。
    #            如果 uid 是 0 的话,那就具有 root 权限了。
    
    # 第四个字段:用户 gid ,用户组相关
    # 第五个字段:这个字段是注释,为空,啥都没有
    # 第六个字段:用户家目录所在位置
    
    # 第七个字段:用户命令解释器。就是当这个用户登陆之后,使用哪个解释器来解释相关命令。
    #            一般都是:/bin/bash ,如果是 /sbin/nologin ,则代表此用户无法登陆
    vim /etc/passwd
    
    # 我们不使用 useradd 新建用户了,来点高级的,如下
    user04:x:1005:1005::/home/user04:/bin/bash
    su - user04        # 使用 user04 登陆系统,发现提示没有家目录,然后命令提示符为:-bash
    
    # /etc/shadow 保存用户和用户密码相关的文件
    # 第一个字段:用户名称,如:root 用户
    # 第二个字段:加密过的密码, 如 $sfdklasjfkjjf$,随便写的,自己可以编辑 shadow 文件看一下就知道了。
    #            即使用户密码相同,显示的也是不同的字符串
    vim /etc/shadow
    
    # /etc/group 用户组相关配置文件
    # 第一个字段:组的名称
    # 第二个字段:是否需要密码
    # 第三个字段:组的 gid ,很重要
    # 第四个字段:其他组设置,一般很少用,如:mail 组下的 postfix 用户。
    #            如果 A 用户 属于 A 组,他也想属于 B 组,那就在 B 组的第四个字段 写上 A,即写用户名称。
    #            这样 A 用户就同时属于 A 主和 B 组了。
    vim /etc/group
    

    vim /etc/passwd 的内容如下:

    vim /etc/shadow 的内容如下:

    vim /etc/group 的内容如下:

    二、文件与目录权限

    1、文件权限的介绍

    drwxr-xr-x. 2 root root    6 4月  22 10:37 桌面
    -rw-------. 1 root root 1486 4月  22 17:56 anaconda-ks.cfg
    -rw-r--r--. 1 root root 1641 4月  22 17:59 initial-setup-ks.cfg
    
    # 分析上面三行前 10 个字符的含义
    # 第一个字符:如果是 d ,则代表这个一个目录,如第一行的,桌面就是一个目录。
    # 第一个字符:如果是 - , 则代表是文件,如第二三行
    # 第 2~4 个字符: 代表创建这个文件的用户所具有的操作权限
    # 第 5~7 个字符: 代表创建这个文件的用户所在的用户组所具有的操作权限
    # 第 8~10 个字符: 代表其他用户所具有的操作权限
    # 解释 r w x 是是什么意思:r 代表可读,w 代表可写,x 代表可执行
    
    # 第一个 root 代表创建这个文件或者文件夹的用户
    # 第二个 root 代表用户当时创建此文件或文件夹所属的用户组
    

    2、文件权限的修改

    mkdir /test               # 方便演示,新建一个目录
    ls -ld /test              # 查看 test 目录的权限。注意:这是 root 用户创建的目录
    # 注意一下: 权限只是针对于非 root 用户,root 用户啥都能干,管你权限不权限
    
    # 改变 test 目录的属主为 user04 用户
    chown user04 /test
    ls -ld /test
    
    # 使用 chown 命令改变 test 目录的属组为 group01
    chown :group01 /test
    ls -ld /test
    
    # 使用 chgrp 命令改变 test 目录的属组为 group02
    chgrp group02 /test
    ls -ld /test
    
    # 修改文件权限操作: chmod u g o a + - =
    cd /test                # 进入到 test 目录
    ls                      # 查看是否有文件。我们还没创建呢,哪来文件,哈哈哈
    touch afile             # 在 test 目录下创建 afile 文件
    ls -l afile             # 查看 afile 的相关权限
    
    chmod u+x afile         # 给属主增加执行权限【就是第 2~4 个字符】,u 代表属主,+ 代表增加,- 代表减少,x 代表执行【前面有介绍】
    chmod g-r afile         # 给属组减少读的权限【就是第 5~7 个字符】,g 代表属组
    chmod o=rwx afile       # 给其他用户设置 rwx 权限【就是第 8~10 个字符】,o 代表其他用户
    ls -l afile             # 查看设置过后的权限,进行对比一下
    chomd a+r afile         # 给所有用户及用户组添加 r 权限,a 代表所有
    
    chmod 446 afile         # 数字设置权限的方式,代表 属主只读-属组只读-其他用户可读写 权限。 r=4 w=2 x=1
    ls -l afile             # 结果:-r--r--rw-. 1 root root 0 5月  15 01:40 afile
    
    touch bfile             # 创建 bfile 文件
    ls                      # 查看它的默认权限 666 - umask = 666 - 022 = 644
    umask                   # 默认权限本来是 666 ,但是要减去 umask 的值,所以是 644 。umask 的值是 0022
    

    TIPS: 使用 CTRL + R 可以查找使用过的命令,非常使用哦!

    3、各个权限的功能

    # 还是以上面的 /test 作为例子
    chmod 777 /test                 # 给所有用户及用户组所有权限。
    ls -ld /test                    # 此刻发现,test 目录有背景颜色,什么情况我也不知道,哈哈哈
    touch cfile                     # 新建 cfile 文件
    ls -l cfile                     # 查看 cfile 文件权限
    chown user1:group01 cfile       # 同时修改 cfile 文件的属主和属组
    ls -l cfile                     # 再次查看 cfile 文件权限
    chmod 400 cfile                 # 只给属主只读权限【为了方便测试,设置为 400 ,减少干扰】
    echo 123 > cfile                # 把 123 显示到 cfile 中。这个操作是先把 cfile 里面的内容先清空,然后写入 123 
    
    # 此时切换到用户 user1 测试权限
    su - user1
    cat /test/cfile                 # 可以读出内容为 123
    echo > 456 /test/cfile          # 报错了,权限不足,无法写入 456。因为 user1 用户对这个文件只有读权限,没有写权限
    exit                            # 退出当前用户,如果需要修改 cfile 其他权限,就要到 root 用户下修改,普通用户没有权限去操作
    
    # 一个权限冲突问题:此时属主没有任何权限,属组具有写的权限,但是属主又在属组中,那么属主是否有写的权限呢?
    # 所以出现了权限冲突。提示:以属主权限设置为准,所以属主没有写的权限,属组中,除了属主之外的用户才有写的权限。
    chmod 020 /test/cfile
    
    # 到此为止,文件权限就说完了,接下来的目录权限原理是一样的,就不演示了,参考上图 x rx wx 自己操作即可。wx 具有删除文件的功能。
    

    4、特殊权限

    特别提示: root 用户 有特权,即使没有权限也可以查看。就是这么拽,哈哈哈!!!

    如何增加特殊权限呢? 看下图:

    三、网络的配置和管理

    1、查看网络配置

    ifconfig                                   # 查看网络状态,root 用户使用
    ifconfig eth0                              # 如果网卡过多,则可以接网卡名查看网卡的信息
    /sbin/ifconfig                             # 查看网络状态,普通用户使用
    vim /etc/default/grub                      # 修改网卡的配置,把网卡的名字变成 eth0 这种格式
    grub2-mkconfig -o /boot/grub2/grub.cfg     # 把修改的网卡配置进行转换,重启后即可生效
    reboot                                     # 重启 Linux 系统,使网卡配置生效
    

    2、修改网络配置

    # 启动和关闭网卡
    ifup eth0                  # 启用网卡
    ifconfig eth0 up           # 启用网卡
    ifdown eth0                # 关闭网卡
    ifconfig eth0 down         # 关闭网卡
    
    # 查看网关
    route -n
    # 为指定主机添加明细路由。表示访问 10.0.0.1 这台主机时使用 10.211.5.1 这个网关
    route add -h 10.0.0.1 gw 10.211.5.1
    # 为指定网段添加明细路由
    route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.211.5.1
    

    3、网络故障排除

    # 抓取任意网卡 80 端口的数据包。-n 表示有域名的话,就解析成 ip 地址
    tcpdump -i any -n port 80
    
    # 抓包。抓取发往 10.0.0.1 主机 80 端口的所有数据包
    tcpdump -i any -n host 10.0.0.1 and port 80
    
    # 把捕获到的数据保存到 tcp.txt 文件,然后再去进行分析。-w 表示保存
    tcpdump -i any -n host 10.0.0.1 and port 80 -w /root/tcp.txt
    
    netstat -ntpl       # 查看监听的端口
    ss -ntpl            # 功能和 netstat 基本一样
    

    4、网络管理和配置文件

    
    

    四、软件包的安装与管理

    
    
    
    
    
    

    五、进程相关内容

    
    
    

    六、内存和磁盘管理

    
    
    

    七、文件系统管理

    
    
    
    Linux
    • 文章作者:GuoShiZhan
    • 创建时间:2021-08-16 11:59:39
    • 更新时间:2021-08-17 16:21:31
    • 版权声明:本文为博主原创文章,未经博主允许不得转载!
    请 在 评 论 区 留 言 哦 ~~~
    1024