Linux 目录与 Windows 目录
- Windows 一直是以存储介质为主的,主要以盘符及分区来实现文件管理,然后之下才是目录。文件可以放置在任何目录中
- Linux 是以目录为主的,是以树形目录结构的形式来构建整个系统的。从逻辑上来说 Linux 的磁盘是挂载在目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统【
虽然本质上目录结构还是存储在磁盘上的】【例如可以将一个磁盘分区挂载到/home目录上,用于存储用户的个人文件;将另一个磁盘分区挂载到/var目录上,用于存储系统日志和变量数据;还可以通过挂载网络文件系统,将远程服务器的文件挂载到本地目录中,方便共享和访问】
当文件名中有 空格/特殊字符 时,Linux 会给文件名加 `''` ,所以在操作这个文件时,也要加上引号才能操作
cat '文件名 1.txt'
FHS
FHS 是文件系统层次结构标准,定义了系统中每个区域的用途,所需要的最小构成的文件和目录,还给出了例外处理与矛盾处理

FHS 的两层规范:
- 第一层是
/下面的各个目录应该要放什么文件数据【例如/etc应该放置设置文件,/bin与/sbin应该放置可执行文件……】 - 第二层是针对
/usr,/var的子目录来定义【/var/log放置系统日志文件,/usr/share放置共享数据……】
FHS 依据文件系统使用的频繁程度,是否允许用户随意改动,将目录分为四种交互作用的形态: 
基础操作
获取当前目录
pwd【print working directory】 获取当前的绝对路径
切换目录
cd 路径.表示当前目录【ls .表示列出当前目录的文件】..表示上一级目录【cd ..表示进入上一级目录】-表示上一次所在目录【cd -表示进入上一次所在的目录】~表示当前用户的home目录下的用户目录【cd ~将进入用户目录】
bash
绝对路径
cd /usr/local/bin
相对路径,现在在/home/shiyanlou
cd ../../usr/local/bin
相对路径,现在在/usr下,要进入到/bin下
cd ./local/bin创建目录
mkdir 目录名【make directory】-p创建目录时,同时创建父目录【parent】
bash
mkdir -p ./father/son/grandson如果当前目录有 `test` 文件,则无法创建 `test` 目录
如果当前目录存在 `test` 目录,则创建 `test` 文件时,会更改 `test` 目录的时间戳,而不是创建文件
创建文件
touch 文件名
bash
touch /opt/forloutest复制文件,目录
cp【copy】-r递归复制,也就是复制目录
bash
将之前创建的 `test` 文件复制到 `/home/shiyanlou/father/son/grandson` 目录中
cp test father/son/grandson
将father里的son目录,复制到family目录里
cp -r father/son family删除文件,目录
rm【remove】-f当删除只读文件遇到阻碍时,强制删除【force】-r递归删除,也就是删除目录【recursive】
bash
删除文件
rm test
删除目录
rm -r test移动,重命名文件
mv 源文件 目的目录【move】
- 移动文件
bash
将文件 file1 移动到 documents 目录里
mv file1 documents- 重命名文件
bash
将 file1 重命名为 file11
mv file1 file11批量重命名文件
rename
`rename` 命令不是内置命令,若提示无该命令,可以使用 `sudo apt-get install rename` 命令安装
rename 命令要用 perl 正则表达式来作为参数
bash
cd /home/shiyanlou/
使用通配符批量创建 5 个文件
touch file{1..5}.txt
批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:
rename 's/\.txt/\.c/' *.txt
批量将这 5 个文件,文件名和后缀改为大写:
rename 'y/a-z/A-Z/' *.c查看文件
cat命令【concatenate】:正序打印文件内容到终端-nnumber,会显示行号-A显示所有特殊字符
bash
cat file
cat -n filetac命令【】:倒序【从最后一行向上打印】打印文件到终端cat的倒序
nl命令【number lines】-b:指定添加行号的方式-b a:表示无论是否为空行,同样列出行号【cat -n的方式】-b t:只列出非空行的编号并列出【默认】
-n:设置行号的样式-n ln:在行号字段最左端显示-n rn:在行号字段最右边显示,且不加 0-n rz:在行号字段最右边显示,且加 0
-w:行号字段占用的位数【默认为 6 位】
bash
nl -b a -n rz -w 3 file[!quote] 标准输入输出 当我们执行一个 shell 命令行时通常会自动打开三个标准文件【标准输入文件,标准输出文件,标准错误输出文件】
进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中
分页查看文件
more 文件名只能向一个方向滚动Enter向下滚动一行Space向下滚动一屏q退出
条件查看文件
head 文件名只查看文件的前 10 行tail 文件名只查看文件的后 10 行-n 参数指定只看后几行-f不停地读取某个文件的内容并显示,动态查看日志,达到实时监视
bash
tail -n 1 /etc/passwd查看文件类型
在 Windows 中,如果新建了一个 shiyanlou.txt 文件,Windows 会自动把它识别为文本文件。而在 Linux 中文件的类型不是根据文件后缀来判断的,只有在文件里输入内容后才会显示文件类型
file 文件名