01-LINUX:目录操作和文件操作

内容提要

  • 文件系统(了解)

  • 目录操作(掌握)

  • 文件操作(掌握)

文件系统

Linux本质上就是一个文件系统。Linux文件系统是操作系统组织、存取、保存数据的一种手段。整体采用层级式的倒状目录结构。

倒状树结构中的目录

/:根目录(根路径),Linux中的绝对路径就是由这个开始。

/bin:主要存放系统普通指令

/boot:主要存放系统的引导程序

/dev:存放硬件设备对应的文件(Linux应用开发阶段,访问其中的文件)

/etc:存放系统和应用程序的配置文件(如:profile

/home:家目录,存放当前系统下所有用户对应的目录。

/lib:存放系统和应用程序的依赖库。

/proc:存放系统运行时的运行信息。

/usr:是软件的默认安装路径。

/var:存放缓存、备份文件。

/cdrom:光驱挂载点(通常用于挂载光盘)

/mnt:用于系统文件系统的挂载目录,举例:/mnt/hgfs可用于挂载共享目录,/mnt/udisk可用于挂载U盘..

/sbin:用于存放一些特权指令,通常只有系统管理员(root)才能执行。

路径的概念

  • 绝对路径:以根路径(/)为参考点描述的路径,称之为绝对路径。

    举例:

     // windows系统
     D:\\YQ\\Code\\demo01.c
         
     // linux系统
     /mnt/hgfs/linuxc/demo01.c

  • 相对路径:以当前目录(./)为参考点描述的路径,称之为相对路径。

    举例:

     cd /home    -- 解释:绝对路径,切换到根路径下的home目录
     cd ./st     -- 解释:相对路径,切换到当前路径下的st目录(假设当前在/home目录下,则切换后为/home/st)
     cd st       -- 解释:相对路径,等价于上面的写法,一般推荐这种写法,因为简单
    
    

Linux系统文件类型

说明:

d:目录(文件夹)

-:普通文件

l:符号链接(类似于 Windows 中的快捷方式)

c:字符设备文件,通常用于与字符设备(如串口、终端等)进行交互

b:块设备文件(大容量磁盘等),用于与块设备(如硬盘、U 盘等)进行交互

s:套接字文件,用于进程间通信

p:管道文件,用于进程间通信

目录操作

指令

语法:

指令 [选项] [操作的文件或者目录]

注意:语法中加入[],就表示方括号括起来的内容可选。

pwd

说明:查看当前所在目录的绝对路径

执行者:所有用户

ls

说明:显示指定路径(默认是当前路径)下的文件或者目录。

执行者:所有用户

常用选项:

  • -a:显示所有文件或目录(包含隐藏文件或目录,Linux中的隐藏目录或者文件一般以.开头,如:.vimrc)

  • -l:以长格式显示所有的文件或目录的详细信息(默认不含隐藏文件或目录),详细信息包括文件权限、硬链接数、所有者、所属组、文件大小(默认字节)、修改时间等。

  • -r:将文件以相反次序显示(默认依照英文字母次序显示)【名称】

  • -t:将文件以修改时间的先后次序显示【时间】

说明:多个参数可以共同出现,如:

 ls -l -t -r -a  等价于
 ls -ltra

说明:我们也可以指定具体的目录路径,如:

 ls ./   等价于
 ls
 ls  /mnt/hgfs/linux
cd

说明:切换目录

执行者:所有用户

语法:

 cd 目录路径

常用写法:

cd ~:切换倒当前登录用户的家目录,比如:若当前登录用户为stcd ~就会切换到/home/st下,等价于cd /home/st

cd -:返回上一次操作的工作目录(类似于windows中的返回上一步)

 
 cd /home/st
 cd /mnt/hgfs
 cd -    
 结果:返回 /home/st/

cd /:切换到根目录下

cd ./:切换到当前目录下,一般此操作无实际意义。

cd ../:切换到上一级目录,等价于cd ..

 cd /home/st
 cd /mnt/hgfs
 cd ../   
 结果:返回 /mnt/

cd ../../:切换到上两级目录,等价于cd ../..,可以根据需要增加../来切换到更上级的目录。

mkdir

说明:创建空目录(目录和文件夹是一个概念)

执行者:所有用户

语法:

 mkdir 目录路径          -- 解释:创建一个目录
 mkdir 目录路径列表      -- 解释:批量创建多个目录

举例:

备注:mkdir支持批量创建空目录。

选项:

-p:可以创建多层目录(嵌套目录),若中间的目录不存在,会自动创建

语法:

 mkdir -p 目录多层路径

举例:

rmdir

说明:删除空目录,仅限于删除空目录,支持批量删除。

语法:

rmdir 空目录路径

举例:

解释;*是通配符,通配0到多个字符。test*就是匹配以test开头的。*test就是匹配以test结尾的。

touch

说明:创建新文件,如果文件已存在,则更新其访问和修改时间。

执行者:所有i用户

语法:

touch 文件路径   --解释:可以指定文件路径

举例:

rm

说明:

  • 删除目录:需要借助选项-r递归删除,目录可以是空目录,也可以是非空目录

  • 删除文件:无需借助选项-r,如果加了-r,也没事。

说明:

① 查找:从外层逐步向内层查找

② 删除:从内层逐步向外层删除

举例:

说明:

文件删除,直接删除就可以了,目录删除或者目录 + 文件删除,需要使用选项 -r 进行递归删除。另外,使用rm -f 可以强制删除文件或目录,不进行确认提示,但使用时需谨慎,因为删除后数据无法恢复。

cp

说明:

  • 复制文件或者目录(相当于拷贝 + 粘贴)

  • 实现文件或者目录的重命名

执行者:所有用户

语法:

cp [选项] 被复制的目录或者文件路径 目的地地址

选项:

-r:递归复制,复制目录中的所有内容,包括子目录和文件。

-i:如果目的地路径下已经存在同名的目录或者文件,会交互提示(YES:完成替换,NO:取消拷贝)

举例:

mv

说明:

  • 移动文件或者目录(相当于剪切+粘贴

  • 重命名文件或目录

执行者:所有用户

语法:

 mv [选项] 被移动的目录或者文件路径 目的地地址

注意:

  • 被移动文件名与目的地文件名不一致,就相当于重命名了

举例:

 mv aa.txt ../b  
 解释:移动,将aa.txt移动到../b目录下
 ​
 mv aa.txt ../b/bb.txt
 解释:移动+重命名,将aa.txt移动到../b目录下并重命名为bb.txt(注意:不能将一个文件移入另一个文件)
 ​
 mv aa.txt bb.txt 
 解释:重命名,将同一路径下的aa.txt重命名为bb.txt
 ​
 mv aa.txt ../b/cc.txt
 解释:移动 + 重命名(重命名的是目的地文件)
 ​
 cp -r aa.txt ../b/cc.txt
 解释:拷贝 + 重命名(重命名的是目的地文件)

备注:重命名是移动和拷贝在特殊情况下的产物。

文件操作

指令

cat

说明:查看文件内容,适合查看较小的文件

执行者:所有用户

语法:

 
cat [选项] 文件路径

选项:

-n:显示行号

举例:

 
 cat /proc/cpuinfo
 cat -n /proc/cpuinfo
more

说明:分页查看文件内容,当文件较大时使用

执行者:所有用户

语法:

 more 文件路径

操作:

空格键:向下翻一页

回车键:向下翻一行

Q/q键:退出查看

举例:

more /proc/cpuinfo
less

说明:分页查看文件内容,功能比more更强大,支持向前和向后翻页等操作。

执行者:所有用户

语法:

 less [选项] 文件路径

选项:

-M:显示当前行的范围

操作:

空格键:向下翻一页

B/b键:向上翻一页

方向键↑↓:向上向下翻一行

Q/q键:退出

举例:

less -M /proc/cpuinfo
head

说明:查看文件的头部内容(默认10行)

执行者:所有用户

语法:

 head [选项] 文件路径

选项:

-n:从头开始显示n行内容(识别换行符)

举例:

 head -n 5 /proc/cpuinfo     -- 等价于
 head -5 /proc/cpuinfo
tail

说明:查看文件的尾部内容(默认10行)

执行者:所有用户

语法:

tail [选项] 文件路径

选项:

-n:从尾开始显示n行内容(识别换行符)

举例:

 
 tail -n 5 /proc/cpuinfo     -- 等价于
 tail -5 /proc/cpuinfo
grep

说明:搜索文件内容,在文件中查找指定的字符序列(字符串)

执行者:所有用户

语法:

 grep [选项] 要查找的字符序列 文件路径    -- 等价于
 grep [选项] '要查找的字符序列' 文件路径

选项:

-n:显示行号

-c:统计搜索到行的数量(返回的是一个数值)

-i:忽略大小写搜索,主要针对英文

举例:

 grep -ni apicid /proc/cpuinfo
 解释:显示行号和忽略大小写,在文件cpuinfo中查找apicid 等价于
 grep -ni 'apicid' /proc/cpuinfo
 ​
 grep -c 'apicid' /proc/cpuinfo
 解释:显示搜索到的数量,和-n不能混合使用,因为两者冲突

特殊匹配:

  • ^:行首匹配:匹配以指定字符序列开头的

    举例:

     grep -n '^cp' /proc/cpuinfo    -- 解释:匹配以cp开头的字符序列
  • $:行尾匹配:匹配以指定字符序列结尾的

    举例:

     grep -n '[0-9]$' /proc/cpuinfo   -- 解释:匹配以0~9的任意单个数字结尾的序列  [A-Za-z0-9]

find

说明:查找文件或目录(递归查找),从磁盘查找,精确性高,性能低。适合在需要精确查找文件时使用,但由于是遍历磁盘,所以速度较慢。

执行者:所有用户

语法:

find 检索路径 [选项] 参数

选项:

-name:按照名称查找(默认区分大小写)

-iname:按照名称查找,对英文忽略大小写

-size:按照文件大小搜索,默认1个单位(注意:1个单位 = 512字节),可使用k(KB)、M(MB)、G(GB)

等单位;

-type:按照文件类型查找(d:目录,f:普通文件,l:符号链接,p:管道文件等)

举例:

 
find ./ -iname test1.txt
 解释:在当前路径下包括其子目录中查找文件名为test1.txt的文件,文件名忽略大小写,以路径列表呈现
 ​
 find / -size +3M
 解释:在/目录下包括其子目录中查找文件大小超过3MB的文件,这里的 “+”表示超过 (字节数:1024 * 3 * 1024)
 ​
 find / -size +3
 解释:在/目录下包括其子目录中查找文件大小超过3个单位的文件,这里的 “+”表示超过 (字节数:512 *   3)
 ​
 find / -size -3M
 解释:在/目录下包括其子目录中查找文件大小不超过3MB的文件,这里的 -”表示不超过 (字节数:1024 * 3 * 1024)


locate

说明:快速查找文件或目录,从数据库查找,准确性低,性能高。该指令是从文件系统的数据库中查找,新创建的文件还没有在数据库中建立索引,用该指令是找不到的。

执行者:所有用户

语法:

  locate [选项] 文件或目录

选项:

-c:统计文件个数,返回的是一个数字

-i:忽略大小写

范例:

  sudo updatedb           -- 首先将文件信息更新到数据库
  locate -i test.c        -- 从数据库获取所有文件

注意:默认情况下updatedb每天更新一次,我们可以手动更新,指令:

  [sudo] updatedb
which

说明:快速检索指令的位置

执行者:所有用户

语法:

 which 指令名

举例:

which ls
echo

说明:将指定字符串输出到设备上,常用于将内容写入文件

执行者:所有用户

语法:

 echo "字符串" > | >> 文件路径

说明:> 表示覆盖写入,会清空原文件内容;>> 表示追加写入,会在原文件内容后面添加新内容

范例:

  echo "yueqian is good!" > yueqian.txt
  echo "tixiaoshuai is good!" >> yueqian.txt

 

举例

|(管道)

说明:将前一个指令执行的结果作为后一个指令执行的条件(了解)

执行权限:所有用户

范例:

   ls -l | grep ".txt$"           // 以详细列表的形式显示文件名称为.txt结尾的文件
   find /dev -type c | grep "2$"  // 查找/dev下文件类型为c的以2结尾的所有文

计算机单位转换

1Byte = 8bit

1KB = 1024Byte

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值