由于培训，所以也整理一份文档以便日后复习。该文章将会根据我的学习进程不断更新，暂时不会另开一篇文章 # 用户管理 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-x | 1 | www | www | 596 | Oct 20 15:30 | 404.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