Linux_韩老师

52-X

crond快速入门 #

  • 使用命令 crontab -e 创建一个定时任务

    */1 * * * * ls -l /etc/ > /tmp/to.txt
    
  • 特殊符号 ,代表不连续 -破折号 表示连续 ly-20241212142139460

  • 其他 ly-20241212142139656

  • 定时调用脚本

    • 编辑脚本 my.sh

      date >> /home/mycal
      date >> /home/mycal
      
    • 给脚本赋予x权限

      chmod u+x my.sh
      
    • crontab -e

      */1 * * * * my.sh
      
    • 数据库备份 ly-20241212142139724

    • crontab -r 删除

    • crontab -l 列出

    • crontab -e 编辑任务

  • atd 是否在运行 yum install -y atd systemctl start atd

  • job队列 ly-20241212142139792

    ...

linux_韩老师_40-51

组介绍 #

  • 每个用户必定属于某个组
  • 每个文件有几个概念:所有者、所在组、其他组 tom创建了hello.txt,则所有者为tom,默认所在组为tom组 除了所在组,就是其他组
  • ls -ahl (h更友好,a隐藏,l列表)

所有者 #

  • 使用chown root helo.java 修改,效果如下 ly-20241212142138913

所在组修改 #

  • 组的创建 groupadd monster
  • 创建一个用户并让他属于该组 useradd -g monster fox
  • 注意逻辑,此时使用fox创建文件 passwd fox 给fox创建密码
  • 如图,创建一个文件 ly-20241212142139110
  • 使用chgrp fruit orange.txt 修改文件的所在组 ly-20241212142139179
  • 改变某个用户所在组 usermod -g fruit fox ly-20241212142139244
  • 使用 cat /etc/group 查看所有的组
  • 当一个用户属于多个组的时候,groups会出现多个组名

rwx权限 #

rwxrwxrwx 第一列有十位,第0位确认文件类型 -普通文件,l是链接;d是目录;c是字符设备文件、鼠标、键盘;b块设备 1-3表示文件所有者拥有的权限;4-6是文件所在组所拥有的权限,7-9 其他组所拥有的权限

  • rwx作用到文件,r代表可读可查看,w代表可修改(如果是删除权限,则必须在该文件所在的目录有写权限,才能删除),x代表可执行
  • rwx作用到目录,r表示可以读取(ls可查看目录内容),w表示可写(可以在目录内创建、删除、重命名目录),x表示可以进入该目录
  • rwx分别用数字表示,4,2,1。当拥有所有权限,则为7
  • ly-20241212142139311
    • 最后面的数字,代表连接数(或者子目录数)
    • 1213 文件大小(字节),如果是文件夹则显示4096
    • 最后abc表示文件名,蓝色表示是目录

修改权限 #

  • chmod 修改权限,u:所有者,g:所有组,o:其他人,a 所有(ugo总和)
  • chmod u=rwx,g=rw,o=x 文件/目录名 这里等号表示直接给权限
  • chmod o+w 文件/目录名 这里加表示+权限
  • chmod a-x 文件/目录名
  • chmod u=rwx,g=rx,o=rx abc 给文件添加执行权限(会变成绿色的)
  • 使用数字
    • 将abc.txt文件权限修改成rwxr-xr-x使用数字实现 chmod 755 abc

修改所有者和所在组 #

  • chown tom abc #修改文件所有者为tom
  • chown -R tom abc #修改文件夹及其所有子目录所有者为tom
  • chgrp -R fruit kkk #修改文件夹所在组为fruit

权限管理应用实例 #

  • 警察和土匪的游戏

    ...

linux_韩老师_28-39

文件目录 #

  • 用来定位绝对路径或相对路径 cd ~ 用来定位家目录 cd .. 返回上一级 cd - 返回上一次目录

  • mkdir 用于创建目录 mkdir -p hello/l1/l2 多级目录创建

  • recursion 递归 rm -rf 要删除的目录 #递归删除

  • 使用cp进行复制,加上 -r 进行递归复制

  • rm 删除某个文件(带提示)

    • rm -f 删除文件(不带提示)
    • rm -rf 强制删除递归文件(夹)
  • mv 用来重命名(移动到同一目录下)、(或者移动文件)

  • 注意,下面的命令,是将hello移动到hello2下,并改名为a(而不是hello2下的a目录) mv Hello.java hello2/a

    • mv Hello.java hello2/a/ 移动到hello2下的a目录下(最后有一个斜杠)
  • 移动目录

    • mv hello2 hello1/AB 或者 mv hello2/ hello1/AB

      或者 mv hello2/ hello1/AB/

      会把整个hello2文件夹(包括hello2)移动到AB下

    • 同样是上面的指令,如果AB不存在,那么就会将hello2移动到hello1下,并将hello2文件夹,改名为AB

  • cat 指令

    • cat -p /etc/profile 浏览并显示文件
    • 管道命令 cat -p /etc/profile | more 把前面的结果再交给more处理 (输入enter查看下一行,空格查看下一页)
  • less指令

    ...

linux_韩老师_21-33

用户管理 #

  • 使用ssh root@192.168.200.201进行服务器连接 ly-20241212142135612

  • xshell中 ctr+shift+r 用来重新连接

  • 用户解释图 ly-20241212142135812

  • 添加一个用户milan,会自动创建该用户的家目录milan

    • 当登录该用户时,会自动切换到家目录下 ly-20241212142135882
  • 指定家目录 ly-20241212142135954

  • 指定密码 ly-20241212142136024

  • 用milan登录,自动切换到/home/milan pwd:显示当前用户所在的目录

    ly-20241212142136094

  • 用户删除

    • 删除用户但保留家目录
      • 需要用超级管理员才能删除 ly-20241212142136163 使用su -u root切换到超级管理员
      • 先logout然后再删除 ly-20241212142136235
    • 删除用户及家目录 userdel -r milan
    • 建议保留家目录
  • 查询root用户信息

    • 使用id xx 查询 ly-20241212142136305
  • 切换用户 su - xx

    • 从权限高切换到权限低的用户不需要密码;反之需要 ly-20241212142136377
    • 使用logout(exit也行),从root用户回到jack
  • 查看当前用户 who am i ly-20241212142136445 即使切换了用户,返回的还是root(第一次登录时的用户) ly-20241212142136517

  • 用户组(角色)

    • 增加、删除组

      groupadd wudang
      groupdel wudang
      

      如果添加用户的时候没有指定组,那么会创建一个跟用户名一样的名字的组 ly-20241212142136586 id是1002,组为king

      ly-20241212142136655

    • 添加用户zwj,添加组wudang,并将zwj添加到wudang组里面

      groupadd wudang
      useradd -g wudang zwj
      

      ly-20241212142136719

      ...

linux_韩老师_12-20

目录结构 #

  • 目录结构很重要

    • windows下 ly-20241212142133607

    • linux下,从根目录开始分支 /,/root (root用户),/home (创建的用户的目录),/bin(常用的指令),/etc(环境配置)

      ly-20241212142133807

    • 在linux世界里,一切皆文件

      • cpu被映射成文件

        ly-20241212142133880

      • 硬盘 ly-20241212142133952

  • 具体的目录结构

    • /bin 常用,binary的缩写,存放常用的命令 (/usr/bin、/usr/local/bin) ly-20241212142134025

    • /sbin (/usr/sbin、/usr/local/sbin) SuperUser,存放的是系统管理员使用的系统管理程序

    • /home 存放普通用户的主目录

      useradd jack
      
      • 之后看该目录 ly-20241212142134097
      • 删掉 userdel -r jack 目录消失
    • /root 该目录为系统管理员,也称超级管理员的用户的主目录

    • /lib 系统开机所需要的最基本的动态连接共享库,其作用类似于windows里的DLL,几乎所有的应用程序都需要用到这些共享库

    • lost+found 一般为空,非法关机后会存放文件

    • /etc 系统管理所需要的配置文件和子目录,比如mysql的my.conf

    • /usr 用户的应用程序和文件,类似windows的program files

    • /boot 启动Linux时使用的核心文件(破坏则无法启动)

    • /proc (不能动) 虚拟目录,系统内存的映射,访问这个目录获取系统信息

    • /srv (不能动) service的缩写,存放服务启动之后需要提取的数据

    • /sys (不能动) 安装了2.6内核中新出现的文件系统 sysfs

    • /tmp 这个目录用来存放一些临时文件

    • /dev 类似windows设备管理器,将硬件映射成文件

    • /media linux系统会自动识别一些设备,u盘、光驱,将识别的设备映射到该目录下

    • /mnt 为了让用户挂载别的文件系统,比如将外部的存储挂载到该目录 ly-20241212142134167 ly-20241212142134238

      ...

linux_韩老师_07-11

网络连接 #

  • 网络连接的三种模式 同一个教室的三个主机 ly-20241212142132441 此时三个同学可以正常通讯
    • 桥接模式 ly-20241212142132642 这是张三的虚拟机和外部互通;但是如果这样设置,ip会不够用;
    • NAT模式 ly-20241212142132718 如图,虚拟机可以跟虚拟的网卡(192.168.100.99)互通,且通过这个虚拟网卡,及(192.168.0.50代理),与外界(192.168.0.X)互通 NAT模式,网络地址转换模式,虚拟系统和外部系统通讯,不造成IP冲突 ly-20241212142132796 注意,这里外部其他主机(除0.50和100.99)是访问不到100.88的
    • 主机模式:独立的系统

虚拟机克隆 #

  • 方式1,直接拷贝整个文件夹 ly-20241212142132865
  • 方式2,使用VMWare 克隆前先把克隆目标关闭 克隆虚拟机当前状态–创建完整克隆

虚拟机快照 #

  • 为什么需要虚拟机快照 ly-20241212142132937

  • 快照a ly-20241212142133013 之后创建了文件夹hello 然后拍摄快照b 之后创建了文件夹hello2 然后拍摄快照c

  • 目前

  • 回到快照A ly-20241212142133231 之后会重启,效果(两个文件夹都没有了)

  • 如果恢复到B,然后再创建一个快照,就会变成 ly-20241212142133305

虚拟机迁移 #

  • 直接剪切、删除,即可 ly-20241212142133375

vmtools工具 #

  • 如下步骤,注意,这里只是在有界面的情况下进行安装 ly-20241212142133446
  • 安装完毕后
    • 在vm上面设置 ly-20241212142133522
    • 共享文件夹在linux中的路径 /mnt/hgfs/myshare

linux_韩老师_01-06

基础介绍 #

  • 本套课程内容
    • 基础篇: linux入门、vm和Linux的安装、linux目录结构
    • 实操篇
      • 远程登录(xshell,xftp)、实用指令、进程管理、用户管理
      • vi和vim编辑器、定时任务调度、RPM和YUM
      • 开机、重启和用户登录注销、磁盘分区及挂载、网络配置
  • linux使用的地方
    • 在linux下开发项目(需要把javaee项目部署到linux下运行)
    • linux运维工程师(服务器规划、优化、监控等)
    • linux嵌入式工程师(linux下驱动开发[c,c++])
  • linux应用领域
    • 个人桌面
    • 服务器(免费稳定高效)
    • 嵌入式领域(对软件裁剪,内核最小可达几百kb等)

linux介绍 #

  • linux是一个开源免费操作系统
  • linux吉祥物
    tux(/tu’ks/唾可si),没找到音标,将就一下
  • linux之父,linus,也是git的创作者
    主要发行版:Ubuntu、RedHat,Centos,Debian等
    RedHat和Centos使用同样的源码,但是RedHat收费
  • Linux和Unix的关系
    unix也是一个操作系统,贝尔实验室。做一个多用户分时操作系统, multics,但是没完成。其中一个后来在这基础上,完成的操作系统为unix (原本是B语言写的),后面和另一个人用unix用c语言改写了。
    unix源码是公开的,后面商业公司拿来包装做成自己的系统, 后面有个人提倡自由时代用户应该对源码享有读写权利而非垄断
    后面RichardStallman发起GNU计划(开源计划),Linus参加该计划,并共享出linux内核,于是大家在此基础上开发出各种软件。linux又称GNU/linux
  • Linux和Unix关系

VMWare安装Centos7.6 #

在windows中安装Linux系统

  • VM和Linux系统在pc中的关系

  • 安装过程中,网络模式使用NAT模式

  • 选择最小安装,且选择CompatibilityLibraries和DevelopmentTools

  • linux分区
    一般分为三个

    一般boot1G,swap分区一般跟内存大小一致,这里是2G,所以根分区就是剩下的,也就是20-1-2=17G
    如图,boot,/,swap都是标准分区。且boot和/是ext4的文件格式,swap是swap的文件格式

  • 修改主机名

  • 修改密码及增加除root外的普通用户

  • 修改网络为固定ip(NAT模式下)

    • 先在VM里面把子网ip改了,这里改成 192.168.200.0
    • 然后改网关为192.168.200.200
    • 使用yum install -y vim 安装文本编辑工具
    • 最后在linux中改配置文件
      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      
    • 其中先修改BOOTPROTO=“static”
    • 然后设置ip地址、网关和DNS, 下面是添加到上面的ifcfg-ens33后面,不是直接执行代码
      IPADDR=192.168.200.200
      GATEWAY=192.168.200.2
      DNS1=192.168.200.2
      
    • 使用命令重启网络
      service network restart 
      # 或者直接重启电脑 reboot
      
  • 这里顺便装一下zsx

    ...