计算机网络-ping局域网网段
```bash #!/bin/bash #这是父进程#
used_ip.txt unused_ip.txt #清空文件 for i in {1..255} do #()&生成多个子进程并行,提高ping的速度效率 (ping 192.168.2.$i -c 1 -w 1 &>/dev/null #ping 1次,时长为1s必须完成,然后将结果丢进黑洞文件 if(($? == 0))#如果ping通,ping通的返回值为1. then echo “192.168.0.$i is used” echo “192.168.0.$i” »used_ip.txt #ping通后的ip地址写入used_ip.txt else echo “192.168.0.$i” »unusedip.txt #ping不通的ip地址写入unused_ip.txt fi)& done wait #明显父进程清空文件简单快速,所以父进程运行完需等待子进程 echo ‘########[used ip detail]################’ cat used_ip.txt echo ‘#######[arp buffer table]###############’ num=$(cat used_ip.txt|wc -l) #统计used_ip.txt的行数 echo “一共有$num个ip地址” arp -a|awk ‘{print $2,$4}’|grep -v “incomplete”|tr -d “()” #输出MAC地址截取第二个到第四个字段
Shell登录模式及其相应配置文件的区别
Shell登录模式
交互式登陆shell 当一个用户登陆Linux系统时,首先会检查/etc/profile文件(也会根据该文件的设置检查/etc/profile.d目录下的所有文件),/etc/profile文件是系统上默认的bash shell主启动文件,每个登录用户都会执行这个启动文件。然后检查/.bash_profile目录下的文件。
交互式非登陆shell 当你的shell不是登陆系统时启动的(比如在系统内输入bash命令启动的子shell),此时启动的shell则成为交互式shell,因为该shell同样可以提供一个命令提示符来输入命令。此时与登陆shell的区别在于:不会检查/etc/profile文件和/etc/profile.d目录下的所有文件。只会检查 ~/.bashrc
非交互式shell 系统在执行脚本时用到的就是这种shell,此时的环境变量则为继承父shell的(脚本是当前shell中启动的一个子进程),需要注意的是:如果父shell中定义但未导出的环境变量属于局部变量,子shell不能继承。
配置文件
-
/etc/profile:全局环境变量,为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效。当被修改时,必须重启才会生效。
-
/etc/bashrc:全局环境变量,为每个运行 bash shell 的用户执行该文件,当 bash shell 打开时,该文件被执行,其配置对所有使用bash的用户打开的每个bash都有效。当被修改后,不用重启只需要打开一个新的 bash 即可生效,也就是
source /etc/bashrc -
/.bash_profile:为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次。默认情况下,它用于设置环境变量,并执行当前用户的 .bashrc 文件。理念类似于 /etc/profile,只不过只对当前用户有效,也需要重启才能生效。
-
~/.bashrc:为当前用户设置专属的 bash 信息,当每次打开新的shell时,该文件被执行。理念类似于/etc/bashrc,只不过只对当前用户有效,不需要重启只需要打开新的shell即可生效,也就是
source ~/.bashrc
共计 178 篇文章,26 页。
