文件目录管理
一、文件目录
-
linux目录介绍
/home : 用户家目录,新建用户就在此目录下
/bin : 存放常用命令的目录,root和普通用户都可以使用
/sbin : 存放root才能使用的命令
/boot : 系统启动相关的文件,删除后系统就无法启动
/etc : 系统配置文件存放的目录
/dev : 系统设备文件,如鼠标键盘等
/lib : 系统库文件。查看命令依赖那些库,可以使用ldd命令
/lib64 : 也是系统库文件
/meida : 媒介目录,默认为空如果插一个u盘会在这个目录下
/mnt : 挂载目录
/proc : 存放系统进程的目录
/root : root用户的家目录
/run : 一些进程产生的临时文件,这些文件一重启就会清楚。比如说一些进程的pid。
/srv : 一些服务产生的文件
/sys : 系统内核文件
/tmp :系统的临时目录,权限很大
/usr : 重要目录,用户用到的一些命令和程序都会存放在此目录
/var : 重要目录,一些系统日志会存放在/var/log下
-
常用的目录
/usr/bin /usr/sbin /bin /sbin /etc /var
-
centos7之前系统分为64与32位,7以后不再区分统一为64位
-
tree命令
以树形结构显示目录及子目录结构
tree命令如果不能使用,需要安装:
yum -y install tree
示例:
如果子目录太多,会显示很多。tree命令可以指定指定层级
二 ls命令
ls命令可以列出目录和文件列表,最常用的命令之一
- ls常用参数:
-
ls -l
列出文件详细信息
详细解释: 第一列:
第一个字母为“d”时,说明是一个目录,为“-”时说明是一个文件。
后面9九位表示权限:r w x 分别代表读、写、执行,对应的数字为4、2、1,前3位表示自己的权限,中间3位表示所属组的权限,最后3位表示其它用户的权限
第二列:
这一行数字表示有多少个文件使用了相同的inode
第三列:
文件或者目录所有者
第四列:
文件或目录所属组
第五列:
文件大小,如果文件过大可以加-h参数查看
第六列:
文件或目录的最后修改时间
第七列:
文件名称
-
ls -i
显示inode号
-
ls -lh
更加人性化的显示
-
ls -a
列出所有的文件目录,包括隐藏的。 以“.”开头就是隐藏文件或目录
-
ls -t
按时间进行排序
-
ls -d
只列出目录
7.文件类型
用ll(ls -l)命令查看文件,文件属性的第一列就是文件的类型。常用的文件类型:“d”表示目录,“-”表示文件。通常目录一般是蓝色显示。
其它特殊文件类型:
软连接、字符串设备(比如说鼠标键盘之类的设备)、块设备(光盘、磁盘) 比如说。其中“l”表示软连接、“c”表示字符串设备、“b”表示块设备,“s”表示通信文件
三 alias、cp、mv命令
-
alias命令
alias是命令的别名,是命令加参数的一个组合。alias的作用是把复杂的命令做一个别名方便操作。
-
查系统的一些别名
查看别名使用:which命令
ll就是ls -l的别名
创建一个新的别名
效果如下
-
相对路和绝对路径
绝对路径:以根目录“/ ”为始,例如/root/123/
相对路径:以当前目录为始,例如我当前在root目录下,想进入123/目录,直接cd 123/即可。
pwd命令:显示当前所在的目录
-
cd命令
cd命令就是进入一个目录
cd常用的一些用法:
cd - : 切换到上一次所在的目录,并显示目录所在路径
cd ~ : 切换到用户的家目录
cd .. : 进入上一级目录
-
创建和删除目录
-
创建目录命令:mkdir 目录名
如想在/home/下创建一个test目录:mkdir /home/test
如果想多级创建可以加上一个-p参数:
-
删除目录命令:rmdir 目录名
删除目录必须保证目录下不存在文件或者目录,否则无法删除
-
-
rm 命令
rm是用来删除文件或目录的命令
用法:
rm -f 强制删除,不用按“y”确认。
rm -r 关联删除,也是循环删除
rm -v 显示删除信息
-
环境变量
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
在Linux中的变量,可以分为环境变量和本地变量:> 1)环境变量:相当于全局变量,存在于所有的Shell中,具有继承性; 2)本地变量:相当于局部变量只存在当前Shell中,本地变量包含环境变量,非环境变量不具有继承性。 1.2.2 按生存周期分 1)永久:需要修改配置文件,变量永久生效; 2)暂时:使用export定义,关闭Shell后失效。
查看系统环境变量:
其实我们使用的命令如ls、cd...都是文件,使用的时候为什么不用输入/usr/bin/ls,就是因为环境变量的存在。
-
cp命令
cp就是copy,主要用于复制文件或目录。
语法:cp 源文件/目录 目标文件/目录
若果copy的是一个目录,目标目录名称的结尾加上/,如:
cp /home/test /root/test/
cp常用用法:
cp -r : 如果复制目录,加上-r则会复制该目录下所有的子目录和文件
cp -f :强制执行cp如果目标已经存在,不提示是否覆盖
-
mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名,如果在同一个目录下执行mv就是改名。
语法:mv 源文件/目录 目标文件/目录
移动一个目录并改名
修改一个文件名
四 文件查看
-
cat命令
cat命令就是完整的查看一个文本文件
cat常用的用法:
cat -A :显示全部,就是会把一些隐藏的特殊符号显示出来,如:换行符。
cat -n :显示行号
-
more命令
more命令也是查看文件的命令,它和cat不同的是cat是一次性显示,more是一页一页翻的显示。
more的一些常用按键:空格翻页,b是返回上一页
-
less 命令
less和more用法差不多,但是less的功能要更强大。通常使用这个命令比较多。
less的常用操作:
方向键: 一行行往上往下
f : 翻页
b: 返回上一页
/ 查找内容 : 进行查找(从前往后进行查找)
n :重复前一个搜索
?查找内容 : 和/一样的功能查找,它是从后往前进行查找
G : 定位末行
g : 定位首行
q : 退出
-
tail命令
tail命令就是显示一个文件的末尾
可以指定多少行进行显示
tail 命令一般主要用来查看一个动态的日志,加上-f 参数tail就会一直显示文件末尾不会退出。
-
head 命令
显示一个文件开头,可以加上-n参数指定显示多少行
五 文件目录权限
-
文件权限位
之前ls -l可以查看文件的详细信息
从第二位到第九位就是一个文件的权限位
权限说明:r w x 分别代表读、写、执行,对应的数字为4、2、1,前3位表示自己的权限,中间3位表示所属组的权限,最后3位表示其它用户的权限
权限用数字表示: 如 755 表示:所属用户(rwx) 所属组(rx)其它用户(rx)
-
chomd命令
chomd就是修改权限
语法:chomd xxx(权限数字) 文件/目录
把一个文件权限改为777
chomd修改权限只针对文件或目录本身,如果想把目录及子目录下所有的文件都进行修改需要加 -R 参数
还有一种修改权限的用法:chmod u=rwx,g=rw,o=rw 这种不推荐使用
-
chown命令
chown命令是修改文件/目录所有者或所属组
语法:chown 所有者:所属组 文件/目录
修改文件所有者
更改文件所属组
chown -r 和chomd修改命令一样,可以把目录及子目录下所有的文件都进行修改。
-
umask
系统在创建文件或目录时会用一个默认的权限,文件是644,目录是755。这个权限就是由umask
查看umask,root用户默认是0022
修改umask,进行对比
修改前:
把umask改为002:
-
对比结果:
umask为0022时:创建文件是644,目录是755
umask为0002时:创建文件为664,目录是775
目录为什么默认就需要x权限呢,因为进入目录就相当于执行这个目录,所有必须要有x权限。
由上面对比结果可以得出:
文件权限:666 - 022 = 644
目录权限:777 - 022 = 755
但是这个逻辑好像有问题,如果umask是003呢?
文件的结果还是:644
说明刚才的算法不对,正确的算法:
不应该使用数字直接减,应该是用权限位进行
666(rw-rw-rw-) - 003(-------wx) = 664(rw-rw-r--)
也就是把wx减去了,也是4了。
6 课堂笔记
-
要点
rsync:文件同步工具,以后学。
新知识:jumpserver堡垒机,使用python开发的