Linux学习之路(2-1)文件、目录与磁盘格式

第一章 Linux的文件权限与目录配置

Linux中的大小写是不一样的。

一、用户与用户组

1、文件所有者(own):功能:安全防护

2、用户组(group):每个账号都可以有多个用户组的支持

3、其他人(other)

默认情况下,所有的系统上的账号与一般身份用户,还有root的相关信息,都记录在/etc/passwd这个文件内

个人的密码都记录在etc/shadow这个文件下。所有的组名都记录在/etc/group内。

二、Linux文件权限

1、Linux文件属性。查看属性命令:ls -al(ls——list)

(1)r(4):可读;w(2):可写;x(1):可执行

d:目录;-:文件;l:链接文件;b:设备文件里的可供存储的接口设备;c:文件设备里的串行端口设备。

文件名:文件名前面有个 ‘.’ 就表示隐藏文件

目录:’/’表示根目录, ‘./’ 表示当前目录,‘../’ 表示当前目录的上一级目录 ‘~’表示当前用户主目录(~就等于/home/herui)

(2)查看隐藏文件命令:ls -a

eg:

d r w x r - x- - -   4     root    root       4096       Sep  8  14 :06        .

- r w - r - - -r - -   1     root    root       5661       Sep  8  14:06        install.log

权限          链接  所有者  用户组   文件容量(B)  修改日期(mtime)    文件名

注意:other如果没有x权限,是不能进入目录的

三、改变文件属性与权限

cp 复制

eg :cp 目录/源文件 目录/目标文件

cd 进入目录

eg :cd 目录

1、chgrp:改变文件所属用户组(change group)

(1)要被改变的组名必须要在/etc/group文件内才行

(2)用法:

chgrp users install.log ——把intall.log文件属性组改为users

chgrp -R users /etc/install.log——-R是进行递归的持续更改

2、chown:改变文件所有者(change owner)

chown daihong install.log

chown root:root install.log(用户名和用户组一起修改)

如果要递归的持续删除,那么应该加-R

3、chmod:改变文件的权限

chmod 777 .bashrc

chmod u=[+-]rwx go=rx .bashrc

如果要递归的持续删除,那么应该加-R

x:在目录当中是与“能否进入该目录”有关

w:让用户删除,更新,新建文件或目录

四、Linux文件种类与扩展名

1、文件种类

目录:d(directory)、链接文件:l(link)、普通文件:-、块设备文件:b(block)、字符设备文件:c(char)

套接字:s(sockets)、管道(FIFO):p(pipe)

2、文件长度

单一文件或目录的最大容许文件名为255个字符;完整路径名称长度为4096个字符

五、Linux目录配置

1、Linux目录配置标准:FHS

FHS(Filesystem Hierarchy Standard):希望让用户可以了解已安装软件通常放置在哪个目录下,并且规范每个特定的目录下应该放什么样子的数据。


可分享的


不可分享的


不变的


/usr(软件放置处)


/etc(配置文件)


/opt(第三方软件)


/boot(开机与内核文件)


可变的


/var/mail(用户邮件信箱)


/var/run(程序相关)


/var/spool/news(新闻组)


/var/lock(程序相关)

/(根目录):与开机系统有关

/usr(UNIX software resource):与软件安装/执行有关

/var(variable):与系统运作过程有关(主要针对常态性变动的文件,包括cache缓存等)

2、绝对路径和相对路径

绝对路径:以/开头

相对路径:以’.’或’..’开头(‘.’表示当前目录,’..’表示上一层目录)

第二章 Linux文件与目录管理

一、目录与路径

1、目录的相关操作

‘.’:代表此层目录

’..’:代表上一层目录

’-’:代表上一个目录

’~’:代表‘当前用户’所在的主目录

’~account’:代表account这个用户的主目录

(1)cd 切换目录

用法:cd 路径

cd ..——进入上一层目录, cd(或者cd ~)进入当前用户主目录, cd -——进入刚才那个目录, cd ../mqueue

(2)pwd 显示当前目录

用法:pwd [-P]

加P后的作用是显示目录的完整路径,而不是以链接文件的数据显示

(3)mkdir 创建目录

用法:mkdir [-mp] 目录

-m:能设置权限,不用默认的(umask)

-p:能递归

(4)rmdir 删除目录(目录需要一层一层地删除,而且被删除的目录里面必定不能存在其他的目录或者文件)

用法:rmdir [-p] 目录

-p:连同上层“空的”目录也一起删除

2、执行文件路径的变量:$PATH

(1)echo有显示、打印出的意思

显示PATH里面的路劲:echo $PATH,显示出来的不同路径用’:’分开,并且有顺序之分

不用用户的PATH有可能不尽相同

(2)添加PATH

PATH=”$PATH”:路径

二、文件与目录管理

1、查看文件与目录:ls

常用的用法:ls [-adl] 目录

-a:全部文件,包括隐藏文件(‘.’开头)

-d:仅列出目录本身,不列出目录内的文件数据

-l:列出详细信息

2、复制、删除与移动:cp、rm、mv

(1)cp 复制

常用用法:cp [-aipru] 目录/源文件 目录/目标文件

-a:相当于-pdr;-i:(互动模式)若目标文件存在,先询问;-p:把文件的本身属性一同复制,不用umask属性

-u:若目标文件比源文件旧才更新目标文件

(2)rm 删除

用法:rm [-fir] 文件或目录

-f:(force)忽略不存在的文件,不会出现警告;-i:互动模式;-r:递归删除

*:通配符,代表0到无穷多个任意字符

3、mv 移动文件或目录或改名

mv [-fiu] 目录/源文件 目录/目标文件

4、取得路劲的文件名与目录名称

比如一个路径,我们要确定最后那个是文件还是目录?

basename:路径(获取最后的文件名)

dirname:路径(获取目录名)

三、文件内容查阅

1、cat(concatenate)

常用用法 cat [-Abn] 目录/文件

-A可列出一些特殊字符;-b:列出行号,空白行不标号;-n:列出行号,空白行也标号

cat是从第一行到最后一行,那么tac就是从最后一行到第一行

2、nl 添加行号打印

3、可翻页查看

(1)more 目录/文件

说明:q退出,空格为下翻一页,b[ctral+b]代表往回翻页,但对管道文件无用。回车代表向下滚动一行

‘/字符串’代表向下查询字符串

(2)less 一页一页翻动(操作与man page类似)

(3)head 取出前面几行(默认情况是10行)

head [-n number] 目录/文件

(4)tail 取出后面几行(默认情况是10行)

tail [-n number] 目录/文件

4、非纯文本文件:od

用法:od [-t TYPE] 目录/文件

TYPE可为:a(默认的字符输出)c(ASCII字符输出)d[size](十进制,每个整数占用size bytes)f[size](浮点数,每个整数占用size bytes)o[size](八进制,每个整数占用size bytes)x[size](十六进制,每个整数占用size bytes)

5、创建新文件修改文件时间 touch

touch [-acdmt] 文件

-a:仅修改访问时间;-c仅修改文件的时间,若文件不存在则不创建

-m:仅修改mtime;-t后面接[YYMMDDhhmm]

三个时间:

(1)mtime(modification time):文件内容修改时间

(2)ctime(status time):权限与属性修改时间

(3)atime(access time):文件被取用的时间,如more、less等命令

注:ls命令出来的文件时间是mtime

注:两个连续的命令之间用 ’;’ 分开

四、文件与目录的默认权限与隐藏权限

在Linux的Ext2/Ext3文件系统下,我们还可以设置其他的系统隐藏属性,可用chattr来设置,用lsattr来查看

1、文件默认权限 umask

文件:-rw-rw-rw

目录:drwxrwxrwx

umask的分数指的是——该默认值需要去掉的权限

设置umask:umask number(3位)

eg:umask 为003,那么新建的文件与目录权限就为:

文件:(-rw-rw-rw)-(- - - - - - -wx)= -rw-rw-r--

目录:(drwxrwxrwx)-(- - - - - - -wx)= drwxrwxr--

2、chattr(设置文件的隐藏属性)

用法:chattr [+-=] [ai等] 文件或者目录

a:设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性

i:让一个文件“不能删除、改名,设置连接也无法写入或添加数据”

3、文件特殊权限:SUID,SGID,SBIT

SUID(SetUID):4——执行者将具有改程序所有者的权限(只对二进制程序、文件有效)

SGID(SetGID):2——执行者在执行过程中会获得该程序用户组的支持(可以对文件或目录)

SBIT(Sticky Bit):1——仅自己与root才有权利删除新建的文件(只对目录)

怎么来识别呢?

SUID:放到文件user权限的x位置;SGID:放到文件group权限的x位置;SBIT:放到文件others权限的x位置

注意:S,T表示空,因为当文件或目录本身都没有x属性时,自然其他执行者也没有权限,所以为空。

4、查看文件类型:file——查看某个文件的基本数据

用法:file 文件

五、命令与文件的查询

1、脚本文件名的查询

which 寻找“执行文件”

用法:which [-a] 命令

-a:是在找到PATH中所有满足的命令,which在PATH中去找。

2、文件名的查找

whereis,locate,find。whereis和locate快于find因为前者是利用数据库来查询的,find会直接去查找硬盘。

(1)whereis [-bmsu] 文件名或目录名

-b:只找二进制格式的文件;-m:只找在说明文件manual路径下的文件

-s:只找source源文件;-u:除上述三种选项中的其他特殊文件

(2)locate [-ir] keyword

-i:忽略大小写的差异;-r:后面可接正则表达式的显示方式

注意:locate寻找的数据在/var/lib/mlocate里面的数据所查找到的。手动更新命令:updatedb

(3)find [PATH] [option] [action]

-mtime n:n为数字,n天前的“一天之内”(0表示目前的时间)

-mtime +n:n天前,不含第n天

-mtime -n:第n天前到现在

-newer file:file是一个已经存在的文件,列出比file还要新的文件

file /home/herui -mtime -3 表示查询小于等于3天内的文件名

还可以根据-user,-name,-size(大小),-type(类型),perm mode(权限)等来查找

eg:找到系统中大于1M的文件:find / -size 1024k

其他查找:-exec command

eg:找出文件当中含所有SGID或SUID或SBIT的属性,并用ls -l列出来

find / -perm +7000 -exec ls -l {} \;

{}:把find / -perm +7000的内容放到里面

-exec和\;:表示命令的开始和结束的地方,因为’;’在bash环境下是有特殊意义的,因此利用反斜杠来转义

时间: 2024-08-01 12:50:08

Linux学习之路(2-1)文件、目录与磁盘格式的相关文章

Linux学习笔记(二)——文件/目录/VIM

文件和目录管理 及 VI编辑器的使用 文件和目录管理,刚开始学这块的时候感觉内容很多很杂,但是学完进行总结后,发现其实很有条理的而且没什么难度,只是熟练掌握这些常用的命令就行了.至于Vim编辑器,不得不说,用了这个编辑器之后,感觉windows的notepad很没有技术含量了. 先简单总结一下文件和目录常用到的命令,简单的用法就略过.      文件操作命令:touch.file.which.find.cp.rm.mv.ln      文件内容操作命令:cat.more.less,head.ta

linux学习之路之目录管理和文件管理

我们知道linux文件系统是一个树型结构,在最上层是'/'目录,根目录的下面就是其他目录,而这些目录下面又可以有多个子目录,这样一层一层的就形成一个树型结构图.那是不是我们查找某一个文件必须要从根目录开始往下查找的呢?当然不是,在这里我将会介绍两种路径方式:相对路径和绝对路径. 什么是相对路径和绝对路径? 绝对路径:就是从'/'根目录开始往下一级一级的查找,直到目的所经过的线路. 相对路径:就是相对当前位置而言来找到目的地所经过的线路. 目录的创建 mkdir:用于创建目录 语法格式:mkdir

linux学习之路之使用脚本来复制二进制程序和所需的库文件

首先介绍bash的特殊语法 ${parameter#*word} 其中parameter为变量,word为分隔符,表示从变量最边左字符开始到第一匹配到分隔符(word)之间的字符串都去掉 ${parameter##*word}:表示从变量最左边字符开始到最后一次匹配到该分隔符之间的字符串都去掉 注意:其中变量不要加$符号 当*在分隔符(word)前面时,表示从左开始匹配 当*在分隔符(word)后面时,表示从右开始匹配 ${parameter%word*}:表示从最右边字符开始到第一次匹配到的分

linux学习之路之目录结构

FHS的产生 我们知道目前linux的发行版本很多,如果每一个发行版本,它的目录层次结构都不相同的话,那么当管理员去管理其他的linux主机时,就会不知多措了.而且在开发过程中,如果每一个程序员都按照自己的想法去存放的数据的话,那么其他的程序员想去查找别人的数据文件时,这是问题就来了,因为文件系统中存放了那么多的数据,谁知道你把数据存放在哪儿了?因此,需要一个标准来规范,这样每个人都按照这种规范去存放.查找数据等操作,这样,当其他人如果需要去查找的话,就会简单多了. FHS:全称为文件系统目录标

Linux学习之路之DNS的配置文件和正解区域文件、反解区域文件

DNS正解区域文件 在DNS中,我们知道有域和区域的概念,域的英文名称是domain,它是一种逻辑概念:而区域英文全称zone,它是一种物理概念.且zone分为正解区域和反解区域 正解区域:提供正向解析的服务,即FQDN-->IP的过程 反解区域:提供反向解析的服务,即IP-->FQDN的过程 不管好似正解区域还是反解区域,都通过了一个配置文件,这个文件中的每一个条目就是一个资源记录(Resource Record,RR). 资源记录的类型主要有这些,且这些资源记录的格式为: SOA:起始授权

linux学习之路之文本的查找---find命令的使用

文本的查找可以使用两种方式来实现,即使用locate命令来查找和find命令来查找 那么这两种方式有什么区别呢? locate:是一种非实时查找,所谓非实时查找就是查找的不够实际,不够精确.因为locate查找是在 系统文件数据库中进行的,而数据库默认是一天更新一次,也就是说你查找的文件再数据库 更新之前查找的话,有可能找不到文件,因为那时数据库还没有去读取硬盘上的文件,所以 有些文件没有写入到数据库中. 可以收到更新数据库,使用命令updatedb 因为不上在硬盘上读取,因此速度快 locat

linux学习之路之创建私钥CA及使用CA为客户端颁发证书

创建CA(Certificate Authority) CA的储存格式主要有2种:x509和pkcs12 x509是目前最主流的CA储存格式,在x509格式的证书中,储存的内容主要有: 证书的公钥和使用期限 证书的合法拥有着 证书该如何被使用 CA的信息 CA签名的校验码 默认情况下,TCP/IP模型和OSI模型,并没有实现数据的加密,而要实现数据的加密需要使用TLS/SSL协议,TLS和SSL在有些Linux版本上实现的机制是相同的,因此在这里我们之介绍SSL协议 SSL(Secure Soc

linux学习之路之bash及其特性

我们知道当我们用鼠标点击,或输入一个命令,系统就玩帮我们完成一个任务,那么当我们点击一个链接时,系统由是如何知道要去完成相应的操作呢?这是因为通过shell来完成的. 那么什么是shell呢? shell就是用户和操作系统之间的一个接口,通过这个接口shell接受来自用户的命令,并调用相应的应用程序来呼叫kernel来处理相应的工作. 在linux系统上面存放着多种类型的shell,这些shell存放在/etc/shells文件里,默认RedHat使用的shell为bash 下面介绍一些bash

linux学习之路之ssh协议

SSH协议 SSH英文全称Secure SShell,是一种安全的协议,也是用于远程登入的. SSH相比telenet而言,具有更高的安全性,使用telent远处登入某台主机,存在着以下两个隐患: 1.用户认证是明文的 2.数据传输也是明文的 因此,处于数据安全考虑,使用SSH来远处登入更安全. SSH有2个版本,SSHv1和SSHv2,SSH1由于无法抵挡中间人攻击,因此,现在很少使用SSHv1版了.所以使用更多的还是SSHv2版,毕竟它要安全多了. SSH是工作在TCP层,端口号是22:te

linux学习之路之手动编译内核

手动编译内核 一般来说,内核的核心功是直接在内核里,其他大多数功能具有以下三种选择: 1.不使用该功能 2.将这些功能编译成模块的形式 3.将这些功能直接编译进内核当中 那么该如何手动编译内核呢? 手动编译的方式: 使用make gconfig命令,不过使用该命令适用于Gnome桌面环境,且需要安装图形开发库 使用make kconfig命令,该命令适用于KDE桌面环境,且需要安装图形开发库 不过最常见的方式是使用make menuconfig命令来编译,使用该命令会产生一个窗口界面 在该窗口下