首页 > 代码库 > Linux基础系列-Day2
Linux基础系列-Day2
基础命令(文件内容管理)
1.cat:在当前终端显示文本文件内容
格式:cat [文件路径]
-n 从1开始对所有输出的行数编号
-b 和-n相似,只不过对于空白行不编号;
2.head:从文件内容开头输出,默认头部10行
格式:head [文件路径]
-c N 输出文件头部的N(N为整数)个字节内容
-n N 输出文件头部的N(N为整数)行的内容
3.tail:从文件尾部内容输出,默认尾部10行
格式:tail [文件路径]
-c N 输出文件尾部的N(N为整数)个字节内容
-n N 输出文件的尾部N(N位数字)行的内容
4.more:分屏显示文件内容
格式:more [文件路径]
-<数字>:指定每屏显示的行数
操作:按Space键显示文本的下一屏内容
按Enter键显示文本的下一行内容
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
按H键:显示帮助屏,该屏上有相关的帮助信息
按B键:显示上一屏内容
按Q键:退出more命令
5.less:与more类似,分屏显示文件内容
格式:less [文件路径]
-e 文件内容显示完毕后,自动退出
-N 每一行行首显示行号
操作:PageUp键向上翻页
PageDown键向下翻页
6.grep:使用正则表达式筛选显示文件内容,一般应用于管道命令
格式:grep [正则表达式或字符串] [文件路径]
-s 不显示错误信息
-v 反转查找
示例:
grep home home.txt 返回包含“home”的文本行
基础命令(归档和压缩)
1.tar:打包解包和压缩解压
格式:tar [选项] [文件路径]
-c 建立新的备份文件
-x 解包备份文件
-C <目录> 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-t 列出备份文件的内容
-z 通过gzip指令处理备份文件;
-v 显示指令执行过程
-r 添加文件到已经压缩的文件;
-j 支持bzip2格式文件
示例:
tar -cvf log.tar log2012.log 仅打包,不压缩
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩,解压将c替换为x
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩,解压将c替换为x
tar -zxvf log.tar.gz 解gzip方式压缩的包,后面可用-C加存放路径
tar -jxvf log.tar.bz2 解bzip2方式压缩的包,后面可用-C加存放路径
用户和组
用户介绍
系统中的每个进程(运行程序)都作为一个特定用户运行,每个文件归一个特定用户所有,对文件和目录的访问收到用户的显示,与运行进程相关联的用户可确定该进程可访问的文件和目录
·用户:用户是能够获取系统资源的权限的集合
·用户分类:
a.管理员 root:具有使用系统所有权限的用户
b.普通用户:即一般用户,其使用系统的权限受限
c.系统用户:保障系统运行,一般不提供密码登录系统
·用户查询
id 查看当前用户信息
id user 查看用户user信息
ls –l 长格式显示文件属性,第三列为所属用户
ps au 查看当前终端所关联的用户的进程,第一列为所属用户(进程管理详解)
·用户相关文件(用户):/etc/passwd
文件内容格式:username:password:UID:GID:GECOS:diretory:shell
username:用户名或帐号,不唯一
password:用户密码占位符,具体密码存放在/etc/shadow文件中
UID:用户的ID号,作为用户的唯一标识号
GID:用户所在组的ID号,作为用户组的唯一标识号(为用户的主要组)
GECOS:用户的详细信息(如姓名,年龄,电话等)
diretory:用户个人数据和配置文件所的家目录
shell:用户所在的shell环境
·用户相关文件(密码):/etc/shadow,一开始,加密的密码存储在全局可读的/etc/passwd文件中,被认为有最合理的安全性,但随密码暴力破解、字典攻击的普及,加密密码或’密码哈希’就被移到了更加安全的/etc/shadow中
文件内容格式:name:password:lastchange:minage:maxage:warning:inactive:expire:blank
name:有效登录名称
password:已加密密码(开头!表示密码已锁定)
lastchange:-d,最近更改密码的日期(以1970.1.1日的天数表示)
minage:-m,不可更改密码的天数,0表示无要求
maxage:-M,必须更改密码的最大天数
warning:-W,密码即将到期的警告期,0表示不提供警告
inactive:-I,密码过期后宽限的时间,过后失效无法登录
expire:账户失效,以距离1970.1.1的天数表示
blank:预留字段
注:密码时间管理暂不说明
组介绍
·组:用户的集合,权限的容器
·组分类:
a.普通用户组(补充组/附加组):可以加入多个用户
b.系统组:一般加入一些系统用户
c.私有组(主要组):也称基本组,当创建用户时,如果没有为其指明所属组,则为其自动定义一个私有的用户组,名称与用户名同名。私有组可以变成普通用户组,其他用户加入该组时,则变成普通组
注:每个用户只有一个主要组,一般由/etc/passwd第4个字段的组GID定义
注:用户创建的新文件归主要组所有
注:创建用户的主要组是名称和用户相同的新建组,该新建用户是其用户专用组的唯一成员
·与组相关的文件/etc/group
文件内容格式:group_name:password:GID:user_list
group_name:组名
passwoerd:组密码
GID:组的ID号,唯一标识号
user_list:以group_name为附加组的用户列表
基础命令用户和组管理命令
1.useradd:创建用户
格式:useradd [用户名]
-u 指定用户UID
-g 指定用户GID
-d 指定用户家目录,默认是/home/username
-s 指定用户所在的shell环境
-G 指定用户的附加组
注:大部分参数可应用于usermod命令修改用户
示例:
增加一用户wendy,指定UID为1888,家目录/home/oracle,shell为/bin/sh
useradd –u 1888 –d /home/oracle –s /bin/sh wendy
2.usermod:修改用户信息
格式:usermod [选项] [用户名]
-u 配置用户UID
-g 配置用户GID
-d 配置用户家目录,默认是/home/username
-m 与-d 一起用表示把用户家目录的内容也移走
-s 配置用户所在的shell环境
-G 配置用户的附加组
注:大部分参数可应用于usermod命令修改用户
示例:
修改用户wendy,UID为1000,家目录/oracle,shell为/bin/bash
usermod –u 1000 –d /oracle –s /bin/bash -m wendy
3.userdel:删除用户
格式:userdel [用户名]
-r 连同家目录一起删除
注:不加-r只从/etc/passwd中删除,默认情况保存家目录及数据
示例:
删除用户wendy及家目录
userdel –r wendy
问题:
存在无人拥有的文件和目录,只有UID号和GID号,没有所属用户和所属组
是因为删除用户不加-r选项,保留的家目录及数据将继承原用户的UID和GID号,
4.groupadd:创建组
格式:groupadd [组名]
-g 指定GID
-r 指定/etc/login.defs文件中有效系统GID编号范围内的系统组
示例:
增加用户组grp,指定UID为1001
groupadd –g 1001 grp
注:一般指定1000+,避免和系统组冲突
5.groupmod:修改组信息
格式:groupmod [选项] [组名]
-n 修改组名
-g 指定新GID号
示例:
修改harry组名为natasha
groupmod -n harry natasha
6.groupdel:删除组
格式:groupdel [组名]
注:组内必须没有任何成员才能删除,同样要避免无组文件和目录
文件权限
·文件系统权限:linux通过文件权限控制用对文件的访问
·文件所属用户类别
所属用户:通常为创建文件的用户
所属组:通常为创建文件的用户的所在组
其他用户:除了创建用户和该用户所在组内用户以外的用户
注:一般同一文件的所属用户权限高于所属组高于其他用户
·文件基本权限
三种文件权限:读取、写入、执行
读取:r表示read,可以读取文件的内容,列出目录的内容
写入:w表示write,可以更改文件的内容,可以创建或者删除目录中的内容
执行:x表示execute,可以作为命令执行文件,可以访问目录中的内容
注:三种权限根据情况进行组合以达到控制文件系统的目的
注:文件被创建,所有者自动拥有所有权限
注:对目录无执行权限,不能cd进入该目录,只能ls目录里的文件名字
注:对目录无执行权限,目录内文件有操作权限可以正常操作目录内文件
注:对目录没有读权限,看不到内容,但是可以cd进目录和对目录内进行操作
注:对目录有写权限,可以删除目录内的任何文件,无关目录内文件的权限,后面会介绍特殊权限‘粘滞位’来覆盖这个问题
注:对目录没有写权限,目录内文件文件可写则可写,但是不能删除或创建
·当创建一个文件的时候,系统保存了有关该文件的全部信息,包括:文件的位置、总计/总用量、文件类型、文件的权限位、SELinux的标记、链接数/目录数、属主属组、文件大小、文件的修改时间、文件名/文件链接名
·ls -l命令查看一个文件的详细属性
[root@Linux ~]# ls -l abc.txt
-rw-r--r--. 1 root root 762 07-29 18:19 abc.txt
说明:
1. -rw-r--r-- 该文件的文件类型和权限位
2. "." 支持SELinux标记
3. "1" 该文件硬链接的数目/引用计数
4. root root 文件属主&属组
5. "762" 字节来表示的文件长度,记住,不是K字节!
6. 07-29 18:19 文件的最后更新时间。
7. abc.txt 文件名。
·第一字段:第一个字符,文件类型(七种)
-rw-r--r--. :第一个横杠是该文件的文件类型,最后的点表示有selinux标识
- 普通文件
d 目录文件
l 链接文件
s 套接字文件
b 块设备文件
p 命名管道文件
注:所创建的文件绝大多数都是普通文件、目录文件或符号链接文件
·第一字段:权限位置
rw-r--r-- :这是该文件的权限位,一共是9个字符,他们分别对应9个权限位,三位一组,表示属主权限、属组权限和其他用户权限
rw-:前三位,文件属主可读、写
r--:中间三位,组内用户可读
r--:最后三位,其他用户只可读
注:为加强系统安全,创建文件时,系统不会自动的赋予属主执行权限
注:与NTFS权限不同,linux权限只适用于设置了linux权限的目录或文件
注:目录中的文件和子目录不会继承父目录的权限,通过特殊权限设置继承,此处不做说明
注:root拥有完全控制文件权限,可以通过selinux策略或者存在问题的进程和文件的安全性上下文限制,此处不做说明
注:除了基础三权限,linux系统下还有特殊权限和粘滞位,此处不做说明
·第二字段:链接占用的节点
1
普通文件:该文件的硬链接数
目录:该目录所含子目录的个数,新建空目录,此目录的第二字段就是2,表示该目录下有两个子目录。
注:每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目录"..",此默认子目录是隐藏的。
·第三字段:文件(目录)属主&属组
root root 该字段表示该文件(目录)属主&属组是谁,属组为属主所在的主组。
注:只有文件的拥有者才具有改动文件属性的权利。
注:root具有改动任何文件属性的权利。
注:对目录,只有拥有该目录的用户,或具有w权限用户才有在目录下创建文件的权利。
注:如果某一用户被删除,而该用户家目录还存在,ls -l 查看该文件将显示一个代表用户存在前ID号的数字。(无主无组文件)
·第四字段:文件大小
768 文件或者目录所占用的系统空间,以字节为单位
注:如果是目录,表示该目录大小,而非目录及其下面的文件的总大小
·第五字段:时间戳
08-03 08:27 文件(目录)最近访问(修改)时间
注:可通过touch、mkdir修改时间戳
·第六字段:文件/目录名
abc.txt 如果是链接,会有"->"符号,跟着它指向的文件名
基本命令(文件权限管理)
1.chmod:修改文件权限
符号法格式:chmod [Who/What/Which] [文件名]
Who指权限组: 用户(u)、组(g)、其他(o)、全部(a)
what指动作: 添加(+)、删除(-)、精确设置(=)
which指权限: 读取(r)、写入(w)、执行(xX)
注:符号法,适合进行单一权限添加或删除
注:执行X,只对目录或者任意权限位置有执行权限的文件生效
注:-R选项为递归,表示设置权限时,目录下的子目录和文件也生效设置,与X搭配使用,能够对所有目录设置执行(搜索)权限,但是要注意带执行权限的文件
示例:
为abc.txt的属主增加执行权限
chmod u+x abc.txt
数值法格式:chmod [###] [文件名]
用数字表示权限:r=4,w=2,x=1,0表示无权限
#表示一组权限rwx之和
每个#代表一个权限位置:属主、属组、其他
示例:
将abc.txt权限修改为rwxr-xr--
chmod 754 abc.txt
2.chown:更改文件的所有权
格式:chown [用户或组] [文件名]
chown user file #修改用户属主
chown :group file #修改用户属组
chown user:group file #修改用户属主和属组
-R 为递归整个目录树
-h 在改变符号链接文件的属主时不影响该链接所指向的目标文件
注:只有root和属主可改文件所有权,普通用户只能改属组,改属主后无法回改
Linux基础系列-Day2