Linux 文件、目录结构及常用命令


image


Linux-文件操作与目录管理

在Linux中,一切皆文件,复习Linux基础知识过程中总结了常用的文件操作命令,如下👇


1.两种路径

在Linux中只有绝对路径和相对路径,最顶级的目录为根目录‘/’。

  • 绝对路径:
    路径的写法,由根目录‘/’写起。
#eg:/usr/share/doc
  • 相对路径:
    路径的写法,不是由‘/’写起。
#eg:/usr/share/doc 到 /usr/share/man底下时,可以这样写:
cd ../man    #这就是相对路径的写法
./ #表示当前目录
../	#表示返回上一级

2.目录结构

每一个文件和目录都是从根目录开始的👇


image


  • /bin目录:用来存放二进制可执行命令的目录,用户常用的命令都存在该目录下。
  • /sbin目录:用来存放二进制可执行文件,这里面的命令只供系统管理员,管理系统使用(root用户)。
  • /dev目录:设备文件存放的目录,因为linux中一切皆文件,所以就像鼠标、键盘、光驱,对linux来说也都是一个个的文件。例如/dev/cdrom(光驱)、/dev/sda1(硬盘)等。
  • /tmp:类似windows中的垃圾回收站
  • /home:普通用户的家目录,用来存放普通用户的文件。
  • /boot目录:存放内核文件和系统引导程序
  • /lib目录:存放二进制库文件,库文件一般以.so|lib*|ld*
  • /mnt目录:临时挂载临时存储设备的目录
  • /opt目录:下载目录,一般是给第三方厂家开发的程序的安装目录,一般用不了
  • /media目录:用于挂载可移动设备的临时目录。
  • /root目录:系统管理员的家目录。
  • /sys目录:与/proc一样,存放系统运行过程中的信息文件。
  • /etc目录:yum/rpm安装的软件配置文件所在的目录。
  • /usr目录:安装除操作系统本身外的一些应用程序或组件的目录,一般可以认为是linux系统上安装的应用程序默认都安装在此目录中

3.处理目录常用的命令

命令如下:

命令 功能
ls 列出目录及文件名
cd 切换目录
pwd 显示当前所在的目录
mkdir 创建一个新的目录
rmdir 删除一个空的目录
cp 复制文件或目录
rm 删除文件或目录
mv 移动文件与目录,或者修改文件与目录

注.使用man命令来查看各个命令的使用文档。eg:man ls,'有什么问题记得的找男人!!'


ls命令(列出目录)

ls命令是Linux中最常用的命令

#ls搭配的参数:
ls -a/d/l
-a:列出全部的文件(包含隐藏文件)
-d:列出目录本身,而不是列出目录的文件数据
-l:长数据串列出,包含文件的属性与权限等数据

cd命令(切换目录)

cd [ 相对路径或绝对路径]

#绝对路径
cd /bin/
#相对路径
cd ../

图示如下:
image


pwd命令(显示当前所在的目录)

pwd -P
#-p:显示出确实的路径,而非使用连接(link)路径。

实例如下:

image

注.没有p和有p相差的原因在这里!!

image
因为bin连接到usr/bin,所以加上会显示完整的路径!!


mkdir命令(创建新目录)

语法如下:

mkdir -m/p 目录名称
-m:配置文件的权限
eg:mkdir -m 711 test1  	#权限为711

-p:多层创建。
eg:mkdir -p a/b/c/d #禁止套娃,哒mei~

image


rmdir命令(删除空目录)

语法如下:

rmdir 目录名称
rmdir -p 目录名称
eg:rmdir -p a/b/c/d #空目录就这样删除了~

cp命令(复制文件或目录)

语法如下:

cp [要拷贝文件] [目标目录下]
#搭配的参数如下
-a:==pdr
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)
-d:若来源档为连接档的属性,则复制连接档属性而非文件本身  #连接档可以用ls -ld查看
-r:递归持续复制
-i:覆盖文件,有提示(默认为覆盖)
-f:强制的意思,若目标文件已经存在且无法开启,则移除后再尝试一次

# 案例:

# 将/root目录下anaconda-ks.cfg复制到/tmp目录
[root@localhost ~]# cp /root/anaconda-ks.cfg /tmp

# 将/root目录下的test文件夹及其内部的文件复制到/tmp中
[root@localhost ~]# cp -r /root/test /tmp
ps:在linux中,文件夹是不可以直接复制。

# 将/etc/hosts和/etc/resolv.conf 复制到/tmp目录中
[root@localhost ~]# cp /etc/hosts /etc/resolv.conf  /tmp

stat命令(查看文件详细属性)

  • 格式:stat [option] file
  • 参数:
    • -L:显示符号链接所指向文件的信息
    • -f:显示文件所在文件系统的信息
    • -t:以简洁方式输出信息
    • -c:以特定格式输出文件的某些信息
  • 文件的三个时间:
  1. Access time(atime):表示我们最后一次访问(仅仅是访问,没有改动)文件的时间。
  2. Modify time(mtime):表示我们最后一次修改文件的时间。
  3. Change time(ctime):表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等
  • 补充:
当我们仅仅只是读取文件时,access time 改变,而modify,change time 不会改变;
当修改文件时,access,modify,change time 都会跟着改变;
当修改文件属性时,change time 改变,而access,modify time 不变。
  • linux中的链接相当于快捷方式。

rm命令(移除文件或目录)

删除文件有两种方式:
1、物理删除:直接删除文件。
2、逻辑删除:将文件隐藏,没有直接删除。

语法如下:


rm -fir 文件/目录
#搭配的参数如下
-f:忽略不存在的文件,不会出现警告的信息
-i:互动模式,在删除前会询问是否进行
-r:递归删除  	#和套娃的意思一样,非常危险,谨慎操作~

# 案例:
# 将/root目录下的1.txt删除
[root@localhost ~]# rm 1.txt 

# 删除/root目录下的test文件夹及其内部所有的文件
[root@localhost ~]# rm -rf /root/test/

# 禁用的命令:rm -rf /*
# 解决rm命令误操作:将rm命令改一个名称。
# 通过查看命令存放的路径,更改名称:which命令查看命令存放路径

注.胆小的家人可以搭配 ‘i’ 使用,避免删除了不该删除的文件。


alias命令(系统别名)

  • alias : 查看系统别名
  • 格式:
    • alias [命令名] = [新名]
    • eg:alias rm='xxx' : 设置系统别名
  • 补充:不使用别名,就在命令之前增加\
    • [root@localhost ~]# \rm 1.txt

mv命令(移动文件或目录,或修改名称)

移动文件相当于剪切。

  • 格式
    mv [移动文件的原路径] [移动文件的新路径]

语法如下:

# 将/root目录下的1.txt移动到/opt目录中
[root@localhost ~]# mv /root/1.txt /opt

# 移动文件夹
[root@localhost ~]# mv test/ /mnt/

4.Linux文件内容查看

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

  • cat 显示文件内容,但是不可以编辑
  • tac 从最后一行开始显示和cat相反
  • nl 显示的时候,输出行号
  • more 一页一页的显示文件内容
  • less与more类似,但是比more更好的是他可以往前翻页
  • head 只看头几行
  • tail 只看尾几行

cat命令

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

语法如下:

cat -AbEnTv

选项和参数如下:

  • -A:== -vET的整合,可以列出一些特殊字符而不是空白
  • -b:列出行号,仅针对非空白做行号显示,空白不显示行号
  • -E:将结尾的断行字节$显示出来
  • -n:列出行号,连同空白行也会有行号,与-b的选项不同
  • -T:将Tab按键以^|显示出来
  • -v:列出一些看不出来的特殊字符
#示例如下:
#查看/etc/issue这个文件的内容
cat /etc/issue

tac命令

tac与cat相反,文件内容从最后一行开始显示,可以看出tac是cat的’倒数‘!


nl命令

显示行号,语法如下:

nl -bnw 文件

选项与参数如下:

  • -b:指定行号指定的方式,主要有两种:
    • -ba:表示不论是否为空行,同样列出行号
    • -bt:如果有空行,空行不列出行号
  • -n:列出行号表示的方法,主要有三种:
    • -n ln:行号在屏幕的最左侧显示
    • -n rn:行号在自己栏位的最右方显示,且不加0
    • -n rz:行号在自己栏位的最右方显示,且加0
  • -w:行号栏的占用的位数
#用nl列出/etc/issue的内容,实例如下:
nl /etc/issue

more命令

一页一页翻动

选项参数如下:

  • 空格:代表向下翻一页
  • Enter:代表向下翻一行
  • /字串:代表在这个显示的内容中,向下搜索/字串这个关键字
  • :f :立刻显示出档名以及目前显示的行数
  • q :代表立刻离开more,不再显示该文件内容
  • b :代表往回翻页,不过这个动作只对文件有用
#实例如下:
more /etc/man_db.config

less命令

一页一页翻动

选项参数如下:

  • 空格:向下翻动一页
  • [PgDn] :向下翻动一页
  • [PgUp] :向上翻动一页
  • /字串:向下寻找字串
  • ?字串:向上寻找字串
  • n:重复前一个动作
  • N:重复前一个动作(反向)
  • q:离开less这个程序

head命令

取出文件的前几行,默认显示前十行

选项参数如下:

  • -n:后面接数字,代表显示几行的意思
#显示文件的前20行:
head -n 20 HammerZe.txt

tail命令

取出文件后几行,默认显示后十行

选项参数如下:

  • -n:后面接数字,代表显示几行的意思
  • -f:表示持续侦测后面所接的档名,要等按下Ctrl+c才会结束tail的侦测
#显示文件最后20行:
tail -n 20 HammerZe.txt

👉注.Linux文件操作命令,小白必看!!!


image

posted @ 2021-10-31 17:49  HammerZe  阅读(555)  评论(0编辑  收藏  举报