Linux

作者: TheAPICaller | 来源:发表于2020-11-30 09:37 被阅读0次

    Linux

    Vmware创建Linux

    虚拟机三种网络形式的说明

    1 是网关

    255是广播地址

    模式
    桥接模式 LInux可以和其他的系统通信, 但是可能造成IP冲突
    NAT模式 网络地址转换方式, LInux可以访问外网, 不会造成IP冲突
    仅主机模式 你的Linux是一个独立的主机, 不能访问外网

    Linux最基本的三个分区

    /boot Linux启动的引导文件
    swap 当系统内存不够用的时候, 可以用swap暂时替代内存
    / 根分区

    Linux目录结构

    Linux的文件系统是采用的级层式的树状目录结构, 在此结构中的最上层是根目录'/', 然后在此目录下在创建其他的目录

    在Linux世界里, 一切皆为文件

    目录
    /dev 设备, 类似Windows的设备管理器, 把所有的硬件用文件的形式存储
    /media Linux系统会自动识别一些设备, 例如U盘, 光驱等等, 当识别后, linux会把识别的设备挂载到这个目录下
    /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的, 我们可以将外部的存储挂载在/mnt/上, 然后进入该目录就可以查看内容了
    /bin 是Binary的缩写, 这个目录存放着最经常使用的命令
    /sbin s就是Super User的意思, 这里存放的是系统管理员使用的系统管理程序
    /home 存放普通用户的主目录, 在Linux中每个用户都有自己一个自己的目录, 一般该目录名是以用户的账号命名的
    /root 该目录为系统管理员, 也称为超级权限者的用户目录
    /lib 系统开机所需要最基本的动态连接共享库, 其作用类似于Windows里面的DLL文件, 几乎所有的应用程序都需要用到这些共享库
    /lost+found 这个目录一般情况下是空的, 当系统非法关机后, 这里就存放了一些文件
    /etc 所有的系统管理所需要的配置文件和子目录
    /usr 这是一个非常重要的目录, 用户的很多应用程序和文件都放在这里目录下, 类似于windows下的program files目录
    /boot 存放的是启动Linux目录使用的一些核心文件, 包括一些链接文件以及镜像文件
    /proc 这个目录是一个虚拟的目录, 它是系统内存的映射, 访问这个目录来获取系统信息(别动)
    /srv service缩写, 该目录放一些服务启动之后需要提取数据(别动)
    /sys 这是LInux2.6内核的一个很大变化, 该目录下安装了2.6内核中新出的一个文件系统sysfs(别动)
    /tmp 这个目录是用来存放一些临时文件的
    /opt 这是给主机额外安装软件所摆放的目录, 如Oracle数据库就可放到该目录下, 默认为空
    /usr/local 这是另一个给主机安装软件的安装目录, 一般是通过编译源码方式安装的程序
    /var 这个目录中存放着不断扩充的东西, 习惯将经常被修改的目录放在这个目录下, 包括各种日志文件
    /selinux selinux是一种安全子系统, 它能控制程序只能访问特定文件
    • linux的目录中有且只有一个根目录
    • linux的各个目录存放的内容是规划好的, 不用乱放文件
    • linux是以文件的形式管理我们的设备, 因此linux系统, 一切皆为文件

    Linux工具连接

    service sshd status

    查看sshd是否开启

    如果需要xshell连接LInux系统, 需要一个前提就是Linux启动了SSHD服务, 该服务会监听22号端口, 一个电脑最多65535个端口

    Linux的Vim和Vi编辑器

    所有的Linux系统都会内建Vi编辑器

    Vim具有程序编辑的能力, 可以看做是Vi的增强版本, 可以主动的以自提颜色辨别语法的正确性, 方便程序设计, 代码补全, 编译及错误跳转等

    Vim和Vi的三种模式

    • 正常模式(默认模式)
      • vim打开一个文档就进入正常模式了
    • 插入模式, 编辑模式
      • 按下i, I, o, O, a A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按I即可
    • 命令行模式
      • 可以提供你相关的命令, 完成读取, 存盘, 替换, 你开VIM, 显示行号等动作
    行为
    :!q 打开做了修改, 不想保存退出
    :q 没有做修改, 退出
    :wq 保存并退出

    设置永久显示行号

    /etc/vimrc  是系统范围的初始化配置
    ~/.vimrc  个人的vim初始化位置
    vim ~/.vimrc 
    set number 或者 set nu
    

    如果你已经进行了恢复,请删除交换文件 ".HelloWorld.java.swp"

    vim -r 显示交换文件

    rm 文件

    Linux开机, 重启, 用户登录注销

    关机&重启命令

    • shutdown
      • shutdown -h now: 表示立即关机
      • shutdown -h 1: 表示1分钟后关机
      • shutdown -r now: 立即重启
    • halt
      • 直接使用, 效果等价于关机
    • reboot
      • 就是重启系统
    • sync
      • 把内存的数据同步到磁盘
    • **注意点: ** 关机之前一定要执行sync命令, 把没有保存的数据保存的磁盘上

    用户的登录和注销

    基本介绍

    • 登录时尽量少用root账号登录, 因为它是系统管理员, 最大的权限, 避免操作失误, 可以利用普通用户登录, 登录后再用 su -用户名命令切换成系统管理员身份
    • 在提示符舒服logout即可注销用户
      • 注销指令在图形运行级无效, 在运行级别3下有效

    用户管理

    基本介绍

    Linux系统是一个多用户用任务的操作系统, 任何一个要使用系统资源的用户, 都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统

    LInux用户需要至少属于一个组

    添加账号
    useradd [选项] 用户名
    

    添加用户时直接加上组

    useradd -g 用户组 用户名
    
    修改密码
    passwd [选项] 用户名
    
    删除用户
    userdel [选项] 用户名
    
    • 删除用户, 保留home目录

      • userdel 用户名
        
    • 删除用户, 不保留home目录

      • userdel -r 用户名
        
    查询用户信息
    id [选项] 用户名
    
    切换用户
    su [选项] 用户名
    
    exit 返回上一个用户
    
    查看当前用户/登录用户
    whoami/who am I
    

    细节说明:

    • 当创建创建用户成功, 会自动创建和用户同名的家目录
    • 也可以通过useradd -d 指定目录, 新的用户名, 给新创建的用户指定家目录, 在指定目录的时候, 不要事先创建起来
    • 如果没有指定组, 就会创建跟用户名相同的组, 并把用户放进这个组里面
    • 一般来讲不会删除用户的/home目录

    用户组

    基本介绍

    类似于角色, 系统可以对有共性的多个用户进行统一的管理

    常用命令

    创建组
    groupadd [选项] 组名
    
    删除组
    groupdel [选项] 组名
    
    修改用户组
    usermod -g 用户组 用户名
    
    usermod -d 目录名 用户名 改变该用户登录的初始目录
    

    用户配置文件

    文件目录
    /etc/passwd 用户配置文件(用户信息)
    /etc/group 组配置信息(组信息)
    /etc/shadow 口令配置文件(密码和登录信息, 是加密)
    /etc/passwd
    • 用户配置文件, 记录用户的各种信息
    • 每行含义: 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
    /etc/shadow
    • 口令配置文件
    • 每行的含义: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    /etc/group文件
    • 组(group)的配置文件: 记录Linux包含的组的信息
    • 每行含义: 组名:口令:组标识号:组内用户列表
    • 一般来说组内用户列表是看不到的

    Linux常用命令

    运行级别
    0 关机
    1 单用户级别, 找回密码的时候有用
    2 多用户无网络服务
    3 多用户有网络服务
    4 保留运行级别
    5 图形化运行级别
    6 重启

    常用的运行级别是3和5, 要修改默认的运行级别可改文件

    /etc/inittab的id:5:initdefault:这一行的数字

    切换运行级别
    init[0123456]
    

    CentOS8

    1. systemctl get-clefault

      查看默认运行级别

    2. systemctl isolate multi-user.target

      切换到字符界面

    3. systemctl isolate graphical.target

      切换到 图形化界面

    4. systemctl set-default multi-user.target

      设置默认运行级别 3 为 字符

    5. systemctl set-default graphical.target

      设置默认运行级别 5 为 图形化

    找回root密码

    如何找回root密码

    进入到单用户模式, 然后修改root密码, 因为进入单用户模式, root不需要密码就可以登录

    开机 在引导时输入回车键, 进入设置页面, 设置引导运行的级别

    进入单用户模式, 然后用passwd修改密码

    帮助指令

    当我们 某个指令不熟悉的时候, 我们可以使用Linux提供的帮助指令来了解这个指令的使用方法

    基本语法
    man[命令或配置文件] (功能描述, 获得帮助信息)
    
    help 命令(功能描述, 获取shell内置命令的帮助信息)
    

    文件目录类指令

    指令 功能描述
    pwd 显示当前工作目录的绝对路径
    ls 查看当前目录的所有内容
    cd 切换到指令目录
    touch 创建空文件
    cp 拷贝文件到指定目录
    cat 只能浏览文件, 而不能修改文件, 为了浏览方便, 一般会带上管道命令
    more 是一个基于VI编辑器的文本过滤器, 以全屏幕的方式按页显示文本文件的内容
    less 用来分屏查看文件内容, 它的功能与more指令类似
    > 输出重定向, 覆盖写
    >> 追加
    echo 输出内容到控制台
    head 用于显示文件的开头部分内容, 默认情况下显示文件的前10行内容
    tail 用于输出文件中尾部的内容, 默认情况下显示文件的后10行内容
    ln 软连接, 类似于windows里面的快捷方式, 主要存放了链接其他文件的路径
    history 查看已经执行的历史命令, 也可以执行历史命令
    date 显示当前日期
    cal 查看日历
    pwd指令

    基本语法

    • pwd(功能描述, 显示当前工作目录的绝对路径)
    ls指令

    基本语法

    • ls [选项] [目标或是文件]
      

    常用选项

    • -s: 显示当前目录所有的文件和目录, 包括隐藏的
    • -l: 以列表的方式显示信息
    cd指令

    基本语法

    cd [参数] 切换到指令目录
    

    常用参数

    绝对路径和相对路径

    绝对路径: /home即从根目录开始定位

    相对路径: ../home, 从当前工作目录开始定位到需要的目录去

    cd ~ 或者cd :  回到自己的家目录  (CentOS8里面 直接cd就可以回到home)
    
    cd .. 回到当前目录的上一级目录
    
    touch指令

    touch指令创建空文件

    基本语法

    touch 文件名1 文件名2...
    
    cp指令

    拷贝文件到指定目录

    基本语法

    cp [选项] source dest
    

    常用选项

    cp -r source dest  递归复制整个文件夹
    

    使用细节

    强制覆盖不提示的方法:

    \cp
    
    cat指令

    查看文件内容

    只能浏览文件, 而不能修改文件, 为了浏览方便, 一般会带上管道命令 | more

    基本语法

    cat [选项] 要查看的文件
    

    常用选项

    cat -n 要查看的文件   显示行号查看
    
    cat -n 要查看的文件 | more   分页查看文件内容
    
    more命令

    是一个基于VI编辑器的文本过滤器, 它以全屏幕的方式按页显示文本文件的内容

    基本语法

    more 要查看的文件
    
    less指令

    用来分屏查看文件内容, 它的功能与more指令类似, 但是比more指令更加强大, 支持各种显示终端. less指令在显示文件内容时, 并不是一次将整个文件加载之后显示, 而是根据显示需要加载内容, 对于显示大型文件具有较高的效率

    基本语法

    less 要查看的文件
    
    > 命令

    输出重定向

    基本语法

    ls -l > 文件  列表的内容写入文件a.txt中, 覆盖写
    
    ls -al > 文件    列表的内容追加到文件aa.txt的末尾
    
    cat 文件1 > 文件2    将文件1的内容覆盖到文件2
    
    echo "内容" > 文件
    
    >> 命令

    追加

    基本语法

    ls -l >> 文件 列表的内容写入文件a.txt中, 覆盖写
    
    ls -al >> 文件    列表的内容追加到文件aa.txt的末尾
    
    cat 文件1 >> 文件2    将文件1的内容覆盖到文件2
    
    echo "内容" >> 文件
    
    echo指令

    输出内容到控制台

    基本语法

    echo [选项] [输出内容]
    

    应用

    输出环境变量

    echo $PATH
    
    head指令

    head用于显示文件的开头部分内容, 默认情况下head指令显示文件的前10行内容

    基本语法

    head 文件  查看文件头10行的内容
    
    head -n 5 文件   查看文件头5行的内容, 5可以是任意行数
    

    应用

    head /etc/profile  的前面5行代码
    
    tail指令

    用于输出文件中尾部的内容, 默认情况下tail指令显示文件的后10行内容

    基本语法

    tail 文件    查看文件后10行的内容
    
    tail -n 5 文件   查看文件后5行的内容, 5可以是任意行数
    
    tail -f 文件   实时追踪该文档的所有更新
    
    ln指令

    基本语法

    ln -s [原文件或目录][软链接名]   给原文件创建一个软链接
    
    rm -rf [软链接名]   删除软链接名, 后面不要带/, 会把软链接原有的内容删掉
    

    软链接是存放的另一个文件的路径

    硬链接是以文件的副本的形式存在

    history指令

    查看已经执行过的历史命令

    基本语法

    history  查看已经执行过的历史命令
    
    history  查看最近使用过的10个命令
    
    !编号     执行编号为多少的指令
    

    时间日期类

    date指令

    显示当前日期

    基本语法

    date         显示当前时间
    
    date  "+%Y"    显示当前年份
    
    date "+%m"    显示当前月份
    
    date "+%d"   显示当前是那一天
    
    date "+%Y-%m-%d %H:%M:%S"  显示年月日时分秒
    

    操作

    设置日期

    基本语法

    date -s "字符串时间"
    
    date -s "2020-11-11 11:22:22"    设置系统当前时间
    
    cal指令

    基本语法

    cal [选项]     不加选项, 显示本月日历
    
    cal 年份       显示一个年份的日历
    

    搜索查询类

    find指令

    find指令将从指定目录向下递归地遍历各个子目录, 将满足条件的文件或者目录显示在终端

    基本语法

    find [搜索范围] [选项] 文件名
    

    选项说明

    选项 功能
    -name<查询方式> 按照指定的文件名查找模式查找文件
    -user<用户名> 查找属于指定用户名所有文件
    -size<文件大小> 按照指定的文件大小查找文件

    应用实例

    按文件名: 根据名称查找/home目录下的hello.txt文件

    find /home -name hello.txt
    

    按拥有者: 查找/opt目录下, 用户名称为root的文件

    find /opt -user root
    

    查找整个linux系统下大于20M的文件(+n大于 -n小于 n等于)

    find / -szie +20M   (kb要用小写的k)
    

    查询 / 目录下, 所有.txt的文件

    find / -name *.txt
    
    locate指令

    locate指令可以快速定位文件路径. locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件. locate指令无需遍历整个文件系统. 查询速度较快, 为了保证查询结果的精准度, 管理员必须定期更新locate时刻

    特别说明: 由于locate指令基于数据库进行查询, 所以第一次运行前, 必须使用updatedb指令创建locate数据库

    updatedb  创建后者更新locate数据库
    

    基本用法

    locate 搜索文件
    
    grep指令

    过滤查找

    基本语法

    grep [选项] 查找内容 源文件
    
    选项 功能
    -n 显示匹配行及行号
    -i 忽略字母大小写

    实例:

    请在hello.txt文件中, 查找yes所在的行, 并显示行号

    grep -n yes /home/hello.txt
    cat hello.txt | grep -n yes
    cat hello.txt | grep -ni yes
    
    | 指令

    表示将前一个命令的处理结果输出传递给后面的命令处理

    压缩和解压类指令

    gzip/gunzip指令

    用于解压缩文件

    基本语法

    gzip 文件    压缩文件, 只能将文件压缩为*.gz文件=
    
    gunzip 文件.gz     解压缩文件命令
    

    细节说明

    当我们吧使用gzip对文件进行压缩后, 不会保留原来的文件, gunzip也一样

    zip/unzip指令

    基本语法

    zip [选项] XXX.zip 将要压缩的内容    压缩文件和目录的命令
    
    zip -r XXX.zip 将要压缩的内容      递归压缩, 即压缩目录
    
    unzip [选项] XXX.zip   解压缩文件
    
    unzip -d<目录>  XXX.zip 指定解压后的文件存放目录
    
    tar指令

    tar指令是打包指令, 最后打包的文件是.tar.gz的文件

    基本语法

    tar [选项] XXX.tar.gz 打包内容  打包目录, 压缩后的文件格式.tar.gz
    
    选项 功能
    -c 产生tar打包文件
    -v 显示详情信息
    -f 指定压缩后的文件名
    -z 打包同时压缩
    -x 解压.tar文件

    压缩多个文件

    tar -zcvf a.tar.gz hello.txt hello2.txt
    

    将/home的文件夹, 压缩成myhome.tar.gz

    tar -zcvf myhome.tar.gz /home/*
    

    将a.tar.gz 解压到当前目录

    tar -zxvf myhome.tar.gz
    

    将myhome.tar.gz 解压到/opt/tmp2目录下

    tar -zxvf myhome.tar.gz -C /opt/tmp2/
    

    指定解压的目录事先要存在

    Linux组管理

    Linux组基本介绍

    在Linux中的每个用户必须属于一个族, 不能独立于组外, 在LInux中的每个文件的所有者, 所在组, 其他组的概念

    • 所有者
    • 所在组
    • 其他组
    • 改变用户所在的组

    文件/目录的所有者

    一般为文件的创建者, 谁创建了该文件, 就自然的成为该文件的所有者

    其他组

    除文件的所有者和所在组的用户外, 系统的其他用户都是文件的其他组

    查看文件的所有者

    ls -ahl
    

    修改文件所有者

    chown 用户名 文件名
    

    修改文件所在的组

    chgrp 组名 文件名
    

    修改文件的所有者和所有组

    chown newowner:newgroup file
    

    如果是目录,则使其下所有的子文件或目录递归生效

    chown -R newowner:newgroup file 
    

    Linux权限管理

    ls -l详解

    drwx------.  3 markerccc markerccc  78 11月 29 13:10 markerccc
    

    0-9位说明

    • 第0位确定文件类型(d, -, l, c, b)

      • 文件类型 内容
        - 普通文件
        d 目录
        c 字符设备(键盘, 鼠标)
        b 块文件(硬盘)
    • 第1-3位确定所有者 (该文件的所有者) 拥有该文件的权限 –User

      • 权限 内容
        r
        w
        x 执行
        - 没有权限
    • 第4-6位确定所属的组(同用户的组) 拥有该文件的权限 –Group

      • 内容
        r-- 不与该文件拥有者同组的其他用户的权限是读不能写和执行
        rwx 文件拥有者的权限是读, 写和执行
        rw- 与文件拥有者统一组的用户的权限是读, 但是不能执行
    • 第7-9位确定其他用户拥有该文件的权限 –Other

      • 其他组 内容
        r-- 不与该文件拥有者同组的其他用户的权限是读不能写和执行
        rwx 文件拥有者的权限是读, 写和执行
        rw- 与文件拥有者统一组的用户的权限是读, 但是不能执行

    数字3

    类型 含义
    文件 如果是文件表示硬链接
    目录 表示该目录的子目录个数

    数字78

    表示文件大小, 如果是目录, 统一是4096 (CentOS6)

    时间

    表示文件的最后的修改时间

    rwx权限详解

    文件

    权限 内容
    [r] 表示可读(read), 可以读取, 查看
    [w] 表示可写(write), 可以修改, 但是不代表可以删除该文件, 删除一个文件的前提条件是对该文件所在目录有写权限, 才能删除该文件
    [x] 代表执行[execute]: 可以被执行
    目录
    权限 内容
    [r] 代表可读(read),可以读取, ls查看目录内容
    [w] 代表可写(write): 可以修改, 目录内创建+删除+重命名目录
    [x] 代表可执行(execute): 可以进入目录

    可以用数字表示为

    权限 数字
    r 4
    w 2
    x 1

    因此rwx=4+2+1=7

    文件类型 属主权限 属主权限 属主权限 属组权限 属组权限 属组权限 其他用户权限 其他用户权限 其他用户权限
    0 1 2 3 4 5 6 7 8 9
    d r w x r - x r - x
    目录文件 执行 执行 执行

    修改权限

    chmod指令

    通过chmod指令, 可以修改文件或者目录的权限

    第一种方式
    变更 内容
    + 增加权限
    - 去掉权限
    = 赋予权限
    选项 内容
    u 所有者
    g 所有组
    o 其他人
    a 所有人

    基本语法

    chmod u=rwx,g=rx,o=x 文件目录名  
    
    chmod o+w 文件目录名         给这个文件其他的用户增加一个写的权限
    
    chmod a-x 文件目录名         给这个文件所有用人减掉一个执行的权限
    

    案例

    给abc文件的所有者读写执行的权限, 给所在组读执行的权限, 给其他组读执行的权限

    chmod u=rwx,g=rx,o=rx abc
    

    给abc文件的所有者去除执行权限, 增加组写的权限

    chmod u-x,g+w abc
    

    给abc文件的所有用户添加读的权限

    chomd a+r abc
    
    第二种方式

    通过数字变更权限

    chmod u=rwx,g=rx,o=x 文件目录名
    chmod 751 文件目录名
    

    相关文章

      网友评论

          本文标题:Linux

          本文链接:https://www.haomeiwen.com/subject/mfqrwktx.html