• 尚硅谷Linux篇


    学习链接:https://www.bilibili.com/video/BV1dW411M7xL?p=58&vd_source=510ec700814c4e5dc4c4fda8f06c10e8

    csdn csdn csdn csdn csdn


    1. 基础篇

    1.1.基本概念

    1.1.1 名词解释

    Linux 中,万物皆文件

    1.1.2 目录结构
    /bin(/usr/bin, /usr/local/bin): 系统基本命令,拷贝,删除;
    /sbin: 系统管理员使用的系统命令;
    /home: 创建用户的目录;
    /lib: 共享动态链接库;
    /etc: 系统配置文件,比如mysql的my.conf文件;
    /usr: 用户应用程序的目录,类似于program file文件;
    /opt: 主机安装额外软件的目录;
    /usr/local: 安装软件所安装的目录;
    /var: 日志文件之类
    
    
    1.1.3 vi/vim
    -- 复制
    yy
    -- 删除
    dd
    --撤销
    u
    --最首行,尾部
    gg  G
    
    1.1.4 关机&重启命令
    -- 立即关机
    shutdown -h now
    -- 一分钟后关机
    shutdown -h 1
    --现在重启
    shutdown -r now
    --关机
    halt
    reboot
    
    1.1.5 用户管理
    --创建用户
    useradd hyq
    useradd -d /home/hyq hyq
    --指定密码
    passwd hyq
    --删除用户
    userdel hyq
    --查看用户信息
    id root
    --切换用户
    su - hyq
    exit; --回到root用户
    
    --组管理
    groupadd group
    groupdel group
    useradd -g group hyq
    

    1.2 基本指令

    1.2.1文件指令
    ls -a //显示隐藏所有文件目录
    ls -l //以列表显示
    ls -lh //h显示所占容量
    
    touch //创建空文件
    rm -rf //递归强制且强制删除整个文件夹
    
    --查询并分页显示,按空格下一页
     cat test.java | more
    --分页显示文件
     less XXX
    
    --输出重定向,会覆盖内容
    > 
    --追加,在原始内容追加
    >> 
    
    --输出内容
    echo 
    head tail
    
    --创建软连接
    ln -s 源文件或目录 软连接名
    
    --显示日期
    date "+%Y-%m-%d %H:%M:%S"
    --查看日历
    cal
     
     
     --查找文件
     find . -name test.java
     find / -size -20M //-是小于20m,+是大于,不写就是等于
     grep "F" -n -i //-N显示行号 -i忽略大小写
     
     --打包和解压
     gzip
     gunzip
     zip
     unzip
     tar -zcvf a.tar.gz a.txt text.java   /a.txt, text.java/打包成a.tar.gz
     tar -zcvf a.tar.gz a/ 对目录打包
     
     -- 查看所有文件所有者
     ls -alh
     
     --改变用户所在组
     usermod -g root hyq
    
    1.2.2 权限管理
    1.2.2.1 基本概念

    文件类型:

    ​ -:普通类型 d:目录 l:软连接 c:字符设备 b:块文件,硬盘

    -- drwx 表示所有者权限r可读,w可写,x可执行。r=4,w=2,x=1
    -- r-x 表示文件所在组用户的权限rx
    -- r-x 表示文件其他组用户的权限rx
    -- 3:如果是文件,表示硬链接数,是目录,表示该目录下子目录数
    --root root,前一个root表示文件所有者,后一个root标识文件所在组
    
    drwxr-xr-x 3 root       root       4096k Feb 22 15:22 ceshi
    
    -- +增加权限 -减少权限 =赋予权限
    -- u所在者 g所在组 o其他人 a所有人
    chmod u=rwx, g=rx, o=x XXX
    chmod o+w XXX
    chmod 743 XXX
    
    --文件所有者改为新所有者。组不发生变化
    chown hyq a.txt
    chown -R hyq ceshi/  //-R就是这边文件夹下所有文件所有者都修改
    --修改文件所在组
    chgrp root  hyq.txt
    chgrp -R root mydockerfile
    

    文件 --用户--组:可以看到其实都是可以互相变更的,

    image-20220613112951424

    1.2.2.2 权限实战
    --创建组,用户,并设置密码
    [root@VM-8-11-centos ~]# groupadd police
    [root@VM-8-11-centos ~]# groupadd bandit
    [root@VM-8-11-centos ~]# useradd -g police jack
    [root@VM-8-11-centos ~]# useradd -g police jerry
    [root@VM-8-11-centos ~]# useradd -g bandit xh
    [root@VM-8-11-centos ~]# useradd -g bandit xq
    [root@VM-8-11-centos ~]# passwd jack
    Changing password for user jack.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@VM-8-11-centos ~]# passwd jerry
    Changing password for user jerry.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@VM-8-11-centos ~]# passwd xh
    Changing password for user xh.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@VM-8-11-centos ~]# passwd xq
    Changing password for user xq.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@VM-8-11-centos ~]# 
    
    
    -- 新用户创建文件并设置权限
    [jack@VM-8-11-centos ~]$ vim jack.txt
    [jack@VM-8-11-centos ~]$ chmod 640 jack.txt 
    --设置目录权限:x包含了进入目录权限
    [jack@VM-8-11-centos home]$ chmod g=rx jack/
    --改变用户组
    [root@VM-8-11-centos home]# usermod -g police xh
    
    1.2.3 任务调度
    1.2.3.1 基本调度
    crontab -e --写入任务
    crontab -l --列出任务调用列表
    crontab -r --终止任务调度
    service crond restart --重启任务调度
    

    image-20220614102156282

    image-20220614122939199

    1.2.4磁盘分区
    1.2.4.1 分区目前流行方式

    1、mbr分区

    2、gtp分区(流行)

    1.2.4.2 Linux分区

    Linux都源于一个根目录,分区与目录挂载是分开的

    --查看分区与挂载目录
    lsblk 
    
    --查询系统整体磁盘使用情况
    df -h
    
    --查询目录或其子目录下占用情况,不指定就查所有子目录
    du -ach --max-depth=1 
    
    --统计当前目录下文件个数
    [root@VM-8-11-centos ~]# ls -l | grep "^-" | wc -l
    --统计目录个数
    [root@VM-8-11-centos ~]# ls -l | grep "^d" | wc -l
    --统计当前目录及子目录下文件个数
    [root@VM-8-11-centos ~]# ls -lR | grep "^-" | wc -l
    --当前目录与子目录个数
    [root@VM-8-11-centos ~]# ls -lR | grep "^d" | wc -l
    
    
    1.2.5 网络配置
    --固定内部IP
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    
    1.2.6 进程管理
    1.2.6.1 基本概念

    ​ 每个进程对应一个父进程,该父进程名下可以有多个子进程

    1.2.6.2 基本命令
    --用户名    进程id 占用cpu,内存 虚拟内存,物理内存,终端 进程状态(s终止,r运行) 开始时间 占用cpu时间  命令
    [root@VM-8-11-centos ~]# ps -aux
    USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root           1  0.0  0.3 249668  5876 ?        Ss   Mar09  11:00 /usr/lib
    
    ps -ef可以查询ppid,该ppid就是父进程
    
    --踢掉某个用户
    [root@VM-8-11-centos ~]# ps -aux | grep jack
    jack     1556705  0.0  0.3 156976  5608 ?        S    09:44   0:00 sshd: jack@pts/1
    [root@VM-8-11-centos ~]# kill 进程PID
    
    --强制关闭某个进程
    kill -9 进程PID
    
    
    --展示进程树
    pstree -pu //p显示进程id,u显示所属用户
    
    
    1.2.6.3 服务管理

    ​ 服务本身就是进程,叫守护进程,用于监听端口

    --centos7.0之后用systemctl,之前用service
    
    --windows用于监听某个端口,并且可以使用
    telnet 161.189.222.204 22
    
    --查看系统服务
    ls -l /etc/init.d/
    
    1.2.6.4 运行级别

    Linux有7个运行级别

    chkconfig设置运行级别

    image-20220615123948678

    1.2.6.5 监控服务
    --top:和ps类似,不过可以实时查看更新的进程状态
    --当前时间,运行多少天,当前用户数  负载均衡
    --任务数
    --内存容量
    --按u,在输入root可以查看不同用户占用内存情况
    --按k,杀死进程
    --q退出
    
    --默认3秒刷新,可以设置10秒
    top -d 10
    

    image-20220615124635058

    --可查看本机端口被外部哪个地址链接了
     netstat -anp
     -- tcp        0      0 10.0.8.11:22            120.204.231.66:49898    ESTABLISHED 1554247/sshd: root  
    
    
    1.2.6.6 包管理
    rpm -qa
    
    --yum 也是基于rpm上下载管理包的工具
    

    2.大数据篇(略)

    (暂时用不到,先跳过)

    2.1. Shell编程

  • 相关阅读:
    C++头文件保护符和变量的声明定义
    ReactNavtive框架教程(2)
    扩展方法使用
    华为0基础——(练习用)挑7
    HTTP Status 500
    屏蔽DataGridView控件DataError 事件提示的异常信息
    POJ 3630 Phone List Trie题解
    【学习总结】数学-向量叉积
    9.1-9.30推荐文章汇总
    Autolayout环境设置任意个数相等间距排列的按钮的方法
  • 原文地址:https://www.cnblogs.com/meditation5201314/p/16434928.html
Copyright © 2020-2023  润新知