Day06-Linux下目录命令讲解及重要文件讲解

Day06-Linux下目录命令讲解及重要文件讲解

  • [1. Linux目录文件](#1. Linux目录文件)
    • [1.1 Linux系统目录结构介绍](#1.1 Linux系统目录结构介绍)
      • [1.1.1 Linux与Windows目录结构对比](#1.1.1 Linux与Windows目录结构对比)
    • [1.2 重要的Linux配置文件介绍](#1.2 重要的Linux配置文件介绍)
      • [1.2.1 /etc系统初始化及设置相关重要文件](#1.2.1 /etc系统初始化及设置相关重要文件)
      • [1.2.2 /usr目录的重要知识介绍------应用程序目录](#1.2.2 /usr目录的重要知识介绍------应用程序目录)
      • [1.2.3 /var目录下的路径知识------可变化的目录](#1.2.3 /var目录下的路径知识------可变化的目录)
      • [1.2.4 /proc下的重要路径知识 ------进程和内核信息的文件](#1.2.4 /proc下的重要路径知识 ------进程和内核信息的文件)
      • [1.2.5 /dev下目录知识](#1.2.5 /dev下目录知识)

1. Linux目录文件

1.1 Linux系统目录结构介绍

1.1.1 Linux与Windows目录结构对比

相对路径和绝对路径:
绝对路径:

从根开始,开始有一个/目录

bash 复制代码
ls /etc/sysconfig/

地球亚洲中国北京昌平沙河白沙路 父类。。。。老男孩教育77期

相对路径:

root@oldboy 老男孩教育#

cd Linux77期

bash 复制代码
[root@oldboy ~]# mkdir oldboy -p
[root@oldboy ~]# cd oldboy   #相对路径
[root@oldboy oldboy]# cd ../ #相对路径
[root@oldboy ~]# cd /root/oldboy #绝对路径

无效的:

bash 复制代码
cd oldboy   #相对路径
[root@oldboy ~]# cd oldboy   #相对路径

linux第一级目录结构:

bash 复制代码
[root@oldboy oldboy]# tree -L 1 /
/
├── bin -> usr/bin       #/bin等同/usr/bin     #普通用户二进制命令目录。
├── sbin -> usr/sbin     #/sbin/等同/usr/sbin  #root管理员使用的二进制命令目录
├── boot                 #内核程序及引导程序所在的目录,100M
├── dev                  #设备目录(光驱 磁盘)
├── etc                  #系统基础服务配置文件所在的目录(yum rpm安装的软件)
├── home                 #普通用户的家目录(三间茅草房) 
├── root                 #管理员的家目录(皇宫)
├── lib -> usr/lib       #库文件所在目录       
├── lib64 -> usr/lib64   #库文件所在目录     
├── media                #媒体 光驱等挂载点
├── mnt                  #临时的挂载点(u)
├── opt                  #第三方程序目录
├── proc                 #虚拟的文件系统,内核和进程信息的目录。汽车仪表盘。
                         #汽车仪表盘:车况 油耗 跑了公里数 速度
├── sys                  #虚拟的文件系统
├── tmp                  #临时目录,所有用户都可以进入这里做各种操作(黑客跳板目录),监控目录。
├── usr                  #c:/program file 应用程序所在目录
└── var                  #数据变化的目录,日志文件存放目录。

1.2 重要的Linux配置文件介绍

1.2.1 /etc系统初始化及设置相关重要文件

  1. /etc/sysconfig/network-scripts/ifcfg-eth0:网卡配置文件
bash 复制代码
[root@oldboy oldboy]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
HWADDR=00:0C:29:C4:6F:D9     #MAC地址 网卡的物理地址
TYPE=Ethernet                 #以太网
BOOTPROTO=none           #
IPADDR=10.0.0.129        #IP地址
PREFIX=24                #子网掩码
GATEWAY=10.0.0.254       #网关
DNS1=223.5.5.5           #DNS1 域名解析为IP。
DNS2=202.106.0.20        #DNS2 域名解析为IP。
NAME=eth1   #设备名
UUID=cf363dd6-05ce-37d3-8caa-242f64883a8f #唯一标识
ONBOOT=yes    #网卡随着linux开启启动
  1. /etc/resolv.conf:Linux系统过时的DNS客户端配置文件
bash 复制代码
[root@oldboy oldboy]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 223.5.5.5
nameserver 202.106.0.20

重启网卡时候,网卡配置文件里的DNS设置会覆盖这里的设置。

配置客户端DNS有两种方法;

复制代码
1.网卡配置文件里设置(优先)

2.直接在/etc/resolv.conf里配置(很容易被覆盖)
  1. /etc/hostname:主机名配置文件

查主机名:

bash 复制代码
[root@oldboy ~]# hostname
oldboy
[root@oldboy ~]# uname -n
oldboy

修改主机名:

bash 复制代码
1.nmtui
2.hostnamectl set-hostname oldboy
3.vim /etc/hostname
  1. /etc/hosts:系统本地的DNS解析文件(局域网 域名和IP解析文件)
bash 复制代码
10.0.0.129  oldboy
10.0.0.129  oldboy www.oldboyedu.com  www.baidu.com

内部测试,临时访问。服务器之间联系会用主机名的形式

【大公司】还是【小公司】?

有大厂的经历,但不代表就去大厂。

【大公司】

1.业务流量大。

2.规范的制度和流程。

3.学习到很多大流量知识框架。

4.背景好。

缺:

1.实际工作范围很窄。

2.自动化了,鼠标点点点。了解业务,落后了。开发主导运维。

【小公司】

1.全面锻炼自己。

2.单打独斗能力很强。

  1. /etc/fstab:配置开机设备自动挂载的文件

(危险的文件容易导致linux无法启动

特殊知识点:

linux设备 直接插上去 用不了。

bash 复制代码
[root@oldboy ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@oldboy ~]# ls /mnt/
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

重启,挂载就失效。

/etc/fstab 永久挂载。

bash 复制代码
[root@oldboy ~]# df -h  #查看挂载结果
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   12M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.9G   16G   11% /     #自动挂载
/dev/sda1               1014M  138M  877M   14% /boot #自动挂载了
tmpfs                    394M     0  394M    0% /run/user/0
/dev/sr0                 4.5G  4.5G     0  100% /mnt   #挂载结果

#/etc/fstab 
/dev/cdrom              /mnt                 iso9660  defaults       0 0 
  1. /etc/rc.local:存放开机自启动程序命令的文件
bash 复制代码
软连接到/etc/rc.d/rc.local
[root@oldboy ~]# ls -l /etc/rc.local 
lrwxrwxrwx. 1 root root 13 5月   7 09:23 /etc/rc.local -> rc.d/rc.local
[root@oldboy ~]# ls /etc/rc.d/rc.local -l
-rw-r--r--. 1 root root 473 4月   1 2020 /etc/rc.d/rc.local
默认不能用,必须给权限。
[root@oldboy ~]# chmod +x /etc/rc.d/rc.local     #给执行权限。
[root@oldboy ~]# ls /etc/rc.d/rc.local -l
-rwxr-xr-x. 1 root root 473 4月   1 2020 /etc/rc.d/rc.local
  1. /etc/issue

闷声发大财

绝对不背后说人坏话,如果要说,说好话。 ====拉高人品

祸从口出,病从口入

简单做事,低调做人。

bash 复制代码
[root@oldboy ~]# cat /etc/issue
\S
Kernel \r on an \m

[root@oldboy ~]# >/etc/issue #清空内容
[root@oldboy ~]# cat /etc/issue
  1. /etc/motd:配置用户登录系统之后显示提示内容的文件
bash 复制代码
[root@oldboy ~]# echo "这是老男孩Linux77期" >/etc/motd 
[root@oldboy ~]# cat /etc/motd
这是老男孩Linux77期

用途:提醒自己。。提醒使用服务器人员。

  1. /etc/redhat-release:声明Red Hat版本号和名称信息的文件
bash 复制代码
[root@oldboy ~]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)
[root@oldboy ~]# uname -r
3.10.0-1127.el7.x86_64
[root@oldboy ~]# uname -n
oldboy
[root@oldboy ~]# uname -a
Linux oldboy 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  1. /etc/sysctl.conf:Linux内核参数设置文件(系统优化)****

配置完:sysctl -p生效,直接编辑完不生效

  1. /etc/profile、/etc/bashrc 配置系统的环境变量/别名等的文件※※※
    PS1

1.2.2 /usr目录的重要知识介绍------应用程序目录

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

日志:计算机遇到各种问题,记录日志里,告诉管理员他们的情况。

1.2.3 /var目录下的路径知识------可变化的目录

  1. /var/log/messages #linux系统日志文件,系统故障可以去看看。

  2. /var/log/secure #安全日志(ssh日志记录到这里),监控日志。

  3. /var/log/dmesg #记录硬件信息加载情况的日志文件(dmesg)

1.2.4 /proc下的重要路径知识 ------进程和内核信息的文件

路径名称 路径说明

/proc/cpuinfo 当前cpu信息文件

/proc/meminfo 当前内存信息文件

/proc/loadavg 当前系统的平均负载文件

/proc/mounts 当前设备挂载列表信息文件

/proc/interrupts 当前系统中断信息文件

1.2.5 /dev下目录知识

/dev/hda-t IDE设备

/dev/sda-z SCSI设备

/dev/null 无限数据接收设备,相当于黑洞

/dev/zero 无限零资源

/dev/cdrom 光驱

可以看看

链接: https://blog.51cto.com/aqiang/1891893

目录命令:

1)cp 复制目录

cp 选项 源 目标

复制文件:

bash 复制代码
[root@oldboy ~]# cp /etc/hosts /tmp/
[root@oldboy ~]# ls /tmp/

复制目录:

bash 复制代码
[root@oldboy ~]# cp -r /etc /tmp/
[root@oldboy ~]# ls /tmp/

[root@oldboy ~]# cp -a /etc /opt
[root@oldboy ~]# ls /opt
etc

cp -t 目标 源

bash 复制代码
[root@oldboy ~]# cp -t /home/oldboy/ /etc/hosts
[root@oldboy ~]# ls /home/oldboy/
ddasdf  hosts

2)mv 移动目录或文件

把当前目录下的dir1,移动到/tmp目录。

root@oldboy \~# mv dir1 /tmp/

练习:

bash 复制代码
[root@oldboy ~]# ls
a                a.out  c            oldboy      stu1   stu2  stu4  stu6  stu8
anaconda-ks.cfg  b      epel-7.repo  oldboy_dir  stu10  stu3  stu5  stu7  stu9

1)直接删,会提示

bash 复制代码
[root@oldboy ~]# rm a.out 
rm:是否删除普通空文件 "a.out"?y

2)强制删

bash 复制代码
[root@oldboy ~]# rm -f epel-7.repo 
[root@oldboy ~]# ls
a                b  oldboy      stu1   stu2  stu4  stu6  stu8
anaconda-ks.cfg  c  oldboy_dir  stu10  stu3  stu5  stu7  stu9

3)直接删目录 提示

bash 复制代码
[root@oldboy ~]# rm -r oldboy
rm:是否删除目录 "oldboy"?y

4)强制删

bash 复制代码
[root@oldboy ~]# rm -fr a
[root@oldboy ~]# rm -fr b
[root@oldboy ~]# rm -fr c
[root@oldboy ~]# ls
anaconda-ks.cfg  stu1   stu2  stu4  stu6  stu8
oldboy_dir       stu10  stu3  stu5  stu7  stu9

5)批量删

bash 复制代码
[root@oldboy ~]# rm -fr stu*
注意:*表示匹配所有
[root@oldboy ~]# ls
anaconda-ks.cfg  oldboy_dir

生产慎用:

  1. 用mv替代rm,把/tmp当做回收站
bash 复制代码
[root@oldboy ~]# touch a.txt b.txt
[root@oldboy ~]# mv a.txt /tmp/
[root@oldboy ~]# ls
anaconda-ks.cfg  b.txt  oldboy_dir
处理错了,移动回来
[root@oldboy ~]# mv /tmp/a.txt .
[root@oldboy ~]# ls
anaconda-ks.cfg  a.txt  b.txt  oldboy_dir
  1. find+rm 提高删除的门槛。

    命令复杂,多少天以前,多大的删。。什么类型的。

  2. 不要全路径删文件。

今天作业:

1.有道笔记,对今天学的内容,发录音。

2.文件相关命令 vim cat tail head grep tr more less echo 等

3.预习 视频目录12-13 启动流程放弃

跑火车:

1.上网

2.epel源

配置第三方epel源更新地址:

curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3.yum install sl -y

4.sl

5.效果

复制代码
                              (@@) (  ) (@)  ( )  @@    ()    @     O     @     O
                         (   )
                     (@@@@)
                  (    )

                (@@@)
               ====        ________                ___________
           _D _|  |_______/        \__I_I_____===__|_________|
            |(_)---  |   H\________/ |   |        =|___ ___|      _______________
            /     |  |   H  |  |     |   |         ||_| |_||     _|
           |      |  |   H  |__--------------------| [___] |   =|
           | ________|___H__/__|_____/[][]~\_______|       |   -|
           |/ |   |-----------I_____I [][] []  D   |=======|____|________________
         __/ =| o |=-~~\  /~~\  /~~\  /~~\ ____Y___________|__|__________________
          |/-=|___|=    ||    ||    ||    |_____/~\___/          |_D__D__D_|  |_D
           \_/      \O=====O=====O=====O_/      \_/               \_/   \_/    \_

root@oldboy \~# yum install cowsay -y

root@oldboy \~# cowsay "I am oldboy"

复制代码
< I am oldboy >
\   ^__^
     \  (oo)\_______
        (__)\       )\/\
            ||----w |
            ||     ||
相关推荐
大树883 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz4 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩5 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_5 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化