Linux目录结构
FHS标准
Linux 的大部分目录结构是规定好了的(FHS 标准)
HS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
FHS 定义了两层规范,
第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件,/usr/share 放置共享数据等等。
目录定义为四种交互作用的形态,如下表所示:
目录路径
-表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
进入上一级目录
cd ..
进入你的home目录
cd ~
#或者cd /home/<用户名>
绝对路径
绝对路径 :以根" / "目录为起点的完整路径,以你所要到的目录为终点
/usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
相对路径
相对路径,你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)
home 目录为起点,分别以绝对路径和相对路径的方式进入 /usr/local/bin 目录:
# 绝对路径
cd /usr/local/bin
# 相对路径
cd ../../usr/local/bin
Linux文件基本操作
新建
新建空白文件
创建名为 test 的空白文件,因为在其它目录没有权限,所以需要先 cd ~ 切换回 shiyanlou 用户的 Home 目录:
cd ~
touch test
新建目录
mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。
创建名为“ mydir ”的空目录:
mkdir mydir
创建多级目录
mkdir -p father/son/grandson
复制
复制文件
创建的 test 文件复制到 /home/shiyanlou/father/son/grandson 目录中
cp test
cp test father/son/grandson
复制目录
成功复制目录需要加上 -r 或者 -R 参数,表示递归复制
cd /home/shiyanlou
mkdir family
cp -r father family
删除
删除文件
rm 文件名
#使用 rm(remove files or directories)命令删除一个文件:
rm test
#直接删除文件,可以使用 -f 参数强制删除:
rm -f test
删除目录
删除一个目录,也需要加上 -r 或 -R 参数:
rm -r 目录名
rm -r family
#强制删除
rm -rf family
移动文件与文件重命名
移动文件
使用 mv(move or rename files)命令移动文件(剪切)。命令格式是 mv 源目录文件 目的目录。
将文件“ file1 ”移动到 Documents 目录
mkdir Documents
touch file1
mv file1 Documents
重命名文件
mv 命令除了能移动文件外,还能给文件重命名。命令格式为 mv 旧的文件名 新的文件名。
将文件“ file1 ”重命名为“ myfile ”:
mv file1 myfile
批量重命名
rename 命令并不是内置命令,若提示无该命令可以使用 sudo apt-get install rename 命令自行安装。
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,tac 和 nl 命令查看文件
前两个命令都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
#要查看之前从 /etc 目录下拷贝来的 passwd 文件
cp /etc/passwd passwd
cat passwd
# -n参数显示行号
cat -n passwd
#nl 命令,添加行号并打印,这是个比 cat -n 更专业的行号打印命令。
nl -b a passwd
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)
使用 more 和 less 命令分页查看文件
more 命令打开 passwd 文件:
more passwd
使用 head 和 tail 命令查看文件
tail /etc/passwd
直接的只看一行, 加上 -n 参数,后面紧跟行数:
tail -n 1 /etc/passwd
查看文件类型
file 命令查看文件的类型:
file /bin/ls
编辑文件
vimtutor