作者:Grey
原文地址:
Github
语雀
博客园
Linux的安装
说明:本安装说明是基于Windows10 下VMware安装Linux,Linux版本是CentOS 7
自2020年12月01日起,CentOS社区不再为CentOS 6版本提供安全更新,详情请查看CentOS官方公告。
环境
VMware-workstation-full-15.5.2-15785246
CentOS-7-x86_64-Minimal-1908.iso
其他版本的安装可作为参考
安装步骤
打开VMware,
点击创建新的虚拟机,进入新建虚拟机向导,然后依次按照截图步骤进行安装
点击完成即可,在启动过程中,有可能会出现如下错误:
这里是解决方案
点击:编辑虚拟机设置
在CD/DVD这里,选择使用ISO映像文件,选择对应的CentOS的iso文件
点击:开启此虚拟机,然后按如下截图安装
语言选择English
DATE & TIME选择Asia,Shanghai
SoftwareSelection 这里,选择Minimal Install
KDUMP这里,Enable kdump这个选项不要勾选
NETWORK & HOST NAME这里,把Ethernet开关打开
设置Root密码
点击USER CREATION,新建一个管理员账户
**
然后系统会自动安装,安装好了以后,有个Reboot按钮,点击Reboot按钮,即可,Linux安装ad8完成
设置HostName
hostnamectl set-hostname sec
使用以上命令,可以把Host Name设置为sec
网络配置
- 找到网卡位置:
cd /etc/sysconfig/network-scripts/
- 配置网卡协议
vim ifcfg-ens33
注:如无vim,可以执行
yum install -y vim
安装Vim
然后再执行:
vim ifcfg-ens33
删除UUID这一行
重启网卡服务
service network restart
测试:
ping www.baidu.com 查看是否有数据接收到。
快照与克隆
克隆之前,先打快照
- 关闭虚拟机
- 在节点这里,选择快照->快照管理器
为快照设置一个名字,假设为base,
然后开始克隆,在需要克隆节点上右键:克隆
这里选择创建链接克隆可以节省资源,为克隆的虚拟机设置一个名称,假设叫:node02
克隆完毕
永久关闭SELinux的方法
vim /etc/selinux/config
把SELinux设置为disabled
配置ssh密钥连接Linux
首先Win10系统上需要有OpenSSH,像这样:终端输入ssh
这样就是有的(好像Win10 1809+默认就是有的)。
然后生成密钥对:
ssh-keygen -t rsa
接着按提示信息可根据个人需求选择,这里是默认(连续三个回车即可)。
生成的密钥对默认保存在当前用户的根目录下的.ssh目录中(C:\\Users\\username.ssh):
接着我们将公钥id_rsa.pub上传至Linux服务器(保存到你要连接的用户根目录下~/.ssh/中,没有.ssh目录则创建):
修改/etc/ssh/sshd_config配制文件,修改以下内容
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
上传好后,将Linux中的id_rsa.pub重命名为authorized_keys,更改文件权限为600,更改.ssh目录权限为700:
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys
chmod 700 .ssh
然后就可以通过ssh方式连接到Linux
Linux的命令
分为内部命令和外部命令 内部命令(Shell自带的命令)
外部命令(不是Shell自带的命令,由用户安装的)
查看命令是一个什么类型的文件
查看ifconfig命令在哪个位置
whereis ifconfig
什么是Shell? bash shell,就是一个程序,就是Linux系统安装的一个软件
root/密码写对后,直接进入bash shell软件
echo $PATH
内部命令的帮助用help指令,外部命令的帮助用man指令
echo $$: 当前bash shell的进程号
如果平时退出不了某个程序,可以复制一个ssh对话,用ps -ef找到那个进程,用kill -9 退出即可
bash shell在执行命令的时候,做了两步优化:
- 通过PATH来
- 通过hash来,hash查看,hash -r(清空hash)
Shell
编写脚本时候要赋予该文件执行权限
chmod u+rx filename
如果bash执行,不需要赋予执行权限
bash ./filename.sh
./filename.sh
以上两种执行方式都是新开一个进程
source ./filename.sh
.filename.sh
这种方式执行不会产生新的子进程
#!/bin/bash/cd /tmppwd
输入重定向符号 <
read var < /path/to/a/file
输出重定向 > >> 2> &>
echo 123 > /path/to/a/file 清空输入
echo 123 >> /path/to/a/file 追加
echo 12343 2> /path/to/a/file 错误输入
echo 122 &> /path/to/a/file 全部输入
#!/bin/bashcat > /data/m.sh << EOFecho \"hello bash\"EOF
变量赋值
- a=123
- let a=10+2
- l=ls
- letc=$(ls -l /etc) 或 letc=
ls -l /etc
- 变量值有空格等特殊字符可以包括在\”\” 或 “中
- echo ${变量名} 查看变量的值
变量的默认作用范围
默认自己的shell进程中
变量的导出,让子进程获得父进程的变量值
- export 变量名
变量的删除 - unset 变量名
环境变量:每个Shell打开都可以获得的变量
- set和env命令
- $? 上一条命令是否正确执行(正确:0, 错误:1)
- $PATH
- $PS1
位置变量
- $1 $2 … $n
#!/bin/bash# $1 $2 ...$9 ${10}echo $1# 默认打印第二个参数值,如果为空则显示_echo ${2-_}
环境变量配置文件所在目录
- /etc/profile
- /etc/profile.d/
- ~/.bash_profile
- ~/.bashr15b0c
- /etc/bashrc
说明:/etc/下的配置文件,表示所有用户通用的配置,用户家目录的配置文件只能特定用户使用,
su – 用户名 login shell 所有都可以执行
su 用户名 nologin shell /bashrc, /etc/bashrc
所用终端都应用新的环境变量: export PATH=$PATH:/new/to/path
让环境变量立即生效:source /etc/profile
定义数组
# 数组定义IPTS=(10.0 1.0 3.0)# 显示数组中所有元素echo ${IPTS[@]}#显示数组元素个数echo ${#IPTS[@]}显示数组的第一个元素echo ${IPTS[0]}
Q:
- 内建命令不需要创建子进程
- 内建命令对当前shell有效
Linux文件系统
除了/boot的数据,其他目录下的数据都存在了sda3里面了
/var 可变化的文件,比如:日志文件,数据文件
更多文件类型说明见:
## 级联创建目录mkdir -p a/adir/bdirmkdir a/adir a/bdir a/cdirmkdir a/{1,2,3}dir## 复制文件夹cp -r a cpp/ ## 将a文件夹复制到cpp文件夹中,复制文件夹用
stat和touch 组合使用,可以增量监控数据改变的时间 linux命令系列 stat & touch
命令积累
与时间服务器上的时间同步
- 安装ntpdate工具
yum -y install ntp ntpdate
- 设置时间为阿里服务器的时间
ntpdate ntp1.aliyun.com
- 将系统时间写入硬件时间
hwclock –systohc
一屏可以显示的文件,可以用cat 一屏显示不出来的内容,用more命令,space翻页,无法回看 使用less 命令就可以往后推(space),按b键往前翻(less是将文件一次性load内存,所以文件大的时候只能用more)
head -n 文件名 前n行的数据 tail -n 文件名 后n行数据 tail -f 文件名 监控文件内容改变
管道命令 cat xxx | head -3 cat xxx作为输出流的形式作为后面命令的输入流
ls -l 无法接受前面的输出流的内容,如果要解决,需要这样用: echo \”/\” | xargs ls -l
head -5 xxx | tail -1 获取第五行的数据
screen -S yourname ## 新建一个叫yourname的sessionscreen -ls ## 列出当前所有的sessionscreen -r yourname ## 回到yourname这个sessionscreen -d yourname ## 远程detach某个sessionscreen -d -r yourname ## 结束当前session并回到yourname这个session
参考资料
Linux命令行大全
Linux就该这么学
Linux预习资料 提取码:7w30
CentOS6.x升级到CentOS7.x的注意事项视频 提取码: yhfd
Linux内核设计与实现
极客时间-Linux实战技能100讲