Table of Contents
10 Linux文件系统的层级结构
01 Linux下文件的建立
1. touch
touch通常在系统中用于新建文件但是命令本身也可以修改文件的时间戳
touch filename #新建一个文件
touch file1 file2 file3... #一次新建多个文件
touch -t 202001021234 file #将文件file的时间改为2020年1月2号12点34分
2. mkdir
mkdir用来创建目录
mkdir dir1 #创建一个目录
mkdir dir1 dir2 dir3... #创建多个目录
mkdir -p test1/wei/xin... #创建层级目录,顶级目录不存在时,自动创建
mkdir -m 700 dir1 #创建目录dir1的同时指定目录的权限为700(默认建立目录的权限为755)
02 Linux下文件的删除
rm
rm file或rm -r file #删除文件会有提醒问你是否确定要删除,输入y删除,输入n不删除
rm -f file1 file2 #强制删除文件,不提醒,小心使用
rm -fr dir1 dir2 #强制删除目录,不提醒
03 Linux文本编辑方式
1. gedit #图形的文本编辑,只有在图形开启时可用
gedit file #直接编辑文件,与windows中的记事本操作类似,file可以不存在,自动新建
2. vim 文件界面下的文本编辑器,Linux中常用文本编辑工具
vim file #打开文件并进入vim命令模式 ,在命令模式下不能修改文件
i #按<i>键进入插入模式可以修改文件内容
esc #插入内容完成后,按ESC退出
:wq #保存并退出
:q #退出不保存
04 文件的查看
1. cat
cat file #查看文件的所有内容
cat -b file #显示文件的内容和行数,空行不计入行数
cat -n file #显示文件的内容即行数,空行也计入行数
cat file1 file2 > file #将文件file1和file2合并后放入文件file中
注意:显示的行号不会被保存在文件中
2. less
当文件比较长时使用less分页浏览, 常用操作如下:
上/下 #逐行移动光标
pageup/pagedown #逐页移动光标浏览
/关键字 #高亮显示关键字,n向下匹配,N向上匹配
v #进入vim编辑模式,在vim中按:wq退回到less模式
q #退出less模式
3. head & tail
head 显示文件前几行
head file #默认显示文件前十行
head -n 3 file或head -3 file #显示文件前三行
tail 显示文件后几行
tail file #默认显示文件后十行
tail -n 3 file或tail -3 file #显示文件后三行
05 文件复制及移动
cp 复制
cp 源文件 目的地文件 #复制文件,当目的地文件存在会有询问
cp -r 源目录 目的地目录 #复制源目录到目的地目录中
cp 源文件1 源文件2 目的地目录 #复制多个文件到一个目录中
注意:目的地目录必须存在
cp 源目录1 源目录2 目的地目录 #复制多个目录到一个目录中
注意:目的地目录必须存在
注意:复制是按照模板新建的过程
mv 移动
mv 源文件 目的地文件 #重命名的过程,当目的地文件存在时会被覆盖
mv 源目录 目的地目录 #不需要加任何参数,直接移动即可
由以上可知,对文件进行复制用cp,对目录进行复制用cp -r,而对文件和目录的移动都用mv,不需要加任何参数
06 文件的统计
file
可以查看文件的真实类型是什么
注意:文件的名称不能代表文件的类型,例如file.mp3不能从文件名称来确定文件类型
wc 用于统计文件的字数,字符数,行数
wc -l file #统计文件的行数
wc -w file #统计文件的字数
wc -m file #统计文件的字符数
wc -c file #统计文件的字节数(UTF-8编码中一个中文占三个字节)
07 Linux 系统中文件的寻址
文件的地址
相对路径:相对于当前系统所在目录的一个文件名称的简写,此名称省略了系统当前所在目录的名称,此名称不已“/”开头
此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值
绝对路径:绝对路径是文件在系统的真实位置,此命令以“/”开头,在命令执行时不会考虑现在所在位置的信息
例如:touch /mnt/file 该路径是一个绝对路径,无论现在处于什么位置,该命令都表示在mnt下建立文件
注意:当操作对象是 对象1 空格 对象2 时,这两个对象之间没有任何关系,所以建立文件是应该从根底下一层一层往下排
即touch /mnt/file是正确的命令,但touch file /mnt/是错误的命令,因为两个字符串之间出现空格以后这两个
字符串是没有任何关系的,该命令表示在当前目录下建立一个file,并且在改变/mnt/的时间戳
08 Linux中文件寻址的相关命令
关于路径的命令
pwd 显示路径
pwd #显示当前用户所在位置的路径
cd 切换路径
cd 目录名称 #进入到指定路径
cd - #当前目录和当前目录前所在目录之间的切换 cdir-->odir
cd .. #进入当前目录的上级目录
ls 文件信息查看
ls #默认显示当前目录里的内容
ls -l #文件属性
ls dir #目录中包含的内容
ls -d dir #目录本身
ls -ld dir #目录本身的属性
ls -a dir #显示所有文件包含隐藏的
ls -S dir #查看并且按照大小排序
ls -s dir #查看文件大小
09 Linux系统中文件批处理
系统中的通用配置符号
- ? #匹配单个字符,例如rm -f ????表示将文件名为4个字符的文件删掉
- * #匹配所有字符,例如 cp /etc/*.conf . 表示把etc下的以.conf结尾的复制到当前位置,最后的.表示当前所在位置
- [[:alpha:]] #单个字母
- [[:lower:]] #单个小写字母
- [[:upper:]] #单个大写字母
- [[:digit:]] #单个数字
- [[:space:]] #单个空格
- [[:punct:]] #单个符号
- [[:alnum:]] #单个数字或字母
- [[:punct:][:upper:]]#单个符号或单个大写字母
字符集合
1. 精确匹配
{} #用于精确匹配内容
例如:
{1..8} #匹配1,2,3,4,5,6,7,8八个数
{1,4,7} #匹配1,4,7,三个数
2. 模糊匹配
[] #用于模糊匹配内容
[1-9] #匹配一位,这一位是1-9的任意数字
[!3-5] #匹配一位,不是3-5的任意数字
[^3-5] #匹配一位,不是3-5的任意数字
[a-z] #匹配一位,这一位是a-z的任意字母
“~”应用汇总
~ #当前用户家目录
~username #指定用户家目录
~+ #当前目录
~- #进入当前目录之前所在目录,作用相当于cd -中的:“-”
10、Linux文件的层级结构
- /bin:存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;
- /sbin:存放二进制可执行文件,只有root用户才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序,如ifconfig等;
- /etc:存放系统管理和配置文件;
- /home:普通用户的家目录默认数据存放的目录,比如用户user的家目录就是/home/user,可以用~user表示;
- /root:超级用户的家目录;
- /proc:操作系统运行时,进程及内核信息存放在这里;
- /dev:用于存放设备文件,比如磁盘;
- /boot:存放内核及引导系统所需的各种文件,安装系统分区的时候一般要分一个boot分区,常见分区:/boot 200M,swap分区大小为内存的1.5倍,其余的都给/分区;
- /lib:存放着和系统运行相关的库文件;
- /opt:额外安装的可选应用程序包所存放的位置;
- /mnt:系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
- /tmp:用于存放各种临时文件,是公用的临时文件存储点,有时用户运行程序的时候,产生的临时文件放在这里;
- /var:用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件;
- /lost+found:这个目录平时是空的,存放系统非正常关机而留下的“无家可归”的文件(windows下叫xxxx.chk)
- /usr:用于存放系统应用程序的目录,比如命令、帮助文件等;