RH124 笔记
Linux基础(2)- 系统文件结构与相关命令
Linux文件管理
linux系统文件结构
目录详解:
/
根目录bin
可被普通用户调用的binary文件,包含了一些常用的命令和工具boot
包含linux的核心组建dev
device files,包含与当前系统相连的硬件信息etc
extended text configurations 包含了所有配置相关的文件,比如对ssh的配置home
包含了普通用户的主目录文件,比如系统的用户有alice,bob那么就能找到对应的文件夹:alice
bob
root
管理者(root)的主目录文件,普通用户没有权限查看该文件夹的内容run
runtime data,该文件夹下的内容在reboot
的时候,会被删除并重新生成sbin
只能被root用户调用 sbin=system binarytmp
和var/tmp
一样,都用来存储临时文件usr
是UNIX system resources
的缩写。包含了安装的程序和库。
该目录下也有bin
和sbin
两个文件夹,这是之前linux6和linux7的遗留版本,最新的linux8中,usr/bin
和usr/sbin
作为快捷方式分别指向bin
和sbin
var
variable data 该文件夹下的内容,就算reboot
也能被保存下来,比如FTP数据, 日志文件(log),数据库文件等等
基础命令
命令 | 描述 |
---|---|
pwd | 查看当前路径 |
tree . | 打印当前目录树结构 |
ls | 罗列当前路径下的内容(文件和文件夹) |
-l 打印详细信息;-a 打印隐藏文件;-R 打印包括子目录的所有内容; | |
cd home | 进入home文件夹 |
cd / 跳转到根目录(root) | |
cd - 跳转到历史记录中的上一个目录 | |
cd .. 跳转父目录 | |
touch index.html | 新建文件 index.html |
mkdir docu | 新建目录docu |
mkdir -p docu/user1/exam | 如果exam 的父目录不存在的话也同时创建他们(docu , user1 ) |
cp file new-file | 复制文件,将拷贝份重命名为new-file 。如果new-file 已存在,则该命令会覆盖存在的文件 |
cp -r directory new-directory | 复制目录,包括其中内容 |
mv file new-file | 移动文件 |
rm file | 删除文件 |
rm -r directory | 删除目录,包括其中内容 |
-i interactive | |
rmdir directory | 删除空目录 |
cat index.html | 打印文件内容 |
USERNAME=Marry | 新建变量(在内存中) |
$(command) | 替换,可对某个命令的结果进行再次利用,比如tree $(cd ..) 打印父 |
\ | 转义字符 |
echo The value of \$HOME 输出:The value of $HOME | |
echo The value of $HOME 输出: The value of /home/user | |
'$HOME' | 单引号从字面上诠释所有文本。输出:$HOME |
"$HOME" | 双引号中可诠释变量。输出:/home/user |
链接:硬链接 vs 软链接
在linux系统中,我们可以创建指向同一个文件的多个链接(link)。链接有两种类型:硬链接和软链接。
硬链接(Hard link)
每个文件都有一个硬链接,指向文件系统上的数据。
命令 | 解释 |
---|---|
ls -l myfile.txt | 查看文件是否有多个硬链接 |
ln myfile.txt myfile-hard.txt | 新建一个指向myfile.txt 的硬链接,其实就相当于复制了一份文件 |
ls -il myfile.txt myfile-hard.txt | 查明两个文件是否是彼此的硬链接 |
df | 查看包含给定文件磁盘空间使用情况 |
df -a 包括虚拟文件系统 | |
FileSystem 代表该文件系统时哪个分区,所以列出的是设备名称 |
硬链接的局限性
- 只能用于普通文件,不能指向文件夹/特殊文件
- 只有两个文件在同一个文件系统上时,才能使用硬链接。
软链接(Soft/symbolic link)
命令 | 解释 |
---|---|
ln -s myfile.txt | 新建一个指向myfile.txt 的软链接,俗称“快捷键“ |
表达式
表达式 | 解释 |
---|---|
* | 任何零个或多个字符的字符串 |
? | 任何单个字符 |
[abc...] | 括号中的任何一个字符(在方括号之间) |
[!abc...] | 不在括号中的任何一个字符 |
[^abc...] | 不在括号中的任何一个字符 |
[[:alpha:]] | 任何字母字符 |
[[:lower:]] | 任何小写字符 |
[[:upper:]] | 任何大写字符 |
[[:alnum:]] | 任何字母字符或数字 |
[[:punct:]] | 任何非空格或字母数字的可打印字符 |
[[:digit:]] | 从 0 到 9 的任何单个数字 |
[[:space:]] | 任何单个空格字符 这可能包括制表符、换行符、回车符、换页符或空格 |
{a..c} | 匹配a和c之间的字母 |
{1..3} | 匹配1和3之间的数字 |
接下来可以用ls 表达式*
来使用表达式找到你想要的内容。比如ls ????
匹配所有有四个字符的文件。