DAY5:linux文件系统(3)+重定向和管道+用户组赫尔权限管理(1)

7月29号,马哥linux学习第五天,学习内容主要:

一、索引节点

二、硬链接与软链接

三、重定向和管道

四、用户和用户组



一、索引节点(index node)

  • 一个节点 (索引节点)是在一个表项,包含有关文件的信息 ( 元数据 ),包括:

    文件类型,权限,UID,GID

    链接数(指向这个文件名路径名称个数)

    该文件的大小和不同的时间戳

    指向磁盘上文件的数据块指针

    有关文件的其他数据

  • 一个目录是目录下的文件名和文件inode号之间的映射
  • CP命令和inode:

    分配一个空闲的inode号,在inode表中生成新条目 在目录中创建一个目录项,将名称与 inode编号关联 拷贝数据生成新的文件

    cp -f /etc/issue/ f1 将/etc/issue/删除再创建f1文件

  • rm命令和inode:

    链接数递减,从而释放的inode号可以被重用

    把数据块放在空闲列表中

    删除目录项 (数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖)

  • mv命令和inode:

    目标和源在相同的文件系统:用新的文件名创建对应新的目录项 删除旧目录条目对应的旧的文件名 不影响inode表(除时间戳)或磁盘上的数据位置:没有 数据被移动!
    目标和源在一个不同的文件系统: mv相当于cp和rm



二、硬链接与软链接

  • 硬链接

    语法: ln filename  [linkname ]

    创建硬链接会增加额外的记录项以引用文件;对应于同一文件系统上一个物理文件;每个目录引用相同的inode号;创建时链接数递增;删除文件时: rm命令递减计数的链接;文件要存在,至少有一个链接数当链接数为零时,该文件被删除;不能跨越驱动器或分区,不能给目录创硬链接。

  • 软链接

    语法:ln   -s  filename  [linkname]

    一个符号链接指向另一个文件;ls - l的 显示链接的名称和引用的文件;一个符号链接的内容是它引用文件的名称;可以对目录进行;可以跨分区;指向的是另一个文件的路径,其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数。



三、重定向

  • 标准输入与输出:

    Linux给程序提供三种I/O设备:

    标准输入(STDIN)-0 默认接受来自键盘的输入

    标准输出(STDOUT)-1 默认输出到终端窗口

    标准错误(STDERR)-2 默认输出到终端窗口

  • I/O重定向:改变默认位置

    STDOUT和STDERR可以被重定向到文件: 命令 操作符号 文件名
    支持的操作符号包括:

    > 把STDOUT重定向到文件(set -C: 禁止将内容覆盖已有文件,但可追加 强制覆盖:>|    set +C: 解除禁止)

    2> 把STDERR重定向到文件

    &> 把所有输出重定向到文件
    (   > 文件内容会被覆盖     >>  原有内容基础上,追加内容)

    标准输出和错误输出各自定向至不同位置:

    COMMAND > /path/to/file.out 2> /path/to/error.out

    合并标准输出和错误输出为同一个数据流进行重定向:

    (1)&>:覆盖重定向         &>>:追加重定向

    (2)COMMAND > /path/to/file.out 2> &1  (&1表示同标准正确输出目录)

    COMMAND >> /path/to/file.out 2> &1

    多行重定向:cat  <<EOF                   cat > file <<EOF
     ():合并多个程序的STDOUT       ( cal 2007 ; cal 2008 ) > all.txt

  • tr命令:转换和删除字符
    tr [OPTION]... SET1 [SET2]
    -c或——complerment:取字符集的补集

    -d或——delete:删除所有属于第一字符集的字符

    -s或—squeeze-repeats:把连续重复的字符以单独一个字符 表示

    -t或--truncate-set1:将第一个字符集对应字符转化为第二 字符集对应的字符

    tr [a-z] [A-Z] 将小写转化为大写(输入时不能直接回删,可使用Ctrl+Backspace回删)

  • 管道

    命令1 | 命令2 | 命令3 | …

    连接程序,实现将前一个命令的输出直接定向后一个程序当作输入的数据流

    ls  | tr ‘a-z‘ ‘A-Z‘

    STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现
    less :一页一页地查看输入: $ ls -l /etc | less

    mail: 通过电子邮件发送输入: $ echo "test email" | mail \ -s "test" [email protected] lpr:把输入发送给打印机 $ echo "test print" | lpr -P printer_name

  • tee命令:一次输入,两次输出(标准输出+文件)

    $命令1 | tee 文件名 | 命令2
     把命令1的STDOUT保存在文件名中,然后管道输入给命令2

    cat /etc/issue/ | tee /tmp/issue.tee | tr ‘a-z‘ ‘A-Z‘
    使用: 保存不同阶段的输出;复杂管道的故障排除;同时查看和记录输出

  • 特殊设备:

    /dev/null

    要使用状态结果而不需要执行结果时,执行结果放入 /dev/null



四、用户及用户组

  • 用户user

    Linux用户:Username/UID

    管理员:root, 0

    普通用户:1-65535

    系统用户:1-499(CENTOS6), 1-999(CENTOS7) 对守护进程获取资源进行权限分配

    登录用户:500(CENTOS6)+, 1000(CENTOS7)+

    交互式登录

  • 组group

    Linux组:Groupname/GID

    管理员组:root, 0

    普通组:

    系统组:1-499, 1-999

    普通组:500+, 1000+

    用户的主要组(主组):

    用户必须属于一个且只有一个主组 组名同用户名,且仅包含一个用户:私有组

    用户的附加组(辅助组):

    一个用户可以属于零个或多个辅助组

  • Linux安全上下文
    进程(运行中的程序)所能够访问资源的权限取决于进程的运行者的身份
  • 密码的复杂性策略
    使用数字、大写字母、小写字母及特殊字符中至少3种

    足够长(至少8位)使用随机密码

    定期更换;不要使用最近曾经使用过的密码

  • 加密算法

    对称加密:加密和解密使用一个

    非对称加密:加密和解密使用一对密钥(公钥、私钥)

    单向加密::哈希算法,只能加密,不能解密,提取数据的特征码(定长输出,雪崩效应)

    算法类型:md5 sha1 sha224 sha256 sha384 sha512

  • 用户和组的主要配置文件

    /etc/passwd:用户及其属性信息(名称、UID、主组ID等)

    /etc/group:组及其属性信息

    /etc/shadow:用户密码及其相关属性

    /etc/gshadow:组密码及其相关属性

  • passwd 文件格式

    ①login name:登录用名(wang)

    ②passwd:密码 (x)

    ③UID:用户身份编号 (1000)

    ④GID:登录默认所在组编号 (1000)

    ⑤GECOS:用户全名或注释

    ⑥home directory:用户主目录 (/home/wang)

    ⑦shell:用户默认使用shell (/bin/bash)

  • shadow文件格式
    登录用名

    用户密码:一般用sha512加密($n$salt$密码  其中n为加密类型 salt为每次添加的随机数)

    从1970年1月1日起到密码最近一次被更改的时间

    密码再过几天可以被变更(0表示随时可被变更)

    密码再过几天必须被变更(99999表示永不过期)

    密码过期前几天系统提醒用户(默认为一周)

    密码过期几天后帐号会被锁定

    从1970年1月1日算起,多少天后帐号失效。

  • group文件格式

    群组名称:就是群组名称

    群组密码:通常不需要设定,密码是被记录在 /etc/gshadow

    GID:就是群组的 ID

    以当前组为附加组的用户列表(分隔符为逗号)

  • gshdow文件格式

    群组名称:就是群组名称

    群组密码:

    组管理员列表:组管理员的列表,更改组密码和成员

    以当前组为附加组的用户列表:(分隔符为逗号)

时间: 2024-08-29 01:05:49

DAY5:linux文件系统(3)+重定向和管道+用户组赫尔权限管理(1)的相关文章

Linux基础概念-----Linux I/O重定向 ,管道

标准输入:键盘 标准输出:显示器 错误输出:显示器 FD:文件描述符:让程序可以文件交互,并且便于内核识别文件,打开的每一个文件都有一个描述符 程序在和文件交互式,通过文件描述符来进行交互,而非文件名,文件名是方便用户分别文件. Linux一切皆文件,所以标准输入,标准输出都有各自的文件描述符 标准输入描述符:0 标准输出描述符:1 标准错误输出描述符:2 将其默认数据流改为其他设备:IO重定向 输出重定向 > 覆盖重定向 >> 追加重定向 /dev/null  黑洞 只针对当前Shel

攻城狮在路上(叁)Linux(十一)--- 用户与用户组、文件权限、目录配置

一.用户与用户组: 3个概念:文件所有者(user).用户组(group).其他人(others). /etc/passwd  <==存放所有的用户名 /etc/shadow  <==存放个人密码 /etc/group     <==存放所有的组名 二.文件权限的概念: 1.文件属性 <==使用ls -al命令 drwxr-x---       1       root  root   4096  sep8 18:27  install.log    ① ② ③ ④ ⑤ ⑥ ⑦ 参

linux中的重定向和管道的使用方法

一个程序运行就必须要有指令和数据或者说数据结构和算法.程序处理的数据来源和处理后存放在哪,是程序员必须要考虑额问题.每个程序都有读入数据和输出数据的需求,但是为了便捷,程序允许缺省输入和输出,也就是使用默认的输入输出.一般称之为标准输入和标准输出. 对于用户来说,访问文件是通过文件名来进行的,但对于内核来说则是一个非零整数,这个数字叫做文件描述符(file descriptor,fd),打开已存在的文件或新建一个文件时,内核会返回一个文件描述符,读写文件也需要使用文件描述符来指定带读写的文件.

linux的输入输出重定向和管道

1. 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux为了跟踪打开文件,而分配的一个数字,(人是根据文件名追踪文件,系统则是根据文件描述符),这个数字有点类似c语言操作文件时候的指针,通过指针就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出st

Linux中IO重定向和管道

IO重定向和管道 根据冯诺依曼原理的知识,计算机运行有数据流的输入和输出,称之为IO. Linux中一切皆文件思想,表现为具体的文件. 在linux中打开的文件都有一个fd(File Descriptor):文件描述符 程序:指令+数据 读入数据:Input 输出数据:Output Linux给程序提供三种I/O设备: 1. 标准输入(STDIN): -0 默认为接受键盘输入2. 标准输出(STDOUT):-1 默认为输出到终端窗口3. 标准错误(STDERR):-2 默认为输出到终端窗口注:标

用户管理 之 Linux 用户(user)和用户组(group)管理概述

一.理解Linux的单用户多任务,多用户多任务概念:Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念: 1.Linux 的单用户多任务:单用户多任务:比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐:当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit .xmms以及msn等,当然还有输入法f

(转)用户管理 之 Linux 用户(user)和用户组(group)管理概述

原文:http://www.cnblogs.com/licheng/p/6103992.html 一.理解Linux的单用户多任务,多用户多任务概念:Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念: 1.Linux 的单用户多任务:单用户多任务:比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐:当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这

Linux文件管理、重定向和管道

文件的通配符: * 匹配零个或多个字符 ?匹配任何单个字符 是1个字符 ~ 当前用户的家目录 ~username 用户家目录 ~+ 前一个工作目录 [0-9] 匹配这个范围数字 [a-z] [A-Z] [wxc] 匹配列表中的任何一个字符 [^wxc] 匹配列表中的所有字符以外的字符 可以man 7  帮助 glob 更精确: [[:digit:]] 任意数字,相当于0-9 [[:lower:]] 任意小写字母 [[:upper:]] 任意大写字母 [[:alpha:]] 任意大小写字母 [[:

LINUX常用命令--重定向、管道篇(四)

一.Linux重定向 重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令.这部分涉及到的比较多的命令主要有: 涉及到的比较多的命令主要有: cat:连接文件 sort:排序文本行 uniq:忽略或者报告重复行 wc:统计文件的行数.词数.字节数 grep:打印匹配制定模式的行 head:输出文件的头部 tail:输出文件的尾部 tee:从标准输入读,并往标准输出或者文件写 1.重定向标准输出 使用>可以将本来出现在屏幕的标准输出信息重定向到一个文