Linux操作系统—文件和目录管理命令

从Linux目录结构我知道,Linux目录是一个树状结构,从/根目录开始,不同的目录挂载在/根目录之下,通过解除挂载移除相应的文件系统。文件与目录管理主要是通过命令行来进行操作,因此我必须了解文件系统的路径。

路径分为绝对路径和相对路径是什么,绝对路径是从/根目录开始到目标目录的完整路径,例如/usr/lib/systemd/system就是一个绝对路径;相对路径是相对于当前位置所在的路径,例如终端命令行当前所在/usr/lib/systemd目录,则system目录的相对地址就是./system,而跟systemd同一级的init目录相对路径是.../init

复制代码
进入子目录

lee@lee-virtual-machine:/usr/lib/systemd$ cd ./system

lee@lee-virtual-machine:/usr/lib/systemd/system$


进入同级目录

lee@lee-virtual-machine:~/桌面$ cd /usr/lib/systemd

lee@lee-virtual-machine:/usr/lib/systemd$ cd ../init

lee@lee-virtual-machine:/usr/lib/init$

(一)文件目录操作

ls:列出目录

cd:切换目录

pwd:显示目前的目录

mkdir:创建一个新的目录

rmdir:删除一个空的目录

touch:创建一个文件

cp:复制文件或目录

rm:移除文件或目录

mv:移动文件与目录、文件重命名

可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。

1、ls

列出目录列表,List列表的缩写,是Linux最常用的命令之一。

复制代码
#列出当前目录下的子目录

lee@lee-virtual-machine:/$ ls

#列出当前目录下的子目录,以列表形式

lee@lee-virtual-machine:/$ ls -l

#列出当前目录下的所有目录,以列表形式

lee@lee-virtual-machine:/$ ls -al

#列出/usr目录下的子目录

lee@lee-virtual-machine:/$ ls usr

选项与参数:

①、-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)

②、-d :仅列出目录本身,而不是列出目录内的文件数据(常用)

③、-l :长数据串列出,包含文件的属性与权限等等数据;(常用)

2、cd

切换目录,cd是Change Directory的缩写,这是用来变换工作目录的命令。cd绝对路径或相对路径。

复制代码
lee@lee-virtual-machine:/$ cd home

lee@lee-virtual-machine:/home$ cd /usr

lee@lee-virtual-machine:/usr$

3、 pwd

显示当前所在目录路径,pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令。

复制代码
lee@lee-virtual-machine:/lib$ pwd

/lib

lee@lee-virtual-machine:/lib$ pwd -P

/usr/lib

参数:

-P:列出确切的路径,例如/lib目录是软连接到/usr/lib的目录,如果不加-P参数则打印软连接的路径,加-P则打印软连接的目标路径。

4、 mkdir

创建目录,mkdir是make directory的缩写。

复制代码
mkdir [-mp] 目录名称

示例:

复制代码
#创建子目录

lee@lee-virtual-machine:~/文档$ mkdir abc



#-p逐个创建,分别创建a,子目录b,孙目录c

lee@lee-virtual-machine:~/文档$ mkdir -p a/b/c



#-m直接赋权限777,如果没加-m 777权限,则系统默认权限

lee@lee-virtual-machine:~/文档$ mkdir -m 777 new



#查看权限

drwxrwxrwx 2 lee lee 4096 12月  5 20:50 new

选项与参数:

①、-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~

②、-p :帮助你直接将所需要的目录(包含上一级目录)递回创建起来!

5、rmdir

删除空目录。rmdir只能删除空的目录,如果非空目录请使用rm命令。

复制代码
rmdir [-p] 目录名称

示例:

复制代码
#删除abc目录,abc为空所以不报错

lee@lee-virtual-machine:~/文档$ rmdir abc



#删除c目录

lee@lee-virtual-machine:~/文档$ rmdir a/b/c



#删除a及子目录b,使用了-p参数,因此整个路径包含的目录全部删除

lee@lee-virtual-machine:~/文档$ rmdir -p a/b

选项与参数:

①、**-p :**连同上一级『空的』目录也一起删除

6、touch

创建文件。

复制代码
touch 文件名

示例:

复制代码
touch abc.txt

7、 cp

拷贝文件或目录。cp是copy的缩写。

复制代码
cp [-adfilprsu] 来源档(source) 目标档(destination)

示例:

复制代码
lee@lee-virtual-machine:~/文档$ cp new.txt new

lee@lee-virtual-machine:~/文档$ cp -i new.txt new

cp:是否覆盖'new/new.txt'? y

选项与参数:

①、-a :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

②、-d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

③、-f :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

④、-i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

⑥、-l :进行硬式连结(hard link)的连结档创建,而非复制文件本身;

⑦、-p :连同文件的属性一起复制过去,而非使用默认属性(备份常用);

⑧、-r :递回持续复制,用於目录的复制行为;(常用)

⑨、-s :复制成为符号连结档 (symbolic link),亦即『捷径』文件;

⑩、-u :若 destination 比 source 旧才升级 destination !

8、 rm

删除文件或目录。rm是remove的缩写,用于删除文件和目录,rmdir只能删除空目录,rm可以删除任意目录和文件

复制代码
rm [-fir] 文件或目录

示例:

复制代码
#删除文件

lee@lee-virtual-machine:~/文档$ rm new.txt

#删除目录,需加-r参数

lee@lee-virtual-machine:~/文档$ rm -r new

选项与参数:

①、-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

②、-i :互动模式,在删除前会询问使用者是否动作

③、-r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!

9、 mv

移动文件或目录。mv是move的缩写。

复制代码
mv [-fiu] source destination

示例:

复制代码
#移动abc.txt到new目录

lee@lee-virtual-machine:~/文档$ mv abc.txt new

选项与参数:

①、-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

②、-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

③、-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

(二)文件内容查看

Linux系统中使用以下命令来查看文件的内容:

cat:由第一行开始显示文件内容

tac:从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

nl:显示的时候,顺道输出行号!

more:一页一页的显示文件内容

less:与 more 类似,但是比 more 更好的是,他可以往前翻页!

head:只看头几行

tail:只看尾巴几行

可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。

1、cat

由第一行开始显示文件内容。

复制代码
cat [-AbEnTv]

示例:

复制代码
lee@lee-virtual-machine:~/文档/new$ cat abc.txt

line1 text

line2 text

line3 text

选项与参数:

①、-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

②、-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

③、-E :将结尾的断行字节 $ 显示出来;

④、-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;

⑤、-T :将 [tab] 按键以 ^I 显示出来;

⑥、-v :列出一些看不出来的特殊字符

2、 tac

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:

复制代码
lee@lee-virtual-machine:~/文档/new$ tac abc.txt

line3 text

line2 text

line1 text

3、nl

显示行号.。

复制代码
nl [-bnw] 文件

示例:

复制代码
lee@lee-virtual-machine:~/文档/new$ nl abc.txt

     1line1 text

     2line2 text

     3line3 text

选项与参数:

①、-b :指定行号指定的方式,主要有两种:

-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

-b t :如果有空行,空的那一行不要列出行号(默认值);

②、-n :列出行号表示的方法,主要有三种:

-n ln :行号在萤幕的最左方显示;

-n rn :行号在自己栏位的最右方显示,且不加 0 ;

-n rz :行号在自己栏位的最右方显示,且加 0 ;

③、-w :行号栏位的占用的位数。

4、 more

一页一页翻动。

复制代码
more 文件

示例:

复制代码
lee@lee-virtual-machine:/var/lib/apt$ more extended_states

Package: distro-info

Architecture: amd64

Auto-Installed: 1

....(中间省略)....

--更多--(0%)

在 more 这个程序的运行过程中,你有几个按键可以按的:

①、空白键 (space):代表向下翻一页;

②、Enter :代表向下翻『一行』;

③、/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;

④、:f :立刻显示出档名以及目前显示的行数;

⑤、q :代表立刻离开 more ,不再显示该文件内容。

⑥、b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

5、 less

一页一页翻动。

复制代码
less 文件

示例:

复制代码
lee@lee-virtual-machine:/var/lib/apt$ less extended_states



Package: libjcat1

Architecture: amd64

....(中间省略)....

:

less运行时可以输入的命令有:

①、空白键 :向下翻动一页;

②、[pagedown]:向下翻动一页;

③、[pageup] :向上翻动一页;

④、/字串 :向下搜寻『字串』的功能;

⑤、?字串 :向上搜寻『字串』的功能;

⑥、n :重复前一个搜寻 (与 / 或 ? 有关!)

⑥、N :反向的重复前一个搜寻 (与 / 或 ? 有关!)

⑦、q :离开 less 这个程序;

6、 head

输出前几行内容。

复制代码
head [-n number] 文件

示例:

复制代码
lee@lee-virtual-machine:/var/lib/apt$ head -3 extended_states

Package: distro-info

Architecture: amd64

Auto-Installed: 1

选项与参数:

①、-n :后面接数字,代表显示几行的意思

7、 tail

取出文件后面几行

复制代码
tail [-n number] 文件

示例:

复制代码
lee@lee-virtual-machine:/var/lib/apt$ tail -3 extended_states

Architecture: amd64

Auto-Installed: 1

选项与参数:

①、-n :后面接数字,代表显示几行的意思

②、-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

相关推荐
2301_8035545210 分钟前
vim,gcc/g++,makefile,cmake
linux·编辑器·vim
noravinsc17 分钟前
国产化中间件 替换 nginx
运维·nginx·中间件
惜.己32 分钟前
Linux常用命令(十四)
linux·运维·服务器
Think Spatial 空间思维1 小时前
【HTTPS基础概念与原理】对称加密与非对称加密在HTTPS中的协作
网络协议·http·https
linkingvision1 小时前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
doupoa2 小时前
Fabric 服务端插件开发简述与聊天事件监听转发
运维·python·fabric
BillKu2 小时前
服务器多JAR程序运行与管理指南
运维·服务器·jar
QQ2740287562 小时前
BlockMesh Ai项目 监控节点部署教程
运维·服务器·web3
belldeep2 小时前
WSL 安装 Debian 12 后,Linux 如何安装 vim ?
linux·debian·vim
wqqqianqian3 小时前
国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
linux·word·自定义·pageoffice·数据区域