第1章 linux文件属性相关

1.1 linux文件属性

1.2 磁盘的使用过程

1、磁盘(房子)
2、分区(划分隔断)
3、格式化创建文件系统(装修)
4、挂载(安装门窗)
5、存放文件(住人)

1.3 inode 索引节点

索引节点(index node)
通过文件名找到inode号码

1.3.1 inode 怎么来的

格式化创建文件系统 生成inode和block。

1.3.2 含义

inode索引节点号码就相当于家庭住址
inode是一个小空间存放文件属性和block的位置

1.3.3 显示文件内容的过程

先通过文件名找到inode号码
再读取inode中存放的block位置信息
最后显示block内容,就是显示文件的内容。

1.3.4 特点

  1. 1)在系统中创建一个非空的文件占用一个inode和至少一个block<br /> 2)在同一个分区中(文件系统),如果两个文件的inode号码相同这两个文件互为硬链接<br /> 3inode大小 256字节 (再centos6.x系统中),分区小于500M时为128字节

1.4 block

1.4.1 怎么来的

  1. 格式化创建文件系统与inode一起产生

1.4.2 含义

  1. 存放数据(文件内容)<br />block是用来存放文件内容

1.4.3 特点

  1. 1、大小 block 默认4kcentos6.x)<br /> 2、如果文件很大,会占用多个block,如果文件很小,剩余空间无法使用<br /> 3、磁盘进行读写 io 是按照block为单位的 读取一次block 算一次io

1.4.4 怎么看

  1. 查看文件大小<br /> block的大小,其实就是磁盘物理空间的大小。
  1. [root@znix ~]# ls -lh
  2. total 692K
  3. -rw-r--r-- 1 root root 0 Aug 29 09:34 1
  4. -rw-------. 1 root root 1.1K Aug 10 18:39 anaconda-ks.cfg

1.5 inode 详细信息

1.5.1 看inode号码

使用ls -lhi 命令
l显示详细信息
h 以人类可读的方式显示
i 显示inode号码

  1. [root@znix ~]# ls -lhi
  2. total 692K
  3. 42 -rw-r--r-- 1 root root 0 Aug 29 09:34 1
  4. 15199 -rw-------. 1 root root 1.1K Aug 10 18:39 anaconda-ks.cfg
  5. 57 -rw-r--r--. 1 root root 292 Aug 17 16:23 ett.txt
  6. 49 -rw-r--r--. 1 root root 0 Aug 16 16:28 find

1.5.2 看看文件的详细信息

使用 stat 命令可以查看文件的详细信息

  1. [root@znix ~]# stat /etc/hosts
  2. File: `/etc/hosts'
  3. Size: 250 Blocks: 8 IO Block: 4096 regular file
  4. Device: 803h/2051d Inode: 390175 Links: 2
  5. Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
  6. Access: 2017-08-28 11:32:03.002850494 +0800
  7. Modify: 2017-08-28 11:31:58.819852365 +0800
  8. Change: 2017-08-28 11:31:58.821852222 +0800

1.6 磁盘信息/block

1.6.1 系统中磁盘使用情况

df 命令查看,可以加-h 以人类可读的方式显示

  1. [root@znix ~]# df
  2. Filesystem 1K-blocks Used Available Use% Mounted on
  3. /dev/sda3 9213440 1590408 7148360 19% /
  4. tmpfs 242992 0 242992 0% /dev/shm
  5. /dev/sda1 194241 40002 143999 22% /boot
  1. 加-h 以人类可读的方式显示
  1. [root@znix ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda3 8.8G 1.6G 6.9G 19% /
  4. tmpfs 238M 0 238M 0% /dev/shm
  5. /dev/sda1 190M 40M 141M 22% /boot

1.6.2 系统中inode使用情况

df -i参数,显示inode的数量及使用情况。

  1. [root@znix ~]# df -i
  2. Filesystem Inodes IUsed IFree IUse% Mounted on
  3. /dev/sda3 593344 58495 534849 10% /
  4. tmpfs 60748 1 60747 1% /dev/shm
  5. /dev/sda1 51200 39 51161 1% /boot

1.7 inode和block

1.7.1 显示系统中inode和block大小

使用dumpe2fs命令查看分区里的inode信息

  1. [root@znix ~]# dumpe2fs /dev/sda3|grep "Inode size"
  2. dumpe2fs 1.41.12 (17-May-2010)
  3. Inode size: 256

grep -i 不区分大小写

  1. [root@znix ~]# dumpe2fs /dev/sda3|grep -i "inode size"
  2. dumpe2fs 1.41.12 (17-May-2010)
  3. Inode size: 256

1.7.2 特点

1、创建一个文件 要占用一个inode和至少一个block
2、文件大小 占用一个block 剩余空间不能使用

第2章 企业案例(磁盘空间不足)

如果向磁盘写入数据提示如下错误:No space left on device(磁盘空间不足),通过df -h查看磁盘空间,发现没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生?

  1. 情况1 --常见 block
  2. 实际的存储空间使用完
  3. 使用df -h 查看使用率到100%

解决:
找到系统中的大文件,确认无用后删除,释放磁盘空间

  1. 情况2 ---inode用光了
  2. 使用df -i 查看会发现inode剩余为0

解决:
inode用光有可能是小文件过多,删除无用的小文件。
查看日志文件是否过多,删除无用的日志文件。

第3章 linux中的文件

3.1 文件类型

  1. drwxrwxrwt. 10 root root 4096 Aug 29 09:29 tmp
  2. -rw-r--r-- 1 root root 237 Aug 28 11:45 clsn.txt
  3. lrwxrwxrwx. 1 root root 13 Aug 10 18:36 rc.local -> rc.d/rc.local
  4. - 普通文件 file
  5. d 目录 directory
  6. l 软连接 soft link

3.2 扩展名

在windows中是区分不同的文件类型的
在linux有没有扩展名都可以都行,给人类看的,为了让使用者能够区分不同文件

3.2.1 查看文件的类型

flie命令能够查看文件的具体类型

  1. [root@znix ~]# file /tmp/etc.tar.gz
  2. /tmp/etc.tar.gz: gzip compressed data, from Unix, last modified: Fri Aug 25 09:34:00 2017

3.2.2 linux下普通文件的分类

  1. 命令,二进制文件 /bin/ls
  2. 文本文件 /etc/hosts
  3. 数据文件 /tmp/etc.tar.gz

3.3 查看文件

3.3.1 查看压缩包里的内容(压缩包里是文件)

zcat 和zless 可以查看压缩包里的内容

  1. [root@znix ~]# zcat /tmp/ser.tar.gz
  2. [root@znix rc.d]# zless /tmp/ser.tar.gz

3.3.2 显示大文件的内容

  1. 过大的文件可以使用 less 查看。
  1. [root@znix ~]# less /etc/services
  1. 大文件不要使用cat看。使用以下命令,减少资源占用,方便查看。
  1. less 向上向下都可以
  2. head
  3. tail
  4. grep
  5. more 只能向下看

第4章 linux权限

4.1 权限分类

  1. 电脑-查看电脑里面的内容 向电脑里面添加内容 运行软件的权限
  2. r(read) w(write) x(execute)

4.1.1 不同人的不同权限

  1. 主人 家人 隔壁老王 clsn-notepad
  2. 所有者 属于用户组 陌生人 其他人
  3. rw- r-- r--

4.2 rwx

4.2.1 rwx与数字对应起关系

  1. r===4
  2. w===2
  3. x===1
  4. -===0

4.2.2 rwx含义

  1. r读取
  2. w修改
  3. x执行 命令或脚本

第5章 用户和用户组

linux是一个多任务、多用户(同时有多个用户,连接到你的系统中,他们之间的操作不干扰)。

5.1 UID与GID

UID 用户的ID user id
GID 用户组的ID group id

5.2 linux下面用户的分类

5.2.1 root 皇帝 UID 0

对root用户加以限制保证系统更加安全:

  1. 1、禁止root远程登陆,不让你以root用户的身份连接到系统中
  2. 2、更改sshd默认端口号

5.2.2 傀儡用户 UID 1-499

虚拟用户是没有办法使用
产生虚拟用户是满足一个需求: linux下面每个软件/服务运行的时候都需要一个用户

5.2.3 普通用户 平民百姓 UID 500-65535

5.3 与用户有关的文件

  1. /etc/passwd 用户的信息
  2. /etc/shadow 用户的密码信息
  3. /etc/group 用户组的信息
  4. /etc/gshadow 用户组的密码()

5.3.1 /etc/passwd 下每一列的含义

  1. root :x :0 :0 :root :/root :/bin/bash
  2. nobody :x :99 :99 :Nobody :/ :/sbin/nologin
  3. clsn :x :500 :500 : :/home/clsn :/bin/bash
  4. 用户名 原来密码的位置 UID GID 用户的说明信息 用户的家目录 命令解释器

5.4 命令解释器

5.4.1 默认的命令解释器

  1. /bin/bash 默认
  2. /sbin/nologin 无法登陆系统--虚拟用户

5.4.2 其他的命令解释器

  1. [root@znix ~]# cat /etc/shells
  2. /bin/sh
  3. /bin/bash
  4. /sbin/nologin
  5. /bin/dash
  6. /bin/tcsh
  7. /bin/csh

第6章 补充column命令

column 可以让文档内容自动对齐
-t 根据空格让每一列对齐
-s指定分隔符

  1. [root@znix ~]# column -t -s ":" /etc/passwd
  2. root x 0 0 root /root /bin/bash