shell基础知识介绍

一、shell解释器的查看与指定

系统默认是bash解释器
查看当前机器的shell解释器

cat /etc/shells

查看对应账号的shell解释器

grep test /etc/passwd

设置对应账户的shell解释器

usermod -s /bin/tcsh test

chsh -s /bin/bash test

在这里插入图片描述

二、>,>>,2>,&>介绍

只输出正确的信息
‘>’ 重定向,会覆盖本来的文件内容
‘>>’ 追加,不会覆盖本来的文件内容
2> 只输出错误的信息
&> 正确错误信息一起输出
在这里插入图片描述

三、shell脚本执行方式

一共有四种
当文件有可执行权限到时候可以通过绝对路径或者相对路径的方法进行执行
绝对路径方法
其中由于vim创建的文件,默认没有可执行文件,所以在第一次执行的时候出现请求被拒绝,
使用chmod +x 1.sh增加可执行权限后,文件正常执行
在这里插入图片描述
相对路径方法
在这里插入图片描述
不需要文件有可执行权限的方法

sh 文件名
source 文件名(特别点在于,不会执行子进程,可提供pstree命令查看)

在这里插入图片描述

四、定义变量和预定变量

定义变量格式:变量名=变量值
取消变量:unset 变量名

#当前所在的进程或脚本名
echo "$0"
#当前运行的进程的PID号(port id)
echo "$$"
#命令执行后的返回状态,只有0表示正常
echo "$?"
# 已经加载的位置标量的个数
echo "$#"
# 所以位置变量的值
echo "$*"

在这里插入图片描述

五、read命令的使用

read命令 -s设置表示不再终端显示输入的内容,-t表示指定超时秒数

#!/bin/bash
# read从键盘读值
read -p "请输入用户名:" name
read -p "请输入密码:" pass
useradd "$name"
echo "$pass" | passwd --stdin "$name"

在这里插入图片描述
read命令 -s设置表示不再终端显示输入的内容
在这里插入图片描述

六、获取服务器硬件信息练习

#!/bin/bash

# 显示服务器硬件信息
echo -e "\033[34m----------服务器硬件信息-----------\033[0m"
echo -e "\033[32m网卡信息如下:\033[0m"
ifconfig eth0 | grep "inet "
echo -e "\033[32m剩余内存容量信息如下:\033[0m"
grep MemAvailable /proc/meminfo
echo -e "\033[32m磁盘容量信息如下\033[0m"
df -h /
echo -e "\033[32mCPU信息如下\033[0m"
grep "model name" /proc/cpuinfo

在这里插入图片描述

七、安装nginx脚本

#!/bin/bash
#安装依赖包
yum -y install wget gcc pcre-devel zlib-devel
#下载nginx包,wget后面为对应版本链接
wegt http://nginx.org/download/nginx-1.8.0.tar.gz
#解压缩
tar xf nginx-1.8.0.tar.gz
# 设置安装路径
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx
# 编译安装
make
make install

八、获取本机网络相关信息练习

参考命令。先过滤出需要的字段,接着用tr命令删除字母,去除多余的空格,然后用cut命令获取需要的数据,最后使用xargs命令输出信息。

ifconfig eth0|grep -w ether|tr -d '[a-zA-Z]'|tr -s " "|cut -d " " -f2|xargs echo "mac address:"

获取网卡名称
在这里插入图片描述
过滤 出ip,子网掩码,广播地址
在这里插入图片描述在这里插入图片描述

八、获取当前机器普通用户的密码和所属的shell

参考命令

cut -d ":" -f1,2,7 /etc/passwd|tr ":" "\t"|grep -i "bash"|grep -v "root" > 1.txt

在这里插入图片描述
在这里插入图片描述

八、模拟登录

IP=`ifconfig eth0|egrep -w "inet"|awk '{print $2}'`
#清屏
clear
#输出提示信息
echo "CentOs Linux 7"
# echo -e 表示转义
echo -e "Kernel `uname -r` on an 'uname -m'\n"
echo -e "Web console :http://localhost/ or http://$IP \n"
#交互登陆名
echo -n "$HOSTNAME login:"
read account
# 输入密码
read -s -t 20 -p "password:" pw
#判断用户输入是否正确
if [ "$default_account" == "$account" ] && [ "$default_pw" == "$pw" ];then
   clear
   echo -e "\nwelcome to root"
else
   echo  "用户名或密码错误..."
   sleep 1
   #输入错误,再次调用本脚本
   sh $0
fi

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值