[#####成功在于你坚持了别人坚持不了的东西####]
1.1 系统目录结构介绍
1.1.1 系统目录结构对比介绍
windows目录形式:
c:\windows\system
路径分隔符是"\",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
知识扩展:如何修改网卡名称
信息?
方法一:系统安装过程中修改
加载系统镜像文件,显示系统安装界面信息:
在启动配置信息中添加如下信息:
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客户端。
文件信息:
[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
系统别名功能永久设置方法:
…省略…
环境变量与配置文件具体配置分析:
分析-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
-- 查看指定操作命令或文件数据属于哪个程序包
软件程序卸载方法:
利用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