关于 Linux 操作的一些事情

昂。写这章的目的其实不在于自己看,更多是为了再有人问我什么东西怎么操作时我可以直接甩链接(((

另,本文没什么专业性,多是用大白话描述某个命令最简单的用途,以及达到某个目的可以采用最直接的方法。这不过是一个化学人为了自己的一厢情愿,所能付出的一切罢了。但如有什么重大错误还请指正w

本人使用的平台:CentOS 7.6。其实现在更建议使用 RockyLinux,但至少 RockyLinux 9 不是很喜欢我的电脑,各种卡。二者基本操作区别不大,自己看着装吧。CentOS 历史发行版均可在官网下载 DVD 镜像。

Ubuntu 别来问我 Ubuntu 别来问我 Ubuntu 别来问我 Ubuntu 别来问我 Ubuntu 别来问我

大部分是用虚拟机运行的,大概还要加入一部分 VMware 的操作。听说 Multipass 也挺好的,有时间去折腾折腾。

其实随便搁哪好好研究两天就会比我的水平高得多,这些完全是给我这样的没啥专业研究需求的小白写的。

就这样吧。。接下来是正文

Linux

常识

别问为什么写,问就是真有人不知道,我靠。。。

Terminal 操作

tab 自动补全文件名或目录名称;
俩 tab 输出当前目录中可能的名称。
> 重定向,比如把终端输出内容输出到某文件。
| 管道,将 | 前命令输出作为 | 后命令的输入处理。

目录

根目录 / ;
当前目录 . ;上级目录 .. ;
相对路径绝对路径自己整明白。

通配符

通配符 作用
* 代表任意数量的任意字符
代表任意一个字符
[12345] 代表 1/2/3/4/5 中的任意一个
[m-s] 代表 m~s 中的任意一个

常用命令

command –help 或 man command:查看命令帮助

权限设置

groupadd groupname: 添加用户组。

gpasswd [-a username] groupname 添加用户组密码。

  • -a: 把用户加入该组
  • -d: 把用户从该组删除
  • grep groupname /etc/group: 查看用户组信息。

chgrp [-R] destinationgroup filename: 改变文件(文件夹)所属用户组

chown [-R] destinationuser filename: 改变文件(文件夹)所属用户

chmod 设置权限 r=1,w=2,x=4

  • -R 同时递归设置文件夹下所有子文件和文件夹(chmod 750 ./* -R)

文件操作 等

pwd: 输出当前工作目录 print wrok directory

ls: 查看当前文件夹下内容,可使用通配符。

  • -a: 显示隐藏
  • -l: 长型输出 同 ll;加 -h 使文件大小美观(human-readable output)
  • -R: 递归输出
  • -d: 只输出文件夹

tree: 以树状图输出当前目录下文件结构,可 yum install tree 下载,不下也无所谓。

  • ls 的基本都能用,其他 –help 自己看看

cd: 打开文件夹 change dir

touch: 新建文件

mkdir: 新建文件夹

  • -p: 递归创建

rm: 删除

  • -r: 递归删除目录
  • -f: 强制删除

cp: 复制。cp [源文件地址] [目标文件地址]

  • -r: 递归复制,可复制目录
  • -i: 覆盖提示

mv: 移动。和 cp 差不多。可用于某文件重命名。

文件内容操作 等

grep: 文本搜索。grep [目标字符串] [处理的文件名]

  • -n: 显示行号
    关于目标匹配的设定–正则表达都可以用
  • ^sth: 要求 sth 出现在行首
  • sth$: 要求 sth 出现在行尾

echo: 输出。默认输出在终端。

  • echo sth > ww.txt 将 sth 写入 ww 文件
  • echo sth >> ww.txt 将 sth 追加写入 ww 文件尾

查看硬件 等

ifconfig 查看 ip 等网卡信息
ping 检测连接

free 查看内存

  • -b, -k, -m, -g: 单位
  • -h, –human show human-readable output
  • -t, –total show total for RAM + swap

du

  • du -h –max-depth=n:查看 n 层目录下的文件、文件夹大小

lsblk 查看 sda 分区

压缩和解压

A B
-c 建立压缩档案 -z gzip
-x 解压缩 -j bz2
-t 查看内容 -Z compress
-r 向包中追加文件 -v 显示过程
-u 更新包中文件 -O 将文件解开到标准输出
-f 一般必须加,使用档案名

常用的:
-c:压缩,如tar -cvf jpg.tar *.jpg
-x:解压,如tar -xvf jpg.tar
.gz 或 .bz2 的分别加 z 和 j

VMware

一些可能用到的操作合集

清理虚拟磁盘

在虚拟机:
rm -rf ~/.cache/vmware/drag_and_drop //清除粘贴缓存
dd if=/dev/zero of=/0bits bs=20M
rm -f /0bits
在宿主机:
./vmware-vdiskmanager.exe -k F:\virtualPC\myCentOS7\MyCentOS_7.6-cl2.vmdk

扩展虚拟磁盘

先在外部扩展
进入后可用lsblk、du -h、fdisk -l、lvs等命令查看磁盘状态
下载 gparted 分区软件
yum install epel-release
yum install gparted
gparted运行

  • 右键,将空闲区划入sda
  • 如果区不是直接使用某个sda,需要进入lvm再次分配逻辑卷,相关指令
    lvm 进入lvm管理
    lvm>lvextend -L +28.8G /dev/mapper/centos-root 扩展逻辑卷容量
    lvm>lvreduce -L -8.8G /dev/mapper/centos-root 缩小逻辑卷容量
    lvm>pvdisplay  查看卷容量
    lvm>quit  或ctrl C 退出
  • 查看大小 lvs
  • 使系统重新读取大小
    xfs_growfs /dev/mapper/centos-root
    结束

关于LVM

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制

LVM - 优点:

LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。

小系统使用LVM的益处:

传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:
1. 不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;
2. 当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。
3. 如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。

当采用LVM时,情况有所不同:
1. 硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2. 文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;
3. 文件系统建立在LVM上,可以跨分区,方便使用;

大系统使用LVM的益处:
  1. 在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。
  2. 在一个有很多不同容量硬盘的大型系统中,对不同的用户的空间分配是一个技巧性的工作,要在用户需求与实际可用空间中寻求平衡。
  3. 用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。
LVM 中的基本概念
  1. 物理卷—–PV(Physical Volume)
    物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

  2. 卷组——–VG(Volumne Group)
    卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

  3. 逻辑卷—–LV(Logical Volume)
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

  4. 物理区域–PE(Physical Extent)
    物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

  5. 逻辑区域―LE(Logical Extent)
    逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

  6. 卷组描述区域—–(Volume Group Descriptor Area)
    卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

LVM 常用方法
1. 物理卷命令

一般维护命令:
pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。
pvdata 物理卷全路径名称 #用于显示物理卷的卷组描述区域信息,用于调试目的。
pvchange Cx|–allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径我[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。

2. 卷组命令

一般维护命令
vgscan #检测系统中所有磁盘
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgdisplay [卷组名] #显示卷组的属性信息
vgrename 原卷组名 新卷组名
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数
vgchange -x y|n [卷组名] #卷是否有效
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中必得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
vgmove 卷组名

卷组的扩充与缩小命令
vgextend 卷组名 物理卷全路径名[物理卷全路径名]
vgreduce 卷组名 物理卷全路径名[物理卷全路径名]

卷组的合并与拆分
vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]

卷组的输入与输出命令
vgexport 卷组名
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]

3. 逻辑卷命令

一般命令
lvscan
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvchange
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名

逻辑卷的创建与删除命令
lvcreate
lvremove

逻辑卷的扩充与缩小命令
lvextend -L +逻辑卷大小增量 逻辑卷全路径名
lvextend -L -逻辑卷减小量 逻辑卷全路径名

4. 逻辑卷管理命令

lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmchange -R|–reset #复位逻辑卷管理器
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。