Linux文件管理
文件结构层次
/etc: 包含永久的系统特定配置数据
/:位于文件系统层次结构的顶部
/home: 包含用户主目录
/tmp:包含临时文件
/var :包含数据库和网站等动态数据
/root:管理超级用户的主目录
/user/bin: 包含普通命令和实用程序
/user/bins: 包含系统命令
/run :包含非永久的进程运行时数据
/user:包含已经安装的软件程序和库
名称指定路径
绝对路径:
举例:/home/student
相对路径
当前工作路径:【student@servera ~】 /home/student
在当前工作路径下:1.txt=/home/student/1.txt
pwd:显示当前工作路径的完整路径名
cd:更改当前工作路径,举例cd /etc/issue,有三个选项如下:
cd:回到主工作目录
cd -:回到上一次的目录
cd…:上移一个目录,回到当前目录的父目录
ls:显示文件属性,有三个选项,-l(长列式表格输出),-a(同时显示隐藏文件),
-R(递归输出所有子目录的内容如下图)
使用命令行工具管理文件
常用命令集合
创建目录
test存在:
mkdir /test/web01
test不存在:
mkdir -p /test/web01 如果test不存在又没加-p会报错,-p需要谨慎使用
一次创建多个目录时用空格分隔,多个目录都要有完整目录名
mkdir web01 web02
mkdir -p /test/web01 /test/web02
复制文件:
警告:如果复制的文件已经存在,则会覆盖
复制一个到当前目录:
cp 1.txt 2.txt …复制1.txt并起名为2.txt
复制多个到别的目录:
cp 1.txt 2.txt web01(目录) /home…复制1和2到home中,复制忽略目录
复制到当前工作目录,使用特殊目录(.)
cp 1.txt .
-r 递归复制,将目录的内容全部复制到别的目录中
cp -r web01 /tmp
移动文件
重命名
mv /home/sudent/1.txt /homestudent/21.txt
移动到别的目录
mv /home/student/1.txt /home
删除文件和目录
rm删除文件,加了选项-r可以删除目录
删除文件:
rm /home/student/1.txt
删除目录:
rm -r /home/student/web01
rm -ri(按提示删除) rm-rf(强制删除,基本不用)
rmdir /home/student/web01(删除空目录)
制作文件间的链接
硬链接:重新开辟一个内存空间存储数据
查看文件的硬链接数:
ls -l filename
xxxx xxx xxx 1 xxxxxxxxxxx 权限后的数字为链接数
创建硬链接:
ln filename.txt /tmp/filename-link.txt 后面的是创建硬链接
ls -i filename 能读出文件的编号,相同的文件有相同的编号
9527 xxxxxxxxxxxxxxxxxxx
查看文件系统:
df 查看文件系统
最后一行 Mounted on 显示文件属于哪个文件系统,不同的文件系统不能创建硬链接
特殊文件或者目录也不能创建硬链接,只能说常规文件
软链接:链接与原文件共享内存空间,删除源文件链接悬挂
创建软链接:
ln -s filename filename-softlink
软链接优点:
可跨文件系统创建
能指向特殊文件或目录
查看文件类型时ls -l filename-softlink
1 xxx xxx xxx x xx xxxxxxxxxxxxx
文件类型为1,说明是个软链接
使用SHELL扩展匹配文件名
模式匹配
波形符扩展
~/work 假设工作路径是/home/student 则最后可以理解为/home/student/work
用echo可以查看波形符和大括号的值
例子:echo ~/work
大括号扩展(用于快速创建多个文件或目录)
touch file{a,b}{1,2}.txt
生成四个乘法结果的文件,快速大量创建
touch filr{1…100}.txt 生成一百个文件
变形扩展
以$开头的变量,值可随时改变
命令替换
$(命令),在命令中有这种格式时,在输出结果前会先调用括号中的命令,并将值做为结果的一部分
防止参数被扩展
1.使用\(转义字符)可以保证随后的字符不会被扩展
2.使用双引号括住的内容可以不被通配符和shell扩展,但是命令与替换依旧可以
$开头的变量,值可随时改变