Linux目录、路径、核心字符

本文介绍了Linux系统的基本目录结构及其特点,包括根目录下的主要子目录及其功能,并解释了相对路径和绝对路径的区别,以及路径操作中常用的特殊字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、目录相关知识

windows:目录顶点或者入口盘符:C/D/E
Linux:目录顶点或者入口:/,称为根。所有的目录都在根下面。

Linux系统目录结构具有以下基本特点:
1.一切从"根"开始,"/"是所有目录的起点(顶点)。
2.Linux根下面的目录是一个有层次的树状结构。
3.酷似一棵倒挂着的树。
[root@oldboy ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── oldboy
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

路径分隔符区别:
Windows的目录形式为c:\windows\,路径分隔符是“\”(撬棍,反斜线),d、e等盘的目录结构与之类似。
Linux的目录形式为/etc/hosts,路径分割符为"/" (斜线)。

目录层次标准:
http://www.pathname.com/fhs/

二、"/"下目录介绍

root@oldboy oldboy]# tree -L 1 /
/
├── bin -> usr/bin        #/bin等同/usr/bin     #普通用户二进制命令目录,ls,cp,cat,rm。
├── sbin -> usr/sbin    #/sbin/等同/usr/sbin  #root管理员使用的二进制命令目录(破坏程度更                                               大,fdisk,mkfs分区格式化)
├── boot                      #内核程序及引导程序所在的目录,100M
├── dev                       #设备目录(光驱 磁盘)

      /dev/hd[a-t]IDE设备
      /dev/sd[a-z] SCSI设备
      /dev/cdrom 光驱
      /dev/null  #无限数据接收设备,相当于黑洞
       /dev/zero  #无限零资源,要多少有多少
├── etc*****                 #系统基础服务核心配置文件所在的目录(yum rpm安装的软件)

1)/etc/sysconfig/network-scripts/ifcfg-eth1:网卡配置文件,第二块ifcfg-eth0
2)/etc/resolv.conf:Linux系统过时的DNS客户端配置文件
3)/etc/hostname:主机名配置文件
4)/etc/hosts:系统本地的域名解析文件(局域网;域名和IP解析文件)
5)/etc/fstab:配置开机设备自动挂载的文件
6)/etc/rc.local:存放开机自启动程序命令的文件
7)/etc/issue 软件bug,和特定版本有关。
8)/etc/motd:配置用户登录系统之后显示提示内容的文件
9)/etc/redhat-release:声明Red Hat版本号和名称信息的文件
10)/etc/sysctl.conf:Linux内核参数设置文件(系统优化)
11)/etc/profile、/etc/bashrc ,.bashrc,.bash_profile配置系统的环境变量/别名等的文件
├── home                    #普通用户的家目录(三间茅草房) /home/oldboy,~
├── root                       #管理员的家目录(皇宫)
├── lib -> usr/lib           #库文件所在目录,系统调用(内核提供接口给应用程序使用)
├── lib64 -> usr/lib64   #库文件所在目录     
├── media                    #媒体 光驱等挂载点。
├── mnt                        #临时的挂载点(u)
├── opt                          #第三方程序目录
├── proc*****                #虚拟的文件系统,内核、进程等配置和运行信息的目录。汽车仪表盘。
                                       汽车仪表盘:车况\油耗\跑了公里数\速度

         /proc/cpuinfo           当前cpu信息文件
         /proc/meminfo         当前内存信息文件
         /proc/loadavg           当前系统的平均负载文件
         /proc/mounts           当前设备挂载列表信息文件
         /proc/interrupts       当前系统中断信息文件

├── sys                         #虚拟的文件系统
├── tmp                        #临时目录,所有用户都可以进入这里做各种操作(黑客跳板目录),监                                         控目录。 

                                        1)堵上漏洞。2)防止放木马文件。3)防止修改关键文件(suid vim)。                                            4)提权到root(/etc/sudoers),为所欲为。                  
├── usr                          #c:/program file 应用程序所在目录,编译方式安装软件默认是这个目                                              录/usr/local

          1)/usr/local/                      #编译安装软件默认的位置路径,c:\Program files。 
          2)/usr/src                          #源代码目录

└── var                          #变化的目录,日志文件、缓存等文件存放的目录。
                                        例:  /var/log/dmesg          #记录硬件信息加载情况的日志文件(dmesg)                                                     /var/log/messages     系统日志文件,系统故障可以去看看。
                                                 /var/log/secure           登录日志  (ssh日志记录到这里)监控日志
                                                /var/log/lastlog            有哪些用户登录lastlog

三、和磁盘相关的知识

挂载 :      给硬盘安个门
挂载点: 门   (目录 /mnt)

mount    /dev/cdrom     /mnt           临时挂载

[root@oldboy ~]# ls   /dev/cdrom
/dev/cdrom

#cdrom是设备,不是目录。

[root@oldboy ~]# mount      /dev/cdrom    /mnt        #给磁盘/dev/cdrom开一个门,门是/mnt目录,/mnt就是挂载点
mount: /dev/sr0 写保护,将以只读方式挂载

[root@oldboy ~]# ls /mnt/
CentOS_BuildTag                LiveOS/
.discinfo                               Packages/
EFI/                                      repodata/
EULA                                   RPM-GPG-KEY-CentOS-7
GPL                                     RPM-GPG-KEY-CentOS-Testing-7
images/                               TRANS.TBL
isolinux/                              .treeinfo
[root@oldboy ~]# ls             /mnt/Packages/

四、路径相关知识

相对路径绝对路径区别:

绝对路径:从根开始找
银河系-太阳系-地球---亚洲---中国---北京---昌平沙河

cd /etc/..                                      #前面带"/"的

相对路径:相对于提示符

中国---北京---昌平沙河

例:
[root@oldboy ~]# mkdir oldboy -p
[root@oldboy ~]# cd oldboy                        #相对路径 相对当前用户所在的路径为前提,,前面不带"/"。
[root@oldboy oldboy]# cd ../                       #相对路径

[root@oldboy ~]# cd    /root/oldboy             #绝对路径,和当前路径没有关系。

区别:
[root@oldboy ~]#cd    /oldboy        #绝对路径,有跟"/"。
[root@oldboy ~]# oldboy               #相对路径

Linux核心字符

(1)*             表示所有
   [root@oldboy ~]# ls
   a.txt  oldboy1.txt  oldboy.log  oldboy.txt  oldgirl  shell练习题.rar
   [root@oldboy ~]# rm -fr *
   [root@oldboy ~]# ls
(2)~             家目录
(3).              当前目录
(4)..             上一级目录
(5)|               管道
(6)              重定向

        #一般情况下,我们都是从键盘读取用户输入的数据,然后再把数据拿到程序(C语言程序、Shell 脚本程序等)中使用;这就是标准的输入方向,也就是从键盘到程序。
        反过来说,程序中也会产生数据,这些数据一般都是直接呈现到显示器上,这就是标准的输出方向,也就是从程序到显示器。
        我们可以把观点提炼一下,其实输入输出方向就是数据的流动方向:
        输入方向就是数据从哪里流向程序。数据默认从键盘流向程序,如果改变了它的方向,数据就从其它地方流入,这就是输入重定向。
        输出方向就是数据从程序流向哪里。数据默认从程序流向显示器,如果改变了它的方向,数据就流向其它地方,这就是输出重定向。

        输出重定向是指命令的结果不再输出到显示器上,而是输出到其它地方,一般是文件中。这样做的最大好处就是把命令的结果保存起来,当我们需要的时候可以随时查询。
        输入重定向就是改变输入的方向,不再使用键盘作为命令输入的来源,而是使用文件作为命令的输。

1)>或1>       #标准输出重定向  清空已有文件内容,加入新的内容

[root@oldboy ~]# echo 123 >a.txt
[root@oldboy ~]# cat a.txt
123
[root@oldboy ~]# echo 456 >a.txt
[root@oldboy ~]# cat a.txt
456

[root@oldboy ~]# grep   mysql   /etc/services  >oldboy.txt
/etc/services 苹果树
mysql 苹果
> 筐里的东西清空
oldboy.txt 装到筐里

2)1>>   标准输出追加重定向  只加入新的内容到文件结尾
[root@oldboy ~]# echo 123 >>a.txt
[root@oldboy ~]# echo 123 >>a.txt
[root@oldboy ~]# echo 123 >>a.txt
[root@oldboy ~]# cat a.txt
456
123
123
123

3)2>     错误输出重定向  
若是执行正确命令,命令不进入文件
[root@oldboy ~]# echo oldboy >a.txt  2>b.txt
[root@oldboy ~]# cat a.txt 
oldboy
[root@oldboy ~]# cat b.txt 

若是执行错误命令,命令进入b.txt
[root@oldboy ~]# cho oldboy  >a.txt  2>b.txt
[root@oldboy ~]# cat a.txt   #清空了
[root@oldboy ~]# cat b.txt    #错误命令进入
-bash: cho: 未找到命令

4)&>       正确的和错误的都放到c.txt
[root@oldboy ~]# cho    oldboy     &>c.txt
[root@oldboy ~]# cat    c.txt
-bash: cho: 未找到命令

[root@oldboy ~]# echo   oldboy   &>c.txt
[root@oldboy ~]# cat    c.txt
oldboy                                                                                                                                                -bash: cho: 未找到命令

5)<或0<      输入重定向
<<或0<<     追加输入重定向

批量插入多行文本

[root@oldboy ~]# cat >/oldboy.txt<<EOF
> 10.0.0.7
> 10.0.0.8
> 10.0.0.9
> EOF
[root@oldboy ~]# cat /oldboy.txt 
10.0.0.7
10.0.0.8
10.0.0.9

# 先清空/oldboy.txt里面的内容,再把后面的全部写进去

6)/dev/null     黑洞设备
[root@oldboy ~]# cat c.txt &>/dev/null

#垃圾桶,所有产生的都扔掉
/dev/zero         零设备,(白洞)     #源源不断的产生东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RootZY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值