Linux中shell相关知识点
编写三个基础shell
1.编写一个主机探测的脚本
#!/bin/bash
zxc=0
for((zxc=1 ; zxc < 255; zxc++)) //for循环要(())
do
ping -c 3 192.168.4.$zxc &> /dev/null //ping的发包次数,将ping的信息写入黑洞
if[ $? -eq 0 ] ; then //if的标准语法,$?和-eq下边有描述
echo -e "\e[32m+192.168.4.$zxc host is up!\e[0m"
else
echo -e "\e[31m+192.168.4.$zxc host is down!\e[0m"
fi
done
2.编写一个成绩判断
#!/bin/bash
read -p "qingshuru" chengji //从键盘输入(获取一个值)
if [ $chengji -ge 80 ] && [ $chengji -le 100 ] ; then //判断语句,大于80分小于100分的是好
echo "youxiude xuesheng"
elif [ $chengji -ge 60 ] && [ $chengji -le 79 ] ; then//判断语句,大于60分小于79分的是中
echo "yibande xuesheng"
elif [ $chengji -ge 0 ] && [ $chengji -le 59 ] ; then
echo "chade xuesheng"
else
echo "meizhaodao " //判断为空值的
fi
3.编写一个99乘法表
#!/bin/bash
for i in `seq 9` //seq是将1-9的输入到屏幕上
do
for j in `seq $i`
do
echo -n " $i*$j=`echo $(( $i*$j ))`" //乘法输出到屏幕上
done
echo " "
done
今日笔记
1.创建用户的uid
系统用户:0-499
登录用户:500-60000
id查看uid,gid
返回用户的家目录 cd ~ |cd - 后退到上一个工作目录
2.磁盘文件
/sr0 |fstab 默认挂载的光驱
临时挂载:mount /dev/sr0 /mnt
3.黑洞文件
A、/dev/null 将用户输出的信息全部吞噬
B、/dev/zero 往外生产文件
4.Linux系统启动时首先加载的文件是:/etc/profile
5.tar -gcvf //压缩-gize文件格式
6.查看文件的命令:
head
tail
more
less
cat
7.查看后台运行程序 jop
8.查看运行程序: ps
9.将三个txt文件合并成一个文件
cat 1.txt 2.txt 3.txt > 1.php
10.操作系统日志的存放位置
var/log
11.iptables的四表五链
四表
A、NAT:网络地址转换
B、MANGLE:拆解报文,做出修改,封装报文
C、RAW:关闭nat表上启用的连接追踪机制
D、Filter:过滤防火墙
五链
A、PREROUTING:数据包进入路由之前
B、INPUT:目的地址为本机
C、FORWARD:实现转发
D、OUTPUT:源地址为本机,向外发送
E、POSTROUTING:发送到网卡之前
12.Linux查看内核版本信息:uname -a
13.windows查看内核版本信息:systeminfo
14.创建一个密码文件
openssl passwd - 1 -salt salt +密码
15.捕获数据包连接状态(查看端口开放情况)
netstat
ss
16.test []介绍
-a and
-o or
-eq 判断两个值是否相等
-ge 大于或等于
-gt 大于
-lt 小于
-le 小于或等于
-ne 不等于
- 每一行执行状态
17.vim模式进入插入的三种状态
a:在光标之后插入
i:在光标之前插入
o:换行插入
dd:删除一行
2 》》dd 删除两行
e!撤销
18.调用的shell版本
#!/bin/bash (优先使用bash)是sh的增强版
#!/bin/sh
19.查看安装的哪些shell版本
cat /etc/shells
20.在shell中
do和done 相当于{}
21.一个tab有八个空格
22.ping -c 发包次数
23.&符号:标准输出,标准错误输出
24.ll输出的主要文件格式
- 普通文件
b块设备文件
c字符设备文件
d目录
l连接文件
p管理文件
s套字接文件
21./dev/stdin :标准的输入(键盘)
dev/stdout:标准的输出(屏幕)
/dev/stderr:标准错误输出
22.在vim中set nu是显示行号
$* 以一个单字符串显示所有向脚本传递的参数;
如"$*"用【"】括起来的情况、以"$1 $2 … $n"的形式输出所有参数
$# 传递到脚本的参数个数
$$ 当前进程的进程号PID
$? 显示最后命令的退出状态;0表示没有错误,其他任何值表明有错误
$! 后台运行的最后一个进程的进程号pid
23.read命令键盘读取变量的值
从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY
编译型
优点: 编译器一般会有预编译的过程对代码进行优化。因为编译只做一次, 运行时不需要编译, 所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点: 编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题, 需要根据运行的操作系统环境编译不同的可执行文件。
解释型
优点: 有良好的平台兼容性, 在任何环境中都可以运行, 前提是安装了解释器(虚拟机) 。灵活, 修改代码的时候直接修改就可以, 可以快速部署, 不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
24.解释语言
定义:一行一行去读取(可以直接打开编辑)
编译语言
定义:经过编译器,直接编译成二进制,让计算机直接读取
shell在两个系统中的后缀:
windows:.bat
linux: .sh
#/bin/bash (空格是注释)
#/bin/bash (没空格是默认调用)
27.shell中的符号:
单引号‘’:不解析变量
反引号:执行(直接执行命令)
双引号:解析变量
28.
usage使用说明
$0:输出当前的文件名
$1:接受的第一个参数,以此类推
例如:
`whoami` =$(whoami)
echo “usage:$0 url port”
echo “描述信息” $1
echo “描述信息” $2
28.编程的三大结构
A、顺序
B、选择
C、循环
29.解释一个shell中的命令
tar -zcvf 1.tar.gzip
(
f
i
n
d
/
e
t
c
−
n
a
m
e
∗
.
c
o
n
f
)
/
/
将
e
t
c
下
的
所
有
以
c
o
n
f
为
后
缀
名
的
文
件
打
包
为
g
z
i
p
文
件
e
c
h
o
“
(find /etc -name *.conf) //将etc下的所有以conf为后缀名的文件打包为gzip文件 echo “
(find/etc−name∗.conf)//将etc下的所有以conf为后缀名的文件打包为gzip文件echo“n=${n}”
30.date文件的格式:
date+%Y -%m -%d (年月日)
date+%h-%m-%s(时分秒)
31.if的分支结构
A、单分支:if[] ; then
代码或者命令
fi
B、双分支:if[] ;then
命令/代码
else
命令/代码
fi
C、多分支:if[] ;then
命令/代码
elif[] ; then
命令/代码
else
命令/代码
fi
32.一些查看命令解释:
which python (从系统环境变量中搜索)
locate python(从数据库变量中搜索)
但是先更新
updatedb(升级一下路径)就可以使用locate
find:从指定位置中搜索
33.ASCII码
A:65 (从26个字母开始查)
a:229(同上)
34.()为数字运算符
[] 逻辑运算符
35.内层循环为列
外层循环为行
36.window中sam文件是存放用户登录信息的