Linux学习笔记

本文全面介绍了Linux操作系统的基础知识,包括虚拟机配置、目录结构、文本编辑器使用、系统操作、用户与组管理、实用命令、权限设置及软件包管理。适合初学者和系统管理员参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux

inux介绍

虚拟机

Linux目录结构

vi和vim编辑器

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

用户管理

实用指令

组管理和权限管理

RPM

YUM

1. Linux介绍
  • Linux是一款操作系统,免费,开源,安全,高效,稳定,处理高并发非常强悍,现在很多企业级的项目都部署到Linux/unix服务器运行
  • 主要发行版本:CentOSE,Redhat,Ubuntu,Suse,红旗Linux

2.虚拟机
  • 虚拟机的三种网络连接:
    • 桥连接:Linux可以和其他的系统通信,但是可能造成IP冲突。
    • NAT:网络地址转换方式,Linux可以访问外网,不会造成IP冲突。
    • 主机模式:你的Linux是一个独立的主机,不能访问外网。
  • vmtools
    • 共享剪贴板
    • 共享文件夹

3.Linux目录结构
  • linux的文件系统是采用级层式的树状目录结构,在此结构3上最上层是根目录“/”

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZauE3RQ-1584094488211)(C:\Users\apple\AppData\Roaming\Typora\typora-user-images\image-20200310232559711.png)]

  • 具体的目录结构

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

    1. Linux的目录中有且只有一个根目录
    2. Linux的各个目录存放的内容是规划好,不能乱放文件
    3. Linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件
    4. Linux的各个文件目录下存放什么内容,必须有一个认识

4.vi和vim编辑器
  • 三种常见模式:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83hTu1aR-1584094488214)(C:\Users\apple\AppData\Roaming\Typora\typora-user-images\image-20200311132005959.png)]

    • 正常模式:在正常模式下,我们可以使用快捷键,以vim打开一个文档就直接进入一般模式了。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制,粘贴】来处理你的文件数据。
    • 插入模式/编辑模式:在模式下,可以输入内容。按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般按i
    • 命令行模式:在这个模式中,可以提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等的动作则是在此模式中完成的
  • 常用快捷键的使用

    • 粘贴 p
    • 拷贝当前行 yy;拷贝当前行向下的5行 5yy;
    • 删除当前行 dd; 删除当前行向下的5行 5dd;
    • 在文件中查找某个单词:命令行输入 /(查找内容),按n查找下一个
    • 设置文件行号:set nu,取消文件行号:set nonu
    • 编辑文件,正常模式下使用快捷键到达文档最末行:G,最首行:gg
    • 撤销输入:在正常模式下输入u
    • 编辑文件,光标移动到某行:shift+g
      • 显示行号:set nu
      • 输入行号这个数
      • 输入shift+g

5.开机,重启和用户登录注销
  • shutdown:

    • shutdown -h now:表示立即关机
    • shutdown -h 1:表示1分钟后关机
    • shutdown -r now:立即重启
  • halt:就是直接使用,效果等价于关机

  • reboot:就是重启系统

  • syn:把内存的数据同步到磁盘;建议每次关机或重启前都使用

  • 登录是尽量不要用root账号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用“su-用户名”命令来切换成系统管理员身份

  • 输入logout即可注销用户


6.用户管理
  • 了解

    • Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号进入系统
    • Linux的用户需要至少属于一个组
  • 添加用户

    • 命令行指令:useradd [选项] 用户名【eg:useradd cat】
    • 细节:
      • 当创建用户成功后,会自动的创建和用户同名的家目录
      • 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录【eg:useradd -d /home/animal dog】
  • 给用户指定或添加密码

    • 命令行指令:passwd 用户名【eg: passwd cat】
  • 删除用户

    • 命令行指令(保留家目录):userdel 用户名【eg: userdel cat】
    • 命令行指令(不保留家目录):userdel -r 用户名【eg: userdel -r cat】
    • 在删除用户时,一般不建议删除家目录
  • 查询用户信息

    • 命令行指令:id 用户名【eg: id cat】
    • 细节:
      • 当用户不存在是返回无此用户
  • 切换用户

    • 在Linux中,如果当前用户的权限不够,可以通过su - 指令,切换到高权限用户
    • 命令行指令:su - 用户名[su - dog]
    • 细节:
      • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
      • 当需要返回到原来用户时,使用exit指令
  • 用户组

    • 类似于角色,系统可以对有共性的多个用户进行统一的管理
    • 增加组:groupadd 组名【eg:groupadd animal】
    • 删除组:groupdel 组名【eg:groupdel animal】
  • 增加用户时直接加上组

    • 命令行指令:useradd -g 用户组 用户名【eg: useradd -g wudang zwj】
  • 修改用户组

    • 命令行指令:usermod -g 用户组 用户名【eg: usermod -g shaolin zwj】
  • /etc/passwd 文件

    • 用户(user)的配置文件,记录用户的各种信息。
    • 每行的含义:用户名:口令:用户标识号:注释性描述:主目录:登录shell
  • /etc/shadow 文件

    • 口令配置文件
    • 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group 文件

    • 组(group)的配置文件,记录Linux包含的组的信息。
    • 每行含义:组名:口令:组标识号:组内用户列表

7.实用指令
  • 指定运行级别(7个级别)

    1. 关机

    2. 单用户【找回丢失密码】

    3. 多用户状态没有网络服务

    4. 多用户状态有网络服务

    5. 系统未使用保留给用户

    6. 图形界面

    7. 系统重启

  • 系统的运行级别配置文件:/etc/inittab

  • 切换到指定运行级别的指令:init [012356]

  • 面试题:如何找回丢失的root密码?:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录。【开机->在引导时输入 回车键->看到一个界面输入 e->看到一个新的界面,选中第二行(编辑内核),再输入 e->在这行最后输入 1,再输入 回车键->再输入b,这时就会进入到单用户模式,使用passed来修改root密码。】

  • 帮助指令:

    • man [命令或配置文件]
    • help
  • 文件目录类

    • pwd:Print Working Directory,显示当前工作目录的绝对路径.

      • 使用:pwd
    • ls:list 查看当前目录所有的信息

      • ls -a:显示当前目录所有的文件和目录,包括隐藏的;
      • ls -l:以列表的方式显示信息。
    • cd:Change Directory切换指令

      • cd 参数 :

        • 参数:绝对路径或相对路径
        • cd ~:回到自己的家目录
        • cd …:回到上一级目录
    • mkdir:创建目录,默认创建一级目录

      • mkdir [选项] 目录名;
        • 选项:-p :创建多级目录
    • rmdir:删除目录,默认删除空目录

      • rmdir [选项] 目录名;
      • 删除非空目录:rm -rf 目录名
    • touch:创建一个空文件

      • touch 文件名称;
      • 可以一次创建多个文件
    • cp:拷贝文件到指定目录

      • cp [选项] source dest;
        • 选项: -r:递归复制整个文件夹
      • \cp -r source dest:强制覆盖原来的文件
      • 一定要注意当前目录位置,然后确定源目录和目标目录
    • rm:移除文件或目录

      • rm [选项] 要删除的文件或目录
        • 选项:
          • –rf:强制删除不提示,递归删除整个整个文件夹
          • -f:强制删除不提示
    • mv:移动文件与目录或重命名

      • mv oldNameFile newNameFile
    • cat:查看文件内容,只能浏览文件,而不能修改文件

      • cat [选项] 查看的文件
        • 选项:-n:显示行号
      • 结尾加上 | more:分页显示,不会全部一下显示完。
    • more:是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more还内置了很多快捷键:

      • more 查看的文件

      • 操作功能说明
        空白键(Space)向下翻一页
        Enter向下翻一行
        q立刻离开more,不再显示该文件内容
        Ctrl + F向下滚动一屏
        Ctrl + B返回上一屏
        =输出当前行的行号
        :f输出文件名和当前行的行号
    • less:用来分屏查看文件内容,与more相似,但是更强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容。对于显示大型文件具有较高的效率。

      • less 查看的文件
    • >指令:输出重定向。如果不存在会创建文件,否则会将原来的文件内容覆盖。

      • ls -l > 文件;将列表的内容写入文件中覆盖
      • cat 文件1 > 文件2 ; 将文件1的内容覆盖到文件2
    • >>指令:追加。如果不存在会创建文件,否则不会覆盖原来的文件内容,而是追加到文件的尾部

      • ls -l > >文件;将列表的内容写入文件中追加
      • echo “内容” >> 文件;将内容追加到文件
    • echo:输出内容到控制台

      • echo [选项] 输出内容‘
    • head:用于输出文件中首部的内容,默认情况下显示前10行内容

      • head [选项] 文件名;
        • 选项:-n 数字;显示自定义数行
    • tail:用于输出文件中尾部的内容,默认情况下显示后10行内容

      • tail [选项] 文件名;
        • 选项:
          • -n 数字;显示自定义数行
          • -f; 实时追踪文档更新
    • ln:软连接也叫符号连接,类似于Windows里的快捷方式,主要存放了链接其他文件的路径

      • ln -s [源文件或目录] [软连接名]
    • history:查看已经执行过历史命令,也可以执行历史指令

      • history [选项]
        • 选项:数量;看前多少个指令
  • 时间日期类:

    • 基本语法:
      • date : 显示当前时间
      • date+%Y:显示当前年份
      • date+%m:显示当前月份
      • date+%d:显示当前是哪一天
      • date “+%Y-%m-%d %H:%M:S”:显示年月日时分秒
    • 设置日期
      • date -s 字符串时间;【eg : date -s “2020-4-2 00:00:00”】
    • cal:查看日历
      • cal [选项]
        • 选项:指定一年的日历
  • 搜索查找类

    • find:从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端
      • find (搜索范围) -name (文件名):按照指定的文件名查找模式查找文件。
      • find (搜索范围) -user (用户名):按照指定的用户名查找模式查找文件。
      • find (搜索范围) -size (+多少/-多少/多少):按照指定的文件大小查找模式查找文件(大于多少/小于多少/等于多少)
      • 查询 /目录下所有.txt的文件:find / -name *.txt
    • locate
      • 可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
      • 在第一次运行之前,必须使用updatedb指令创建locate数据库。
    • grep:过滤查找,管道符,“|” 表示将前一个命令的处理结果输出传递给后面的命令处理。经常跟管道一起使用。
      • grep [选项] 查找内容 源文件
      • -n:显示匹配行及行号。
      • -i:忽略大小写字母。
      • cat hello.txt | grep yes
  • 压缩和解压类

    • gzip/gunzip :gzip压缩文件,gunzip解压缩
      • gzip 文件; [原来文件不保留。]
      • gunzip 文件.gz; [同样也不保留源文件]
    • zip/unzip:压缩文件/解压
      • zip [选项] XXX.zip 将要压缩的内容
        • 选项:-r :递归压缩,即压缩目录
      • unzip [选项] XXX.zip
        • 选项:-d<目录> :指定解压后文件的存放目录
  • tar :是打包指令,最后打包后的文件是tar.gz文件

    • tar [选项] XXX.tar.gz 打包的内容(可是多个)
      • 选项:
        • -c:产生.tar打包文件
        • -v:显示详细信息
        • -f:指定压缩后的文件名
        • -z:打包同时压缩
        • -x:解压.tar文件
        • 压缩:tar -zcvf (压缩后文件名) (要压缩的文件)
        • 解压:tar -zxvf (要解压的文件)
        • 解压到指定目录:tar -zxvf (要解压的文件) -C (指定目录),指定解压到的目录要存在。

    8.组管理和权限管理
    • 文件:

      1. 所有者
      2. 所在组
      3. 其他组
      4. 改变用户所在组
    • 文件/目录所有者:

      • 一般为文件的创建者,谁创建了该文件,就自然的称为该文件的所有者。
      • 查看文件所有者:ls -ahl
      • 修改文件所有者:chown (用户名) (文件名)
      • 文件所在组不一定是文件所有者。
    • 组的创建

      • groupadd (组名)
    • 文件/目录所在组

      • 修改文件所在组:chgrp (组名) (文件名)
    • 其他组

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

      • 在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
      • 改变用户所在组:usermod -g 组名 用户名
      • 改变用户登录的初始目录:usermod -d 目录名 用户名
    • 文件基本介绍:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmxPs9tu-1584094488215)(C:\Users\apple\AppData\Roaming\Typora\typora-user-images\image-20200312210013000.png)]

    • rwx权限详解

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

      • 修改文件或者目录的权限
      • u:所有者;g:所在组;o:其他人;a:所有人(u、g、o的总和
      • chmod u=rwx,g=rx,o=x 文件目录名:分别权限
      • chmod o+w 文件目录名:给其他人都增加写的权限
      • chmod a-x 文件目录名:给所有的用户都减掉执行权限
    • 通过数字变更权限

      • 规则:r=4 w=2 x=1 rwx=4+2+1=7
      • chmod u=rwx,g=rx,o=x 文件目录名 等价于 chmod 751 文件目录名
    • 修改文件所有者 chown

      • chown newowner file:改变文件的所有者
      • chown newowner:newgroup file:改变用户的所有者和所在组
      • -R:如果是目录,则使其下所有子文件或目录递归生效
    • 修改文件所在组 chgrp

      • chgrp newgroup file:改变文件的所有组
      • -R:如果是目录,则使其下所有子文件或目录递归生效
    9.RPM
    • RPM:RedHat Package Manager,红帽软件包管理工具。
    • RPM查询已安装的rpm列表:rpm -qa | grep xx
    • rpm包的其它查询指令:
      • rpm -qa:查询所安装的所有rpm软件包
      • rpm -qa | more
      • rpm -qa | grep xx
      • rpm -q xx:查询xx软件包是否安装
      • rpm -qi xx:查询软件包信息
      • rpm -ql xx:查询软件包中的文件
      • rpm -qf 文件全路径名:查询文件所属的软件包
    • 卸载rpm包:rpm -e 软件包名称
    • 删除时可能会发生依赖错误,忽视依赖强制删除的方法:rpm -e --nodeps软件包名称
    • 安装rpm包:rpm -ivh 软件包全路径名称
      • i=install:安装
      • v=verbose:提示
      • h=hash:进度条
    10.YUM
    • YUM:是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用yum的前提是联网。
    • yum list | grep xx:查询yum服务器是否有需要安装的软件
    • yum install xx:安装指定的yum包
    • yum -y remove xx:卸载指定的yum包
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值