Linux
1 Linux常见操作命令
查询帮助命令:man help
man 命令名称 --- 获取详细帮助信息
help 命令名称 --- 获取详细帮助信息
文件和目录相关命令
ls --- 列表查看目录或文件是否存在
-l --- 表示查看数据详细信息
-d --- 表示查看目录详细信息
-a --- 表示查看隐藏文件信息(linux系统中文件名称有点的文件属于隐藏数据)
cd --- 切换目录结构命令
cd ../ --- 切换到上一级目录
cd - --- 在两个目录之前来回切换
cd ~ --- 快速返回到家目录
mkdir --- make directory 创建目录
-p --- 可以创建多级目录 /etc/demo/demo01/demo02/demo03/
touch --- 创建文件信息 创建空文件
pwd --- 显示当前所处路径信息
cp --- 复制数据信息命令
语法:cp 需要复制数据 复制到路径信息
-a --- 表示可以复制文件也可以复制目录
mv --- 移动数据信息命令
语法:mv 需要移动数据 移动到路径信息
rm --- 清除数据资源
-r --- 实现递归删除数据信息,主要用于删除目录
-f --- 强制删除数据信息
2 系统目录结构
2.1 目录层级
Linux系统目录从根目录开始。
切换目录
- 绝对路径,从根开始切换目录。
cd /etc/dem01/demo02/
- 相对路径,从当前路径开始切换目录。
cd ../demo03/
2.2 挂载
2.2.1 介绍
挂载可以理解为在系统中为用户将数据存储到磁盘中打开了一扇门,即为用户访问磁盘提供了一个接口。挂载可用于磁盘扩展和使用存储设备。
2.2.2 添加新磁盘
添加一块新磁盘时,
- Windows
分区操作 — 格式化操作(相当于创建文件系统) — 系统自动识别盘符信息 - Linux
分区操作 — 格式化操作(相当于创建文件系统) — 需要进行挂载操作
2.2.3 Linux中添加新磁盘的具体操作
- 虚拟环境添加硬盘信息
VMware中指定虚拟主机 – 设置 — 添加硬件,选择硬盘 - 启动虚拟主机,进行磁盘分区,得到磁盘分区sdb1
ll /dev/sd --- 找到新添加的磁盘
ll /dev/sdb --- 新添加的磁盘
fdisk /dev/sdb --- 对新磁盘进行分区
- 对磁盘分区进行格式化操作
mkfs.xfs /dev/sdb1 --- mkfs全称为make file system,即创建文件系统
- 进行挂载
mkdir /new_disk1 --- 创建空目录
mount /dev/sdb1/ /new_disk1/ --- 将空目录设置为新磁盘分区的挂载点
- 补充:卸载操作
卸载操作不能在挂载目录中执行。
umount /new_disk1/
2.3 目录结构规划
bin -> usr/bin --- 此目录用于存储二进制命令文件,对应的是普通用户可以执行的命令
sbin -> usr/sbin --- 此目录用于存储二进制命令文件,对应的是管理员用户可以执行的命令
boot --- 用于存储系统启动所需的数据信息
dev --- 设备文件存储目录
etc --- 用于存储服务配置文件
home --- 普通用户的家目录,可以让普通用户具有权限进行特定操作
root --- 管理员用户的家目录
lib -> usr/lib --- 存储库文件目录
lib64 -> usr/lib64 --- 存储库文件目录(64位)
mnt --- 临时挂载目录,可作为临时挂载点
opt --- 存储第三方软件程序
usr --- 存储第三方软件程序
proc --- 用于存储系统硬件状态信息,网络通讯状态信息以及系统内核信息
tmp --- 临时文件的存储目录,可用作回收站
var --- 主要用于存储日志文件
参考:https://www.pathname.com/fhs/
3 系统重要目录文件
3.1 服务相关配置文件 /etc
① 网络地址配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
② 网络DNS服务配置文件 /etc/resolv.conf
nameserver 223.5.5.5
nameserver 223.6.6.6
③ 网络地址映射解析文件 /etc/hosts
④ 系统服务启动文件 /etc/rc.local
⑤ 系统环境变量/别名配置文件 /etc/profile /etc/bashrc
⑥ 系统运行级别文件 /etc/inittab
3.2 环境变量与别名
/etc/profile /etc/bashrc
3.2.1 环境变量
环境变量
环境变量属于系统默认的设置,是系统中具有特殊作用的变量。
环境变量一般由大写字符组成,并且全局有效。
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo $HOME
/root
3.2.2 别名
别名用于对复杂命令进行简化。
alias cateth0='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
alias --- 查看系统中存储的别名
3.3 系统运行级别文件 /etc/inittab
0 系统关机级别
1 系统单用户级别 相当于Windows中的安全模式,可用于破解系统密码
2 系统多用户级别 没有网络服务
3 系统多用户级别 提供网络服务
4 系统预留级别
5 图形化级别
6 系统重启级别
cat /etc/inittab
systemctl get-default --- 查看当前默认系统运行级别
systemctl set-default TARGET.target --- 设置成指定级别
init 3 --- 设置系统运行级别
runlevel --- 查看系统运行级别
3.2 日志文件目录 /var
/var/log/messages --- 用于记录系统运行状态或部分服务运行状态,一般用于排错
/var/log/secure --- 记录登录系统的用户信息
3.3 系统环境信息文件目录 /proc
查看系统CPU信息 cat /proc/cpuinfo
查看系统内存信息 cat /proc/meminfo
查看系统负载信息 cat /proc/loadavg 负载数值大于服务器总核心数,表示负载过高
查看系统版本信息 cat /etc/redhat-release
查看系统内核信息 uname -a
3.4 安装软件
- 利用yum安装软件
yum install -y 软件名
yum reinstall -y 软件名
特点:可以解决软件依赖关系。
- 利用rpm部署软件
Linux系统中软件包的后缀为.rpm
rpm -ivh 软件包名称
-i: 安装软件 -v: 显示安装过程 -h: 显示的信息尽量人类可读
特点:可能需要自己解决软件依赖关系。
rpm -qa 软件包名 --- 确认软件是否安装成功
rpm -ql 软件包名 --- 查看软件的部署信息
rpm -e 软件包名 --- 卸载软件 --nodeps 忽略软件的依赖关系
- 编译安装软件程序
软件源码包 — 配置 — 编译 — 安装
特点:可以更灵活地对软件进行安装配置。 - 二进制包安装方式
下载二进制压缩包 — 解压 — 简单文件配置 — 启动程序
3.5 文件下载和上传过程
需要安装lrzsz软件包
linux系统从windows系统中获取文件
下载过程:windows系统环境 => linux系统环境
操作命令:rz -y
linux系统向windows系统中发送文件
上传过程:linux系统环境 => windows系统环境
操作命令:sz -y 待上传的文件
4 文件属性
ll /etc/virc
-rw-r--r--. 1 root root 1204 Nov 12 2019 /etc/virc
ll -h /etc/virc
-rw-r--r--. 1 root root 1.2K Nov 12 2019 /etc/virc
属性1 -
属性2 rw-r--r--.
属性3 1
属性4 root
属性5 root
属性6 1204 (表示文件大小,单位是字节)
属性7 Nov 12 2019
属性8 /etc/virc (文件名)
4.1 文件类型
- 普通文件,包括文本文件、脚本文件、代码文件、日志文件、压缩数据文件等
d 目录文件
l 链接文件
4.1.1 查找文件
指定文件类型作为查找条件,普通文件类型表示为-type f
。
find /etc/ -type f -name "*environ*" --- 根据文件名进行模糊查找
/etc/environment
find /etc/ -type f -mtime +7 --- 查找7天以前的文件
find /etc/ -type f -mtime -7 --- 查找最近7天的文件
find /etc/ -type f -mmin +7 --- 查找7分钟以前的文件
df -h --- 查看磁盘空间使用情况
find /etc/ -type f -size +/-100M --- 查找大于/小于100MB的文件
4.1.2 过滤数据
grep "demotext" /tmp/demofile.txt --- 根据字符信息筛选指定文本
grep -i "demotext" /tmp/demofile.txt --- 根据字符信息筛选指定文本,忽略大小写
grep -i "13:.*error" /tmp/demofile.txt --- 根据正则进行匹配,找出13点产生的错误信息
grep -Ei "01|02|03" /tmp/demofile.txt --- 根据多个条件进行筛选,条件之间是“或”的关系
grep -A 5 "02" /tmp/demofile.txt --- 筛选出指定信息以及指定信息所在行的后5行内容
grep -B 5 "02" /tmp/demofile.txt --- 筛选出指定信息以及指定信息所在行的前5行内容
4.1.3 压缩数据
tar zcvf /code/oldboyweb.tar.gz /html/code/ --- 压缩数据
tar tf /code/oldboyweb.tar.gz --- 查看压缩包信息
tar xf /code/oldboyweb.tar.gz --- 解压数据
4.2 系统基础权限
r --- 可以查看内容 4
w --- 可以编辑内容 2
x --- 可以执行文件 1
- --- 没有此权限 0
rw-(属主) r--(属组) r--(其他用户) => 644
6 4 4
4.3 系统链接概念
4.3.1 硬链接文件
硬链接文件相当于文件的访问入口, 对同一个文件设置多个硬链接文件,可以对文件起到保护作用。
例如,为oldboy01.txt添加硬链接文件oldboy01_temp.txt,即添加了一个新的文件入口,此时如果删除其中一个入口,仍能通过另一个入口访问这个文件。
catch oldboy01.txt
ln oldboy01.txt oldboy01-temp.txt
特点:
- 创建硬链接文件,当源文件被删除,不会有任何影响,仍能通过硬链接文件访问源文件;
- 无法为目录创建硬链接。
4.3.2 软链接文件
类似于快捷方式。
ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /ifcfg-eth0
catch ifcfg-eth0
特点:
- 创建软链接文件,当源文件被删除,软链接文件会失效;
- 可以为目录创建软链接文件。
4.4 系统属主属组
- 系统属主
文件数据创造者或管理者,对文件数据拥有绝对权限。 - 系统属组
为了协同工作而对用户进行分组。
oldboy.conf -- sa-rw ZhangSan LiSi WangWu
4.5 系统时间信息
atime:访问时间,记录文件在什么时间被访问
mtime:修改时间,记录文件在什么时间被修改(ll命令的结果中显示的时间)
ctime:改变时间,记录文件属性在什么时间修改
查看文件的所有时间信息
ll /etc/hosts
-rw-r--r--. 1 root root 158 Sep 10 2018 /etc/hosts
stat /etc/hosts
File: /etc/hosts
Size: 158 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16786841 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:net_conf_t:s0
Access: 2020-08-13 18:39:10.603060061 +0800
Modify: 2018-09-10 19:51:03.000000000 +0800
Change: 2020-08-12 17:59:18.360928511 +0800
data --- 查看和修改(-s)时间
cal --- 查看日历信息