文件系统file system 对文件操作(查看,修改,增加,删除,新建,执行等---读,写)的管理系统--->把数据从内存写到磁盘,从磁盘读取数据到内存 如:1.一个文件可以多大 2.一个文件夹里可以创建多少个文件或文件夹 3.一个磁盘分区可以多大 4.文件的命名 5.文件的查找 Linux系统的内核来完成: 内核:是Linux系统内部最核心的软件 git:linus 内核功能:1.对cpu进行调度管理 2.对内存进行分配管理 3.对进程进行管理 4.对文件系统进行管理---磁盘 5.其他硬件---网卡,声卡等

文件目录结构: Windows:一个盘就是一颗树结构 Linux:只有一颗树结构

绝对路径(absolutely path)-----绝对不会搞错的路径 不考虑当前位置,从“/”到达目标文件需要经过的文件系统目录树的所有分支-----以“/”开头一层层往下走,不能跳跃,与你在哪个文件夹没关系

[root@localhost hefei]# mkdir china/{hunan/changsha,hubei/wuhan,henan/zhengzhou,anhui/hefei} -p
[root@localhost /]# cd /china/hunan/changsha
[root@localhost changsha]# cd /china/anhui/hefei
[root@localhost hefei]# 
[root@localhost hefei]# mkdir /china/hunan/changde

第一个'/'读根,后面的'/'都是文件夹之间的分隔符

[root@localhost hefei]# tree /china
/china
├── anhui
│   └── hefei
├── henan
│   └── zhengzhou
├── hubei
│   └── wuhan
└── hunan
    ├── changde
    └── changsha

相对路径:参照当前位置,到达目标文件需要经过的文件系统目录树的所有分支---不以“/”开头 1.参照物:当前目录 . 当前目录 .. 绝对目录

路径是配合命令使用的,很多命令+路径: 如cd /china mkdir /china/zhejiang touch /china/tianjin

Linux里查看目录结构的命令: 1.tree ----首选 2.ls -R

ll -----ls -l的别名 ls -R递归显示每个文件夹里的内容

du命令(estimate file space usage):统计目录及文件的空间占用情况---- Summarize disk usage of the set of FILEs----disk usage磁盘空间的使用 格式:du [选项]...[目录或文件名] 常用命令选项 -a:统计时包括所有的文件,而不仅仅只统计目录 -h:以更易读的字节单位(K、M等)显示信息 -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G) -s:只统计每个参数所占用空间总的大小 -s, --summarize display only a total for each argument

[root@localhost /]# du -sh /
du: 无法访问'/proc/9239/task/9239/fd/3': 没有那个文件或目录
du: 无法访问'/proc/9239/task/9239/fdinfo/3': 没有那个文件或目录
du: 无法访问'/proc/9239/fd/4': 没有那个文件或目录
du: 无法访问'/proc/9239/fdinfo/4': 没有那个文件或目录
du: 无法访问'/run/user/1000/gvfs': 权限不够
12G	/
[root@localhost /]# du -sh 2>/dev/null
12G	.
[root@localhost /]#

[root@localhost ~]# du -sh 144K . 显示的是当前路径的文件大小

2>代表错误的输出重定向,命令执行时出错的信息 重定向:本来输出应该往屏幕上输出,现在改变了输出的方向,往一个文件里输出----重新决定输出的方向 标准的输出方向:输出到屏幕上

/dev/null黑洞文件:任何内容存放到这个文件里,都不保存,直接删除 /dev目录是存放设备文件的 device Linux里一切皆文件,任何一个硬件都对应一个文件----硬件对应的文件就是设备文件

文件类型:

  • 代表普通文件 d 代表目录 c 代表字符设备文件 character ----与输入输出字符相关的文件,键盘,鼠标,显示器相关的设备文件 b 代表块设备文件 block----磁盘 是存储数据的设备---磁盘在格式化的时候会划分出很多块,来存放文件 l 代表链接文件 link ---相当于windows里的快捷方式

格式化:对磁盘重新进行划分出很多很多块的过程,会把原来的

ln 创建链接文件的命令 -s 创建符号链接(相当于windows里的快捷方式)

[root@localhost /]# ln -s china zhong
                                         源     链接文件
[root@localhost /]# ll
lrwxrwxrwx.   1 root root    5 6月  19 15:20 zhong -> china
[root@localhost /]# cd zhong
[root@localhost zhong]# pwd
/zhong
[root@localhost zhong]# pwd -P   显示真正的物理路径
/china

PS:不要删除链接文件的源文件,不然会导致链接文件不可用

[root@localhost boot]# du -sh /var
110M	/var
[root@localhost boot]# du -sh /usr
1.1G	/usr
[root@localhost boot]#

[root@localhost lianxi]# du -sh gus.py
4.0K	gus.py
[root@localhost lianxi]# ll -h gus.py
-rwxr-xr-x. 1 root root 62 6月  17 17:06 gus.py
[root@localhost lianxi]#

ll 是看这个文件里有多少字符,然后统计大小 一个英文字符 占1个字节 一个汉字3个字节 du 是看这个文件占多少个块的数量,一个块大概是4k ,没有使用完,也算4k

统计文件大小的命令: 1.du -sh 文件和文件夹都可以 2. ll -h -->只能统计文件的大小

touch 创建空文件--->前提是文件不存在---->如果文件存在就是修改文件的时间(atime,mtime,ctime都会改)

cp命令:复制文件或目录 格式:cp [选项]... 源文件或目录... 目标文件或目录 -r 递归复制整个目录树 -a 复制时保留链接,文件属性并递归地复制目录 1.复制单个文件到文件夹

[root@localhost /]# mkdir lianxi
[root@localhost /]# cd lianxi
[root@localhost lianxi]# mkdir sanchuang
[root@localhost lianxi]# ls
sanchuang
[root@localhost lianxi]# touch cali.txt
[root@localhost lianxi]# ls
cali.txt  sanchuang
[root@localhost lianxi]# cp cali.txt sanchuang/
                                           源文件    目的地
[root@localhost lianxi]# ls
cali.txt  sanchuang
[root@localhost lianxi]# tree
.
├── cali.txt
└── sanchuang
    └── cali.txt

1 directory, 2 files
[root@localhost lianxi]# cp cali.txt sanchuang/
cp:是否覆盖'sanchuang/cali.txt'? y
[root@localhost lianxi]# 

2.复制多个文件到文件夹 在Windows按ctrl键,单个鼠标左键点击,就是选中多个文件,这些文件可以不连接,就能复制 在Windows按shift键,点第一个,然后点最后一个,这些文件可以连续选中 shift键---上档键 CTRL+A 全选

在Linux里:

[root@localhost lianxi]# cp  cali.txt  hosts  passwd  changsha
                              前面的多个文件都是源文件   最后是目的地(目录)
[root@localhost lianxi]# tree
.
├── cali.txt
├── changsha
│   ├── cali.txt
│   ├── hosts
│   └── passwd
├── hosts
├── passwd
└── sanchuang
    ├── cali.txt
    └── hostname

2 directories, 8 files
[root@localhost lianxi]#

或者:

[root@localhost lianxi]# touch feng{1..10}.txt
[root@localhost lianxi]# ls
cali.txt    feng1.txt  feng3.txt  feng5.txt  feng7.txt  feng9.txt
feng10.txt  feng2.txt  feng4.txt  feng6.txt  feng8.txt  sanchuang
[root@localhost lianxi]# cp feng*.txt sanchuang---复制所有feng开头地文件到sanchuang文件夹里

3.复制文件夹到文件夹

[root@localhost lianxi]# mkdir jiangxi
[root@localhost lianxi]# cp sanchuang jiangxi
cp: 未指定 -r;略过目录'sanchuang'
[root@localhost lianxi]# ls jiangxi
[root@localhost lianxi]# cp sanchuang jiangxi -r------递归复制---主要用在复制文件夹
[root@localhost lianxi]# ls jiangxi
sanchuang

4.复制粘贴重命名一步到位

 [root@localhost lianxi]# cp /lianxi/sanchuang/  /lianxi/jiangxi/xin -r   将sanchuang复制到jiangxi下并改名为xin
 [root@localhost lianxi]# cp  /etc/passwd  sc_passwd  将/etc/passwd 文件复制粘贴到当前目录下改名叫sc_passwd

5.复制过去不予提醒
[root@localhost min]# alias
alias cp='cp -i'

 -i, --interactive  交互
              prompt before overwrite (overrides a previous -n option)
              在覆盖之前给予提示
   5.1  取消别名----------不建议
   		别名在shell解释人输入的命令的时候,会优先使用
[root@localhost min]# unalias  cp
[root@localhost min]# cp feng*.txt panjinghao/
[root@localhost min]# cp feng*.txt panjinghao/
[root@localhost min]# cp feng*.txt panjinghao/
[root@localhost min]#
 5.2   使用命令的绝对路径 -->别名在shell解释人输入命令时优先使用----->推荐使用的
 [root@localhost min]# which cp  查看cp命令的路径
alias cp='cp -i'
	/usr/bin/cp
[root@localhost min]# /usr/bin/cp  feng*.txt panjinghao/
[root@localhost min]# /usr/bin/cp  feng*.txt panjinghao/
[root@localhost min]# /usr/bin/cp  feng*.txt panjinghao/
[root@localhost min]#

usr----unix system resource----命令就是资源,程序就是资源----此目录下存放大量的Linux命令

mv move命令( mv - move (rename) files) 1.移动(剪切) 当后面接的文件夹存在的时候,就是移动 移动1个文件或者文件夹 [root@localhost lianxi]# mv changsha zhejiang

	移动多个文件
	[root@localhost lianxi]# mv jiangxi/ shenzhen/ zhe fujian
	[root@localhost lianxi]# mv feng*.txt sanchuang/  fujian

2.重命名 当后面接的文件夹不存在的时候,就是重命名 [root@localhost lianxi]# mv fujian/ min 剪切、粘贴、重命名一步到位 [root@localhost lianxi]# mv passwd min/xyq_passwd

PS:接选项时注意:不要把另外命令的选项套用到别的命令