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的侦测

相关推荐
海阔天空_2013几秒前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
桥田智能3 分钟前
气爪在自动化装配线中是如何应用的?
运维·自动化
九河云27 分钟前
如何选择适合的AWS EC2实例类型
服务器·云计算·aws
€☞扫地僧☜€2 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
hjjdebug2 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯2 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流2 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩2 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布2 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花2 小时前
第六章:DNS域名解析服务器
运维·服务器