语录1:在修改系统配置文件,一般都是永久修改。在命令行下修改的配置一般都是临时修改
linux目录结构
linux系统的目录结构和Windows的目录结构不同的地方。在Windows有C盘、E盘,而linux系统从根目录 / 下开始创建文件系统,在linux看来一切皆文件(u盘、鼠标、键盘)
-
/bin
/bin目录存放我们常用的命令(ls、cd、pwd)
-
/boot
/boot目录存放启动linux系统核心文件,包括一些链接文件、镜像文件
-
/dev
/dev目录存放linux的外部设备文件,linux中一切看做文件,访问设备和访问文件操作一样
-
/etc
/etc目录linux系统管理需要的配置文件信息(网卡、主机名、hosts)
-
/home
/home目录是普通用户的家目录,在linux系统每一个用户都有自己的目录,在其目录下权限最大
-
/root
/root目录是系统管理员的家目录,其他用户没有权限访问此目录
-
/lib
/lib目录存放系统基本的动态连接共享库文件
-
/media
/media目录存放系统自动识别外部设备,如键盘,鼠标,挂载在此目录下
-
/mnt
/mnt目录是为了用户临时挂载设备的文件系统,如光盘镜像挂载
-
/opt
/opt目录是给用户额外提供安装软件的地方
-
/porc
/porc目录是一个虚拟目录,存放系统内存、cup的信息
-
/tmp
/tmp目录相当于Windows的垃圾箱,存放临时文件
-
/usr
/usr重要的目录,用户的很多应用程序和文件都放在这个目录下
-
/usr/bin
系统用户使用的应用程序。
-
/sbin
/sbin 存放的是系统管理员使用的系统管理程序。
-
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序的命令
-
/var
/var目录存放系统日志文件信息,(登录信息,执行命令情况)
系统运行级别
liuxn 系统是支持单用户模式和多用户模式,liunx用户模式是由当前的系统运行级别决定的
# centos 6
运行级别 0:init 0 关机级别,输入命令立即关机,与远程设备断链
运行级别 1:init 1 单用户模式,维修模式,仅root登录。用于root重置密码
运行级别 2:init 2 多用户没有NFS网络支持
运行级别 3:init 3 正常系统默认模式
运行级别 4:init 4 系统预留的运行级别
运行级别 5:init 5 桌面模式
运行级别 6:init 6 系统重启模式
# centos 7 系统的运行目标 target
[root @matter ~ ]# ls -l /usr/lib/systemd/system/runlevel*target
/usr/lib/systemd/system/runlevel0.target -> poweroff.target
/usr/lib/systemd/system/runlevel1.target -> rescue.target
/usr/lib/systemd/system/runlevel2.target -> multi-user.target
/usr/lib/systemd/system/runlevel3.target -> multi-user.target
/usr/lib/systemd/system/runlevel4.target -> multi-user.target
/usr/lib/systemd/system/runlevel5.target -> graphical.target
/usr/lib/systemd/system/runlevel6.target -> reboot.target
查看系统运行级别
# 通用查看系统当前级别
runlevel
# centos 6 查看系统运行级别
cat /etc/inittab 最后一行表明运行系别
# centos 7 查看系统运行级别
systemctl get-default
cat /usr/lib/systemd/system/runlevel*target
临时切换级别
init 0 关机
init 6 重启
永久修改系统运行级别
# centos 6
vim /etc/inittab
id:3:initdefault: # 只修改最后一行信息
# centos 7 重启生效
[root @matter ~ ]# systemctl set-default rescue.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/rescue.
target
# 检查状态
[root @matter ~ ]# systemctl get-default
rescue.target
网卡配置文件
网卡配置文件:/etc/sysconfig/network-scripts-ifcfg-eno16777736
内容详细:
TYPE=Ethernet 指定网络类型 —— 以太网 Ethernet
BOOTPROTO=none 连接网络启用的协议(让虚拟机获得ip地址)
a.自动获取 —— dhcp 容易IP地址冲突
b.静态获取 —— stastc 或 none
NAME=eno16777736 虚拟机网卡的逻辑名称
DEVICE=eno16777736 设备虚拟网卡的物理名称
UUID 唯一标识 系统为每一个硬件设备分配唯一标识(克隆虚拟机删除)
ONBOOT=yes 设置网卡是否正常开启状态 ——激活状态
IPADDR=192.168.0.110 IPADDR 虚拟机静态配置的IP地址
PREFIX=24 PREFIX 定义局域网可以有多少台主机 —— 房间可以容纳多少人
GATEWAY=192.168.0.1 网关 ——一个网络到另一个网络的必经之路
DNS1=211.138.30.66 一个主机可以有多个DNS ——建立主机ip和主机名称对应关系
如何网卡配置文件生效?
方法一:
systemctl restat network # 重启网络服务
systemctl stop network # 关闭网络服务
systemctl status network # 检查网络激活状态
# active 表示正在使用状态
[root @xuan ~ ]# systemctl status network
Active: active (exited) since Thu 2020-04-23 08:28:40 CST; 28min ago
# inactive 表示关不状态
[root @xuan ~ ]# systemctl status network
Active: inactive (dead) since Thu 2020-04-23 09:15:35 CST; 1s ago
注意:systemctl stop network 关闭网络时,远程工具xshell断连,只能在虚拟主机上重新启动
方法二:
解决关闭网络network时,需要到机房重新启动网络
符号 ——&& 表示执行前一个命令成功后,在执行后一个命令
符号 ——英文下分号 ; 表示执行前一个命令成功后,在执行后一个命令
[root @xuan ~ ]# ifdown eno16777736 && ifup eno16777736
或
[root @xuan ~ ]# ifdown eno16777736 ; ifup eno16777736
提示 Device 'eno16777736' successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager /ActiveConnection/10)
常见问题:网卡文件配置正确,无法重新启动网络
systemctl stop NetworkManager 关闭网络管理服务
DNS解析文件配置(了解)
修改 /etc/resolv.conf
—— 不用重启加载文件,立即生效
注意 :/etc/resolv.conf
修改 nameserver 内容临时修改使用,以网卡中DNS为主
[root @xuan ~ ]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 211.138.30.66
/etc/hostname
查看主机名
第一种: cat /etc/hostname
第二种: hostnamectl ——推荐:可以查是否临时修改,查看系统详细信息
[root @xuan ~ ]# hostnamectl
Static hostname: xuan # 真正的主机名
Transient hostname: matter # 临时修改
Icon name: computer-vm
Chassis: vm
Machine ID: 06013b0145994df4b4e54888ccdf7333
Boot ID: 8485a4ef6c4e4bb58b2f441553831b03
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
第三种: hostname
第四种: uname -n
临时修改
[root @xuan ~ ]# hostname matter centos6 / 7 方法相同
永久修改
/etc/sysconfig/nework # centos 6
# centos 7 修改配置文件
/etc/hostname 重新连接主机配置生效
# centos 7 直接永久修改主机名
hostnamectl set-hostname matter
/etc/hosts
解析映射:把主机的ip和主机名进行关联,访问主机名相当于访问主机ip
这种映射只是本地机的映射,也就是说每台机器都是独立的,只有在hosts文件中进行了配置才能使用主机名来访问。
Windows解析文件:C:WindowsSystem32driversetchosts
linux解析文件:/etc/hosts
修改方式:ip 主机名 别名
[root @matter ~ ]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.110 xuan
192.168.0.111 text
/etc/fstab
查看挂载设备信息 df
/etc/fstab
实现了磁盘开机自动挂载文件
[root @matter ~ ]# cat /etc/fstab
/dev/mapper/centos_xuan-root / xfs defaults 0 0
UUID=4d4d4e61-9519-446c-8804-7b2d451808c5 /boot xfs defaults 0 0
/dev/mapper/centos_xuan-swap swap swap defaults 0 0
/etc/fstab
如何编写配置文件
第一列 挂载设备
第二列 挂载点
第三列 挂载文件系统名称—— xfs swap
第四列 挂载参数,这个参数和mount命令的挂载参数一致。
第五列 指定分区是否被dump备份,0代表不备份,1代表每天备份,2代表不定期备份。
第六列 指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,1的优先级比2高。所以
先检测1的分区,再检测2的分区。一般根分区的优先级是1,其他分区的优先级是2。
/etc/rc.d/rc.local
/etc/rc.local -> rc.d/rc.local
作用:文件中的命令开机时会自动执行 ,如mkdir oldboy
注意:文件编写一定是正确,可以执行的命令
第一步: vim /etc/rc.locval 或 vim /etc/rc.d/rc.local
第二步: 编辑
第三步: 首次编辑 /etc/rc.local 需要给/etc/rc.local的源文件 /etc/rc.d/rc.local 加可执行权限
chmod +x /etc/rc.d/rc.local
第四步: 关机重启执行文件中的命令
/etc/profile
- 如何设置变量?
[root @matter ~ ]# x=123 设置一个临时变量
[root @matter ~ ]# echo $x 如何查看变量 —— echo $+变量名
123
# 这些变量是系统临时变量使用,重启不存在
永久变量生效
# 设置变量
vim /etc/profile
x=123 # 尽量在profile末行设置
# 重新加载profile文件
1. 虚拟机重启开机加载 init 6
2. 使用命令重新在内存中加载 source /etc/profile
系统中变量的类型:
普通变量:需要人为设置
环境变量:系统默认就有的变量
环境变量 ——PATH
PATH作用:简化使用命令,不需使用命令绝对路径使用 —— 在PATH对应目录下存在很多直接使用的命令
[root @matter ~ ]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root @matter ~ ]# which cat
/usr/bin/cat
[root @matter ~ ]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root @matter ~ ]# mv /usr/bin/cat cat
[root @matter ~ ]# ls
cat
[root @matter ~ ]# cat /etc/passwd
-bash: /usr/bin/cat: No such file or directory
[root @matter ~ ]# /root/cat /etc/passwd
# 临时修改环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/
# 永久修改
vim /etc/profile
#修改内容 使用 export 表示环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/
# 加载文件
source /etc/profile
系统命令别名
查看系统默认命令的别名
[root @matter ~ ]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias sls='sl'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
设置别名(临时)
alias 别名='命令' # 关键字 alias ,重连失效
# 取消别名(临时)
1. unalias 别名
2. 命令前加 `\` 暂时取消别名 —— `
m -i`
永久设置别名
# 第一个历程:修改profile文件
vim /etc/profile
# 第二个历程 —— 编写
alias oldboy='mkdir oldboy'
# 第三个加载文件
source /etc/profile
设置别名相关文件
国法:/ec/profile = /etc/bashrc
别名加载后,全局生效
家规:.bashrc = .bash_profile
存在于用户的家目录隐藏文件中,对用户别名优先国法文件
[root @matter ~ ]# cat .bash_profile
PATH=$PATH:$HOME/bin
export PATH
[root @matter ~ ]# cat .bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
总结作用:
- 使用命令方便
- 避免使用危险的命令 ——
alias rm='echo 123'
/etc/isssue /etc/motd
登录前提示信息文件:/etc/issue = /etc/issue.net
登录后提示信息文件:/etc/motd
作用:在登录前后对登录人员提示信息
/var/log
查看 /var/log
目录下俩个中重要的日志文件
meesges 记录着系统和服务进行的状态信息,错误信息
securce 记录着用户登录信息
[root @matter ~ ]# cat /var/log/secure
Apr 23 16:52:59 matter sshd[2255]: Accepted password for root from 192.168.0.104 port 52251 ssh2
Apr 23 16:52:59 matter sshd[2255]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 23 16:54:00 matter sshd[2255]: pam_unix(sshd:session): session closed for user root
01 02 03 04
01. 用户是什么时间登录的
02. 登录的主机名称
03. 使用什么方式进行远程登录
04. 登录情况说明
a 正确登录情况说明 —— Accepted
b 错误登录情况说明
c 退出登录情况说明 —— session closed for user root
/proc
-
CPU 信息
/proc/cpinfo
文件查看:[root @matter ~ ]# cat /proc/cpuinfo # 关注信息 physical id : 0 —— 表示第几个cup(颗数) processor : 0 —— 表示该cup的核数 model name : Intel —— 表示CPU的品牌 cpu cores : 2 —— 表示该CPU的核心数 processor : 1 model name : Intel physical id : 0 cpu cores : 2 processor : 2 model name : Intel physical id : 1 cpu cores : 2 processor : 3 model name : Intel(R) physical id : 1 cpu cores : 2 # 怎么计算该虚拟机有几颗cup,多少核数,多少核心数 physical id : 0 第一颗cpu processor : 1 cpu cores : 2 physical id : 0 第一颗cpu processor : 2 cpu cores : 2 # 第一颗的CPU一共有2核4核心 physical id : 1 第二颗cpu processor : 3 cpu cores : 2 physical id : 1 第二颗cpu processor : 4 cpu cores : 2 # 第二颗的CPU一共有2核4核心 # 加: 整个虚拟机2颗CPU、4核、8核心
命令查看 —— lscpu
[root @matter ~ ]# lscpu # lscpu命令 —— 调用 /proc/cpuinfo 文件信息 Architecture: x86_64 —— CPU架构 Socket(s): 2 —— CPU卡槽(颗数) Core(s) per socket: 2 —— CPU的每颗的核数 CPU(s): 4 —— CPU一共的核心数
关注CPU负载
作用说明:与CPU的核数有关,查看当前CPU运算任务的大小
# 利用文件查看情况 [root @matter ~ ]# cat /proc/loadavg 0.04 0.03 0.05 .... 负载值CPU核数有关 1分钟平均 5分钟平均负载 15分钟平均负载 eg: 服务器4核的服务器 -- 负载值3左右,就要关注 服务器128核的服务器 -- 负载值100(数据库服务器) # 利用命令查看情况 # 方式一: 静态查看 [root @matter ~ ]# w 17:10:16 up 27 min, 1 user, load average: 0.00, 0.01, 0.05 登录时间 登录用户个数 CPU负载 # 方式二: 动态查看 [root @matter ~ ]# top %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
-
查看内存使用情况 memory
文件查看
[root @matter ~ ]# cat /proc/meminfo MemTotal: 1001360 kB # 内存总大小 MemFree: 760964 kB # 内存的空闲容量 MemAvailable: 752500 kB # 内存可用容量 Buffers: 948 kB # 内存的buffer空间大小 Cached: 84248 kB # 内存的cache空间大小 SwapCached: 0 kB # 交换分区使用情况
命令查看使用内存 —— free
free -h 以习惯的单位显示
# 信息说明 [root @matter ~ ]# free -h total # 表示内存的总大小 used # 表示内存的使用情况(应用程序,进程服务) free # 表示当前未使用的内存大小 shared # 表示共享库使用的内存大小 buff/cache # 表示内存的缓存区和缓冲区的可以使用大小 available # 表示当前可以申请使用的内存 # 内存的计算公式 计算总内存: total = used+ free + buff (used包含shared使用) 计算当前使用的内存:used+buff 计算系统可以使用的内存: avalible = free + buff (最好情况) · avalible < free + buff (有些空间未及时的释放)
-
磁盘信息
# 查看文件
cat /proc/mount # 详细信息
cat /etc/fstab
# 命令查看
df -hT