Linux目录结构与核心命令

目录结构与核心命令

1 核心目录结构

1.1 Linux 核心目录(根下)

  • 目录(windows 叫文件夹),一般是用来分类存放文件。
  • / 根,斜线。 \ 反斜线。
根下的核心目录 说明
/etc/ 系统服务配置文件的目录,存放系统,服务的配置。
/home/ 普通用户家目录。比如 oldboy 用户 /home/oldboy/
/root/ 皇宫,root 用户家目录。
/dev/ device, 设备文件目录,硬盘,光盘..
/tmp/ templ 临时目录,临时存放内容.
/proc/ process 系统服务,进程信息.类似于汽车的仪表盘.
目录 说明 补充说明
/bin => /usr/bin binary 二进制文件 命令 CentOS7 /bin === /usr/bin CentOS 6 不同
/sbin => /usr/sbin super binary 超级命令 只有 root 可以使用 CentOS7 /sbin === /usr/sbin CentOS 6 不同
/boot 与 Linux 系统启动与引导相关的文件存放处:存放引导系统启动程序,系统内核镜像 Linux 一切皆文件。
/dev device 设备文件 光盘 硬盘分区 U 盘 /dev/cdrom 所有的设备 不挂载无法使用
/etc 系统的配置文件存放目录
/home /home/oldboy 普通用户的家目录 贫民窟 当前用户的家目录~
/root /root root 用户的家目录 皇宫 当前用户的家目录~
/lib/lib64 library 库文件 (服务软件的依赖) .so 软件运行需要的环境.
/lost+found 系统宕机 临时保存数据位置
/mnt mount temporary 临时的挂载点(磁盘) 临时的入口 详细在 磁盘管理部分讲解
/opt option 第三方软件 安装位置
/proc process(进程) 虚拟目录 存放的是内存中信息 进程 服务信息 内核信息 Linux 一切皆文件。
/sys 虚拟目录 存放的是内存中信息 进程 服务信息
/tmp temp temporary 临时存放文件的位置 垃圾堆
/usr user/ unix software resource 存放用户安装软件
/var variable 经常变换的数据 存放的位置 日志(服务日志) 有故障找日志

1.2 路径表示形式

  • Linux 下面的路径表示形式
路径形式 说明
绝对路径 从根开始的路径是绝对路径,/etc/hostname /etc/sysconfig/network-scripts/ifcfg-eth0/
相对路径 不是从根开始的路径就是相对路径,etc/ etc/hostname

2. 核心命令

2.1 命令详解

1) cd 与 pwd

说明 说明
cd change directory 进入到某个目录
pwd print working directory 显示当前所在位置(以绝对路径方式显示)
#案例01: 进入/tmp/目录然后查看所在目录
进入目录: cd
查看所在目录: pwd
[root@oldboy-85-king-lnb-v2 ~]# cd /tmp/
[root@oldboy-85-king-lnb-v2 tmp]# pwd
/tmp

#案例02: 进入/etc/sysconfig/network-scripts/目录然后查看所在目录
[root@oldboy-85-king-lnb-v2 tmp]# cd /etc/sysconfig/network-scripts/
[root@oldboy-85-king-lnb-v2 network-scripts]# pwd
/etc/sysconfig/network-scripts
cd 其他功能 说明
cd ~ 回到家目录
cd 回到家目录
cd .. 进入上级目录
cd - 返回上次所在目录,cd -,- 是 cd 的选项
cd . 进入当前目录 (一般与复制,移动一起用)
#案例03:  假如我们当前在一个比较深的目录中,快速回到家目录.
cd /etc/sysconfig/network-scripts/
cd ~
cd

操作记录:
[root@oldboy-85-king-lnb-v2 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@oldboy-85-king-lnb-v2 network-scripts]# cd
[root@oldboy-85-king-lnb-v2 ~]# pwd
/root

#案例04 假设我们在一个比较深的目录中,进入上一层目录
cd /etc/sysconfig/network-scripts/
cd ..
#如果想向上多层可以用 cd ../../形式
[root@oldboy-85-king-lnb-v2 /]# cd /etc/sysconfig/network-scripts/
[root@oldboy-85-king-lnb-v2 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@oldboy-85-king-lnb-v2 network-scripts]# cd ../..
[root@oldboy-85-king-lnb-v2 etc]# pwd
/etc
[root@oldboy-85-king-lnb-v2 etc]#

#案例 05 了解 返回上次所在位置
[root@oldboy-85-vip-king-v2 /]# cd /etc/sysconfig/network-scripts/
[root@oldboy-85-vip-king-v2 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@oldboy-85-vip-king-v2 network-scripts]# cd /tmp/
[root@oldboy-85-vip-king-v2 tmp]# pwd
/tmp
[root@oldboy-85-vip-king-v2 tmp]# cd -
/etc/sysconfig/network-scripts
[root@oldboy-85-vip-king-v2 network-scripts]# pwd
/etc/sysconfig/network-scripts

2) mkdir 创建目录

  • mk make dir directory
mkdir 创建目录 说明
选项-p 创建多层目录
-v 显示创建目录过程,工作中几乎不用。
#案例06 创建/oldboy目录
mkdir /oldboy

cd /oldboy/
pwd

#案例07 创建多层目录 /oldboy/a/b/c/d/e/f
[root@oldboy-85-king-lnb-v2 oldboy]# mkdir -pv /oldboy/a/b/c/d/e/f/
mkdir: 已创建目录 "/oldboy/a"
mkdir: 已创建目录 "/oldboy/a/b"
mkdir: 已创建目录 "/oldboy/a/b/c"
mkdir: 已创建目录 "/oldboy/a/b/c/d"
mkdir: 已创建目录 "/oldboy/a/b/c/d/e"
mkdir: 已创建目录 "/oldboy/a/b/c/d/e/f/"
[root@oldboy-85-king-lnb-v2 oldboy]# cd /oldboy/a/b/c/d/e/f/
[root@oldboy-85-king-lnb-v2 f]# pwd
/oldboy/a/b/c/d/e/f

3) touch 创建文件

#案例08 在/oldboy/目录下创建oldboy.txt  创建/oldboy/oldboy.txt
创建目录-已经完成
创建文件-进行中

[root@oldboy-85-king-lnb-v2 f]# cd /oldboy/
[root@oldboy-85-king-lnb-v2 oldboy]# touch oldboy.txt
[root@oldboy-85-king-lnb-v2 oldboy]# ls
a  oldboy.txt
[root@oldboy-85-king-lnb-v2 oldboy]#

#案例09 在/oldboy下面创建lidao.txt  oldgirl.txt 2个文件
绝对路径写法
touch /oldboy/lidao.txt  /oldboy/oldgirl.txt
相对路径写法

先进入,然后操作.
cd /oldboy
touch  lidao.txt  oldgirl.txt

4)ls 查看目录内容

  • ls list 列表
ls 命令选项 说明
-l long 以长格式显示(显示详细信息,比如文件时间,大小,所有者)
-t time 按照修改时间排序.
-r reverse .... 逆序排序,一般 - rt 一起用.
-h 以人类可读形式显示大小
#案例10  ls核心功能:查看 /etc目录下面的内容并且显示详细信息
ls /etc
ls -l /etc/
简写为ll /etc/

#案例11 查看/etc目录按照时间排序逆序排序(一个目录中文件太多了,找出最近的文件)从过去到现在
ls -lrt  /etc/
ll -rt /etc/   

#案例12 ls核心功能核心:以人类可读形式显示大小
ls -lh /etc/
ll -h /etc/
温馨提示:计算机中的单位:字节 byte 1 个英文字符占用 1 个字节
1KB=1024bytes
1MB=1024KB=1024^2bytes
1GB=1024MB=1024^3bytes
1TB=1024GB=1024^4bytes
1PB=1024TB=1024^5bytes
1EB
1ZB

5)mv move 移动

mv 从哪里来 到哪里去
移动 mv 文件 目录 文件 目录 .... 目标(目录)
改名 mv 文件或目录 文件或目录
#案例13 移动/oldboy/oldboy.txt 到/tmp下面
[root@oldboy-85-king-lnb-v2 ~]# mv /oldboy/oldboy.txt  /tmp/

#案例14 改名 把/oldboy/lidao.txt 改名为/oldboy/lidao996.txt
[root@oldboy-85-king-lnb-v2 ~]# mv /oldboy/lidao.txt  /oldboy/lidao996.txt

关于命令操作多个文件或目录的说明:

touch a b c d e f

mkdir dira dirb dirc

mv file1 file2 file3 dir 

6)cp 复制文件或目录

cp 命令选项 说明
-a all 简单理解为复制所有详情:-dpr
-r 递归复制,复制目录及目录的内容.
-p 复制的时候保持属性不变.(未来讲解文件属性就可以更深入了解)
-d 可以复制软连接.
#案例15 复制/etc/hostname 到/oldboy/下面
[root@oldboy-85-king-lnb-v2 ~]# cp /etc/hostname /oldboy/

#案例16 复制/etc/目录复制到/oldboy/下面
cp -a /etc/ /oldboy/
cp默认无法复制目录

#案例17 把系统的网卡配置文件备份到/oldboy目录下
网卡配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0 或 ens33
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /oldboy/

#如果要恢复
cp /oldboy/ifcfg-eth0  /etc/sysconfig/network-scripts/ifcfg-eth0

7)rm remove 删除文件或目录

rm 选项 说明
-f force 强制删除不提示,危险.
-r 递归删除,删除目录及目录的内容,没有需求不要加上 - r.
#案例18 删除/oldboy/oldboy.txt文件
rm  /oldboy/oldboy.txt
rm: 是否删除普通空文件 "/oldboy/oldboy.txt"? y

#案例19 强制删除文件 /oldboy/oldgirl.txt
rm -f /oldboy/oldgirl.txt

#案例20 删除目录/oldboy/
rm -fr  /oldboy/

8)输出信息到屏幕

#例子 1  输出oldboy  lidao996  到屏幕
echo oldboy lidao996
oldboy lidao996

#案例21 输出信息到文件中 /oldboy/oldboy.txt文件写入lidao996内容
[root@oldboy-85-king-lnb-v2 ~]# echo lidao996 >/oldboy/oldboy.txt
[root@oldboy-85-king-lnb-v2 ~]# cat /oldboy/oldboy.txt
lidao996

#案例22 输出有规律的内容
[root@oldboy-85-king-lnb-v2 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

[root@oldboy-85-king-lnb-v2 ~]# echo {a..e}
a b c d e

[root@oldboy-85-king-lnb-v2 ~]# echo {01..10}
01 02 03 04 05 06 07 08 09 10

[root@oldboy-85-king-lnb-v2 ~]# echo oldboy{01..10}
oldboy01 oldboy02 oldboy03 oldboy04 oldboy05 oldboy06 oldboy07 oldboy08 oldboy09 oldboy10


>叫做重定向符号,先清空文件内容,然后再写入.
>>叫做追加重定向,把信息写入到末尾.

{} 生成序列,与 echo 使用输出,也可与 touch/mkdir 一起使用,批量创建文件或目录.
touch file{1..3}.txt
file1.txt、file2.txt、file3.txt

9)cat 显示文件内容

cat 选项 说明
-n number 显示文件内容及行号
#案例23 显示/etc/password内容并显示行号
cat -n /etc/passwd


#案例24 输出/etc/hostname 和/etc/passwd2个文件的内容
#输出到屏幕
cat /etc/hostname  /etc/passwd

#保存到1个文件中。
cat /etc/hostname  /etc/passwd  >/oldboy/all.txt

2.2 Linux 环境初步优化

  • 检查是否能联网(虚拟机是否可以访问外部网络)
ping baidu.com
  • 配置 yum 源 (安装软件的软件仓库)

默认情况下 yum 下载软件的时候是从随机地址下载。

配置 yum 从国内下载 (仅执行即可)

#配置yum源
##备份yum源配置
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

##下载 命令 1
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

##下载 命令 2
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#安装Linux常用工具
yum install -y  tree  vim wget  bash-completion  bash-completion-extras  lrzsz  net-tools sysstat  iotop iftop htop unzip nc nmap telnet bc  psmisc httpd-tools  bind-utils nethogs expect

#Linux娱乐命令
yum install  -y sl  cowsay

运行tree命令,运行sl命令。

2.3 vi-vim 编辑器详解

1) vi-vim 区别

内容 区别
vi 系统自带,不需要额外安装,没有 vim 功能多.
vim 在最小化安装的版本中默认没有,需要额外安装,vi 的升级版 (vi imporved),

2)vi/vim 基本使用

a)打开文件 (不存在也 ok)

ls -l /oldboy/
vim /oldboy/oldboy.txt

如果 文件 不存在会自动创建;

如果 目录 不存在不会创建,会在保存并退出的时候报错.

b)进入编辑模式

  • 按字母 i 即可,编辑这个文件

c)退出编辑模式

  • 按 esc 键 退出编辑模式

d)保存与退出

  • 输入 :wq (write (写,保存) quit (退出))
  • :q! 强制退出不保存
  • :wq! 强制退出并保存.

e)检查

[root@oldboy-prod ~]# cat /oldboy/oldboy.txt
oldboylinux.cn  oldboyedu.com

3) 快捷键

快捷键小结

vim快捷键,需要在日常使用中记忆.
目前:
移动到最后一行       G(shift+g)
移动到第1行         gg    
移动到某一行         100gg
复制当前行           yy
删除当前行           dd
粘贴到当前行后       p
撤销               u(undo)
显示行号             :set nu   或 :set number
取消显示行号         :set nonu
搜索(默认就是向下找) /你要的内容

4)故障案例

  • vim 编辑文件故障提示:
    image

  • 原因:

    1. vi/vim 编辑文件的时候,会生成临时文件 (隐藏文件).
    2. 通过保存退出,隐藏文件会消失.
    3. 异常情况,断电,同时编辑这个文件,就会有这个提示.
  • 解决:

  • A 方案 01: 删除临时文件,工作中也可以删掉。根据提示的路径删除对应的临时文件即可。重新打开文件.

  • B 方案 02: 恢复未保存数据

vim -r oldboy.txt
rm -f .oldboy.txt.swp
重新打开文件即修复了.

3. 目录结构深入 - 文件

3.1 /etc/ 下面

/etc/ 文件 说明 企业应用
/etc/hostname 主机名配置文件 每个 Linux 主机配置主机名,根据主机名区别不同功能.
/etc/hosts 主机名和 ip 的对应关系 在网站中做访问使用,第 2 阶段处常用.
/etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件 物理机要改改,云服务器自动.第 1 阶段结束网络部分讲解.
/etc/rc.local 开机自启动的文件 把需要开机的时候自动运行的命令,服务放在到这个文件中
/etc/fstab 开机自动挂载的配置文件 第 1 阶段磁盘部分讲解.配置磁盘挂载使用.
/etc/motd 文件中的内容会在用户登录系统后显示出来. 显示温馨提示。佛祖保佑,永不宕机.
/etc/issue、 /etc/issue.net 文件中的内容会在用户登录系统前显示出来. 这个文件内容应该清空.

1)修改主机名

主机名修改建议:

  • 看到主机名就能知晓,这个节点的作用。

  • 推荐英文,“-”,“.” 就行,不要加入其他特殊符号,不要加入中文。

  • 下表为系统主机配置记录表

ip 地址 - 内网 ip 地址 - 公网 主机名 cpu 内存 硬盘 其他 系统 服务
10.0.0.200 oldboy83 1 1 20 centos7.9 网站服务器
10.0.0.201 web01.oldboylinux.cn 1 1 20 centos7.9 oldboylinu.cn网
#命令永久修改主机名
#配置主机名
hostnamectl set-hostname oldboy-king-v3
#临时修改
hostname a 

#查看主机名
cat /etc/hostname

2)网卡配置文件

  • /etc/ 各种配置的目录
  • /etc/sysconfig system configure 系统配置文件
  • /etc/sysconfig/network-scripts/ 网络的配置文件
  • /etc/sysconfig/network-scripts/ifcfg-eth0 或 ens33
    • if interface 网卡接口
    • eth 网卡
[root@oldboy-lnb-king-v3 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=df53b6fc-11c6-41b8-8c6c-7a68f3516400
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200   #网卡ip地址
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
DNS2=223.6.6.6
IPV6_PRIVACY=no

修改网卡配置文件

重启服务
systemctl restart network

DNS (域名解析服务) 用于把域名转换为 ip.
域名baidu.com ——>DNS——>ip 地址

3)/etc/rc.local 开机自启动配置文件

第 1 次使用这个文件之前需要给 /etc/rc.d/rc.local 增加执行权限.

chmod +x /etc/rc.d/rc.local

在 /etc/rc.local 中写个 shutdown -h now 或 reboot,试试就逝世

温馨提示

/etc/rc.local 本质是个快捷方式 (软连接), 源文件是 /etc/rc.d/rc.local

4)/etc/motd issue

建议 motd 写入系统基本信息。固定不变的.

issue 文件清空. >/etc/issue

/etc/motd 文件中的内容会在用户登录系统后显示出来. 显示温馨提示。佛祖保佑,永不宕机.

/etc/issue、/etc/issue.net 文件中的内容会在用户登录系统前显示出来.

3.2 /var/ 下面

var 经常变化的内容,variable. 比如:日志.

linux 有些异常的时候,我们要查看对应的日志.

linux 中的日志反映出,记录着系统,服务的运行情况.

  • Linux 系统日志
/var/ 经常变化的内容 说明 应用建议
/var/log/ 系统及服务的各种日志目录
/var/log/secure 存放用户登录情况日志。 分析是否有恶意破解情况。
/var/log/messages 通用各种服务的日志,日志很多。 分析服务,系统异常
  • 以 secure 为例,看下登录日志.
让他连接失败几次.
查看日志.
ssh -p 22 root@10.0.0.200

然后查看 /var/log/secure
Failed password 提示密码错误.

3.3 /proc/ 下面

这个目录下面存放的是系统的各种内存中进程信息,Linux 内核配置,系统信息。

这是个虚拟目录,不会占用磁盘空间。

/proc/ 系统,进程信息,内核 说明 应用建议
/proc/cpuinfo cpu 信息 未来监控使用,获取 cpu 指标.
/proc/meminfo 内存信息 未来监控使用,获取内存指标.
/proc/loadavg 系统负载信息,衡量系统繁忙程度 第 1 阶段讲解进程会详解.
/proc/mounts 系统挂载信息 第 2 阶段讲解 nfs 服务.

1)cpu 信息

  • cpu 颗数,cpu 核心数.
    • cpu 颗数,有多少个物理的 cpu.
    • cpu 核心数:1 颗中有多少个核心,每个核心相当于是 1 个工人.
lscpu 查看 cpu 信息,核心数,颗数
座 Socket: cpu 颗数
CPU (s) 核心数

2)内存信息

  • 内存,磁盘(硬盘)
    • 硬盘永久存储数据的地方。
    • 内存临时存放数据的地方。
  • 内存:
    • cpu 速度太快的,硬盘速度较慢,cpu 就要等着硬盘,造成系统缓慢.
    • 内存速度比 cpu 慢,比硬盘快. CPU > 内存 > 磁盘
    • 运行磁盘中程序,运行在内存中.
  • cpu: 用于处理数据,速度最快.

posted @ 2025-12-31 16:06  gzjwo  阅读(0)  评论(0)    收藏  举报