Linux文件与目录管理
Linux的目录是树状结构,最顶级的目录是根目录/。
其他目录通过挂载可以将他们添加到树种,通过解除挂载可以移除他们。
- 绝对路径
路径的写法:由根目录/写起,如:/usr/share/doc 这个目录。
- 相对路径
路径写法,不是由/写起的,例如由/usr/share/doc 要到 /usr/share/man底下时,可以写成:cd …/man.
处理目录常用命令
常用的处理目录命令:
- ls:列出目录及文件名
- cd:切换目录
- pwd:显示当前目录
- mkdir:创建一个新目录
- rmdir:删除一个空的目录
- cp:复制文件或目录
- rm:移除文件或目录
- mv:移动文件与目录,或修改文件与目录名称
可以使用man [命令] 来查看各个命令的使用文档,如:man ls
ls(列出目录)
语法:
[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称名称
参数和选项(可组合使用:al)
- -a :全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l : 长数据串列出,包含文件的属性与权限等等数据(常用)
pwd(显示目前所在的目录)
pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令
[root@www ~]# pwd [-P]
选项与参数:
-p :显示出缺失的路径,而非使用连结(link)路径
mkdir(创建新目录)
语法:
mkdir [-mp] 目录名称
选项与参数:
- -m : 配置文件的权限!直接配置,不需要默认权限(umask)的脸色~
- -p : 帮助你直接将所需要的目录(包含上一级目录)递归创建起来
实例:创建权限为rwx–x--x的目录
mkdir -m 711 test
rmdir(删除空目录)
语法:
rmdir [-p] 目录名称
选项与参数:
- -p : 连同上一级『空的』目录也一起删除
cp(复制文件或目录)
语法:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
选项与参数:
- -a :相当于-pdr的意思(常用)
- -d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身
- -f :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后在尝试一次
- -i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- -l :进行硬式连结(hard link)的连结档创建,而非复制文件本身
- -p :连同文件的属性一起复制过去,而非文件本身(常用)
- -r :递归持续复制,用于目录的复制行为(常用)
- -s :复制成为符号连结档(symbolic link),也就是『捷径』文件
- -u :若destination比source 旧才升级destination
rm(移除文件或目录)
语法:
rm [-fir] 文件或目录
选项与参数:
- -f :就是force的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,再删除前会询问使用者是否动作;
- -r :递归删除!最常用的目录的删除!很危险,慎用!
mv
语法:
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
- -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件(destination)已经存在时,会询问是否覆盖;
- -u :若目标文件已经存在,且source比较新,才会升级(update)
Linux文件内容查看
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出tac和cat是倒着的
- nl 显示的时候,顺便输出行号
- more 一页一页的显示文件内容
- less 与 more类似,但是比more 更好的是,他可以往前翻页
- head 只看头几行
- tail 只看尾巴几行
cat
由第一行开始显示文件内容
语法:
cat [-AbEnTv]
选项与参数:
- -A:相当于-vET的整合选项,可列出一些特殊字符而不是空白而已;
- -b:列出行号,仅针对非空白行做行号显示,空白行不标行号;
- -E:蒋介伟的断行字节$显示出来;
- -n:列印出行号,连同空白行业会有行号,与-b的选项不同;
- -T:将 [tab] 按键以^| 显示出来;
- -v:列出一些看不出来的特殊符号
tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出tac是cat的倒着写!
nl
显示行号
语法:
nl [-bnw] 文件
选项与参数
- -b:指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t :如果有空行,空的哪一行不要列出行号(默认值); - -n :列出行号标识的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加0;
-n rz :行号阑尾的占用的位数;
more
一页一页翻动
[root@www ~]# more /etc/man_db.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space) :代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less
一页一页翻动,以下实例输出/etc/man.config文件的内容:
[root@www ~]# less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
: <== 这里可以等待你输入命令!
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown] :向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
head
取出文件前面几行
语法:
head [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思
[root@www ~]# head /etc/man.config
默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:
[root@www ~]# head -n 20 /etc/man.config
tail
取出文件后面几行
语法:
tail [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config