建设网站的基本步骤,点击网络网站,logo免费设计生成,wordpress中文名注册文章目录目录管理基本属性文件内容查看目录管理 绝对路径和相对路径 我们知道Linux的目录结构为树状结构#xff0c;最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中#xff0c;通过解除挂载可以移除它们。
在开始本教程前我们需要先知道什么是绝对路径与相…
文章目录目录管理基本属性文件内容查看目录管理 绝对路径和相对路径 我们知道Linux的目录结构为树状结构最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中通过解除挂载可以移除它们。
在开始本教程前我们需要先知道什么是绝对路径与相对路径。
绝对路径
路径的写法由根目录 / 写起例如/usr/share/doc 这个目录。
相对路径
路径的写法不是由 / 写起例如由 /usr/share/doc 要到 /usr/share/man 底下时可以写成cd …/man 这就是相对路径的写法啦 处理目录的常用命令 接下来我们就来看几个常见的处理目录的命令吧
ls: 列出目录cd切换目录pwd显示目前的目录mkdir创建一个新的目录rmdir删除一个空的目录cp: 复制文件或目录rm: 移除文件或目录mv: 移动文件与目录或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档如 man cp。 ls 列出目录 在Linux系统当中 ls 命令可能是最常被运行的。
语法
[rootwww ~]# ls [-aAdfFhilnrRSt] 目录名称选项与参数
-a 全部的文件连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)-l 长数据串列出包含文件的属性与权限等等数据(常用)
将目录下的所有文件列出来(含属性与隐藏档)
[rootwww ~]# ls -al ~cd 切换目录 cd是Change Directory的缩写这是用来变换工作目录的命令。
语法
cd [相对路径或绝对路径]测试
# 切换到用户目录下
[rootkuangshen /]# cd home # 使用 mkdir 命令创建 kuangstudy 目录
[rootkuangshen home]# mkdir kuangstudy# 进入 kuangstudy 目录
[rootkuangshen home]# cd kuangstudy# 回到上一级
[rootkuangshen kuangstudy]# cd ..# 回到根目录
[rootkuangshen kuangstudy]# cd /# 表示回到自己的家目录亦即是 /root 这个目录
[rootkuangshen kuangstudy]# cd ~接下来大家多操作几次应该就可以很好的理解 cd 命令的。 pwd ( 显示目前所在的目录 ) pwd 是 Print Working Directory 的缩写也就是显示目前所在目录的命令。
[rootkuangshen kuangstudy]#pwd [-P]选项与参数-P 显示出确实的路径而非使用连接(link) 路径。
测试
# 单纯显示出目前的工作目录
[rootkuangshen ~]# pwd
/root# 如果是链接要显示真实地址可以使用 -P参数
[rootkuangshen /]# cd bin
[rootkuangshen bin]# pwd -P
/usr/binmkdir 创建新目录 如果想要创建新的目录的话那么就使用mkdir (make directory)吧。
mkdir [-mp] 目录名称选项与参数
-m 配置文件的权限喔直接配置不需要看默认权限 (umask) 的脸色-p 帮助你直接将所需要的目录(包含上一级目录)递归创建起来
测试
# 进入我们用户目录下
[rootkuangshen /]# cd /home# 创建一个 test 文件夹
[rootkuangshen home]# mkdir test# 创建多层级目录
[rootkuangshen home]# mkdir test1/test2/test3/test4
mkdir: cannot create directory ‘test1/test2/test3/test4’:
No such file or directory # 没办法直接创建此目录啊# 加了这个 -p 的选项可以自行帮你创建多层目录
[rootkuangshen home]# mkdir -p test1/test2/test3/test4# 创建权限为 rwx--x--x 的目录。
[rootkuangshen home]# mkdir -m 711 test2
[rootkuangshen home]# ls -l
drwxr-xr-x 2 root root 4096 Mar 12 21:55 test
drwxr-xr-x 3 root root 4096 Mar 12 21:56 test1
drwx--x--x 2 root root 4096 Mar 12 21:58 test2rmdir ( 删除空的目录 ) 语法
rmdir [-p] 目录名称选项与参数**-p **连同上一级『空的』目录也一起删除
测试
# 看看有多少目录存在
[rootkuangshen home]# ls -l
drwxr-xr-x 2 root root 4096 Mar 12 21:55 test
drwxr-xr-x 3 root root 4096 Mar 12 21:56 test1
drwx--x--x 2 root root 4096 Mar 12 21:58 test2# 可直接删除掉没问题
[rootkuangshen home]# rmdir test# 因为尚有内容所以无法删除
[rootkuangshen home]# rmdir test1
rmdir: failed to remove ‘test1’: Directory not empty# 利用 -p 这个选项立刻就可以将 test1/test2/test3/test4 依次删除。
[rootkuangshen home]# rmdir -p test1/test2/test3/test4注意这个 rmdir 仅能删除空的目录你可以使用 rm 命令来删除非空目录后面我们会将 cp ( 复制文件或目录 ) 语法
[rootwww ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[rootwww ~]# cp [options] source1 source2 source3 .... directory选项与参数
**-a**相当於 -pdr 的意思至於 pdr 请参考下列说明(常用)**-p**连同文件的属性一起复制过去而非使用默认属性(备份常用)**-d**若来源档为连结档的属性(link file)则复制连结档属性而非文件本身**-r**递归持续复制用於目录的复制行为(常用)**-f**为强制(force)的意思若目标文件已经存在且无法开启则移除后再尝试一次**-i**若目标档(destination)已经存在时在覆盖时会先询问动作的进行(常用)**-l**进行硬式连结(hard link)的连结档创建而非复制文件本身。**-s**复制成为符号连结档 (symbolic link)亦即『捷径』文件**-u**若 destination 比 source 旧才升级 destination
测试
# 找一个有文件的目录我这里找到 root目录
[rootkuangshen home]# cd /root
[rootkuangshen ~]# ls
install.sh
[rootkuangshen ~]# cd /home# 复制 root目录下的install.sh 到 home目录下
[rootkuangshen home]# cp /root/install.sh /home
[rootkuangshen home]# ls
install.sh# 再次复制加上-i参数增加覆盖询问
[rootkuangshen home]# cp -i /root/install.sh /home
cp: overwrite ‘/home/install.sh’? y # n不覆盖y为覆盖rm ( 移除文件或目录 ) 语法
rm [-fir] 文件或目录选项与参数
-f 就是 force 的意思忽略不存在的文件不会出现警告信息-i 互动模式在删除前会询问使用者是否动作-r 递归删除啊最常用在目录的删除了这是非常危险的选项
测试
# 将刚刚在 cp 的实例中创建的 install.sh删除掉
[rootkuangshen home]# rm -i install.sh
rm: remove regular file ‘install.sh’? y
# 如果加上 -i 的选项就会主动询问喔避免你删除到错误的档名# 尽量不要在服务器上使用 rm -rf /mv ( 移动文件与目录或修改名称 ) 语法
[rootwww ~]# mv [-fiu] source destination
[rootwww ~]# mv [options] source1 source2 source3 .... directory选项与参数
-f force 强制的意思如果目标文件已经存在不会询问而直接覆盖-i 若目标文件 (destination) 已经存在时就会询问是否覆盖-u 若目标文件已经存在且 source 比较新才会升级 (update)
测试
# 复制一个文件到当前目录
[rootkuangshen home]# cp /root/install.sh /home# 创建一个文件夹 test
[rootkuangshen home]# mkdir test# 将复制过来的文件移动到我们创建的目录并查看
[rootkuangshen home]# mv install.sh test
[rootkuangshen home]# ls
test
[rootkuangshen home]# cd test
[rootkuangshen test]# ls
install.sh# 将文件夹重命名然后再次查看
[rootkuangshen test]# cd ..
[rootkuangshen home]# mv test mvtest
[rootkuangshen home]# ls
mvtest基本属性 看懂文件属性 Linux系统是一种典型的多用户系统不同的用户处于不同的地位拥有不同的权限。为了保护系统的安全性Linux系统对不同的用户访问同一文件包括目录文件的权限做了不同的规定。
在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组如 实例中boot文件的第一个属性用d表示。d在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
当为[ d ]则是目录当为[ - ]则是文件若是[ l ]则表示为链接文档 ( link file )若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )若是[ c ]则表示为装置文件里面的串行端口设备例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中以三个为一组且均为『rwx』 的三个参数的组合。
其中[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是这三个权限的位置不会改变如果没有权限就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定如下图 从左至右用0-9这些数字来表示。
第0位确定文件类型第1-3位确定属主该文件的所有者拥有该文件的权限。第4-6位确定属组所有者的同组用户拥有该文件的权限第7-9位确定其他用户拥有该文件的权限。
其中
第1、4、7位表示读权限如果用r字符表示则有读权限如果用-字符表示则没有读权限
第2、5、8位表示写权限如果用w字符表示则有写权限如果用-字符表示没有写权限
第3、6、9位表示可执行权限如果用x字符表示则有执行权限如果用-字符表示则没有执行权限。
对于文件来说它都有一个特定的所有者也就是对该文件具有所有权的用户。
同时在Linux系统中用户是按组分类的一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以上实例中boot 文件是一个目录文件属主和属组都为 root。 修改文件属性 1、chgrp更改文件属组
chgrp [-R] 属组名 文件名-R递归更改文件属组就是在更改某个目录文件的属组时如果加上-R的参数那么该目录下的所有文件的属组都会更改。
2、chown更改文件属主也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名属组名 文件名3、chmod更改文件9个属性
chmod [-R] xyz 文件或目录Linux文件属性有两种设置方法一种是数字一种是符号。
Linux文件的基本权限就有九个分别是owner/group/others三种身份各有自己的read/write/execute权限。
先复习一下刚刚上面提到的数据文件的权限字符为『-rwxrwxrwx』 这九个权限是三个三个一组的其中我们可以使用数字来代表各个权限各权限的分数对照表如下
r:4 w:2 x:1每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的例如当权限为[-rwxrwx—] 分数则是
owner rwx 421 7group rwx 421 7others — 000 0
chmod 770 filename可以自己下去多进行测试
文件内容查看 概述 Linux系统中使用以下命令来查看文件的内容
cat 由第一行开始显示文件内容tac 从最后一行开始显示可以看出 tac 是 cat 的倒着写nl 显示的时候顺道输出行号more 一页一页的显示文件内容less 与 more 类似但是比 more 更好的是他可以往前翻页head 只看头几行tail 只看尾巴几行
你可以使用 *man [命令]*来查看各个命令的使用文档如 man cp。 cat 由第一行开始显示文件内容 语法
cat [-AbEnTv]选项与参数
-A 相当於 -vET 的整合选项可列出一些特殊字符而不是空白而已-b 列出行号仅针对非空白行做行号显示空白行不标行号-E 将结尾的断行字节 $ 显示出来-n 列印出行号连同空白行也会有行号与 -b 的选项不同-T 将 [tab] 按键以 ^I 显示出来-v 列出一些看不出来的特殊字符
测试
# 查看网络配置: 文件地址 /etc/sysconfig/network-scripts/
[rootkuangshen ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICEeth0
BOOTPROTOdhcp
ONBOOTyestac tac与cat命令刚好相反文件内容从最后一行开始显示可以看出 tac 是 cat 的倒着写如
[rootkuangshen ~]# tac /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOTyes
BOOTPROTOdhcp
DEVICEeth0nl 显示行号 语法
nl [-bnw] 文件选项与参数
-b 指定行号指定的方式主要有两种-b a 表示不论是否为空行也同样列出行号(类似 cat -n)-b t 如果有空行空的那一行不要列出行号(默认值)-n 列出行号表示的方法主要有三种-n ln 行号在荧幕的最左方显示-n rn 行号在自己栏位的最右方显示且不加 0 -n rz 行号在自己栏位的最右方显示且加 0 -w 行号栏位的占用的位数。
测试
[rootkuangshen ~]# nl /etc/sysconfig/network-scripts/ifcfg-eth0
1DEVICEeth0
2BOOTPROTOdhcp
3ONBOOTyesmore 一页一页翻动 在 more 这个程序的运行过程中你有几个按键可以按的
空白键 (space)代表向下翻一页Enter 代表向下翻『一行』/字串 代表在这个显示的内容当中向下搜寻『字串』这个关键字:f 立刻显示出档名以及目前显示的行数q 代表立刻离开 more 不再显示该文件内容。b 或 [ctrl]-b 代表往回翻页不过这动作只对文件有用对管线无用。
[rootkuangshen etc]# more /etc/csh.login
....(中间省略)....
--More--(28%) # 重点在这一行喔你的光标也会在这里等待你的命令less 一页一页翻动以下实例输出/etc/man.config文件的内容 less运行时可以输入的命令有
空白键 向下翻动一页[pagedown]向下翻动一页[pageup] 向上翻动一页/字串 向下搜寻『字串』的功能?字串 向上搜寻『字串』的功能n 重复前一个搜寻 (与 / 或 ? 有关)N 反向的重复前一个搜寻 (与 / 或 ? 有关)q 离开 less 这个程序
[rootkuangshen etc]# more /etc/csh.login
....(中间省略)....
: # 这里可以等待你输入命令head 取出文件前面几行 语法
head [-n number] 文件选项与参数-n 后面接数字代表显示几行的意思
默认的情况中显示前面 10 行若要显示前 20 行就得要这样
[rootkuangshen etc]# head -n 20 /etc/csh.logintail 取出文件后面几行 语法
tail [-n number] 文件选项与参数
-n 后面接数字代表显示几行的意思
默认的情况中显示最后 10 行若要显示最后 20 行就得要这样
[rootkuangshen etc]# tail -n 20 /etc/csh.login拓展Linux 链接概念 Linux 链接分两种一种被称为硬链接Hard Link另一种被称为符号链接Symbolic Link。
情况下ln 命令产生硬链接。
硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中保存在磁盘分区中的文件不管是什么类型都给它分配一个编号称为索引节点号(Inode Index)。在 Linux 中多个文件名指向同一索引节点是存在的。比如A 是 B 的硬链接A 和 B 都是文件名则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同即一个 inode 节点对应两个不同的文件名两个文件名指向同一个文件A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件以防止“误删”的功能。其原因如上所述因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接只有当最后一个连接被删除后文件的数据块及目录的连接才会被释放。也就是说文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接
另外一种连接称之为符号连接Symbolic Link也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中文件实际上是一个文本文件其中包含的有另一文件的位置信息。比如A 是 B 的软链接A 和 B 都是文件名A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同A 和 B 指向的是两个不同的 inode继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名可以根据这个找到 B 的目录项。A 和 B 之间是“主从”关系如果 B 被删除了A 仍然存在因为两个是不同的文件但指向的是一个无效的链接。
测试
[rootkuangshen /]# cd /home
[rootkuangshen home]# touch f1 # 创建一个测试文件f1
[rootkuangshen home]# ls
f1
[rootkuangshen home]# ln f1 f2 # 创建f1的一个硬连接文件f2
[rootkuangshen home]# ln -s f1 f3 # 创建f1的一个符号连接文件f3
[rootkuangshen home]# ls -li # -i参数显示文件的inode节点信息
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f1
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f2
397248 lrwxrwxrwx 1 root root 2 Mar 13 00:50 f3 - f1从上面的结果中可以看出硬连接文件 f2 与原文件 f1 的 inode 节点相同均为 397247然而符号连接文件的 inode 节点不同。
# echo 字符串输出 f1 输出到 f1文件
[rootkuangshen home]# echo I am f1 file f1
[rootkuangshen home]# cat f1
I am f1 file
[rootkuangshen home]# cat f2
I am f1 file
[rootkuangshen home]# cat f3
I am f1 file
[rootkuangshen home]# rm -f f1
[rootkuangshen home]# cat f2
I am f1 file
[rootkuangshen home]# cat f3
cat: f3: No such file or directory通过上面的测试可以看出当删除原始文件 f1 后硬连接 f2 不受影响但是符号连接 f1 文件无效
依此您可以做一些相关的测试可以得到以下全部结论
删除符号连接f3,对f1,f2无影响删除硬连接f2对f1,f3也无影响删除原文件f1对硬连接f2没有影响导致符号连接f3失效 出硬连接文件 f2 与原文件 f1 的 inode 节点相同均为 397247然而符号连接文件的 inode 节点不同。
# echo 字符串输出 f1 输出到 f1文件
[rootkuangshen home]# echo I am f1 file f1
[rootkuangshen home]# cat f1
I am f1 file
[rootkuangshen home]# cat f2
I am f1 file
[rootkuangshen home]# cat f3
I am f1 file
[rootkuangshen home]# rm -f f1
[rootkuangshen home]# cat f2
I am f1 file
[rootkuangshen home]# cat f3
cat: f3: No such file or directory通过上面的测试可以看出当删除原始文件 f1 后硬连接 f2 不受影响但是符号连接 f1 文件无效
依此您可以做一些相关的测试可以得到以下全部结论
删除符号连接f3,对f1,f2无影响删除硬连接f2对f1,f3也无影响删除原文件f1对硬连接f2没有影响导致符号连接f3失效同时删除原文件f1,硬连接f2整个文件会真正的被删除。