• Linux基础知识与实操-篇一


    Linux 初识

    Linux介绍与安装

    这里不做过多解释了,安装是,主要是要注意磁盘分区,留出 /Swap 区,防止因为磁盘问题,导致整个系统资料丢失

    一般root的用户的输入标识符为 #,其他非root用户的表示符为 $

    当然我还是更推荐初学者使用虚拟机安装linux系统(Ubuntu 或 Linux这样的发行版图形化Linux系统)进行练习,在有一定的Linux操作基础后,可以使用实际的Linux系统机器或租服务器做真正的实操。

    基础认知

    重要热键

    Tab 键 在一串指令的第一个 字符的后面,表示 命令补全 的功能
    (在仅仅记得某个命令开头字符时,可以先键入正确的几个字符,然后摁两下 Tab ,系统便会列出所有以该字符开头的命令了)

    Tab 键 在一串指令的第二个 字符的后面,表示 文件补齐 的功能

    若安装了 bash-completion 软件,则在某些命令后面使用 Tab 按键时,可以进行 选项/参数补全,该软件在 CentOS下已经包含在系统中了

    Ctrl+c 可以使正在运行的指令中断

    Ctrl+d 表示键盘输入结束,也可以取代 exit 操作

    Shift+PageUp 向前翻页

    Shift+PageDown 向下翻页

    帮助命令

    对于绝大多数命令,如果不熟悉,可以通过增加 --help 来获得 帮助文档,以此来快速学习该命令的基本用法

    还有一个方法就是 通过 man 命令,来查看 操作说明(manual) , 并且可以指定 一般yoghurt可以使用的指令 选项,各个选项的含义如下:
    image

    其中 1 5 8 的含义很重要,最好记住这几个选项的含义

    一般 说明文档包含的内容有以下几个方面:
    image

    所以一般在参考时,会有以下原则:

    1. 先看 NAME :看一下资料的意思
    2. 在详细看 DESCRIPTION, 这里会提到很多相关的资料盒使用时机,可以学到很多小细节
    3. 如果每个指令都已经熟悉了,下面就可以查看 OPTIONS 部分的内容了,可以知道每个选项的含义,就能下达比较 细节的指令内容了
    4. 最后还会再看一下与该资料相关的,还有哪些东西可以使用,就是 上面的 SEE ALSO
    5. 某些说明还含有 相关的文件:FILES, 可以进一步参考

    还有在 参考手册页面的其他一些基础操作:
    image

    一般该说明手册,在目录usr/share/man

    所以一般是不需要特意记住各种操作命令的,只需要记住一些常用常见的命令,然后其他的很多选项就可以通过 man 命令来找到更加详细的说明,或者通过 --help 来获取基本用法和帮助

    有的命令被放到 info 命令中,易读性更强,不过查询的指令需要有 info page 才可以使用,该文件在目录:usr/share/info 下,对于 不是用 info page 格式书写的说明文件,也可以用 info 来显示,只是结果和 man 就基本相同了,其中 info 的参考快捷键如下:
    image

    还有其他软件的 帮助文件,会放在目录usr/share/doc 目录下

    关机

    数据同步

    由于在Linux系统中,为了加快数据的读取速度,在默认情况下,某些已经加载到内存中的数据将不会被直接写会硬盘,而是先暂存在内存中,这样如果一个数据被多次读写,则在速度上会快很多,不过这样也带来了困扰,如果系统以外终止(断电等),那么就会造成数据的更新不正常,这是就需要 sync 命令来进行数据的写入操作:将内存中尚未更新的数据,重新写入硬盘中,这个命令在系统关机或重启前很重要

    sync 最好是 root 用户使用,因为这样可以保存所有数据,如果是其他用户,则仅保留当前用户的数据

    关机的常用参数:
    image

    使用reboot halt poweroff 都可以实现重新启动和关机的任务,自己习惯就可以了

    Linux的文件权限与目录配置

    文件权限

    rwx 的含义这里就不再详细介绍了,这三个分别代表 读 写 执行,可以使用八进制数 4 2 1 来表示,ugo 分别表示 当前用户 同组的其他用户 其他组的其他用户,a 表示所有用户,也可以使用 + - = 来设定不同用户的不同权限

    文件权限

    • r权限(read):可以读取此文件的实际内容
    • w权限(write):可以编辑、新增该文件的内容,但是不能删除该文件
    • x权限(eXecute):该文件具有可以被系统执行的权限, 因为 Linux 不是依靠 Windows系统的拓展名来判断文件是否可以执行,而是依靠 x 权限判断的

    目录权限:

    • r权限(read):可以读取此目录结构,查询到该目录下的文件名数据(ls)
    • w权限(write):具有改动该目录结构列表的权限:建立、删除、重命名、移动 文件和目录
    • x权限(eXecute):用户能否进入该目录并成为工作目录,就是当做 home 目录使用
      如果在某个目录没有x 权限,则无法切换到该目录下,也无法执行该目录下的任何指令,即使拥有rw权限

    更改群组

    更改某个用户的群组需要使用 root 用户,并且需要在 目录 /etc/group 下进行,否则就会显示错误,使用命令 chgrp 命令实现(change group)

    改变文件拥有者

    如果是 目录下所有次目录或文件同时更改 文件所有者,就需要 -R 选项

    chown [-R] 账号名称 文件或目录
    chown [-R] 账号名称:组名 文件或目录
    
    • 1
    • 2

    一般在复制文件给其他用户的时候,就会使用到这个命令,需要将复制好的文件,修改为 目标用户,这样该用户就可以 写入或执行该文件了

    文件种类与拓展名

    在 Linux下,一切都是文件

    文件种类

    • 正规文件(regular file): 在使用 ls 命令列出的文件中,第一个字符是 - 的均为正规文件,按照文件内容,可以分为以下几种:
      • 纯文本文件( ASCII):人可以直接读到的文件
      • 二进制档( binary) : 各种可执行文件
      • 数据格式文件( data) : 有些程序在运行过程中读取某些特定格式的文件
    • 目录( directory):在使用 ls 命令列出的文件中,第一个字符是 d 的均为目录文件
    • 链接文件( link) : 类似Windows系统下的 快捷方式,在使用 ls 命令列出的文件中,第一个字符是 l 的均为链接文件
    • 设备与设备文件( device) : 与系统周边及储存等相关的一些文件,通常都集中在/dev这个目录之下! 通常又分为两种:
      • 区块( block) 设备文件 : 就是一些储存数据, 以提供系统随机存取的周边设备, 可以跳转不同的区块
      • 字符( character) 设备文件: 亦即是一些序列埠的周边设备, 例如键盘、 鼠标等,一次性读取的
    • 数据接口文件( sockets) : 在网络中进行数据承接
    • 数据输送档( FIFO, pipe) : 解决多个程序同时村却同一个文件造成的错误问题

    文件拓展名

    和Windows系统不同,依靠拓展名来确定某个文件是否可以被执行,Linux下的文件只要有 x 权限,就是 可以被执行的,但是 这并不是说这样就可以被执行成功,只是说明 它具有执行能力

    Linux下还有其他类型的文件,可以依靠拓展名区分:
    image

    Linux下文件名的限制

    单一文件或目录的最大容许文件名为 255Bytes, 以一个 ASCII 英文占用一个 Bytes 来说, 则大约可达 255 个字符长度。 若是以每个中文字占用 2Bytes 来说, 最大文件名就是大约在 128 个中文字符之内

    所以 Linux下可以看到很长的文件名,就是为了可以清晰的表示该文件的信息

    而且在命名文件时 ,最好避免以下字符:

    . ? > < ; & ! [ ] | \ ' " ` ( ) { }
    
    • 1

    . 开头的文件或目录,在 Linux下认为是 隐藏文件

    目录配置

    根据 FHS 的目录配置依据,简单的将目录定义为以下四种交互形态:
    image

    还有另外三个目录:
    / ( root, 根目录) : 与开机系统有关;
    /usr ( unix software resource) : 与软件安装/执行有关;
    /var ( variable) : 与系统运行过程有关。

    根目录

    根目录是整个系统最重要的一个目录, 因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关

    根目录是整个系统最重要的一个目录, 因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关

    各个目录的主要文件如下:
    image
    image
    image

    还有几个也非常重要,但是 FHS 没有定义出来的目录:
    image

    有五个重要的目
    录被要求一定要与根目录放置在一起, 那就是 /etc, /bin, /dev, /lib, /sbin 这五个重要目录。现在许多的 Linux distributions 由于已经将许多非必要的文件移出 /usr 之外了, 所以 /usr 也是越来越精简,同时因为 /usr 被建议为『即使挂载成为只读,系统还是可以正常运作』的模样,所以救援模式也能同时挂载 /usr

    /usr 的意义与内容

    依据 FHS 的基本定义, /usr 里面放置的数据属于可分享的与不可变动的(shareable, static),

    很多读者都会误会/usr 为 user 的缩写,其实 usr 是 Unix Software Resource 的缩写, 也就是『Unix 操作系统软件资源』所放置的目录,而不是用户的数据

    FHS 建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录

    因为是所有系统默认的软件(distribution 发布者提供的软件)都会放置到/usr 底下,因此这个目录有点类似 Windows 系统的『C:\Windows\ (当中的一部份) + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。一般来说, /usr 的次目录建议有底下这些:
    image
    image

    /var的意义与内容

    如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var 目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等等。常见的次目录有:
    image

    实际目录配置

    上面仅仅是 FHS 建议的目录结构,在实际的 Linux发行版 CentOS7 的目录树结构如下:
    image

    最后

    一起提高,慢慢变强。

  • 相关阅读:
    网络编程——BIO与NIO介绍与底层原理
    29.Java中的文件操作【20220804】
    SpringBoot项目中@Autowired注解注入组件为空Null,@Value注解注入值为空Null 的解决办法
    CSS3病毒病原体图形特效
    1-(1-甲基吡咯烷鑰基)-4-(1-氰乙基咪唑鐺基)丁烷二溴盐[PyrC4(NEim)][Br]2离子液体
    【Python+Appium】开展自动化测试(一)
    一种便携式GNSS仿真策略
    P01 Swing综述
    聊聊团队如何开始敏捷转型(合辑共15篇)
    24、Flink 的table api与sql之Catalogs(java api操作分区与函数、表)-4
  • 原文地址:https://blog.csdn.net/qq_45966201/article/details/127777762