网络安全:系统目录介绍

[#####成功在于你坚持了别人坚持不了的东西####]

1.1 系统目录结构介绍

1.1.1 系统目录结构对比介绍

windows目录形式:

c:windowssystem
路径分隔符是"",D、E等盘的目录结构与之类似。

Linux目录形式:

绝对路径方式

/etc/hosts

相对路径方式

hosts
./host      -- ./  表示当前路径
../../host -- ../ 表示上一级所在的目录
路径分隔符为"/",Linux系统的一切目录都是从"/" 根开始的。

1.1.2 系统目录结构基本特点

系统目录结构对比效果:

在这里插入图片描述

系统目录结构之:绝对与相对路径说明

在这里插入图片描述

Linux目录结构的特点小结:

Linux系统的所有目录都是一个有层次的倒立着的树状目录结构(倒挂树形结构),“/” 根是所有目录的顶点。

对于Linux的目录来说,一切从根开始。

所有的目录都是按照一定的类别有规律地进行组织和命名的。

相对路径与绝对路径具有如下关系:

绝对路径:是指以根为起始点的路径,例如:/tmp 、/opt

相对路径:是指相对于非“/”路径的路径,即路径开头没有 “/”斜线,;例如:etc/sysconfig、opt/tmp

在这里插入图片描述

1.2 系统目录结构详解

1.2.1 系统目录层次结构标准

FHS的全程为Filesystem Hierarchy Standard,中文意思是目录层次标准,是Linux的目录规范标准。

详情参见:https://www.pathname.com/fhs/

详情参见:https://developer.ibm.com/technologies/linux/

FHS定义了两层规范,具体如下:

第一层是 / 目录下的各个目录应该存放什么样的文件数据,例如,/etc目录下放置的是系统的配置文件(比如:/etc/exports、/etc/hosts等),而/bin和/sbin下存放的则是程序及系统命令。

第二层是针对/usr(unix software resource或secondary hierarchy)和/var(variable data)这两个目录的子目录来定义的。例如,/var/log下放置的是系统日志文件等。

1.2.2 系统根下目录结构详解

对于每一个Linux初学者来说,花费时间掌握Linux系统的目录结构知识是很有必要的。

在Linux系统中 / 目录就是文件系统的组织者,通过tree命令可以查看Linux的以及目录结构:

[root@xiaoQ /]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
​
19 directories, 0 files

以上目录结构中,详细的目录作用说明如下:

序号 目录 说明(用※进行标注的需要重点关注)
01 /bin ※ 该目录为binaries英文的缩写,是常用的二进制命令所在的目录。
比如:ls cp mkdir rm等命令;/bin目录已成为/usr/bin的软链接
02 /sbin ※ 英文system binaries的缩写,大多涉及系统管理命令的存放,是超级权限用户root可执行命令的存放地,这个目录与/usr/sbin,/usr/X11R6/sbin或/usr/local/sbin目录是相似的;系统级命令,一般最好是通过sudo让普通用户执行这些命令,常见的命令有fdisk、reboot、fsck、halt等
03 /boot ※ Linux的内核及系统引导程序所需的文件目录。安装系统分区的时候一般要单独分一个boot分区,大小可为256MB~1024MB,该分区的数据增长很小,/boot目录就是引导分区的挂载点
04 /dev ※ 设备文件的目录,比如声卡、磁盘、光驱、等等。
05 /etc ※ ·二进制软件安装包(yum rpm)等配置文件的默认路径,例如:/etc/exports、/etc/hosts
·CentOS6下服务启动命令的存放目录,主要存放在/etc/init.d下。如:/etc/init.d/sshd、/etc/init.d/iptables等
06 /home ※ 普通用户的家目录,默认数据存放目录
07 /root ※ Linux超级权限用户root的家目录
08 /lib 英文libraries的缩写,启动系统和运行命令所需的共享库文件和内核模块存放目录,例如 /bin和/sbin下的某些命令,分为/lib和/lib64两种
09 /lost+found 在ext3文件系统中,当系统以外崩溃或机器以外关机时,会在这里产生一些文件碎片。系统在开机启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题时,可能会有文件被移到这个目录中,可能需要通过手工的方式来进行修复,或者移文件到原来的位置上。
10 /media 可移除的媒体的挂载点,例如:CD-ROM、U盘等的挂载,使用效率较低
11 /mnt ※ 英文Mount point的缩写,用作文件系统的临时挂载点,也可以作为CD-ROM、U盘等挂载,使用频率较高
12 /opt 英文option的缩写,表示的意思是可选择,被保留用于安装额外的应用软件包目录,例如:通过源码包安装的软件,可以通过 “./configure -prefix=/opt/” 命令设置将软件安装在/opt下,但并非必须这样,具体应视习惯或规范而定
13 /proc ※ 操作系统运行时,进程信息及内核信息(比如CPU 硬盘分区 内存信息等)均存在在这里。/proc目录是虚拟文件系统的挂载点,proc并不是真正的文件系统。系统运行时,很多信息都在这个目录下。(此目录中数据存储放在内存中)
14 /tmp ※ 英文Temporary files的缩写,为临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就是用来存放临时文件的,权限比较特殊。/var/tmp目录与这个目录比较相似,这个目录可以用作Linux系统的回收站。
15 /usr ※ 英文解释是第二层次标准,这是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多文件和目录。当安装一个Linux发行版官方提供的软件包时,大多安装在这里。/usr一般被认为是unix software resource的缩写。
16 /var ※ 英文variable data的缩写,这个目录的内容是经常变动的,看名字就知道,可以将其理解为vary的缩写,/var下有/var/log,这里用来存放系统日志的目录;/var/lib用来存放一些库文件。
17 /srv srv可以视为service的缩写,可用于存放为用户提供服务的数据所在的目录,例如:www ftp数据。
18 /sys 与/proc类似,也是虚拟的文件系统,用于存放内核等信息的目录,包含内内核、总线、设备、模块组、电源选项等。

1.3 磁盘挂载操作说明

1.3.1 磁盘数据应用挂载简介

windows系统使用磁盘
进行磁盘分区和创建文件系统后,将相应分区设置一个盘符,相当于一个磁盘分区的入口,就使用磁盘存储数据

Linux系统使用磁盘:
在Linux系统中是没有盘符概念的,所以一个分区设置好后,怎么给这个分区设置一个入口,从而进入分区;

在早期就出现了很大的困惑,所以引申出了磁盘分区的挂载概念。

挂载的作用:就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。

1.3.2 磁盘管理挂载操作实践

挂载命令介绍:

mount命令用于挂载文件系统(给指定磁盘分区设置一个入口);

挂载是在使用硬盘设备前所执行的最后一步操作;

使用mount命令把存储设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了;

挂载命令语法:

mount 参数 存储设备 挂载点目录

挂载参数信息:

序号 参数信息 解释说明
01 -a 挂载所有在/etc/fstab中定义的文件系统
02 -t 指定文件系统的类型
挂载实践操作:

实践情况-01:对存储设备进行挂载操作(临时挂载)

进行光驱设备挂载过程

01-在虚拟主机中加载系统镜像

[root@xiaoq ~]# ll /dev/cdrom 
lrwxrwxrwx 1 root root 3 Jan 18 18:09 /dev/cdrom -> sr0

02-在系统中进行光驱挂载过程

[root@xiaoq ~]# ll /mnt              
total 0

– 默认mnt目录没有挂载时,就只是根目录下的一个子目录,里面并没有数据信息

[root@xiaoq ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only

– 经mnt目录和光驱设备进行关联,光驱存储设备默认为只读状态

03-进入挂载目录检查数据信息

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

说明:以上操作为系统临时挂载,当系统重启后,以上操作配置会失效。

1.3.3 磁盘管理卸载操作实践

卸载命令介绍:

umount命令用于卸载文件系统,等价于将存储设备的入口给取消掉。

卸载命令语法:

umount 参数 挂载点目录

卸载命令参数:

序号 参数信息 解释说明
01 -l 表示不用进行目录切换,完成挂载点目录的卸载
02 -f 表示在挂载点目录中,如果有数据信息被服务或系统加载,可以实现强制卸载
挂载实践操作:

实践情况-01:基本卸载操作过程

[root@xiaoq ~]# umount /mnt

– 表示此时sdb1存储设备和xiaoQ_mount目录建立了挂载关系

说明:卸载操作过程是一定风险的,在企业中最好进行确认,再进行卸载操作。

1.4 重要系统文件介绍

1.4.1 系统网卡配置文件

文件路径:

系统网卡文件默认名称

/etc/sysconfig/network-scripts/ifcfg-ens33

系统网卡文件常用名称

/etc/sysconfig/network-scripts/ifcfg-eth0

文件介绍:

这是Linux系统第一块网卡的配置文件所在的路径,其中第一块网卡配置文件的结尾标识为eth0(ens33),第二块为eth1(ens34),以此类推。

当通过执行命令nmtui来修改网卡配置时,实际上就是在修改这个/etc/sysconfig/network-scripts/ifcfg-eth0文件,所以也可以通过直接编辑该文件的方式实现对网卡配置的更改。

文件信息:

[root@xiaoQ /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet                            
-- 上网类型,目前基本上都是以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none                    
-- 启动协议,获取配置方式,有none|bootp|dhcp三种选项配置
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
-- 第一块网卡的逻辑设备名,第二块为eth1
UUID=0601d4ac-d6a5-447a-8e9c-c71e3efda9f6
-- 通用唯一识别码(Universally Unique Identifier),如果是vm克隆虚拟机,会无法启动网卡,需删除此项
DEVICE=eth0
-- 第一块网卡的逻辑设备名,第二块为eth1
ONBOOT=yes
-- 这个地方要为yes,才能保证下次开机启动时激活网卡设备
IPADDR=10.0.0.100
-- 这是虚拟机桥接模式,局域网Linux服务器的固定IP地址
PREFIX=24
-- 子网掩码位数,这里是24位
GATEWAY=10.0.0.254
-- 局域网上网网关地址
DNS1=223.5.5.5  阿里云
DNS2=223.6.6.6
-- 主DNS,这里默认会覆盖以及优先于/etc/resolv.conf的配置生效
IPV6_PRIVACY=no

文件生效:

配置完网卡之后,可以通过重启网络服务,来使得所有网卡的配置文件生效。

[root@xiaoQ /]# systemctl restart network
或者
[root@xiaoQ /]# service network restart

查看网络状态信息

[root@xiaoQ /]# systemctl status network
   network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since Wed 2021-12-08 16:57:07 CST; 27s ago

如果只需让某个单独的ethX网卡配置生效,则可以通过以下命令操作:

常规用法

[root@xiaoQ /]# ifdown eth0 && ifup eth0

扩展用法

[root@xiaoQ /]# nmcli con down eth0 && nmcli con up eth0 

说明:以上文件配置完毕后,重启网络服务之后,只要可以利用ping命令访问外网主机地址或域名即可。

知识扩展:如何修改网卡名称信息?

方法一:系统安装过程中修改

加载系统镜像文件,显示系统安装界面信息:

在这里插入图片描述

在启动配置信息中添加如下信息:

net.ifnames=0 biosdevname=0

在这里插入图片描述

说明:上面信息编辑时,可以利用空格进行换行编辑,只有编辑完毕后才能操作回车,进入系统安装界面

查看确认配置信息是否生效:

在这里插入图片描述

方法二:系统安装完毕后修改

编辑网卡配置文件中网卡名称信息

[root@xiaoQ /]# 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=0601d4ac-d6a5-447a-8e9c-c71e3efda9f6
DEVICE=eth0
-- 修改网卡设备逻辑名称
ONBOOT=yes
IPADDR=10.0.0.100
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5
DNS2=223.6.6.6
IPV6_PRIVACY=no

重命名网卡配置文件名称信息

[root@xiaoQ ~]# cd /etc/sysconfig/network-scripts/
[root@xiaoQ network-scripts]# mv ifcfg-ens33 ifcfg-eth0

修改网卡名称规则内核文件

[root@xiaoQ ~]# cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
-- 添加网卡名称修改配置参数 net.ifnames=0 biosdevname=0
GRUB_DISABLE_RECOVERY="true"

使系统重新加载grub配置文件

[root@xiaoQ ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

重启操作系统,进行查看确认

[root@xiaoQ ~]# reboot

1.4.2 系统DNS客户端配置文件

文件路径:

/etc/resolv.conf

文件介绍:

DNS(Domain Name System)在网站的运行中起到了至关重要的作用,其主要负责将网站域名解析为对应的IP地址,例如:将www.baidu.com解析为对应IP地址记录(如 220.181.38.150),这个从域名到IP地址的解析过程,称为A记录,即Address Record。

DNS分为服务端和客户端两个部分,本章节知识点内容主要讲解的是系统上网客户端层面的配置,可以通过修改/etc/resolv.conf配置DNS客户端。

说明:DNS服务详细知识点介绍讲解会放在运维基础网络知识章节说明,敬请关注。

文件信息:

[root@xiaoQ ~]# cat /etc/resolv.conf 
 Generated by NetworkManager
search linux
nameserver 223.5.5.5
nameserver 223.6.6.6

— 表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。
— 在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。

文件生效:

文件信息配置完毕保存后立即生效。

需要特别注意的是,在网卡配置文件里配置的DNS会覆盖/etc/resolv.conf里的DNS配置信息。

1.4.3 系统DNS客户端解析文件

文件路径:

/etc/hosts

文件介绍:

此文件作用是设定用户IP与名字(或域名)的对应解析表,相当于本地(局域网内)的DNS解析文件。

一般在企业里进行开发或测试工作时会使用hosts域名解析,实现机房服务器之间的互相调用。

文件信息:

[root@xiaoQ ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1              localhost localhost.localdomain localhost6 localhost6.localdomain6

文件生效:

文件信息配置完毕保存后立即生效。

[root@xiaoQ etc]# cat /etc/hosts
..省略部分...
10.0.0.101  xiaoQ.com
​
[root@xiaoQ etc]# ping xiaoQ.com
PING xiaoQ.com (10.0.0.101) 56(84) bytes of data.
64 bytes from xiaoQ.com (10.0.0.101): icmp_seq=1 ttl=64 time=0.089 ms
64 bytes from xiaoQ.com (10.0.0.101): icmp_seq=2 ttl=64 time=0.105 ms
^C
--- xiaoQ.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 0.089/0.097/0.105/0.008 ms

1.4.4 系统主机名称配置文件

文件路径:

/etc/hostname 

文件介绍:

此文件为cnetos7系统主机名称的永久配置文件,可以实现主机名称的修改调整

文件信息:

[root@xiaoQ etc]# cat /etc/hostname 
xiaoQ.linux

文件生效:

需要重新启动操作信息,才能使文件配置生效。

说明:系统主机名称最好有合理规划,不要多台企业环境主机公用一个系统名称。

经验:主机业务名称.区域.位置

1.4.5 配置系统环境变量

文件路径:

全局配置文件

/etc/profile
/etc/bashrc

局部配置文件

~/.bash_profile
~/.bashrc

全局配置文件:文件中的配置信息对系统的全部用户都生效。

局部配置文件:文件中的配置信息只对系统的指定用户生效。

文件介绍:

系统变量、系统环境变量、以及系统别名功能进行永久配置生效的文件。可以实现运维人员管理系统的部分功能。

文件信息:

全局配置文件信息

 /etc/profile 文件部分配置信息
[root@xiaoQ01 ~]# cat /etc/profile
 /etc/profile
​
 System wide environment and startup programs, for login setup
 Functions and aliases go in /etc/bashrc
...省略部分信息...
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi
...省略部分信息...
unset i
unset -f pathmunge

/etc/bashrc 文件部分配置信息

[root@xiaoQ01 ~]# cat /etc/bashrc
# /etc/bashrc
​
# System wide functions and aliases
# Environment stuff goes in /etc/profile# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
...省略部分信息...


局部配置文件信息

~/.bash_profile 文件部分配置信息

[root@xiaoQ01 ~]# cat ~/.bash_profile 
# .bash_profile
​
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
​
# User specific environment and startup programs
​
PATH=$PATH:$HOME/bin
​
export PATH


~/.bashrc 文件部分配置信息

[root@xiaoQ01 ~]# cat ~/.bashrc 
# .bashrc
​
# User specific aliases and functions
​
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

文件生效:

方法一:重新连接系统主机使之生效

系统变量(环境变量)永久设置方法

[root@xiaoQ01 ~]# tail -1 /etc/profile
export XIAOQ=linux 
[root@xiaoQ01 ~]# echo $XIAOQ

让配置文件信息生效,需要重新连接主机

[root@xiaoQ01 ~]# echo $XIAOQ
linux

系统别名功能永久设置方法

[root@xiaoQ01 ~]# tail -1 /etc/profile
alias ipinfo='grep "IPADD" /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@xiaoQ01 ~]# ipinfo01
-bash: ipinfo01: command not found

让配置文件信息生效,需要重新连接主机

[root@xiaoQ01 ~]# ipinfo01 
IPADDR=10.0.0.101

方法二:执行系统操作命令使之生效

系统变量(环境变量)永久设置方法

[root@xiaoQ01 ~]# tail -1 /etc/profile
export XIAOQ=linux123 
[root@xiaoQ01 ~]# echo $XIAOQ
linux

让配置文件信息生效,可以执行加载命令

[root@xiaoQ01 ~]# source /etc/profile
[root@xiaoQ01 ~]# . /etc/profile
[root@xiaoQ01 ~]# echo $XIAOQ
linux123

说明:无论是source命令或是. 和文件路径之间都必须有空格

系统别名功能永久设置方法:

…省略…

环境变量与配置文件具体配置分析:

分析-01:全局与局部配置分析

全局配置普通变量

[root@xiaoQ01 ~]# tail -1 /etc/profile
xiaoQ=Linux
[root@xiaoQ01 ~]# echo $xiaoQ
Linux
[xiaoQ@xiaoQ01 ~]$ echo $xiaoQ
Linux

– 系统中所有用户都可以加载指定变量信息

局部配置普通变量

[xiaoQ@xiaoQ01 ~]$ tail -1 ~/.bash_profile 
xiaoQ=Linuxedu
[root@xiaoQ01 ~]# echo $xiaoQ
Linux
[xiaoQ@xiaoQ01 ~]$ tail -1 ~/.bash_profile 
xiaoQ=Linuxedu

— 系统中局部文件设置会让相应用户加载,并且局部配置优先于全局配置

分析-02:配置文件生效加载顺序

在四个个变量与别名有关的文件都写上相应内容

[root@xiaoQ01 ~]# echo info=Linux_profile >> /etc/profile
[root@xiaoQ01 ~]# tail -1 /etc/profile
info=Linux_profile
[root@xiaoQ01 ~]# echo info=Linux_bashrc >> /etc/bashrc
[root@xiaoQ01 ~]# tail -1 /etc/bash
tail: cannot open ‘/etc/bash’ for reading: No such file or directory
[root@xiaoQ01 ~]# tail -1 /etc/bashrc
info=Linux_bashrc
[root@xiaoQ01 ~]# echo info=Linux_home-profile >> ~/.bash_profile 
[root@xiaoQ01 ~]# tail -1 ~/.bash_profile 
info=Linux_home-profile
[root@xiaoQ01 ~]# echo info=Linux_home-bashrc >> ~/.bashrc 
[root@xiaoQ01 ~]# tail -1 ~/.bashrc
info=Linux_home-bashrc

利用加载变量方法,测试文件别加载优先顺序

[root@xiaoQ01 ~]# echo $info 
Linux_home-profile
--- 01 用户家目录中的.bash_profile文件会优先生效
[root@xiaoQ01 ~]# echo $info
Linux_home-bashrc
--- 02 用户家目录中的.bashrc文件会优先生效
[root@xiaoQ01 ~]# echo $info
Linux_bashrc
--- 03 系统etc目录中的bashrc文件会优先生效
[root@xiaoQ01 ~]# echo $info
Linux_profile
--- 04 系统etc目录中的bashrc文件会优先生效

知识扩展:

什么是系统变量和环境变量配置?
在Linux系统中,将命令信息整合在一个文件中,就可以称为脚本文件–自动化操作

系统变量概念说明:

普通变量:系统中满足特定调用需求的配置信息,并且可能随时会发生调整变化的参数。

环境变量:系统中默认已经存在,可以进行修改调整,会对系统功能有一定影响的变量。

环境变量 vs 普通变量特点:

· 变量信息在系统中默认已经存在

· 变量信息名称设置为大写字母

· 变量功能配置对系统中全部用户生效

· 变量的设置会对系统功能有一定影响

举例说明:PATH–对命令执行功能有影响

[root@xiaoQ01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@xiaoQ01 ~]# mv /bin/ls /tmp
[root@xiaoQ01 ~]# ls
-bash: /usr/bin/ls: No such file or directory
[root@xiaoQ01 ~]# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@xiaoQ01 ~]# ls
grep_test.txt  shell-01.sh  test.txt  tr_test.txt  xiaoQ01.txt  xiaoQ02.txt  xiaoQ03.txt

Linux系统执行命令原理

01 会先加载环境变量,获取目录信息

02 在指定目录下检索执行命令文件

03 检查是否存在别名信息 ???

04 运行命令二进制文件,实现功能操作

系统变量配置方法:

设置变量方法:

普通变量

xiaoQ=Linux  -- X=1

变量名 变量值

环境变量

export XIAOQ=Linux

声明 变量名 变量值
调用变量方法:

普通变量

[root@xiaoQ01 ~]# echo $xiaoQ

环境变量

[root@xiaoQ01 ~]# env
XIAOQ=Linux
[root@xiaoQ01 ~]# set
XIAOQ=Linux

说明:普通变量和环境变量配置信息若想永久生效,需要将配置信息写入到以上讲解的变量配置文件中。

什么是系统别名配置?
系统别名概念说明:

系统中的别名就是将比较复杂或参数信息繁琐的命令,进行简化输入的形式,可以有效提高管理人员的操作效率和准确率。一般在企业环境中,使用或配置别名的作用主要有两点:

将危险的命令加一些保护参数等,以防止认为误操作。
将很多复杂的字符串或命令变为一个简单的字符串或命令

系统别名配置方法:

设置别名功能:

临时配置别名功能

[root@xiaoQ01 ~]# grep "IPADD" /etc/sysconfig/network-scripts/ifcfg-eth0 
IPADDR=10.0.0.101
[root@xiaoQ01 ~]# alias ipinfo='grep "IPADD" /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@xiaoQ01 ~]# ipinfo 
IPADDR=10.0.0.101

取消别名功能:

临时取消别名功能

 方法-01:采用绝对路劲执行命令
/bin/cp /mnt/test.txt /tmp/test.txt
 方法-02:利用转义符来执行命令
cp  /mnt/test.txt /tmp/test.txt

彻底取消别名功能

[root@xiaoQ01 ~]# alias 
...省略部分信息...
alias ipinfo='grep "IPADD" /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@xiaoQ01 ~]# unalias ipinfo
[root@xiaoQ01 ~]# ipinfo
-bash: ipinfo: command not found

系统别名默认配置:

在Linux系统环境中,会有一些系统本身已经配置好的默认别名,具体默认别名信息如下所示:

复制命令设置别名:

alias cp='cp -i'
-i  prompt before overwrite
 -- 在覆盖数据信息时会进行提示

移动命令设置别名:

alias mv='mv -i'
-i  prompt before overwrite
 -- 在覆盖数据信息时会进行提示

删除命令设置别名:

alias rm='rm -i'
-i  prompt before every removal
 -- 在删除数据信息时会进行提示

过滤命令设置别名:

alias egrep='egrep --color=auto'
--color use markers to highlight the matching strings
         -- 将匹配的数据信息进行高亮显示
alias fgrep='fgrep --color=auto'
--color use markers to highlight the matching strings
         -- 将匹配的数据信息进行高亮显示
alias grep='grep --color=auto'
--color use markers to highlight the matching strings
         -- 将匹配的数据信息进行高亮显示

查看命令设置别名:

alias l.='ls -d .* --color=auto'
-d          list directories themselves, not their contents
          -- 查看目录本身,而不是指定目录下面的内容
--color  colorize the output
          -- 不同数据类型进行颜色标记
alias ll='ls -l --color=auto'
-l           use a long listing format
          --  使用长列表格式显示文件数据的详细信息
--color  colorize the output
          -- 不同数据类型进行颜色标记
alias ls='ls --color=auto'
--color  colorize the output
          -- 不同数据类型进行颜色标记

系统别名实践练习:

实践练习-01:将删除命令设置为别名,每次删除文件只有提示信息但不会真正删除

实践练习-02:将删除命令设置为别名,使用移动命令将数据移动到回收站替换删除

1.4.7 用户登录终端后显示信息文件

文件路径:

/etc/motd

文件介绍:

此文件配置的是用户登录系统之后显示的内容,相当于登录后的一个提示作用,默认是空的。

文件信息:

[root@xiaoQ01 ~]# cat /etc/motd 
[root@xiaoQ01 ~]# echo "I am Linux teacher, my name xiaoq" >> /etc/motd 
[root@xiaoQ01 ~]# exit
logout
​
Connection closed by foreign host.
Disconnected from remote host(Linux-01) at 00:31:15.
Type `help' to learn how to use Xshell prompt.
[d:~]$ 
Connecting to 10.0.0.101:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
​
Last login: Sat Dec 11 00:21:35 2021 from 10.0.0.1
I am Linux teacher, my name xiaoq

— 显示加载了配置文件中的字符串信息

文件生效:

文件信息配置改动后,需要退出系统登录状态(快捷键ctrl+d表示退出),然后重新登录加载文件配置信息。

1.4.8 声明系统版本号和名称信息文件

文件路径:

/etc/redhat-release

文件介绍:

此文件用于声明Red Hat版本号和名称信息的文件,如果需要查看系统的版本等信息,可以读取这个文件进行查看。

文件信息:

[root@xiaoQ01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

获取系统详细信息情况

[root@xiaoQ01 ~]# uname -a
Linux xiaoQ01.linux 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

在这里插入图片描述

系统重要文件梳理总结:(/etc)

序号 文件 说明
01 /etc/sysconfig/network-scripts/ifcfg-eth0 系统网卡配置文件
02 /etc/resolv.conf 系统DNS客户端配置文件
03 /etc/hosts 系统DNS客户端解析文件
04 /etc/hostname 系统主机名称配置文件
05 /etc/profile /etc/bashrc 配置系统环境变量/别名的文件
~/.bash_profile ~/.bashrc
06 /etc/motd 用户登录终端后显示信息文件
07 /etc/redhat-release 声明系统版本号和名称信息文件

1.5 重要系统目录介绍

1.5.1 用户登录后执行脚本所在目录

目录路径:

/etc/profile.d/

目录介绍:

此目录为加载系统登录程序的目录,也是用户登录后执行的脚本所在地,目录里面的程序以文件的形式存在(一般以 *.sh 为扩展名),并且文件信息可以执行。

此目录前期作用不大,企业架构课程章节中会讲解jumpserver,会需要加载jumpserver程序的脚本文件。

目录信息:

[root@xiaoQ01 ~]# ls /etc/profile.d/
256term.csh colorgrep.csh  colorls.csh  csh.local  lang.sh   less.sh   vim.csh  which2.csh
256term.sh   colorgrep.sh    colorls.sh    lang.csh   less.csh  sh.local  vim.sh   which2.sh

1.5.2 系统软件安装后默认存在目录

目录路径:

/usr/local
或者
/opt
 

目录介绍:

以上两个目录一般是用来存放用户自编译安装软件的目录,对于通过源码包安装的软件,如果没有特别指定安装目录的话,一般会安装在这个目录中,相当于windows系统下的c:Program file

知识扩展

软件程序安装方法

方法一:手动安装方式-rpm (RHCE/CentOS) .rpm window软件包 .exe MacOS .dmg pkg

操作步骤:

下载软件程序包到本地系统中 (xxx.rpm)
需要安装软件可能所需的依赖 想安装A软件–先安装好B软件 C D E F
执行命令进行软件安装与部署

[root@xiaoQ01 ~]# rpm -ivh software-package.rpm

— 直接安装软件包(推荐)

[root@xiaoQ01 ~]# rpm --force -ivh software-package.rpm

— 忽略报错,强制安装(了解)

[root@xiaoQ01 ~]# rpm --replacepkgs -ivh software-package.rpm

— 覆盖替换安装
以上命令常用参数:

序号 参数 解释说明
01 -i 表示安装软件程序包
02 -v 更详细的显示软件安装过程
03 -h 安装数据包过程中打印显示hash标记信息
04 --force 表示进行强制安装程序(强制覆盖原有程序和原有程序配置文件)
05 --replacepkgs 如果软件包已经存在会进行重新安装(不会覆盖替换软件配置信息)

特点说明:

安装软件过程需要解决软件依赖关系 (缺点)
可以无需网络连接进行本地软件安装 (优点)
软件安装过程无需配置额外配置参数

方法二:自动安装方式-yum(推荐)

操作步骤:

查看可以下载的软件包信息

[root@xiaoQ01 ~]# yum info
[root@xiaoQ01 ~]# yum list

– 显示详细的软件包或软件包组信息

查看指定的软件包信息(软件包中的数据信息)

[root@xiaoQ01 ~]# yum search 软件名称
[root@xiaoQ01 ~]# yum provides 软件名称

进行软件安装部署过程

[root@xiaoQ01 ~]# yum install -y 软件包/软件包组
— 采用免交互方式进行软件安装
[root@xiaoQ01 ~]# yum reinstall -y 软件包/软件包组
— 覆盖重复安装指定软件程序

特点说明:

安装软件过程无需解决软件依赖关系 (优势)
必须需要网络连接进行本地软件安装 (架构阶段–本地yum源部署过程???)
软件安装过程无需配置额外配置参数

方法三:编译安装方式

操作步骤:

需要进行单独下载软件程序
需要进行解决软件依赖问题
需要进行软件安装配置过程 路径配置 功能配置 组件配置
需要进行软件安装编译过程 编译过程 == 翻译过程 软件程序代码进行翻译
需要完成最终软件安装过程
说明:在架构知识阶段和数据库阶段都会实战讲解软件编译安装过程,基础阶段了解知道即可。

特点说明:

安装软件过程需要解决软件依赖关系
可以无需网络连接进行本地软件安装
软件安装过程需要配置额外配置参数(可以实现定制化安装)

方法四:二进制包安装 == windows(绿色软件)

操作步骤:

需要进行单独下载软件程序 (压缩包)
需要进行解决软件依赖问题
完成软件数据压缩包的解压

特点说明:

安装软件过程需要解决软件依赖关系
可以无需网络连接进行本地软件安装(安装速率更快)
软件安装过程无需配置额外配置参数

软件程序查看方法

操作步骤:

[root@xiaoQ01 xiaoQ]# rpm -qa httpd
-- 查看指定软件程序是否已经成功安装
httpd-2.4.6-97.el7.centos.2.x86_64
​
[root@xiaoQ01 xiaoQ]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README

– 查看指定软件安装的所有数据信息

[root@xiaoQ01 xiaoQ]# rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
-- 查看指定软件程序安装后产生的配置文件
​
[root@xiaoQ01 xiaoQ]# which httpd
/usr/sbin/httpd
[root@xiaoQ01 xiaoQ]# rpm -qf /usr/sbin/httpd
httpd-2.4.6-97.el7.centos.2.x86_64
[root@xiaoQ01 xiaoQ]# rpm -qf `which httpd`
httpd-2.4.6-97.el7.centos.2.x86_64
-- 查看指定操作命令或文件数据属于哪个程序包

说明:利用rpm命令只能查看确认rpm方式和yum方式安装软件程序

软件程序卸载方法:

利用yum命令实现软件卸载

[root@xiaoQ01 xiaoQ]# yum erase  httpd
[root@xiaoQ01 xiaoQ]# yum remove httpd

– 某些存在依赖的关系的软件进行卸载会出现异常

利用rpm命令实现软件卸载

[root@xiaoQ01 xiaoQ]# rpm -e --nodeps httpd

– 可以忽略软件依赖关系进行卸载

1.5.3 系统与服务日志文件存放目录

目录路径:

/var/log/

目录介绍:

此目录中包含了大量记录系统及软件服务运行的日志文件,通过这些日志文件,可以知道系统的运行情况及故障原因。

目录信息:

/var/log/messages:

此文件时系统的默认日志文件,这个文件非常重要,当系统及软件运到运行故障时,可以查看这个日志文件以及获取故障信息。

网络服务程序重新启动显示的部分日志信息

[root@xiaoQ01 xiaoQ]# tail -f /var/log/messages
Dec 13 01:24:44 xiaoQ01 nm-dispatcher: req:3 'up' [eth0]: new request (3 scripts)
Dec 13 01:24:44 xiaoQ01 network: [  OK  ]
Dec 13 01:24:44 xiaoQ01 nm-dispatcher: req:3 'up' [eth0]: start running ordered scripts...
Dec 13 01:24:44 xiaoQ01 nm-dispatcher: req:4 'connectivity-change': new request (3 scripts)
Dec 13 01:24:44 xiaoQ01 chronyd[806]: Source 5.79.108.34 online
Dec 13 01:24:44 xiaoQ01 chronyd[806]: Source 202.118.1.130 online
Dec 13 01:24:44 xiaoQ01 chronyd[806]: Source 84.16.73.33 online
Dec 13 01:24:44 xiaoQ01 chronyd[806]: Source 116.203.151.74 online
Dec 13 01:24:44 xiaoQ01 nm-dispatcher: req:4 'connectivity-change': start running ordered scripts...
Dec 13 01:24:44 xiaoQ01 systemd: Started LSB: Bring up/down networking.
/var/log/secure:

这是个有关系统安全的日志文件,日志中会记录"谁,在什么时候,从哪登录到系统,登录是否成功"等信息。

ssh telnet ftp等服务的用户登录信息都会记录在此文件中:

[root@xiaoQ01 xiaoQ]# tail -f /var/log/secure

用户登录系统信息

Dec 13 xx  xiaoQ01 sshd[80213]: Accepted password for root from 10.0.0.1 port 59132 ssh2
Dec 13 xx  xiaoQ01 sshd[80213]: pam_unix(sshd:session): session opened for user root by (uid=0)

用户退出系统信息

Dec 13 xx  xiaoQ01 sshd[70569]: pam_unix(sshd:session): session closed for user root

说明:在某些时候,进行网络安全问题排查时,可以借助此文件进行网络安全渗透入侵检测

/var/log/dmesg:

当硬件及系统内核出现问题时,可以查看这个日志文件,在解决某些特定问题时会用到。

此文件中信息,也可通过dmesg命令进行显示

[root@xiaoQ01 xiaoQ]# tail -f /var/log/dmesg
[    9.748402] cryptd: max_cpu_qlen set to 1000
[    9.962683] AVX2 version of gcm_enc/dec engaged.
[    9.962685] AES CTR mode by8 optimization enabled
[    9.967656] ppdev: user-space parallel port driver
[   10.048170] alg: No test for __gcm-aes-aesni (__driver-gcm-aes-aesni)
[   10.071536] alg: No test for __generic-gcm-aes-aesni (__driver-generic-gcm-aes-aesni)
[   10.260632] XFS (sda1): Ending clean mount
[   11.574621] floppy0: no floppy controllers found
[   11.574657] work still pending
[   11.824703] type=1305 audit(1639330552.463:4): audit_pid=859 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1

1.5.4 系统硬件信息加载与存放目录

目录路径:

/proc

目录介绍:

此目录是Linux系统下的一个重要的虚拟文件系统,记录着内核和进程方方面面的信息,是一个很重要的信息宝库。

目录信息:

/proc/cpuinfo 信息查看

当前CPU信息文件(等价于lscpu)

[

root@xiaoQ01 ~]# cat /proc/cpuinfo 
processor     : 0
-- 用于确认总的CPU核心数
model name  : Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
cpu MHz          : 2494.290
cache size      : 3072 KB
physical id      : 0
-- 用于确定服务器的CPU颗数
cpu cores      : 1
-- 用于确定服务器的CPU核数(每一颗CPU)
... 省略部分信息 ...

利用命令查看cpu信息

[root@xiaoQ01 ~]# lscpu
Architecture:           x86_64
CPU op-mode(s):     32-bit, 64-bit
CPU(s):                      1
-- 用于确定服务器的CPU核数
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):                  1
-- 用于确定服务器的CPU颗数
Model name:              Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz

/proc/meminfo 信息查看

当前内存信息文件 (等价于free)

[root@xiaoQ01 ~]# cat /proc/meminfo 
MemTotal:           995684 kB
-- 系统总的内存容量(重点关注)
MemFree:            715136 kB
-- 系统内存的空闲容量
MemAvailable:      695948 kB
-- 系统内存的可用容量(重点关注)
Buffers:                2076 kB
-- 系统的缓冲区容量
Cached:                90184 kB
-- 系统的缓存区容量
SwapCached:        0 kB
Active:                   91272 kB
Inactive:                69104 kB
... 省略部分信息 ...

利用命令查看内存信息

[root@xiaoQ01 ~]# free 
              total          used         free           shared   buff/cache   available
Mem:    995712      173132      708528        7824      114052         690256
Swap:   1572860        0            1572860

/proc/loadavg 信息查看
系统运行时的负载情况,可以理解为CPU同时处理运行的进程数量。

当前系统的平均负载情况 (等价于uptime)

[root@xiaoQ01 ~]# cat /proc/loadavg 
0.00 0.01 0.05 2/114 1680

– 前三个数字大家都知道,是1、5、15分钟内的平均进程数
– 一个的分子是正在运行的进程数,分母是进程总数;另一个是最近运行的进程ID号

利用命令查看负载信息

[root@xiaoQ01 proc]# uptime 
 16:23:11 up 38 min,  1 user,  load average: 0.00, 0.01, 0.05

说明:负载情况数值参考 平均负载值 <= 服务器CPU颗数 * 每个CPU核心数 == 服务器总的核心数

如有侵权,请联系删除!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>