• Linux学习(一)


    视频链接:https://www.bilibili.com/video/BV1Li4y1V7pG?vd_source=9545770e4a2968c05878ffac8589ec6c
    视频选集:P1 — P46

    1.Linux介绍

    Linux:

    • 一种开源的、免费的操作系统,安装在计算机硬件上,用来管理计算机的硬件和软件资源的系统软件
    • Linux注重安全性、稳定性、高并发处理能力
    • 没有优异的可视化界面
    • windows用于个人计算机上,Linux用于企业服务器上

    Linux的发行版本:

    • linus在1991年开发【Linux的内核程序】,后来很多软件开发组织以及软件公司在内核程序基础之上,陆续推出很多不同版本的linux操作系统:Ubuntu (乌班图)、RedHat (红帽)、CentOS

    2.Linux的安装

    安装的具体步骤,看视频中,非常详细
    http://www.bjpowernode.com/tutorial_linux_release_project/1032.html

    2.1 虚拟机

    虚拟机:可以用软件模拟出一套具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
    :先安装虚拟机

    2.2 安装Linux

    先下载linux的镜像:
    CentOS下载:
    网易镜像: http://mirrors.163.com/centos/6/isos/
    搜狐镜像: http://mirrors.sohu.com/centos/6/isos

    可视化界面比较单薄,很少使用;使用linux多数都是基于终端命令使用linux指令操作计算机

    3.Linux的目录结构

    在这里插入图片描述

    1. linux只有一个根目录
    2. 层级式的目录结构
    目录解释
    root该目录为系统管理员目录,root是具有超级权限的用户
    bin ->usr/bin存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行
    usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库
    usr/local/bin存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行
    lib->usr/lib这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
    boot这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
    devdev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在
    etc这个目录存放所有的系统管理所需要的配置文件
    home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录
    var这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件
    mnt系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
    opt这是给linux额外安装软件所存放的目录,比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空
    tmp这个目录是用来存放一些临时文件的

    bin ->usr/bin:系统的可执行文件,可以在任何目录下执行
    usr/ local/bin:用户自己的可执行文件,可以在任何目录下执行
    etc:存放配置文件。配置环境变量(/etc/profile).
    home:每一个用户的根目录,用来保存用户私人的数据,默认情况下,目录名和自己的用户名相同。
    opt:存档额外安装的软件,相当于windows系统的中Program files目录

    4.Linux的远程操作工具

    实际工作中,linux 系统都不会在我们自己的电脑上,linux 系统安装在机房的服务器上,我们操作 linux 不可能跑到机房去,所以我们需要有一个工具,能在公司通过网络远程连接到机房的 linux 服务器上。

    1. Xshell:linux的终端模拟软件
      安装并破解:解压、破解(运行两个.bat文件)、启动(Xshell)
      连接远程Linux系统:创建会话
      查看linux系统的ip地址:ifconfig
      在这里插入图片描述

    2. Xftp:文件传输软件
      安装并破解:解压、破解(运行两个.bat文件)、启动(Xftp)
      连接远程Linux系统:创建会话
      查看linux系统的ip地址:ifconfig
      在这里插入图片描述

    5.Linux系统管理

    5.1 vi和vim的使用

    vi和vim:是linux的文本编辑器,用来在linux中创建、查看或者编辑文本文件,就好像windows中的记事本一样【vim是vi的增强版本,vi的绝大多数用法在vim都适用】

    vi和vim的使用:

    模式解释
    一般模式用vi或者vim命令打开文件(vim test.txt),进入了一般模式;可以查看文件的内容,并且可以通过上下左右键移动光标,查看文件某一部分;但是不能编辑文件内容。
    编辑模式在一般模式下,按i键或者a键,进入编辑模式。可以编辑文件内容,但是不能保存编辑的内容。按Esc键,可以回到一般模式
    命令行模式在一般模式下,按shift+:,进入命令模式;输入:q!【不保存强制退出编辑器】、wq【保存并且退出编辑器】、q【只是退出编辑器】

    vi和vim编辑器的快捷键:

    快捷键操作
    复制当前行在一般模式下,按yy,把光标所在行复制到剪切板;按p,把剪切板中的内容粘贴到光标所在的下一行
    复制当前行往下n行在一般模式下,按nyy,把光标所在往下n行复制到剪切板;按p,把剪切板中的内容粘贴到光标所在的下一行
    在文本文件中查找关键字在命令行模式下,输入/关键字,回车。按n表示光标查找下一个关键字
    删除光标所在的当前行在一般模式下,按dd,删除光标所在的当前行
    删除光标所在的行往下n行在一般模式下,按ndd ,删除光标所在的当前行往下n行
    撤销上次编辑的内容在一般模式下,按u
    显示行号命令行模式下,set nu 显示行号;set nonu 撤销行号

    5.2 Linux用户管理

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

    1. 任何使用linux的系统资源的用户,必须使用一个合法的账号和密码,账号和密码一般都是向系统管理员申请。root是linux系统安装时默认创建的系统管理员账号,由root创建普通账号。

    2. 添加用户:useradd 用户名
      useradd lisi
      l->创建一个用户lisi
      l->在/home目录下创建用户的根目录,目录名称默认跟用户名相同
      |->在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
      注意:useradd -d / home / ww wangwu 创建用户的同时,指定用户的根目录

    3. 给用户设置密码:passwd 用户名【linux密码要满足一定的复杂度】

    4. 删除用户:userdel 用户名
      userdel -r 用户名 :删除用户的同时级联删除它的主目录

    5. 查看用户信息:id 用户名

    6. 切换用户信息:su 用户名【su:switch user】
      从权限高的用户切换权限低的用户,不需要密码验证
      从权限低的用户切换到权限高的用户,必须密码验证

    5.3 Linux组管理

    linux中的组相当于角色的概念,可以对有共性的用户进行统一管理,每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组。新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。

    • 添加组:groupadd 组名
    • 删除组:groupdel 组名
    • 把用户添加到组中:gpasswd -a 用户名 组名
    • 把用户从组中移除:gpasswd -d 用户名 组名
    • 创建用户时,指定所属的组(主组):useradd -g 组名 用户名

    5.4 Linux的系统操作

    • 关机:shutdown now 立即关机
      shutdown -h xxx 定时关机
      shutdown -r now 立即重启
    • 重启: reboot 立即重启
    • 同步数据库: sync

    6.Linux实操指令

    6.1 帮助指令

    • 用来查看linux系统手册上的帮助信息:man 命令 如:man ls
      分屏显示,按回车翻一行,按空格翻一页,按q退出查看
    • 用来查看命令的内置帮助信息:help

    6.2 文件目录指令

    • 查看当前所在目录:pwd

    • 查看指定目录下所有的子目录和文件列表:ls [指定目录]
      ls /home 平铺的形式展示
      ls -l /home 列表的形式展示
      ls -a / home 显示指定目录下所有的子目录和文件(包括虚拟的目录)
      ls -al / home 以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
      ls 查看当前目录下所有的子目录和文件列表

    • 切换目录: cd 目录名
      绝对目录:以盘符开始的目录,从盘符开始查找目标目录 cd /opt/testDir 【~:当前用户的根目录】
      相对目录:以目录名开始的目录 从当前目录开始查找目标目录 cd testDir【..:当前目录的上一级目录,从当前目录开始查找它的上一级目录】【. :当前目录】
      在任何目录下执行:cd ~ 【进入当前用户的根目录】

    • 创建目录:mkdir 目录名
      mkdir /opt/testDir/test1 //在/opt/testDir目录下创建一个目录test1(使用绝对目录)
      mkdir test2 //在/opt/testDir目录下创建一个目录test2(使用相对目录)
      mkdir -p /opt/testDir/test3/test4 //在/opt/testDir目录下创建目录test3,并且在test3下创建test4(一次创建多级目录)

    • 删除一个空目录: rmdir 目录名

    • 创建一个或者多个空文件:touch 文件名(文件名之间用空格隔开)
      例如:touch t1.txt t2.txt

    • 复制文件或者目录:cp source(源) dest(目标)
      cp t1.txt test2 //把t1.txt文件复制到test2目录中
      cp -r test2 test5 //把test2目录复制到test5目录中(递归地复制目录)
      cp t1.txt test2 //【当test2中有t1.txt时,再复制】情况如下
      在这里插入图片描述

    • 删除文件或者目录:rm 文件名字或者目录名字
      rm t1.txt 提示删除文件
      rm -f t2.txt 强制删除文件【f:force】
      rm -r test2 提示递归删除目录
      rm -rf test5 强制递归删除目录

    • 移动目录或者文件:mv source(源) dest(目标)
      mv test.txt test1
      mv test1 test2
      mv t3.txt t3_new.txt 文件重命名

    • 查看文件内容:cat 文件名【文件内容一次性显示出来】
      cat t4.txt
      cat -n t4.txt //显示行号

    • 分页查看文件文件内容: more 文件名 【一次性加载文件所有内容到内存,分页显示】
      按回车翻一行、按空格翻一页
      more t4.txt

    • 分页查看文件文件内容: less 文件名 【分页加载文件所有内容到内存,分页显示】
      less t4.txt
      按回车翻一行、按空格翻一页,按q退出查看

    • 查看文件的头10行: head [选项]文件名
      head t4.txt
      head -n 5 t4.txt //查看文件的头n行

    • 查看文件的后10行: tail [选项] 文件名
      tail t4.txt
      tail -n 5 t4.txt //查看文件的后n行

    • echo:输出系统变量或者常量的值到命令行终端。
      echo $JAVA_HOME
      echo $PATH
      echo Hello World!
      在这里插入图片描述

    • 把前一个查看命令的结果输出到指定的文件中:查看命令 > 文件名
      如果目标文件不存在,则新建一个文件
      如果目标文件己存在,则把文件以前的内容覆盖
      ls > ret.txt
      ls -al > ret.txt
      cat ret.txt > t3_new.txt //文件内容的复制
      cat t4.txt > t3_new.txt //文件内容的复制,将原来的覆盖
      在这里插入图片描述

    • 把前一个查看命令的结果追加输出到指定的文件中:查看命令 >> 文件名
      如果目标文件不存在,则新建一个文件
      如果目标文件已存在,则在文件原来内容的基础上进行追加
      ls > ret.txt
      ls -al >> ret.txt
      cat t4.txt >> ret.txt

    6.3 时间日期指令

    • 查看或者设置系统的日期或者时间: date
      date 查看系统当前的完整的日期和时间
      date +%Y系 统当前的年份
      date +%m 系统当前的月份
      date +%d 系统当前的日期
      date ‘+%Y–%m-%d %H:%M:%S’ 按yyyy-MM-dd HH : mm: ss格式显示
      date -S '2020-10-20 10:20:30’ 设置当前的系统时间
    • 查看系统日历: cal
      cal:查看当前月份的日历
      cal 2020:查看指定年份的日历

    6.4 搜索查找指令

    6.4.1 find

    linux中关于搜素文件或者目录的命令:find [ 搜索范围 ][ 搜索标准 ] 关键字

    -name:默认按名称搜索(文件或者目录所在的路径也在搜索范围之内)
    -size:按文件大小搜索
    -user:按文件的所有者搜索

    find *.txt //搜索当前目录下,所有的.txt文件
    find * e //搜索当前目录下,所有名称中包含e的那些文件或者目录
    find /etc *.txt //搜索/etc目录下所有.txt文件
    find /etc -size -5k //搜索/etc目录下所有小于5k的文件
    find /etc -user zhangsan //搜索/etc目录下所有的所有者是zhangsan的文件和目录

    6.4.2 locate

    在整颗目录树中搜索文件或者目录,都是根据名称搜索,效率高

    updatedb
    locate 关键字

    6.4.3 grep

    搜索过滤命令,在前一个搜索命令的结果中进行按名称进一步过滤:
    搜索命令 lgrep 过滤条件
    查看命令 lgrep 过滤条件

    find *.txt lgrep new //搜索当前目录下,所有名称包含new的.txt文件
    find /etc -size -5k lgrep firefox

    cat t1.txt l grep beijing
    cat t1.txt l grep -i beijing //区分大小写

    ls -al l grep new

    6.5 压缩和解压缩指令

    6.5.1 gzip指令和gunzip指令

    压缩或者解压单个文件,不具有打包的功能

    • gzip 文件名: 压缩单个文件,自动生成一个.gz的压缩包,并且会把原来的文件删除
    • gunzip .gz压缩包名:解压.gz压缩包,并且会把原来的.gz压缩包删除

    6.5.2 zip指令和unzip指令

    压缩(打包)或者解压多个文件和目录

    • zip 目标压缩包名称(通常使用.zip压缩包)文件或者目录列表 :
      zip test.zip ret.txt t1.txt test2
    • unzip 压缩包名(.zip) -d 解压目录名:将指定的.zip压缩包解压到当前目录(或者指定目录)
      unzip test.zip -d test3

    6.5.3 tar指令

    压缩(打包)或者解压多个文件和目录:

    -c: 产生.tar.gz打包文件
    -v: 显示详细信息
    -f: 指定压缩后的文件名
    -z: 打包同时压缩
    -x: 解压.tar.gz文件
    -C: 指定解压到哪个目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表
      -c:打包或者压缩
    • tar [选项] 压缩包名称(xxx.tar.gz)-C 解压目录名:将指定的.tar.gz压缩包解压到当前目录(或者指定目录)
      -x:解压

    例子:
    tar -zcvf xxx.tar.gz 文件或者目录列表
    tar .-zxvf xxx.tar.gz -C 解压目录名

    tar -zcvf mytar.tar.gz mytest.zip ret.txt t1.txt test2
    tar -zxvf mytar.tar.gz -C /opt/testDir/test5

    6.6 组管理指令

    6.6.1 文件或者目录与组基本介绍

    • 组和用户的关系
      在linux中每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。
    • 文件或者目录与组
      在linux中,每一个文件或者目录也必须属于一个组,而且只能属于一个组,默认情况下,文件所有者所属的主组就是文件所属的组;
      文件或者目录通过组来控制哪些用户可以对它进行哪些操作,即文件或者目录的访问权限;

    在文件或者目录看来,linux系统中所有的用户分为三类:
    所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
    同组用户:跟文件或者目录属于同一个组的用户
    其它组用户:既不是文件或者目录的所有者,也不是同组用户

    6.6.2 查看文件的所有者和所在的组

    ls -l
    在这里插入图片描述

    6.6.3 修改文件的所有者

    修改文件的所有者: chown 新的所有者 文件名
    chown zhangsan t1.txt
    在这里插入图片描述
    chown 新的所有者:新的组 文件名
    chown zhangsan :dev t4.txt
    在这里插入图片描述
    chown zhangsan:dev test2
    chown -R zhangsan :dev test2 //递归修改目录的所有者和所在的组

    6.6.4 修改文件或者目录所在组

    chgrp 新的组 文件名或者目录名
    例如: chgrp dev t2.txt
    在这里插入图片描述

    6.7 权限管理指令

    在linux中,任何文件或者目录都有三种权限:读(Read)、写(write)、执行(Execute)

    • 对文件而言:
      读:可以读取、查看文件的内容,比如: cat、more、less、head、tail等。
      写:可以修改文件的内容,比如: vi或者vim等
      执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。

    • 对于目录而言
      读:可以读取、查看目录下边的内容,比如:ls等
      写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重名文件或者目录
      执行:可以进入该目录,比如:cd等。

    6.7.1 文件或者目录的权限控制

    查看权限:ls -l
    在这里插入图片描述

    • 第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。比如: rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r- -:只拥有读的权限,- - -:没有任何权限。
    • 第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
    • 第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。

    6.7.2 修改文件或者目录的权限 chmod

    • 用r、w、x分辨表示读、写、执行的权限,
    • 用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
    • 用+、-、=分别表示给指定的用户增加、减少、设置对应的权限

    修改:chmod g-w, o+w t5.txt
    在这里插入图片描述
    设置:chmod g=rwx t5.txt
    在这里插入图片描述

    6.7.3 使用数字的方式修改文件或者目录的权限

    每一个权限可以用一个数字来表示:
    r、 w、  x
    421
    2^2 2^1 2^0
    每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数据序列:
    rw- r-x r-x
    6    5    5
    rwx r-x -753
    
    例如:chmod 777 t5.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    springboot Actuator整合prometheus并使用grafana可视化(prometheus,grafana使用docker搭建)
    2023年汉字小达人区级比赛倒计时2天,最新问题解答和真题练一练
    【GD32F427开发板试用】IAR 环境移植freertos
    将风险前置
    jq弹窗拖动改变宽高
    【看懂MPLS LSP表项】
    【JavaSE】内部类介绍与总结
    Oracle JDK 和 OpenJDK 有什么区别?
    4.4亿赎金,6800GB数据窃取,勒索病毒攻击到底怎么防?
    工业标准半导体SECS标准低频RFID读写器JY-V640性能与应用方案
  • 原文地址:https://blog.csdn.net/weixin_49883619/article/details/126687159