由于培训,所以也整理一份文档以便日后复习。该文章将会根据我的学习进程不断更新,暂时不会另开一篇文章

用户管理

root 的权限很大,可以接近完全控制整个操作系统,规则不受限。一般情况下用普通用户进行操作,到需要提权的命令就使用 sudo

Linux 文件系统

文件结构

Linux 的文件结构为 单根倒树状(头上是根,下面是枝与叶)

- 如何理解单根倒树状,就像整个树木的结构倒过来,
最顶部为根(/),
根下面就是枝(/etc、/home、/var),
枝下面就是叶(文件名),
/root/1.txt 的根是 /,枝为 /root/ ,叶就是 1.txt 

Windows 为多根倒树状

- 如何理解,Windows 很多盘符,每个盘符就一个根,其余跟 Linux 一样 

规则

起始点为 /,即根目录;/home 可能是挂载点。地址字符对大小写敏感(基于 ANSI 码存储文件名),路径需要用 / 分隔。

文件名不能超过 255 个字符,所输入的所有字符都是有效的,除了 / 。

为何说 /home 是挂载点呢?
Linux 系统可能会多有个分区,/home 可能会存放在哪个分区,也许会在 /dev/sda1/home1,但如果安装的时候没有特意分区的话,一般会跟在 / 的分区中

[root@izwz96ke9g2f4192imvgeoz Areseia]# df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   15G   23G  39% / 

硬盘命名

sda1/sda2 是指第一块磁盘的第一个分区/第二个分区,没有指定的挂载点,在根的目录如果没有再做安装指定的话,一般会跟着根目录的分区的硬盘。

sda1-4,前 4 个分区是为主分区,第五个分区后的分区都被称作为逻辑分区

  • sda:一般是指SATA接口的硬盘
  • hda:一般是指IDE接口的硬盘

根目录的目录

在系统的根目录中,会看到以下目录:

  • 家目录: /home/username , /root

    • 主要是存放用户的数据
  • 用户可执行 :/bin , /usr/bin, /usr/local/bin

    • 很多可执行的命令都在这里,在这个目录的命令可以用,所有用户都可以用这类命令,例如 cat 存放在此
  • 系统可执行:/sbin , /usr/sbin/ , /usr/local/sbin

    • 系统才能执行的命令在这里,只能给root用,例如 fdisk 存放在此
  • 其他挂载点 :

    • /media (移动设备会自动挂载到这个目录)
    • /mnt (只提供目录,相当于自己在这里建立个挂载点)
  • 配置设置 : /etc/

    • 例如网卡配置、DNS 解析等应用配置
  • 临时文件 : /tmp/

    • 放的是系统或应用产生的临时文件
  • 内核和引导程序 :/boot/
  • 服务数据:/var , /srv

    • 例如 Apache、数据库的文件 一般会存放在此
  • 系统信息:/proc/ ,/sys/

    • 数据会存档在内存,主要存放 CPU 信息或其他硬件信息,为动态数据,无法更改
  • 共享链接库:/lib , /usr/lib/ , /usr/local/lib

    • 类似于运行库,运行某个程序需要调用的文件

相对路径与绝对路径

  • absolution:绝对路径

    • "/etc/sysconfig/network-scripts/ifcfg-eth1" ,在 / 作为开始点,是相对于根开始的
  • relative:相对路径

    • 'network-script/ifcfg-eth1',从当前工作目录作为开始点(要提前 cd /etc/sysconfig/)

相关命令

cd 命令

  • cd ..:返回上级目录(对于相对路径来说)
  • cd:回到用户的工作目录
  • cd - :回到刚刚离开前的目录(返回上一次的工作目录)
  • cd ~ :回到用户的家目录
  • cd ~user1 :去 user1 用户的家目录

ls 命令

ls -l,会输出一下内容

-rwxr-xr-x 1 www www   596 Oct 20 15:30 404.php 
权限 (目录里面的子目录)可以删除多少次文件的拥有人文件的拥有组文件的大小时间文件名
-rwxr-xr-x1wwwwww596Oct 20 15:30404.php

开头的 d 代表目录(drwxr-xr-x),否则为文件。
第二个会写目录里面的子目录,其中包括当前目录(.) 和 上一级目录 (..) 如果是文件的话代表可以删多少次

  • ls -R

    递归查询所有目录的子目录,会到尽头未知(最后一层)(安装tree可以让显示好看)
  • ls -ld

    显示目录本身 ls -ld /home 会显示这个home目录本身的属性 

增删改

  • cp /xxz/1.txt

    将1.txt这个文件复制到当前目录
  • cp file1 file2 file3 目录

    将多个文件复制到这个目录
  • cp -r test/ test1/

    将 test/ 目录的所有内容复制到 test1 目录 

如果源目录和目的目录同名,将会覆盖目的目录里面的文件

如果源文件复制到目的文件,将会覆盖目的文件
cp 1.txt 2.txt,如果2.txt有内容,那么2.txt 将会变成1.txt的内容

如果目标文件不存在,那么复制后将会改名
cp 1.txt 2.txt,如果2.txt不存在,将会复制1.txt到2.txt的目录,并且把复制过去的1.txt改名为2.txt

  • cp -r
    复制目录用,将目录的所有内容全部复制到目的目录
  • mv 移动文件,或剪切并重命名
    会将所有内容搬过去,不需要像 cp 要加 -r
  • touch :创建空文件或更新文件的时间戳
  • stat 文件/目录:查看文件的时间戳
    [root@izwz96ke9g2f4192imvgeoz Areseia]# stat /root

     File: ‘/root’
      Size: 4096            Blocks: 8          IO Block: 4096   directory
    Device: fd01h/64769d    Inode: 131073      Links: 26
    Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2019-10-26 14:34:11.154075954 +0800
    Modify: 2019-10-26 14:34:06.170098386 +0800
    Change: 2019-10-26 14:34:06.170098386 +0800
     Birth: -

    access 最后一次文件被访问时间
    modify 最后一次文件内容被修改的时间
    change 文件状态被修改的时间,例如大小和权限

  • rm 移除文件,加上 -rf 可以强制相关内容,不会产生提醒
  • mkdir:创建目录
  • file 查看文件是什么类型
    [root@izwz96ke9g2f4192imvgeoz Areseia]# file 404.php
    404.php: PHP script, UTF-8 Unicode text, with CRLF line terminators