Linux目录结构及 文件与目录命令

admin

01.LInux目录管理命令 1)Linux目录结构介绍 

1.Linux没有windows盘符的概念,Linux目录的顶点是/,称之为根,所有的目录都 /下面。

屏幕截图 2024-02-14 144015.png

2)Linux相对路径和绝对路径

绝对路径:从根开始的路径,最开始是有/cd /tmp

相对路径:开始没有根(/),相对当前路径的路径,cd ../opt ##去了opt目录。 

目录里的..表示退出当前目录,进入上一级目录。 

例:切换到/home目录下,然后再切换到/etc目录下。

##方法1:绝对路径方法 
[root@oldboy opt]# cd /home 
[root@oldboy home]# pwd /home 
[root@oldboy home]# cd /etc   ##绝对路径方法 
[root@oldboy etc]# pwd /etc 
--------------------------------------------------------------
##方法2:相对路径方法 
[root@oldboy etc]# cd /home 
[root@oldboy home]# pwd /home 
[root@oldboy home]# cd ..     ##回到当前路径的上一级目录 
[root@oldboy /]# pwd / 
[root@oldboy /]# cd etc       ##相对/路径,进入etc 
[root@oldboy etc]# pwd /etc
--------------------------------------------------------------
##方法3:相对路径方法 
[root@oldboy etc]# cd /home 
[root@oldboy home]# pwd /home 
[root@oldboy home]# cd ../etc ##相对/路径,一条命令进入etc 
[root@oldboy etc]# pwd /etc

3)Linux常用目录命令 

a.查看当前路径pwd(print working directroy)

[root@oldboyedu ~]# pwd 
/root

b.切换路径cd(change directory)

[root@oldboyedu ~]# cd /tmp 
[root@oldboyedu tmp]# pwd /tmp 
##特殊符号: 
## ~ 用户的家目录 
#管理员root来说~代表/root 
#普通用户下 ~表示/home/用户名 
## . 表示当前目录 
## .. 表示上一级目录

c.查看目录下内容ls(list)

## 选项说明: 
## -l 以长格式显示文件(显示属性) 
## -a 显示所有文件(含隐藏文件) 

# 1)查看当前目录下的内容 [root@oldboyedu ~]# ls anaconda-ks.cfg 

# 2)查看指定目录下的内容 [root@oldboyedu ~]# ls /root ## 查看/root下目录内容。 
anaconda-ks.cfg 
[root@oldboyedu ~]# ls /tmp ## 查看/tmp目录下的内容。 

# 3)查看指定目录下内容的属性 
#什么是属性?
人:身高、姓名、体重、三围、年龄。
目录:大小、权限、用户、用户 组、创建时间 
[root@oldboyedu ~]# ls -l /root -rw-------. 1 root root 1344 9月 13 12:20 anaconda-ks.cfg 

# 4)查看隐藏文件-a(以.开头,绿色背景) 
##对比输出结果差别 
[root@oldboy tmp]# ls /root anaconda-ks.cfg a.out 
[root@oldboyedu ~]# ls -a /root . .. anaconda-ks.cfg a.out .bash_history .bash_logout .bash_profile .bashrc

d.创建目录mkdir(make directory)

#1)在当前目录下创建名字为oldboy的目录 
[root@oldboyedu tmp]# cd ~ ##回到家目录 
[root@oldboyedu ~]# mkdir oldboy 
[root@oldboyedu ~]# ls anaconda-ks.cfg oldboy 

# 蓝色oldboy是目录 
[root@oldboyedu ~]# cd oldboy 

# 进入到oldboy目录,这是相对路径方法 
[root@oldboyedu oldboy]# pwd # 查看当前路径 
/root/oldboy #2)同时创建/a/b/c/d多级目录 

#1、不加参数无法创建多级目录 
[root@oldboyedu oldboy]# mkdir /a/b/c/d 
mkdir: 无法创建目录"/a/b/c/d": 没有那个文件或目录 [

#2、加-p参数创建多级目录 
[root@oldboyedu oldboy]# mkdir -p /a/b/c/d
[root@oldboyedu oldboy]# tree /a 
/a 
└── b 
       └── c 
             └── d 
             
#3)在根目录下创建data目录。 
[root@oldboyedu oldboy]# mkdir /data 

#4)查看/data目录本身及属性(-d) 
[root@oldboyedu ~]# ls -l -d /data #查看目录本身属性 
drwxr-xr-x. 3 root root 20 12月 1 10:28 /data 

[root@oldboyedu ~]# ls -ld /opt #选项合并。 
drwxr-xr-x. 3 root root 20 12月 1 10:28 /data

e.复制目录cpcopy

cp命令语法:

cp -r 源目录 新的路径

cp -a 源目录 新的路径

说明:-r 复制目录 -a(dpr)复制目录的同时,保持属性不变。

#1)将/root目录前面创建的oldboy目录复制到/tmp目录下。 
[root@oldboyedu oldboy]# cd ~ ##回到/root目录 
[root@oldboyedu ~]# ls ##查看当前目录下内容 
anaconda-ks.cfg oldboy 
[root@oldboyedu ~]# cp oldboy /tmp cp: 略过目录"oldboy" 
[root@oldboyedu ~]# cp -r oldboy /tmp ##复制oldboy目录到/tmp目录 
[root@oldboyedu ~]# ls /tmp ## 查看/tmp目录下有没有 
oldboy ##忽略其他无用目录

#2)将/data目录复制到/opt目录下。 
[root@oldboyedu ~]# mkdir /data -p 
[root@oldboyedu ~]# ls -ld /data 
drwxr-xr-x. 2 root root 6 12月 1 10:28 /data 
[root@oldboyedu ~]# 
[root@oldboyedu ~]# cp -a /data /opt ##-a(-dpr) 
[root@oldboyedu ~]# ls /opt 
data oldboy 

#3)将/data目录复制到/opt目录下,并改名为inca 
[root@oldboyedu ~]# cp -a /data /opt/inca 
[root@oldboyedu ~]# ls /opt ##操作后检查 
data inca

f.剪切目录mv(move) 

语法:mv 源目录 目标路径

#1)将/root下的oldboy目录移动到/opt/data 
[root@oldboyedu ~]# ls anaconda-ks.cfg oldboy ##如果没有oldboy,可以mkdir oldboy创建 
[root@oldboyedu ~]# mv oldboy /opt/data ##将oldboy目录移动到/opt/data下 
[root@oldboyedu ~]# ls ##移动后源位置没有了。 anaconda-ks.cfg 
[root@oldboyedu ~]# ls /opt/data/ ##新位置有oldboy目录。 
oldboy 

#2)将/data目录移动到/opt/inca目录下,并改名为oldboy 
[root@oldboyedu ~]# ls -ld /data 
drwxr-xr-x. 2 root root 6 9月 17 10:33 /data 
[root@oldboyedu ~]# mv /data /tmp/inca ##把/data移动到/tmp并改名 inca 
[root@oldboyedu ~]# ls /tmp/ inca

g.删除目录rm(remove) 

目录删除语法: 

rm -fr 路径/目录 

-f 强制删除(force) 

-r 递归删除(recursive) 目录里的内容。

#1)使用绝对路径删除/opt/data 
[root@oldboyedu ~]# ls /opt ##如果没有文件/文件夹->创建一个:mkdir /opt/oldboy -p 
data inca oldboy 
[root@oldboyedu ~]# rm /opt/oldboy ##不带选项,无法删除。 
rm: 无法删除"/opt/oldboy": 是一个目录 
[root@oldboyedu ~]# rm -fr /opt/oldboy ##真正删除命令 
[root@oldboyedu ~]# ls /opt data inca 

#2)使用相对路径删除/opt/inca(不推荐的方法,真正使用时推荐先cd到该目录下,在执行删除操作,否则容易误删重要文件) 
[root@oldboyedu ~]# cd /opt ##进入到/opt目录下。 
[root@oldboyedu opt]# ls data inca 
[root@oldboyedu opt]# rm -fr inca ##相对路径删除 
[root@oldboyedu opt]# ls data

h.显示目录树tree(默认没有,需要执行yum install tree -y

#1)显示根目录下第1层目录结构 
[root@oldboyedu opt]# tree -L 1 / 
/ 
├── bin -> usr/bin (存放操作指令的位置,后期查询指令地点)
├── boot 
├── dev 
├── etc 
├── home 
├── media 
├── mnt 
├── opt 
├── proc 
├── root 
├── run 
├── sbin -> usr/sbin 
├── srv 
├── sys 
├── tmp 
├── usr 
└── var

目录相关命令

pwd (查看当前目录绝对路径)

 cd(切换目录)  

 ls (查看当前目录下的目录和文件 带上参数可见文件、目录权限等信息) , 

 mkdir(目录创建)  

cp(复制目录/文件 需要带参数使用) 

mv (移动/重命名 文件/目录) 

rm (删除文件/目录) 

 tree(目录树命令,可用于查看目录分支结构)

02.Linux文件管理命令 

a.创建文件touch

## 创建文件touch 
[root@oldboyedu opt]# cd ~ 
[root@oldboyedu ~]# touch oldboy.txt 
[root@oldboyedu ~]# ls anaconda-ks.cfg oldboy.txt 
[root@oldboyedu ~]# touch oldboy.txt 
[root@oldboyedu ~]# touch oldboy.txt ##重复创建不会对文件内容产生影 响,只会修改文件的时间戳。 
[root@oldboyedu ~]# stat oldboy.txt #文件的时间戳查看 
最近访问:2023-09-17 11:49:05.872665033 +0800 ##访问时间:最后访问的时间。 
最近更改:2023-09-17 11:49:05.872665033 +0800 ##修改时间:最后修改的文件时间。 
最近改动:2023-09-17 11:49:05.872665033 +0800 ##属性变化时间:属性被最后修改的时间。

b.往文件增加内容echo(配合输入重定向>以及追加输入重定向完成编辑文件)

#1)使用echo命令输出内容,接啥输出啥。
[root@oldboyedu ~]# echo 123 
123 
[root@oldboyedu ~]# echo oldboy 
oldboy 

#2)将输出的内容放入文件里 
##说明:> 输入重定向,清空已有文件内容,存入echo后面接的内容。 
[root@oldboyedu ~]# echo 123 >oldboy.txt 
[root@oldboyedu ~]# cat oldboy.txt 
123 
[root@oldboyedu ~]# echo oldboy >oldboy.txt ##存入oldboy,原有的 123就被清除了。 
[root@oldboyedu ~]# cat oldboy.txt 
oldboy 

#3)将输出的内容【追加】文件里,也就是不覆盖,每次把新的内容放到文件结尾(新起行)。 
##说明:>> 追加输入重定向,不清空已有文件内容,每次把新的内容放到文件结尾 (新起行)。 
[root@oldboyedu ~]# echo 123 > oldboy.txt ##删除原有的放新的 
[root@oldboyedu ~]# cat oldboy.txt 
123 
[root@oldboyedu ~]# echo 123 >> oldboy.txt ##保留原有的,结尾放新的 
[root@oldboyedu ~]# cat oldboy.txt 
123 
123 
[root@oldboyedu ~]# echo oldboy >> oldboy.txt ##保留原有的,结尾放新的 
[root@oldboyedu ~]# cat oldboy.txt 
123 
123 
oldboy

c.查看文件内容cat

#1)查看主机名 
[root@oldboyedu ~]# cat /etc/hostname
oldboyedu 

#2)查看局域网的域名解析 
[root@oldboyedu ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 
            localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 
            localhost6.localdomain6 
            
#3)查看DNS设置 
[root@oldboyedu ~]# cat /etc/resolv.conf 
# Generated by NetworkManager 
nameserver 223.5.5.5 
nameserver 223.6.6.6    
   
#4)显示行号 
[root@oldboyedu ~]# cat -n /etc/resolv.conf 
1 # Generated by NetworkManager 
2 nameserver 223.5.5.5 
3 nameserver 223.6.6.6

d.复制文件cp 复制文件

语法:cp 文件 路径

#1)复制当前目录下oldboy.txt,并改名为oldgirl.txt 
[root@oldboyedu ~]# cp oldboy.txt oldgirl.txt 
[root@oldboyedu ~]# ls anaconda-ks.cfg 
oldboy.txt oldgirl.txt 
[root@oldboyedu ~]# cat oldgirl.txt 
123 
123
oldboy 

#2)复制当面目录下oldboy.txt,到/opt下。 
[root@oldboyedu ~]# cp oldboy.txt /opt/ 
[root@oldboyedu ~]# ls /opt ##检查/opt目录下是否有 oldboy.txt 
[root@oldboyedu ~]# cat /opt/oldboy.txt 
123 
123 
oldboy 
[root@oldboyedu ~]# ls ##检查当前路径依然有。 
anaconda-ks.cfg oldboy.txt oldgirl.txt

f.移动或改名文件mv移动文件

语法: mv 文件 路径

#1)将oldboy.txt改名为inca.txt 
[root@oldboyedu ~]# mv oldboy.txt inca.txt 
[root@oldboyedu ~]# ls anaconda-ks.cfg inca.txt oldgirl.txt 

#2)移动oldgirl.txt到/tmp 
[root@oldboyedu ~]# mv oldgirl.txt /tmp 
[root@oldboyedu ~]# ls ##当前路径没有oldgirl.txt了。 
anaconda-ks.cfg inca.txt 
[root@oldboyedu ~]# ls /tmp/ 
oldboy oldgirl.txt ## 新路径有oldgirl.txt

g.删除文件rm

#1)删除单个文件 
[root@oldboyedu ~]# touch oldboy.txt 
[root@oldboyedu ~]# ls 
anaconda-ks.cfg a.out inca.txt oldboy.txt 
[root@oldboyedu ~]# rm -f oldboy.txt 

#2)删除多个文件 
[root@oldboyedu ~]# rm -f oldboy.txt 
[root@oldboyedu ~]# ls 
anaconda-ks.cfg a.out inca.txt 
[root@oldboyedu ~]# rm -f a.out inca.txt anaconda-ks.cfg 
[root@oldboyedu ~]# ls 

#3)删除大量文件 
rm -f *.txt ## 删除当前目录下以.txt结尾的文件 
rm -f old* ## 删除当前目录下以old开头的文件 
rm -f * ## 删除当前目录下所有文件 

[root@oldboyedu ~]# touch oldboy{01..10}.txt ##创建oldboy01.txt....oldboy10.txt,{}符号用于一次性创建多个文件名结尾编号递归的文件
[root@oldboyedu ~]# ls 
oldboy01.txt oldboy03.txt oldboy05.txt oldboy07.txt oldboy09.txt oldboy02.txt oldboy04.txt oldboy06.txt oldboy08.txt oldboy10.txt 

[root@oldboyedu ~]# rm -f *.txt 
[root@oldboyedu ~]# ls 
[root@oldboyedu ~]# touch oldboy{01..10}.txt 
[root@oldboyedu ~]# ls 
oldboy01.txt oldboy03.txt oldboy05.txt oldboy07.txt oldboy09.txt oldboy02.txt oldboy04.txt oldboy06.txt oldboy08.txt oldboy10.txt 
[root@oldboyedu ~]# rm -f old* 
[root@oldboyedu ~]# ls 
[root@oldboyedu ~]# touch oldboy{01..10}.txt 
[root@oldboyedu ~]# ls 
oldboy01.txt oldboy03.txt oldboy05.txt oldboy07.txt oldboy09.txt oldboy02.txt oldboy04.txt oldboy06.txt oldboy08.txt oldboy10.txt 
[root@oldboyedu ~]# rm -f * 
root@oldboyedu ~]# ls



返回顶部