学习.1:Linux简易培训记录
引言
2018年转瞬即逝,2019年也悄悄走完一半了。这一年间忙于论文的写作和找工作等等杂事,很久没有继续学习。如今生活终于步入正轨,单位培训业开始了。最近两天会进行Linux的培训,就在这里记录一下学习的内容,方便大家一起学习。
本次培训基于Red Hat Enterprise Linux 7.3 x64。
正文
Linux虚拟机安装
首先,安装虚拟机,此处不再赘述。
然后,打开虚拟机,创建新的虚拟机,选择典型安装后选取稍后安装操作系统,过程如下。
之后,选取合适的虚拟机安装位置,后开启虚拟机并安装。安装时可根据自己需求进行属性设置。等待一段时间后即可完成安装。
Linux文件目录
在Windows中文件系统结构是与盘符数相等的多棵树,在Linux中采用了FHS标准,是一棵倒立树。文件系统结构如下图所示。
“/” 是所有文件的根目录。
“/root” 和 “/home” 分别是管理员用户和普通用户的家目录。
“/boot” 是启动目录。“/dev” 是设备目录。“/etc” 是配置目录。“/var” 是数据目录。“/tmp”是临时目录。 “/bin” “/usr/bin” 和 “/usr/sbin” 是执行命令目录。
常用操作命令
Linux每条操作命令主要由三部分组成。分别是命令,选项和参数。其中多个选项可合并使用,并且选项与参数之间不存在先后关系。例子。
rm -rf * #命令 选项 参数
touch 新建空文件或不覆盖内容下更新已存在文件的时间戳。
mkdir 创建新目录。
mv 移动文件或重命名文件。(慎用)
cp 拷贝文件。
rm 删除文件。(慎用)
touch 文件路径 #创建文件 mkdir 文件夹路径 -p #-p操作可以一次创建多层目录 mv 文件名 新文件名 #重命名 mv 文件名 目录名 #移动到目标目录 cp 文件名 目录名 #拷贝文件到目标目录 rm 操作 文件名 #以某操作删除某个文件 -r 操作可以删除目录 -f 可以跳过确认
vim编辑器
vim编辑器是vi编辑器的升级版,相较于vi编辑器,vim编辑器可以根据显示内容的不同显示不同的颜色,对编程有着很大的帮助。
vim 文件名 #vim编辑器打开文件,不存在则新建文件
vim编辑器共存在三种模式,分别是命令模式、输入模式和末行模式。Vim编辑器开启后默认进入命令模式。在命令模式下可以通过使用“i”,“o”等键进入输入模式,使用“:”进入末行模式,输入模式与末行模式均可以用“Esc”回到命令模式。
命令模式: u #撤销 gg #跳到第一行 G #跳到末行 ?gg #跳到?行 yy #复制光标所在行 p #粘贴到光标所在行 dd #删除光标所在行 o #光标处向下另起一行 O #向上后进入输入模式 /+关键字 #搜索关键字 n 显示下一个 N 显示上一个 末行模式: q #退出 ! #强制执行 w #写入 x #保存退出 X #加密保存 %s/前关键字/后关键字/g #全局替换 set nu #显示行号 set nonu #取消显示行号
Linux用户管理
Linux系统存在三类账户:管理员、普通账户和系统账户。管理员具有最高权限,可以进行任何操作,普通账户是用户建立的账户,系统账户是建立系统时自动生成的账户,用于维护系统的某项功能,不能删除,不能登陆。用户信息存储在“/etc/passwd”中,配置文件各字段含义如下。
用户名:密码占位:UID:GID:备注信息:家目录:解析字段
其中,修改解析字段可以改变用户是否可以登陆。密码出于安全考虑存放于“/etc/shadow”中。各字段含义如下。
用户名:密码:创建后距离元年天数:修改密码间隔最小天数: 修改密码间隔最大天数:提前警告密码过期天数:密码过期多少天数禁用用户:用户过期日期距离元年天数:保留
在创建一个用户的同时也会同名建立一个群组任何一个用户都可以加入一个主要组和多个附属组。群组信息被保存在了“/etc/group”中。各个字段含义如下。
组名:密码预留:GID:组成员
groupadd 可以新建群组 groupdel 可以删除组
用户的创建指令“useradd”与用户的修改指令“usermod”有很多相通之处。
useradd 用户名 #创建用户 -M 强行不建立家目录 -u 修改UID -c 修改说明 -s Shell环境修改 -g 设置主要组 -G 修改附加组 -aG 追加附加组
passwd 可以修改账号密码 userdel 可以删除用户
Linux文件权限
通过显示目录下文件的详细信息,各个字段的含义如下。
文件类型 拥有人读 写 执行 组读 写 执行 其他人读 写 执行 未知 拥有人 拥有组 大小 最后修改时间 文件名
r(4) 读取文件 列出目录内容 w(2) 修改内容 创建删除文件 x(1) 执行权限 访问内容
修改权限过程如下。
chmod 对象操作内容 修改文件名
chown 拥有人”:”/”.”拥有组 文件名 可以修改文件的拥有人与拥有组
其中对象可以是u用户,g用户组,o其他,a全部。操作为+增加权限,-删除权限,=设置权限。内容为r读取权,w写入权,x执行权。也可以用r,w,x的数字含义设置。
grep命令
grep是筛选指令,可以用于查询,通常与基本正则表达式一起使用。
grep 操作 正则表达式 路径 #-n 打印出现的行号 -v 排除 -c 统计出现行数 -i 忽略大小写
Shell脚本
脚本可以完成一些操作,方便工作。撰写一个脚本通常需要建立一个可执行文件,并且文件第一行内容为。
#!/bin/bash
脚本共有四类变量:环境变量、用户自定义变量、位置变量和只读变量。环境变量由系统内置,一般为全大写。用户自定义变量与普通编程变量定义相同。通过export 变量名 将其可以提升为环境变量。Unset 变量名 可以释放变量。位置变量 $0代表整行参数 $1 代表第一个参数 $* 代表全部参数 $# 代表参数个数。
测试语句通常用 test 或 [],注意 []内部需要用空格打开。判断语句与其他语言类似,if语句完整结构如下。
if … ;then … ;elif … ;then …;else … ;fi #-eq 代表 == ;-gt 代表 >; -lt 代表 <; -ge 代表 >=; -le 代表 <= case 变量 in 情况1) ……;; #这里需要双; *) ……;; esac
循环语句也与其他语言类似,循环语句结构如下。
for 变量 in 条件;do # seg 1 10可以代表从1到10 循环体 done while true ;do 循环体 done
命令扩展:$()或‘ ‘ 表示会将内部指令先执行。可用于循环语句条件。
Linux网络参数配置
通过vim打开网卡配置文件,位置在vim /etc/sysconfig/network-scripts/下,不同网卡名文件名称不同。通过修改内容如下。
DEVICE=ens33 #网卡名 BOOTPROTO=none IPADDR=1.1.1.1 #设置IP地址 NETMASK=255.255.255.0 #设置IP掩码 DNS1=1.1.1.1 #设置DNS1 GATEWAY=1.2.3.4 #设置网关 ONBOOT=yes TYPE=Ethernet
修改完毕后,利用systemctl restart network来重启网卡应用设置。
磁盘管理
磁盘通常有MBR格式与GTP格式。但两种磁盘管理方法类似,故以MBR为例。通过使用df -h指令可以看到目前正在挂载的磁盘。磁盘管理的过程如下。
#首先,划分新的分区 fdisk /dev/磁盘名 #进入管理 #m可查看所有操作释义。划分好新的分区。 #之后,通常需要更新 partprobe #更新/proc/partitions文件。 #然后,格式化分区。 mkfs.格式化文件类型 分区名称 #可格式化磁盘。 #最后,挂载文件。 mount 分区名 挂载路径 #临时挂载,重启后需要再次挂载。 永久挂载则需要修改配置文件/etc/fstab,配置文件每行含义如下。 分区名 挂载点 文件类型 defaults 0 0
为了能够灵活添加磁盘空间,通常都需要LVM逻辑卷管理。
LVM逻辑卷管理过程如下。
#首先,准备一块硬盘。 #然后,创建PV。 pvcreate 硬盘名 #创建物理卷。 #之后,创建VG。 vgcreate 卷组名 物理卷名 #创建卷组。 #卷组扩展方法如下。 vgextend 卷组名 物理卷名 #扩展。 #然后,创建LV。 lvcreate -n 逻辑卷名 -L 磁盘大小 卷组名 #建立逻辑卷 #逻辑卷扩展方法如下。 lvextend 逻辑卷名 -L +磁盘大小/磁盘大小(前面代表增加,后面代表增加到) resize2fs 逻辑卷名 #磁盘类型统一完成扩展。 #最后,需要格式化LV。与之前类似。
Linux包管理
tar命令可以归类文档。主要操作如下。
-c 创建文档 -x 提取文档 -C设置位置 -v显示过程 -vv显示详细过程 -z gzip压缩 -j bzip2压缩
yum是软件包管理,可以解决依赖关系。
yum install 包名 #安装软件包 yum groupinstall 包名 #安装软件包组 yum remove 包名 #卸载 yum update 包名 #更新
常用操作命令
man 命令 #显示命令帮助 ls -l#显示当前目录下所有文件详细信息 cat 文件名#查看文件内部信息 cd 目录#跳转到某一目录 .指当前目录 ..指上一目录 init 0 #关机 reboot #重启 单引号会屏蔽所有符号 双引号除$!不能转义 $? 可以记录最后一次命令的退出状态 find 路径 -name/maxdepth/size/mtime/type/perm(权限)/user/goup/o(或) 关键字 -exec(执行)… history -c #清空历史纪录 su 用户名 #沿用上一用户的环境变换用户 su – 用户名 #不沿用 ping -c ? IP地址 #ping某个IP地址?次