Black-Gold 6 years ago
parent 4844896158
commit 59e6ebc929

@ -1,18 +1,2 @@
#!/bin/bash #!/bin/bash
# ??????
DiskSpace=`df -h | awk '{print $5}' | grep % | sort -n | tail -1 | grep -v ?? | cut -d "%" -f 1`
case $DiskSpace in
[1-6]*)
Message="nothing";;
[7-8]*)
Message="Start thinking about cleaning out some stuff. There's a partition that is $space % full.";;
9[1-8])
Message="Better hurry with that new disk... One partition is $space % full.";;
99)
Message="I'm drowning here! There's a partition at $space %!";;
*)
Message="I seem to be running with an nonexistent amount of disk space...";;
esac
echo $Message

@ -1,25 +1,43 @@
#!/bin/bash #!/bin/bash
: '
方法一
LeapYear=`date +%Y` LeapYear=`date +%Y`
# 方法一 if [ $[ $LeapYear % 400 ] -eq 0 ] ; then
# if [ $[$LeapYear % 400 ] -eq 0 ] ; then echo "闰年"
# echo "闰年" elif [ $[ $LeapYear % 4 ] -eq 0 ] ; then
# elif [ $[$LeapYear % 4 ] -eq 0 ] ; then if [ $[ $LeapYear % 100 ] -ne 0 ] ; then
# if [ $[$LeapYear % 100 ] -ne 0 ] ; then echo "闰年"
# echo "闰年" else
# else echo "不是闰年"
# echo "不是闰年" fi
# fi else
# else echo "不是闰年"
# echo "不是闰年" fi
# fi '
: '
# 方法二,利用布尔运算实现 # 方法二,利用布尔运算实现
if (( ("$LeapYear" % 400) == "0" )) || (( ("$LeapYear" % 4 == 0) && ("$LeapYear" % 100 != "0") )) ; then LeapYear=`date +%Y`
if (( ( "$LeapYear" % 400 ) == "0" )) || (( ( "$LeapYear" % 4 == 0 ) && ( "$LeapYear" % 100 != "0" ) )) ; then
echo "闰年" echo "闰年"
else else
echo "不是闰年" echo "不是闰年"
fi fi
# 这相当于let语句。如果你尝试类似$ [$ year400]的东西,你会在这里使用方括号卡住,因为在这里,方括号本身并不代表实际的命令。 # 这相当于let语句。如果你尝试类似$ [$ year400]的东西,你会在这里使用方括号卡住,因为在这里,方括号本身并不代表实际的命令。
'
# 利用read命令进行交互式判断实例
echo "请输入您想要判断是否为闰年的日期(四个数字),然后按enter"
read LeapYear
if (( ("$LeapYear" % 400 ) == 0 )) || (( ("$LeapYear" % 4 == 0 ) && ( "$LeapYear" % 100 != 0 ) )); then
echo "闰年"
else
echo "不是闰年"
fi

@ -1,4 +1,4 @@
# date # **date**
## 说明 ## 说明

@ -1,4 +1,4 @@
# echo # **echo**
## 说明 ## 说明

@ -1,21 +1,48 @@
ifconfig # **ifconfig**
===
配置和显示Linux系统网卡的网络参数
## 补充说明 ## 补充说明
**ifconfig命令** 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息在网卡重启后机器重启后配置就不存在。要想将上述的配置信息永远的存的电脑里那就要修改网卡的配置文件了。 **ifconfig命令** 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息在网卡重启后机器重启后配置就不存在。要想将上述的配置信息永远的存的电脑里那就要修改网卡的配置文件了。
### 语法 ## 用法:
``` ```sh
ifconfig(参数) ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
``` [add <address>[/<prefixlen>]]
[del <address>[/<prefixlen>]]
### 参数 [[-]broadcast [<address>]] [[-]pointopoint [<address>]]
[netmask <address>] [dstaddr <address>] [tunnel <address>]
``` [outfill <NN>] [keepalive <NN>]
[hw <HW> <address>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down] ...
<HW>=硬件类型。
可能硬件类型列表:
loop (本地环回) slip (Serial Line IP) cslip (VJ Serial Line IP)
slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP)
ash (Ash) ether (以太网) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel)
ppp (点对点协议) hdlc ((Cisco)-HDLC) lapb (LAPB)
arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device)
sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI)
irda (IrLAP) ec (Econet) x25 (generic X.25)
eui64 (Generic EUI-64)
<AF>=地址族。默认inet
可能的地址族列表:
unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE)
ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet)
ash (Ash) x25 (CCITT X.25)
```
## 参数
```sh
add<地址>设置网络设备IPv6的ip地址 add<地址>设置网络设备IPv6的ip地址
del<地址>删除网络设备IPv6的IP地址 del<地址>删除网络设备IPv6的IP地址
down关闭指定的网络设备 down关闭指定的网络设备
@ -36,11 +63,11 @@ IP地址指定网络设备的IP地址
网络设备:指定网络设备的名称。 网络设备:指定网络设备的名称。
``` ```
### 实例 ## 实例
**显示网络设备信息(激活状态的):** 显示网络设备信息(激活状态的):
``` ```sh
[root@localhost ~]# ifconfig [root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:00:1E:51 eth0 Link encap:Ethernet HWaddr 00:16:3E:00:1E:51
inet addr:10.160.7.81 Bcast:10.160.15.255 Mask:255.255.240.0 inet addr:10.160.7.81 Bcast:10.160.15.255 Mask:255.255.240.0
@ -67,54 +94,34 @@ lo Link encap:Local Loopback
**lo** 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回坏地址在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到局域网的其它主机或用户无从知道。 **lo** 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回坏地址在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到局域网的其它主机或用户无从知道。
* 第一行连接类型Ethernet以太网HWaddr硬件mac地址 * 第一行连接类型Ethernet以太网HWaddr硬件mac地址
* 第二行网卡的IP地址、子网、掩码。 * 第二行网卡的IP地址、子网、掩码。
* 第三行UP代表网卡开启状态RUNNING代表网卡的网线被接上MULTICAST支持组播MTU:1500最大传输单元1500字节。 * 第三行UP代表网卡开启状态RUNNING代表网卡的网线被接上MULTICAST支持组播MTU:1500最大传输单元1500字节。
* 第四、五行:接收、发送数据包情况统计。 * 第四、五行:接收、发送数据包情况统计。
* 第七行:接收、发送数据字节数统计信息。 * 第七行:接收、发送数据字节数统计信息。
**启动关闭指定网卡:**
``` ```sh
# 启动关闭指定网卡:
ifconfig eth0 up ifconfig eth0 up
ifconfig eth0 down ifconfig eth0 down
```
`ifconfig eth0 up`为启动网卡eth0`ifconfig eth0 down`为关闭网卡eth0。ssh登陆linux服务器操作要小心关闭了就不能开启了除非你有多网卡。 `ifconfig eth0 up`为启动网卡eth0`ifconfig eth0 down`为关闭网卡eth0。ssh登陆linux服务器操作要小心关闭了就不能开启了除非你有多网卡。
**为网卡配置和删除IPv6地址** # 为网卡配置和删除IPv6地址
```
ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址 ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址 ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址
```
**用ifconfig修改MAC地址** # 用ifconfig修改MAC地址
```
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
```
**配置IP地址**
```
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
```
**启用和关闭arp协议** # 配置IP地址
ifconfig eth0 192.168.2.10
ifconfig eth0 192.168.2.10 netmask 255.255.255.0
``` # 启用和关闭arp协议
ifconfig eth0 arp #开启网卡eth0 的arp协议 ifconfig eth0 arp #开启网卡eth0 的arp协议
ifconfig eth0 -arp #关闭网卡eth0 的arp协议 ifconfig eth0 -arp #关闭网卡eth0 的arp协议
```
**设置最大传输单元:**
``` # 设置最大传输单元:
ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes
``` ```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,4 +1,4 @@
# kill # **kill**
## 说明 ## 说明

@ -1,4 +1,4 @@
# pidof # **pidof**
## 补充说明 ## 补充说明

@ -1,4 +1,4 @@
# poweroff # **poweroff**
## 选项 ## 选项

@ -1,4 +1,4 @@
# ps # **ps**
## 说明 ## 说明

@ -1,87 +1,58 @@
read # **read命令说明**
===
从键盘读取变量值
## 补充说明
**read命令** 从键盘读取变量的值通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值变量和输入的值都需要使用空格隔开。在read命令后面如果没有指定变量名读取的数据将被自动赋值给特定的变量REPLY **read命令** 从键盘读取变量的值通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值变量和输入的值都需要使用空格隔开。在read命令后面如果没有指定变量名读取的数据将被自动赋值给特定的变量REPLY
### 语法 ```sh
read: read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]
```
read(选项)(参数)
```
### 选项
``` 从标准输入读取一行并将其分为不同的域。
-p指定读取值时的提示符
-t指定读取值时等待的时间
```
### 参数 从标准输入读取单独的一行,或者如果使用了 -u 选项,从文件描述符 FD 中读取。
变量:指定读取值的变量名。 该行被分割成域,如同词语分割一样,并且第一个词被赋值给第一个 NAME 变量,第二
### 实例 个词被赋值给第二个 NAME 变量,如此继续,直到剩下所有的词被赋值给最后一个 NAME
下面的列表给出了read命令的常用方式 变量。只有 $IFS 变量中的字符被认作是词语分隔符。
``` 如果没有提供 NAME 变量,则读取的行被存放在 REPLY 变量中。
read 1987name
从标准输入读取输入并赋值给变量1987name。
``` ```
``` ## 选项
read first last
从标准输入读取输入到第一个空格或者回车将输入的第一个单词放到变量first中并将该行其他的输入放在变量last中。
```
``` ```sh
read 选项:
从标准输入读取一行并赋值给特定变量REPLY。 -a array 将词语赋值给 ARRAY 数组变量的序列下标成员,从零开始。
``` -d delim 持续读取直到读入 DELIM 变量中的第一个字符,而不是换行符
-e 在一个交互式 shell 中使用 Readline 获取行
-i text 使用 TEXT 文本作为 Readline 的初始文字
-n nchars 读取 nchars 个字符之后返回,而不是等到读取换行符。但是分隔符仍然有效,如果遇到分隔符之前读取了不足 nchars 个字符。
-N nchars 在准确读取了 nchars 个字符之后返回,除非遇到文件结束符或者读超时,任何的分隔符都被忽略
-p prompt 在尝试读取之前输出 PROMPT 提示符并且不带换行符
-r 不允许反斜杠转义任何字符
-s 不显示终端的任何输入
-t timeout 如果在 TIMEOUT 秒内没有读取一个完整的行则超时并且返回失败。TMOUT 变量的值是默认的超时时间。TIMEOUT 可以是小数。如果 TIMEOUT 是 0那么仅当在指定的文件描述符上输入有效的时候read 才返回成功。如果超过了超时时间,则返回状态码大于 128
-u fd 从文件描述符 FD 中读取,而不是标准输入
``` 退出状态:
read -a arrayname
把单词清单读入arrayname的数组里。
```
``` 返回码为零,除非遇到了文件结束符,读超时,或者无效的文
read -p "text"
打印提示text等待输入并将输入存储在REPLY中。
```
```
read -r line
允许输入包含反斜杠。
```
``` 件描述符作为参数传递给了 -u 选项。
read -t 3
指定读取等待时间为3秒。
```
```
read -n 2 var
从输入中读取两个字符并存入变量var不需要按回车读取。
```
```
read -d ":" var
用定界符“:”结束输入行。
``` ```
## read命令示例 ## read命令示例
从标准输入读取输入并赋值给变量1987name。 ```sh
# 从标准输入读取输入并赋值给变量1987name。
# 等待读取输入直到回车后表示输入完毕并将输入赋值给变量answer
read 1987name
``` # 控制台输入Hello
#read 1987name #等待读取输入直到回车后表示输入完毕并将输入赋值给变量answer HelloWorld
HelloWorld #控制台输入Hello
#echo $1987name #打印变量 # 打印变量
echo $1987name
HelloWorld HelloWorld
``` ```

@ -1,4 +1,4 @@
# reboot # **reboot**
## 选项 ## 选项

@ -1,4 +1,4 @@
# top # **top**
## 补充说明 ## 补充说明

@ -1,4 +1,4 @@
# wget # **wget**
## 说明 ## 说明

Loading…
Cancel
Save