Linux 系统中的目录结构为树状结构,最顶级的目录为根目录 /。
其他目录可以通过挂载(mount)添加到树中,也可以通过解除挂载(umount)移除。
在操作文件和目录前,需要理解绝对路径与相对路径的概念:
绝对路径:从根目录
/开始书写的完整路径,例如/usr/share/doc。相对路径:相对于当前目录的路径,例如在
/usr/share/doc下切换到/usr/share/man,可以使用cd ../man。
一、常用目录操作命令
Linux 提供了丰富的命令用于处理目录与文件:
ls(list files):列出目录内容cd(change directory):切换工作目录pwd(print working directory):显示当前目录mkdir(make directory):创建新目录rmdir(remove directory):删除空目录cp(copy file):复制文件或目录rm(remove):删除文件或目录mv(move file):移动文件或目录,或重命名
可以使用
man [命令]查看各命令的详细使用文档,例如man cp。
1. ls — 列出目录内容
ls 是 Linux 中最常用的命令之一。
基本用法:
ls [选项] 目录名称示例:
# 使用常用选项
ls [-aAdfFhilnrRSt] 目录名称
# 设置输出颜色
ls [--color={never,auto,always}] 目录名称
# 显示完整时间
ls [--full-time] 目录名称常用选项说明
-a:显示全部文件,包括隐藏文件(以.开头的文件)-d:仅显示目录自身,而不是列出目录内的文件内容-l:使用长格式显示,包含文件的详细属性和权限等信息
长格式 -l 输出详解
使用 ls -l 或 ls -al 可以显示详细信息,每一列含义如下:
文件类型和权限(第一列)
第一位:
-普通文件,d目录,l链接接下来的九位:权限,分三组表示:拥有者、组用户、其他人
r可读,w可写,x可执行
示例:
-rw-r--r--表示普通文件,拥有者可读写,组用户可读,其他人可读
硬链接数(第二列)
表示文件被多少个名字引用
对目录而言:硬链接数 = 2 + 子目录数量
示例:
$ touch a.txt $ ln a.txt b.txt # 创建硬链接 $ ls -l -rw-r--r-- 2 user user 0 May 18 10:00 a.txt -rw-r--r-- 2 user user 0 May 18 10:00 b.txt这里
2表示a.txt和b.txt都指向同一份数据,删除其中一个仍然存在。
拥有者(第三列)
文件所属用户,例如
huifeng
所属组(第四列)
文件所属组,例如
huifeng
文件大小(第五列)
单位为字节(B)
最后修改时间(第六列到第八列)
格式为
月 日 时间,例如May 18 10:00
文件名(最后一列)
文件或目录的名称
-d 选项详解
作用
默认情况下,
ls列出目录里的内容:$ ls /home/user file1.txt file2.txt folder1如果直接
ls folder1,显示的是目录里的文件,而不是目录本身加上
-d,只显示目录自身的信息:$ ls -ld folder1 drwxr-xr-x 2 user user 4096 May 18 09:50 folder1
常用组合
ls -ld *:显示当前目录下每个文件和目录的详细信息,而不展开目录内容对比:
ls -l folder1→ 显示 folder1 内的文件ls -ld folder1→ 显示 folder1 自己的信息
直觉理解
把目录想象成“箱子”:
ls folder1→ 打开箱子,看里面有什么东西ls -d folder1→ 只看箱子本身,比如箱子的大小、颜色、标签,而不看里面的内容
示例命令总结
# 列出当前目录所有文件(包括隐藏文件)并显示详细信息
ls -al
# 仅查看目录自身的详细信息
ls -ld folder1
# 查看当前目录下每个文件和目录的详细信息
ls -ld *2. cd — 切换目录
语法:
cd [相对路径或绝对路径]示例:
mkdir runoob # 创建目录
cd /root/runoob/ # 使用绝对路径切换
cd ./runoob/ # 使用相对路径切换
cd ~ # 回到家目录
cd .. # 切换到上一级目录3. pwd — 显示当前目录
语法:
pwd [-P]-P:显示真实路径而非符号链接路径
示例:
cd /var/mail
pwd # 显示 /var/mail(可能是链接)
pwd -P # 显示实际路径 /var/spool/mail4. mkdir — 创建目录
语法:
mkdir [-mp] 目录名称选项:
-m:设置权限,例如mkdir -m 711 test2-p:递归创建多级目录
示例:
mkdir test
mkdir -p test1/test2/test3/test4
mkdir -m 711 test25. rmdir — 删除空目录
语法:
rmdir [-p] 目录名称-p:递归删除多级空目录
示例:
rmdir runoob
rmdir -p test1/test2/test3/test4注意:
rmdir只能删除空目录,非空目录需使用rm -r。
6. cp — 复制文件或目录
语法:
cp [-adfilprsu] 来源 目标常用选项:
-a:归档模式(保留属性、递归)-r:递归复制目录-i:覆盖前提示确认-f:强制覆盖-p:保留文件属性
示例:
cp ~/.bashrc /tmp/bashrc
cp -i ~/.bashrc /tmp/bashrc
cp -r test test-cp7. rm — 删除文件或目录
语法:
rm [-fir] 文件或目录常用选项:
-f:强制删除,无警告-i:交互式删除-r:递归删除目录(危险!)
示例:
rm -i bashrc
rm -rf testdir8. mv — 移动或重命名文件/目录
语法:
mv [-fiu] source destination选项:
-f:强制覆盖-i:覆盖前询问-u:只更新旧文件
示例:
mkdir mvtest
mv bashrc mvtest/ # 移动文件到目录
mv mvtest mvtest2 # 重命名目录三、Linux 文件内容查看
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/issue 这个文件的内容:
[root@www ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \mtac:从最后一行开始显示
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:
[root@www ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.4 (Final)nl:显示行号
语法:
nl [-bnw] 文件选项与参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;-w :行号栏位的占用的位数。
实例一:用 nl 列出 /etc/issue 的内容
[root@www ~]# nl /etc/issue
1 CentOS release 6.4 (Final)
2 Kernel \r on an \mmore:一页一页翻动
[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.configtail:取出文件后面几行
语法:
tail [-n number] 文件 选项与参数:
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.configLinux 文件与目录管理
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法