2018年5月11日第3课——Linux文件系统目录与基础命令

一、Linux文件系统目录   

/:根目录。

/binbin是binary的缩写,此目录存放的是常用的命令,不能关联至独立分区,OS启动时会用到的程序。

/sbin存放系统管理员使用的管理类的基本命令,不能关联至独立分区,OS启动时会用到的程序。

/boot该目录存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。引导文件、内核文件(vmlinuz)、引导加载器(BootLoader,grub)都在此目录。

/devdev是device的缩写,设备文件及特殊文件存储位置。在Linux中,访问设备的方式和访问文件的方式相同。

/etc配置文件目录(纯文本文件)。

/home普通用户家目录。

/root管理员的家目录

/lib基本共享库文件,以及内核模块文件(/lib/modules)。

/lib64专用于x86_64系统上的辅助共享库文件存放位置。

/media便携式移动设备挂载点,如光驱、U盘等,可以挂载到此目录。

/mnt临时文件系统挂载点

/opt第三方应用程序的安装位置

/proc用于输出内核与进程信息相关的虚拟文件系统,该目录的内容在内存里。

/run跟/var/run目录一样,存放的是一些服务的pid。

/srv系统上运行的服务用到的数据。

/sys存放的是与硬件驱动程序相关的信息。

/tmp临时文件存放目录

/usr类似于Windows的Program Files目录

/usr/bin系统用户使用的应用程序

/usr/sbin管理员使用的比较高级的管理程序和系统守护程序。

/usr/src内核源代码存放的位置

/var存放的是不断扩充且经常修改的目录,包括日志文件或pid文件。

相对路径和绝对路径

相对路径:当前目录访问当前的文件或目录,比如:/haha/test.txt,在/haha目录中查看test.txt文件:cat test.txt

绝对路径:访问文件或目录均从根目录开始,在任何目录下查看test.txt:cat /haha/test.txt

二、常用命令介绍    

1、ls命令

list的缩写,语法:ls  [选项]  [文件或目录]

常用选项:-a:显示所有文件,包括隐藏的文件

-l:长格式,显示详细信息

-d:查看目录熟悉

-h:human,以人类识别的方式显示

-i:显示inode

-t:按修改时间排序

-Z:显示文件或目录的安全上下文标签

205449_Md9S_3851637.png

[root@node1 ~]# ls -ilh
total 4.0K
68879533 -rw-------. 1 root root 1.3K Nov  4  2017 anaconda-ks.cfg
[root@node1 ~]# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
除ls外,还有ll命令

105508_joI8_3851637.png

2、文件类型

105514_vOpd_3851637.png

使用ls -l 文件,可以查看文件的全部信息。其中第一段-:-rwxr-xr-x中的第1个字符表示文件类型。常见的文件类型有:

-:普通文件

d:目录

b:块设备文件(block)

c:字符设备文件(character)

l:符号连接文件(Symbolic link file)

p:命令管道(pipe)

s:套接字文件(socket)

3、alias命令

设置命令别名。系统默认的命令别名:

105559_8oQi_3851637.png

自定义一个别名:语法:alias  自定义的命令名字='命令'

[root@myblog ~]#alias haha='ls -l'

105607_5dYo_3851637.png

删除别名:unalias  名字,比如上面自定义了haha这个命令,可以使用unalias haha删除。

105611_35ex_3851637.png

4、cd命令

cd:change directory,切换目录。用法:cd  目录

cd:回到当前用户的家目录

cd -:回到上一所在的目录

cd ~:回到当前用户的家目录

cd ..:回到当前目录的上一级目录

cd的其他用法,可以参考man  cd

5、创建和删除目录命令

mkdir:创建目录。

mkdir 目录名 -pv

-p:递归创建,-v:显示创建过程信息

105619_HoXQ_3851637.png

rmdir:删除目录,只能删除空目录。

rm:可以删除目录、文件。

rm -rf:

-f:删除时不提示,强制删除,-r:递归删除目录。

6、环境变量PATH

查看系统环境变量:echo  $PATH

110526_hgMo_3851637.png

可以在/etc/profile中添加自定义的环境变量,此文件为全局配置,对所有用户均生效。比如:设置jdk的环境变量。比如:设置jdk的环境变量

111003_uKmg_3851637.png

profile类的文件:

1、设置环境变量

2、运行命令或脚本

bashrc类的文件:

1、设定本地变量

2、定义命令别名

111700_dk50_3851637.png

7、cp命令

cp:copy,复制。语法:cp  [选项] [源文件] [目标文件]

常用选项:

-r:递归复制,用于复制目录

-p:保留文件属性

-a:归档复制,常用于备份

8、mv命令

移动命令。语法:mv [选项]  [源文件或目录]  [目标文件或目录]。有4种情况:

目标文件是目录,但该目录不存在

目标文件是目录,但该目录存在

目标文件是文件,但该文件不存在

目标文件是文件,但该文件存在

9、文档查看命令

cat、tac、head、tail

·cat 文件:全部文件内容显示在屏幕上。

-n:显示行号

-A:显示所有内容,包括特殊符号。

·tac:跟cat差不多,只是从最后一行往前显示。

·more:文件内容过多时,一屏一屏的显示,而不是全部一次显示。按空格键,显示下一屏;Ctrl+D向上翻屏,Ctrl+F向下翻屏(跟空格键),按q则退出。

·less:跟more差不多。按空格键翻页,按j键向下移动一行,按k键向上移动。使用/word,回车,可以查找word字符串,继续按n键就显示下一个word。使用?word跟使用/一样,只是?向前搜索,/向后搜索。

·head:显示文件前10行。-n 数字:显示文件前“数字”行。n可以省略。

head -n 50 文件名:显示文件前50行

head  -100 文件名:显示文件前100行。

·tail:查看文件最后10行。

tail  -n 数字 文件名

tail -f 文件名:动态查看文件。

tail  -F:能实现tail -f的功能

Ctrl + S :停止滚屏

Ctrl + Q :恢复滚屏

Ctrl + C :中断

10、which命令

查看某个命令

[root@node1 ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls

三、文件属主属组和权限     

1、文件属主属组

使用ll文件可以显示文件的详细属性,如下图

144337_xpqE_3851637.png

·文件权限:用9个符号表示,每3个符号为一组。

读:r ,写:w,可执行:x,没有什么权限:-。前3位表示属主的权限,4-6位表示属组权限,7-9位表示除属主属组之外其他人的权限。

可读也可以用4表示,可写用2表示,可执行用1表示。

用3个二进制位表示属主、属组、其他人权限。

3个二进制位组合:

000  -->  没有权限(0,-)

001  -->  可执行权限(1,x)

010  -->  可写权限(2,w)

011  --> 可写可执行权限(3,wx)

100  -->  可读权限(4,r)

101  -->  可读可执行权限(5,rx)

110  -->  可读可写权限(6,rw)

111  -->  可读可写可执行权限(7,rwx)

这就是权限的全部组合。

2、文件权限

2.1 普通权限

·umask:遮罩码,默认是0022

165658_8R62_3851637.png

目录的默认权限为777,文件的默认权限为666,而

目录的实际权限:777-umask

文件的实际权限:666-umask

注意:如果计算结果文件权限结果有可执行权限,则结果加011,如果加011之后,数字大于6,则取6。比如:666-001=665,结果有执行权限,所以665+011=676,7大于6,所以取6,最终结果是666

设置umask 0033

创建一个文件,touch  haha

那么此文件的权限为:666-033=633,但文件默认情况是没有执行权限的,结果是644(633+011=644)

170459_dQYh_3851637.png

2.2 隐藏权限

设置隐藏权限:chattr  [+|-选项]  文件|目录

选项:

i:无法修改文件,如果目录设置了此权限,则仅能修改其目录中的文件,而不能创建或删除文件。

a:只能追加内容,无法覆盖或删除内容

S:文件内容在变更后立即同步到硬盘

s:彻底从硬盘中删除,不可恢复

A:不再修改文件或目录的atime

b:不再修改文件或目录的存储时间

D:检查压缩文件中的错误

d:使用dump命令备份时忽略本文件或目录

c:默认对文件或目录进行压缩

u:删除文件后依然保留其在磁盘中的数据,方便日后恢复

t:让文件系统支持尾部合并

X:可以直接访问压缩文件中的内容

查看文件或目录隐藏权限:lsattr  文件或目录

3、文件访问控制列表ACL

setfacl:设置文件ACL规则,语法:setfacl  [选项]  文件|目录

选项:

-R:递归设置

-m:针对普通文件

191832_fVLz_3851637.png

删除ACL:setfacl -b 文件|目录

191828_x5uN_3851637.png

查看ACL:getfacl  文件|目录

192002_LGwp_3851637.png

4、文件特殊权限SUIDSGIDSBIT

·SUID:让二进制程序的执行者临时拥有属主的权限(仅对有执行权限的二进制程序有效)。

SUID用s表示,也可以用4表示。原文件有x权限时,添加SUID后,x变为s,如果原文件没有x权限,添加后用S表示。

·SGID:让二进制程序的执行者临时拥有属组的权限(仅对有执行权限的二进制程序有效)。某个目录中创建的文件自动继承该目录的用户组。

SUID用s表示,也可以用2表示。

·SBIT:粘滞位。目录中的文件只能被其所有者可以删除,其他人不能删除,用t或1表示。如果原文件有x权限,设置后为t,如果原文件没有x权限,设置后为T。

设置SUID:

193039_7gtX_3851637.png

设置SGID:

193600_CBOp_3851637.png

设置SBIT:

193718_8PGS_3851637.png

test.txt文件没有x权限,设置SUID后属主权限为rwS

用数字表示权限,设置演示:

[root@localhost ~]# touch test2

[root@localhost ~]# chmod 4777 test2

第1个数字:表示特殊权限

第2个数字:属主权限

第3个数字:属组权限

第4个数字:其他人权限

194518_OplU_3851637.png

194512_eD4j_3851637.png

上图,文件权限后面有.和+两种。

.:表示没有设置ACL

+:表示已经设置ACL

5、软、硬连接

软连接:类似于windowns的快捷方式,原文件删除后,连接文件打不开。

ln  [选项]  原文件  目标文件

选项:

-s:创建软连接(默认是创建硬链接)

-f:强制创建

-i:覆盖前询问

-v:显示创建过程

硬链接:两个文件的inode是一样的。删除原文件不会影响连接文件。不支持对目录做硬链接。

195908_mGJ6_3851637.png

四、find命令     

find [选项] [查找路径] [查找条件] [处理动作]

查找路径:指定具体路径,默认为当前目录

查找条件:可以根据文件名、文件大小、类型、权限等进行查找,默认为找出指定路径下的所以文件

处理动作:对符合条件的文件做什么操作,默认为输出到屏幕。

查找条件:

1、根据文件名查找

-name 文件名

-iname  文件名:不区分大小写

-regex "模式"

2、根据属主属组查找

-user 用户名

-group  组名

-uid  UID

-gid  GID

-nouser:无属主

-nogroup:无属组

3、根据文件类型查找

-type 类型

f:普通文件,b:块设备,p:管道,d:目录,s:套接字文件

l:符号链接,c:字符设备

4、根据文件大小查找

-size [+ | - | ] 数字单位

数字前无符号,表示(数字-1,数字],如:

-size 3k:表示大于2k,小于等于3k

-size -3k:表示[0k,2k],大于等于0k,小于等于2k

-size +3k:表示(3,),大于3K

5、根据时间戳查找

天:-atime,-mtime,-ctime

分钟:-amin,-mmin,-cmin

例如,3天:

-3:3天之内,也就是[0,3)

3:[3,4),3到4天,包括3天,但不包括4天

+3:3天之前,也就是[4,无穷大)

6、根据权限查找

-perm [/|-] 权限

/权限:任何一类(u,g,o)对象的权限中只要有一位匹配即可。

-权限:每一类对象必须同时拥有指定的权限才匹配。

处理动作:

-print:默认处理动作,显示至屏幕。

-ls:类似ls -l

-delete:删除找到的文件

-fls 文件名:查找到的所有文件的长格式信息保存到文件中

-ok 命令 {} \;  :对查找到的文件执行指定的命令,执行命令前提示用户。

-exec 命令 {} \;  :对查找到的文件执行指定的命令,执行命令前不提示用户。

注意:find传递找到的文件至后面的指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令。

有些命令不能接收过多的参数,可以使用:find  | xargs  命令

例子:查找/etc/目录下所有用户都没有写权限的的文件。

 

205543_Cqhp_3851637.png

例2:查找/etc/目录下,最近一周内修改过,且不属于root用户的所以文件和目录

205939_Z4oq_3851637.png

例3:查找/etc/目录中至少有一类用户没有执行权限的文件。

210241_9cto_3851637.png

五、Linux与windows互传文件

安装lrzsz包,使用lz、sz命令即可。使用lz、sz传输文件,大小不能超过2G。

yum install lrzsz -y

转载于:https://my.oschina.net/logmm/blog/1808705

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值