Linux基础-配置网络、集群内主机名设定、ssh登入、bash命令、通配符(元字符)
作业一:临时配置网络(ip,网关,dns)+永久配置
设置临时网络配置:
配置IP
ifcongfig ens33 192.168.16.177/24 (ifconfig 网卡 ip地址 /24代表它子网掩码)
配置网关
route add default gw 192.168.16.177 netmask 255.255.255.0 添加默认网关
配置 DNS
vim /etc/resolv.conf (DNS配置文件位置)
设置永久网络配置:
cd /etc/sysconfig/network-scripts/ 见下图
vim ifcfg-ens33 见下图
作业二:为集群内的机器设定主机名,利用/etc/hosts文件来解析自己的集群中所有的主机名,相应的,集群的配置应该改成使用主机名的方式
机器wys IP:192.168.16.176
vim /etc/hosts
ping wys01
机器wys通过ping wys01机器名可以解析出它的ip地址并与它连接
机器wys01 IP:192.168.16.177
vim /etc/hosts
ping wys
机器wys01通过ping wys机器名可以解析出它的ip地址并与它连接
hostname 查看本机主机名
hostnamectl set-hostname (加上要修改成的主机名) 修改主机名
作业三:ssh登录,scp上传、下载,ssh秘钥登录,修改ssh server端的端口为8888然后进行登录和scp测试
wysIP: 192.168.16.176 wys01IP:192.168.16.177
ssh登入,在wys机器上可以登入wys01机器,反过来在机器wys01上也可以登入机器,但是需要wys机器的密码(因为是root用户)
scp上传
[root@wys ~]# scp /etc/hosts 192.168.16.177:/tmp/ 将wys机器的/etc/hosts目录上传到192.168.16.177(wys01)机器的/tmp目录中,这里的ip地址可以换成wys01
在机器wys01上查看/tmp能找到刚才上传的文件hosts文件
scp下载
在机器wys上查看当前目录下能找到刚才从wys01/tmp目录下载的hosts文件
秘钥登入
ssh-keygen 制作秘钥
查看制作的秘钥
ssh-copy-id -i 192.168.16.177 将秘钥发送给192.168.16.77(wys01)
在wys01查看/root/.ssh/目录,wys01收到秘钥会发送到这个目录
在wys01查看/root/.ssh/authorized_keys详细信息,这个文件是客户端收到秘钥后生成的一个文件
最后再测试:客户端通过ssh方式连接服务端(可以直接进入,不再要输入密码了)
修改ssh server端口为8888
vim /etc/ssh/sshd_config 打开ssh的配置文件 找到端口并修改为8888
systemctl restart sshd 然后重启sshd
ssh 192.168.16.177 -p 8888
scp -P 8888 /etc/hosts 192.168.16.177:/tmp
作业四:整理bash命令类型,验证寻找一个命令的优先级
命令的优先级
别名
alias
内部命令
bash,compound commands,function
外部命令
/usr/local/sbin
/usr/local/bin
/sbin
/bin
/usr/sbin
/usr/bin
/root/bin
alias:别名的定义方法 alias la='ls -al' 取消别名 unalias la
Compound Commands:例如 for if while等
function:函数
build_in:BASH自带的命令,功能简单,内部命令的帮助在builtin(1)里
hash:为了减少$PATH的搜索,上一次搜索的内容能够被下一次执行重用bash对从$PATH中搜索得出的外部命令建立一个hash表,用于缓存
$PATH:就是一个小程序存在于/bin/ /sbin/ /usr/bin 等地方
error: command not found :报错
定义一个函数名为cd,说明了function的优先级大于build_in的优先级
继续使用刚才的函数,给cd命令一个别名,说明了alias的优先级大于function的优先级
作业五:通配符实验(元字符)
bash中的特殊字符,键盘上能敲出来的特殊字符都有其特殊意义,特别强调:元字符是被shell解释的!
~ 家目录,当前用的是谁就是谁的家目录
`` 命令替换 取命令的执行结果
$()同上,但它弥补了``的嵌套缺陷
! 取非
! 历史命令调用
! 匹配最近一次历史命令
! ls 带空格 将命令的返回值取反
@ 无特殊含义
# 注释
% 杀后台进程 jobs号; 取模
^ 取非 和 ! 雷同
^ 替换
& 后台执行;&& 逻辑与
* 匹配任意长度字符串;计算乘法
() 在子进程中执行
- 减号;区间;cd -;
_ 无特殊含义
+ 加号 ;
= 赋值
| 管道; || 逻辑或
\ 转义;
{} 命令列表 #括号内的开头和结尾必须是空格
# { ls; cd /; }
[] 字符通配,匹配括号内之一;
: 空命令 真值
; 可以接多个命令:ls;pwd;echo 123;无论对错,会一直执行到最后一条命令
" " 软引 ''硬引
< 输入重定向
> 输出重定向
>> 追加
<< here document
>& 合并2和1输出
, 枚举分隔符
. source ; 当前目录
/ 目录分隔符
? 单个字符
回车 命令执行
* 通配符:任意字符
? 通配符:任一字符
[abc] 列表项之一
[^abc] 对列表取非 也可以使用范围 [a-z] 代表aAbBcC...,[0-9]代表012345。。。
{} 循环列表
控制变量名的范围 echo ${AB}C
硬引用与软引用
\转意
实验举例:
[root@wys test]# touch {1..3}{a..d}.txt
[root@wys test]# ls
1a.txt 1b.txt 1c.txt 1d.txt 2a.txt 2b.txt 2c.txt 2d.txt 3a.txt 3b.txt 3c.txt 3d.txt