Linux系统配置(shell循环语句)

目录

前言

一、for循环

1、批量创建用户

2、批量删除用户

3、识别执行文件

4、识别文件和目录

5、ping多个主机

6、计算工资

二、while循环

1、创建用户

2、删除用户

3、猜价格

三、until循环

1、创建顺序用户

2、计算整数和

3、计算奇数和

4、计算偶数和

四、多循环语句

1、整数运算格式

2、echo用法

3、乘法表

4、正方形

5、长方形

6、直角三角形

7、等腰三角形

8、菱形

9、梯形

结语


前言

     在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其它命令相同,当面对各种列表重复任务时,使用循环语句可以很好的解决类似问题

一、for循环

1、批量创建用户

创建包含用户名文件
[root@pc1 ~]# vi 1.txt
aaa
bbb
ccc

创建shell脚本
[root@pc1 ~]# vi sh
#!/bin/bash
a=`cat /root/1.txt`
for uname in $a
do
   useradd $uname
   echo 123456 | passwd --stdin $uname &>/dev/null
done

2、批量删除用户

删除用户时备份用户目录及目录下所有文件)

创建包含要删除用户名的文件
[root@pc1 ~]# vi 1.txt
aaa
bbb
ccc

创建要备份到的目录
[root@pc1 ~]# mkdir /userhome_back

创建shell脚本
[root@pc1 ~]# vi sh
#!/bin/bash
a=`cat /root/1.txt`
for uname in $a
do
   b=$(ls -lh /home/$uname | awk '{print $2}')
   if [[ $b != 0 ]]
   then cp -r /home/$uname /userhome_back &>/dev/null
   fi
   userdel -r $uname
done

3、识别执行文件

找出某目录下的具有执行权限文件

[root@pc1 ~]# vi sh
#!/bin/bash
a=`ls -l $1 | awk '{print $9}'`
for wenjian in $a
do
   [ -d /root/$wenjian ]
   if [ $? -eq 0 ]
     then continue
   fi
   [ -x /root/$wenjian ]
   if [ $? -eq 0 ]
     then echo /root/$wenjian 该文件具有执行权限
   fi
done

[root@pc1 ~]# sh sh 目录

4、识别文件和目录

列出某目录下的所有文件及目录以及有执行权限的文件

[root@pc1 ~]# vi sh
#!/bin/bash
ls -l $1 | awk '{print $9}' > $1/mulu.txt
a=`cat $1/mulu.txt`
for b in $a
do
   test -f $1/$b
   if [ $? -eq 0 ]
     then test -x $1/$b
     else echo $1/$b 是目录
     continue
   fi
   if [ $? -eq 0 ]
     then echo $1/$b 是有执行权限的文件
     else echo $1/$b 是没有执行权限的文件
   fi
done

[root@pc1 ~]# sh sh 目录

5、ping多个主机

检测多个ip主机是否可以ping通

创建要ping的ip列表文件
[root@pc1 ~]# vi 1.txt
192.168.1.1
114.114.114.114
baidu.com

创建shell脚本
[root@pc1 ~]# vi sh
#!/bin/bash
a=`cat $1`
for b in $a
do
   ping -c 3 -i 0.2 -W 3 $b &>/dev/null
   if [[ $? -eq 0 ]]
     then echo $b 可以ping通
     else echo $b 无法ping通
   fi
done

[root@pc1 ~]# sh sh 1.txt

6、计算工资

计算多个员工工资

创建员工名字及加班天数列表文件
[root@pc1 ~]# vi 1.txt
张三:3
李四:3
王五:5
赵六:6

创建shell脚本
[root@pc1 ~]# vi sh
#!/bin/bash
dixin=8000
a=`cat $1 | awk -F: '{print $1}'`
for b in $a
do
   tianshu=$(cat $1 | grep $b | awk -F: '{print $2}')
   gongzi=$(expr "$dixin" + 100 \* "$tianshu")
   echo $b工资为:$gongzi
done

[root@pc1 ~]# sh sh 1.txt
张三工资为:8300
李四工资为:8300
王五工资为:8500
赵六工资为:8600

二、while循环

1、创建用户

批量创建名称有顺序规律的用户

[root@pc1 ~]# vi sh
#!/bin/bash
a=1
while [ $a -le 10 ]
do
   name="yh$a"
   useradd $name
   echo 123456 | passwd --stdin $uname &>/dev/null
   let a++
done

[root@pc1 ~]# sh sh
[root@pc1 ~]# cat /etc/passwd | tail -10
yh1:x:1024:1024::/home/yh1:/bin/bash
yh2:x:1025:1025::/home/yh2:/bin/bash
yh3:x:1026:1026::/home/yh3:/bin/bash
yh4:x:1027:1027::/home/yh4:/bin/bash
yh5:x:1028:1028::/home/yh5:/bin/bash
yh6:x:1029:1029::/home/yh6:/bin/bash
yh7:x:1030:1030::/home/yh7:/bin/bash
yh8:x:1031:1031::/home/yh8:/bin/bash
yh9:x:1032:1032::/home/yh9:/bin/bash
yh10:x:1033:1033::/home/yh10:/bin/bash

2、删除用户

批量删除名称有顺序规律的用户(备份用户目录及目录下所有文件)

创建要备份到的目录
[root@pc1 ~]# mkdir /userhome_back

创建shell脚本
[root@pc1 ~]# vi sh
#!/bin/bash
a=1
while [ $a -le 10 ]
do
   name="yh$a"
   b=$(ls -l /home/$name | awk '{print $2}')
   if [ "$b" != 0 ]
   then cp -r /home/$name /userhome_back &>/dev/null
   fi
   userdel -r $name
   let a++
done 

3、猜价格

猜测商品价格

[root@pc1 ~]# vi sh
#!/bin/bash
a=666
TIMES=0
echo 商品价格为0~1000
while true
do
   read -p "输入你猜测的价格:" b
   let TIMES++
   if [ $b -eq $a ]
   then echo 价格正确,商品价格为$a,你输入了$TIMES次
   exit 0
   elif [ $b -gt $a ]
   then echo 过高
   else echo 过低
   fi
done

三、until循环

1、创建顺序用户

批量创建名称有顺序规律的用户

[root@pc1 ~]# vi sh
#!/bin/bash
a=1
until [ $a -ge 10 ]
do
   name="yh$a"
   useradd $name
   echo 123456 | passwd --stdin $uname &>/dev/null
   let a++
done

[root@pc1 ~]# sh sh

2、计算整数和

计算1~10的和(1+2+3+.....+10)

[root@pc1 ~]# vi sh
#!/bin/bash
a=0
b=0
until [ $a -eq $1 ]
do
   let a=$a+1
   let b=$a+$b
done
echo 从1到"$1"的和为:$b

[root@pc1 ~]# sh sh 10
从1到10的和为:55

3、计算奇数和

计算1~11的奇数和(算奇数不能用偶数做为结束数值)

[root@pc1 ~]# vi sh
#!/bin/bash
a=-1
b=0
until [ $a -eq $1 ]
do
   let a=$a+2
   let b=$a+$b
done
echo 从1到"$1"的奇数和为:$b

[root@pc1 ~]# sh sh 11
从1到11的奇数和为:36

[root@pc1 ~]# vi sh
#!/bin/bash
a=1
b=0
until [ $a -gt $1 ]
do
   let b=$a+$b
   let a=$a+2
done
echo 从1到"$1"的奇数和为:$b

[root@pc1 ~]# sh sh 11
从1到11的奇数和为:36

4、计算偶数和

计算1~10的偶数和(算偶数不能用奇数做为结束数值)

[root@pc1 ~]# vi sh
#!/bin/bash
a=0
b=0
until [ $a -eq $1 ]
do
   let a=$a+2
   let b=$a+$b
done
echo 从1到"$1"的偶数和为:$b

[root@pc1 ~]# sh sh 10
从1到10的偶数和为:30

四、多循环语句

1、整数运算格式

[root@pc1 ~]# a=$(expr 3 \* 3)
[root@pc1 ~]# echo $a
9

[root@pc1 ~]# a=$((3*3))
[root@pc1 ~]# echo $a
9

[root@pc1 ~]# a=$[3*3]
[root@pc1 ~]# echo $a
9

[root@pc1 ~]# let a=3*3
[root@pc1 ~]# echo $a
9

2、echo用法

echo

-n                  不换行输出,不显示行尾的换行符
-e                  允许对列出的加反斜线转义的字符进行解释,将转义后的内容输出

\b                  退格符,"\b"表示删除前一个字符,"\b\b"表示删除前两个字符
\c                  不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n;但是当"\c"后面存在字符时,"\c"后面的字符将不会被输出
\f                   换页符,换行后的新行的开头位置连接着上一行的行尾
\n                  换行符,换行,被输出的字符从"\n"处开始另起一行
\r                   回车符,光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖
\t                  水平制表符,表示插入tab,即横向制表符
\v                 纵向制表符
\\                  表示插入"\"本身

3、乘法表

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<=9;a=a+1))
do
for ((b=1;b<=a;b++))
do
echo -ne ""$b"x"$a"="$((a*b))" \t"
done
echo
done

[root@pc1 ~]# sh sh
1x1=1 
1x2=2   2x2=4 
1x3=3   2x3=6   3x3=9 
1x4=4   2x4=8   3x4=12  4x4=16 
1x5=5   2x5=10  3x5=15  4x5=20  5x5=25 
1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36 
1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49 
1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64 
1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81

[root@pc1 ~]# vi sh
#!/bin/bash
for a in {1..9}
do
for b in {1..9}
do
if [ $b -le $a ]
then echo -ne "$b"×"$a"=$((a*b))\\t
fi
done
echo
done

[root@pc1 ~]# sh sh
1x1=1 
1x2=2   2x2=4 
1x3=3   2x3=6   3x3=9 
1x4=4   2x4=8   3x4=12  4x4=16 
1x5=5   2x5=10  3x5=15  4x5=20  5x5=25 
1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36 
1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49 
1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64 
1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81 

4、正方形

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<=3;a++))
do
for ((b=1;b<=3;b++))
do
echo -n "* "
done
echo
done

[root@pc1 ~]# sh sh

5、长方形

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<=3;a++))
do
for ((b=1;b<=6;b++))
do
echo -n "* "
done
echo
done

6、直角三角形

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<=6;a++))
do
for ((b=1;b<=a;b++))
do
echo -n "* "
done
echo
done

[root@pc1 ~]# sh sh

* * 
* * * 
* * * * 
* * * * * 
* * * * * * 

[root@pc1 ~]# vi sh
#!/bin/bash
a=1
while [ $a -le 6 ]
do
b=1
while [ $b -le $a ]
do
echo -n "* "
b=$(($b+1))
done
echo
a=$(($a+1))
done

[root@pc1 ~]# sh sh

* * 
* * * 
* * * * 
* * * * * 
* * * * * * 

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<=6;a++))
do
   for ((b=1;b<$a;b++))
   do
   echo -n
   done
     for ((c=7-$b;c>0;c--))
     do
     echo -n "* "
     done
echo
done

[root@pc1 ~]# sh sh
* * * * * * 
* * * * * 
* * * * 
* * * 
* * 

7、等腰三角形

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<=6;a++))
do
   for ((b=1;b<$a;b++))
   do
   echo -n " "
   done
     for ((c=7-$b;c>0;c--))
     do
     echo -n "* "
     done
echo
done

[root@pc1 ~]# sh sh
* * * * * * 
 * * * * * 
  * * * * 
   * * * 
    * * 
     * 

[root@pc1 ~]# vi sh
#!/bin/bash
for ((a=1;a<6;a++))
do
   for ((b=6;b>=a;b--))
   do
   echo -n " "
   done
     for ((c=1;c<=a;c++))
     do
     echo -n "* "
     done
echo
done

[root@pc1 ~]# sh sh
      * 
     * * 
    * * * 
   * * * * 
  * * * * * 

8、菱形

[root@pc1 ~]# vi sh
#!/bin/bash
read -p "请输入菱形边长:" z
for a in `seq 1 $z`
do
   for ((b=$z-1;b>=$a;b--))
   do
   echo -n " "
   done
     for ((c=1;c<=$a;c++))
     do
     echo -n "* "
     done
echo
done

for a in `seq 1 $z`
do
   for ((f=1;f<=$a;f++))
   do
   echo -n " "
   done
     for ((e=$z-1;e>=$a;e--))
     do
     echo -n "* "
     done
echo
done

[root@pc1 ~]# sh sh
请输入菱形边长:3
  * 
 * * 
* * * 
 * * 
  * 

9、梯形

[root@pc1 ~]# vi sh
#!/bin/bash
read -p "输入梯形高度:" z
for ((a=1;a<=$z;a++))
do
   for ((b=$z;b>=$a;b--))
   do
   echo -n "  "
   done
     for ((c=1;c<=$a*2;c++))
     do
     echo -n "*"
     done
       for ((d=1;d<=$a*2;d++))
       do
       echo -n "*"
       done
echo
done

[root@pc1 ~]# sh sh
输入梯形高度:3
      ****
    ********
  ************

结语

     shell作为一种脚本编程语言,包含了循环、分支等其它程序控制结构,从而能够轻松完成更加复杂、强大的功能

版权声明:本文为CSDN博主「1风天云月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/le616616/article/details/122953961

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
本书详细介绍如何在个人电脑上安装配置Caldera和Red Hat两种发行版本的Linux操作系统,并能帮助用户解决安装和配置过程中出现的各种问题。本书既能指导你进行基本的安装步骤,也能指导你定制独具特色的Linux 操作系统。通过本书的学习,你会成为一个Linux 操作系统的安装专家,并能使配置的机器完全按自己的意愿工作。 目 录 前言 第1章 安装Linux操作系统的准备工作 1 1.1 概述 1 1.1.1 什么是Linux操作系统 1 1.1.2 Linux操作系统的发行版本 2 1.1.3 安装Linux操作系统之前的准备工作 4 1.2 快速解决方案 5 1.2.1 使用Windows 95/98/NT查看系统 信息 5 1.2.2 查看Red Hat发行版本的硬件兼容 清单 8 1.2.3 查看Caldera发行版本的硬件兼容 清单 8 1.2.4 查找Linux操作系统的低价CD-ROM 光盘 8 1.2.5 查找关于Linux操作系统的最新新闻 9 1.2.6 确定Linux操作系统能否满足你的 工作需要 9 第2章 对硬盘驱动器进行分区 10 2.1 概述 10 2.2 快速解决方案 13 2.2.1 使用FIPS程序在不破坏原有数据的 前提下调整分区 13 2.2.2 使用Red Hat公司的Disk Druid 程序增加分区 14 2.2.3 使用Partition Magic程序整理硬盘 并增加分区 15 2.2.4 使用Caldera公司的Disk Partition 程序增加分区 15 第3章 安装Caldera发行版本 18 3.1 概述 18 3.1.1 安装过程 18 3.1.2 Caldera发行版本的安装选项 19 3.1.3 配置图形的考虑 20 3.1.4 安装多个操作系统: 21 3.2 快速解决方案 22 3.2.1 从CD-ROM光盘开始运行 安装程序 22 3.2.2 安装Caldera公司的Windows下的 辅助安装工具程序 22 3.2.3 确定哪些安装盘是必需的 23 3.2.4 制作安装盘 23 3.2.5 制作一张Windows下的引导盘 24 3.2.6 从软盘开始运行安装程序 25 3.2.7 为一个专用的本地网络分配IP地址 25 3.2.8 从引导管理程序失误中恢复NT 25 3.2.9 制作一张定制的Linux操作系统 引导盘 26 3.2.10 设置直接引导启动到Caldera 发行版本 26 3.2.11 直接引导启动到Caldera发行版本 27 3.2.12 诊断使用LILO程序引导启动时 出现的挂起错误 27 3.2.13 恢复主引导记录 28 3.2.14 运行LILO程序 28 3.2.15 设置LILO程序 28 3.2.16 确定磁盘参数 29 3.2.17 在LILO程序中设置用来选择某个 操作系统的启动引导延时 30 3.2.18 重新安装LILO程序 30 3.2.19 删除LILO程序 30 3.2.20 关闭系统 30 第4章 安装Red Hat发行版本 31 4.1 概述 31 4.1.1 安装过程 32 4.1.2 Red Hat发行版本的安装级别 32 4.1.3 LILO程序,Linux操作系统的加载 程序 34 4.1.4 配置显示选项的考虑 35 4.1.5 系统开机引导时可以使用的服务 35 4.1.6 安装多个操作系统 36 4.2 快速解决方案 36 4.2.1 确定哪些安装盘是必需的 36 4.2.2 制作一张Linux操作系统的安装引 导盘 37 4.2.3 下载最新的引导启动映像 37 4.2.4 制作一张Windows下的引导盘 37 4.2.5 从一张引导盘开始运行安装程序 38 4.2.6 从CD-ROM光盘开始运行安装程序 38 4.2.7 为NFS、HTTP或者FTP安装设置 一个本地服务器 39 4.2.8 为一个专用的本地网络分配IP地址 39 4.2.9 通过一个NFS挂装进行安装 39 4.2.10 从一个硬盘驱动器分区进行安装 40 4.2.11 从一个HTTP或者FTP服务器进行 安装 40 4.2.12 从引导管理程序失误中恢复NT 40 4.2.13 选择需要安装哪些组件和软件包 41 4.2.14 使用虚拟控制台跟踪和调试安装 过程 41 4.2.15 引导进入Linux操作系统 42 4.2.16 诊断使用LILO程序启动引导时 出现的挂起错误 42 4.2.17 可以用在MBR中的LILO程序的 代用程序 44 4.2.18 恢复MBR 45 4.2.19 运行LILO程序 45 4.2.20 设置LILO程序 45 4.2.21 配置LILO程序引导多个操作系统 45 4.2.22 确定磁盘参数 46 4.2.23 设置用来选择某个操作系统的 启动引导延时 47 4.2.24 在LILO程序中设置一个缺省的 操作系统 47 4.2.25 重新安装LILO程序 48 4.2.26 删除LILO程序 48 4.2.27 选择自动启用哪些服务 48 4.2.28 关闭系统 48 4.2.29 让Linux操作系统检查1GB以上的 RAM系统内存 49 第5章 使用Linux操作系统 50 5.1 概述 50 5.1.1 Linux操作系统与DOS和NT的比较 51 5.1.2 文件存取权限和所有权限 51 5.2 快速解决方案 52 5.2.1 设置日期 52 5.2.2 设置时间 52 5.2.3 列出目录的内容清单 52 5.2.4 切换目录路径 53 5.2.5 确定自己所在的位置 54 5.2.6 解读文件和目录清单列表 54 5.2.7 改变文件和目录的存取权限 54 5.2.8 改变文件和目录的所有者 55 5.2.9 给文件和目录改名 55 5.2.10 建立目录 55 5.2.11 建立链接 55 5.2.12 删除目录 56 5.2.13 拷贝文件和目录 56 5.2.14 移动文件和目录 57 5.2.15 删除文件 57 5.2.16 识别二进制文件 57 5.2.17 使用vi文本编辑器程序 57 5.2.18 使用pico文本编辑器程序 58 5.2.19 查看文本文件,不使用文本编辑器 程序 60 5.2.20 把命令结果输出到文本文件中 61 5.2.21 建立别名 61 5.2.22 使用find命令确定文件存放位置 61 5.2.23 通过搜索locate数据库来查找文件 62 5.2.24 在path语句说明的路径中查找 文件 62 5.2.25 在path语句中添加新路径 63 5.2.26 在文件内容中查找文本 63 5.2.27 寻求帮助 63 5.2.28 在后台运行命令程序 63 5.2.29 确定当前运行的命令 63 5.2.30 把命令程序调到后台去 64 5.2.31 把后台命令调回前台来 64 5.2.32 取消正在执行的命令 64 5.2.33 清除屏幕 64 5.2.34 一次执行多个命令 65 5.2.35 退出登录 65 5.2.36 重新引导启动机器 65 5.2.37 系统关机 65 第6章 配置X图形界面 66 6.1 概述 66 6.2 快速解决方案 67 6.2.1 在Caldera发行版本中配置X图形 界面的准备工作 67 6.2.2 在Caldera发行版本中配置鼠标 69 6.2.3 在Caldera发行版本中配置键盘 70 6.2.4 在Caldera发行版本中配置图形卡 71 6.2.5 在Caldera发行版本中配置显示器 73 6.2.6 在Caldera发行版本中配置图形显示 模式和颜色设置 73 6.2.7 在Caldera发行版本中配置X服务器 程序本身 74 6.2.8 在Red Hat发行版本中配置X图形 界面 75 6.2.9 在Red Hat发行版本中定制配置 一台显示器 79 6.2.10 在Red Hat发行版本中配置图形 显示模式 80 6.2.11 手动调整X图形界面 82 6.2.12 手动配置显示器 82 6.2.13 手动配置图形卡 83 6.2.14 手动配置图形显示模式 84 6.2.15 进入GUI 85 第7章 窗口管理器程序和桌面环境 86 7.1 概述 86 7.1.1 窗口管理器程序 86 7.1.2 桌面环境 87 7.2 快速解决方案 88 7.2.1 查找窗口管理器程序 88 7.2.2 在Gnome桌面环境中运行程序 88 7.2.3 在Gnome桌面环境中隐藏任务条 89 7.2.4 使用Gnome桌面环境中的帮助系统 89 7.2.5 使用Gnome桌面环境中的控制面板 90 7.2.6 在KDE桌面环境中运行程序 91 7.2.7 在KDE桌面环境中隐藏任务条 92 7.2.8 使用KDE桌面环境中的帮助系统 92 7.2.9 使用KDE桌面环境中的控制中心 93 7.2.10 在KDE桌面环境使用COAS 94 7.2.11 安装一个新的窗口管理器程序 94 第8章 建立用户帐户 96 8.1 概述 96 8.1.1 口令字 97 8.1.2 编写添加用户命令脚本程序 98 8.2 快速解决方案 98 8.2.1 添加一个新用户 98 8.2.2 添加或者修改一个口令字 98 8.2.3 通过linuxconf程序添加一个 新用户 99 8.2.4 查看关于新用户的缺省设置 100 8.2.5 选择关于新用户的缺省设置 100 8.2.6 改变关于新用户的缺省设置 101 8.2.7 修改现有用户的信息 101 8.2.8 通过linuxconf程序修改现有用户 的信息 102 8.2.9 安装shadow口令字软件包 103 8.2.10 转换用户系统使用shadow 口令字 103 8.2.11 转换用户系统不再使用shadow 口令字 103 8.2.12 查找缺省的用户配置文件 103 8.2.13 查找容易被破译的口令字 104 8.2.14 冻结一个用户 104 8.2.15 通过linuxconf程序冻结一个用户 104 8.2.16 删除一个用户 104 8.2.17 通过linuxconf程序删除一个用户 104 8.2.18 检查系统的易受攻击性 105 8.2.19 修改源代码使程序能够运行在使用 shadow口令字功能的系统中 105 8.2.20 打开linuxconf程序 105 第9章 Linux操作系统的文件系统 107 9.1 概述 107 9.1.1 文件系统基础 107 9.1.2 Linux文件系统的格式 107 9.2 快速解决方案 108 9.2.1 建立一个文件系统 108 9.2.2 挂装到文件系统上 108 9.2.3 从文件系统上卸载 109 9.2.4 简化常用挂装命令 109 9.2.5 挂装一个已经准备好的设备 类型 110 9.2.6 在开机引导启动时自动挂装一个 设备 110 9.2.7 把一个现存的目录转移到一个新 分区 111 第10章 编译系统内核 113 10.1 概述 113 10.1.1 为什么要编译 113 10.1.2 为什么不编译 114 10.1.3 内核升级问题 114 10.1.4 应该使用哪一个内核 114 10.1.5 系统内核配置选项 114 10.2 快速解决方案 115 10.2.1 确定用户正在使用的是哪个版本 的内核 115 10.2.2 确定内核是测试版还是正式版 115 10.2.3 通过发行商做好升级内核的 准备 115 10.2.4 哪里可以找到内核源代码 116 10.2.5 为新内核加上LILO选项 116 10.2.6 测试内核安装效果 116 10.2.7 使用Caldera发行版本升级内核 117 10.2.8 使用Red Hat发行版本升级内核 117 10.2.9 编译内核 118 10.2.10 升级内核 119 10.2.11 为内核源代码打补丁 119 10.2.12 对缺省内核进行细调 120 10.2.13 安装内核 121 10.2.14 加载内核模块 121 10.2.15 卸载内核模块 121 10.2.16 使用config程序 122 10.2.17 使用menuconfig程序 122 10.2.18 使用xconfig程序 124 第11章 配置LAN 127 11.1 概述 127 11.1.1 计划一个LAN 127 11.1.2 网络硬件 128 11.1.3 服务 129 11.1.4 确定用户是否需要动态 分配路由 130 11.2 快速解决方案 130 11.2.1 检查网络当前的设置情况 130 11.2.2 设置IP地址 131 11.2.3 在GUI中设置IP地址 131 11.2.4 给网络中的计算机命名 133 11.2.5 在GUI中给网络中的计算机命名 133 11.2.6 分配域名 135 11.2.7 在GUI中分配域名 135 11.2.8 设置动态路由分配 136 11.2.9 在Red Hat发行版本中设置静态路由 分配 138 11.2.10 为计算机配置域名解析 139 11.2.11 建立LAN 140 11.2.12 配置打印服务 141 11.2.13 在GUI中添加一台打印机 142 11.2.14 在GUI中修改一个打印机设置 144 11.2.15 删除一个打印机设置 145 11.2.16 在GUI中删除一个打印机设置 145 11.2.17 配置一个NFS文件服务器计算机 147 11.2.18 配置一个NFS客户计算机 148 11.2.19 确定是否需要NIS 148 11.2.20 配置NIS 148 第12章 通过Samba服务与Windows网络 集成 152 12.1 概述 152 12.2 快速解决方案 154 12.2.1 获取Samba的最新版本 154 12.2.2 检查是否已经安装了Samba 154 12.2.3 从Red Hat发行版本的CD-ROM 光盘上安装Samba软件包 154 12.2.4 从Caldera发行版本的CD-ROM 光盘上安装Samba软件包 154 12.2.5 从源代码安装Samba软件包 154 12.2.6 查看Samba守护进程是否正在 运行 155 12.2.7 配置Samba守护进程从inetd中 运行 155 12.2.8 配置Samba守护进程从系统的开机 引导脚本程序中运行 156 12.2.9 配置Samba守护进程不从系统的 开机引导脚本程序中运行 156 12.2.10 手动启动Samba守护进程运行 157 12.2.11 定义主机的Samba服务访问 权限 157 12.2.12 建立一个Samba配置文件 157 12.2.13 配置硬盘驱动器共享:Linux 到Windows 159 12.2.14 配置硬盘驱动器共享:Windows 到Linux 160 12.2.15 从一个Windows机器上测试硬盘 驱动器共享设置 161 12.2.16 从一个Linux机器上测试硬盘 驱动器共享设置 161 12.2.17 配置打印共享:Linux到 Windows 161 12.2.18 配置打印共享:Windows到 Linux 162 12.2.19 测试打印共享 163 12.2.20 访问一个Windows硬盘驱动器 163 第13章 连接到因特网 164 13.1 概述 164 13.1.1 PPP拨号程序 164 13.1.2 因特网客户程序 164 13.2 快速解决方案 165 13.2.1 连接到ISP 165 13.2.2 使用kppp设置一个PPP连接 166 13.2.3 准备编写一个登录命令脚本 170 13.2.4 在kppp中编写一个登录命令脚本 170 13.2.5 使用linuxconf程序设置一个PPP 连接 171 13.2.6 下载并安装pppsetup软件 173 13.2.7 使用pppsetup软件对PPP拨号进行 设置 173 13.2.8 从命令行拨入 177 13.2.9 从Caldera发行版本的GUI 中拨入 177 13.2.10 从Red Hat发行版本的GUI 中拨入 177 第14章 设置因特网服务 178 14.1 概述 178 14.1.1 连接性 178 14.1.2 电子邮件方面的考虑 178 14.1.3 使所做的设置修改明确生效 179 14.1.4 虚拟主机 179 14.2 快速解决方案 179 14.2.1 设置虚拟主机服务 179 14.2.2 配置电子邮件 180 14.2.3 运行POP电子邮件软件 182 14.2.4 配置Apache软件的WWW服务 功能 183 14.2.5 配置一个FTP服务器 185 14.2.6 配置NFS 186 第15章 软件包管理 188 15.1 概述 188 15.1.1 选择下载的软件包格式 188 15.1.2 软件打包方法 189 15.1.3 X Window环境中的RPM工具 190 15.2 快速解决方案 191 15.2.1 管理RPM软件包 191 15.2.2 使用tar档案文件 193 15.2.3 使用GZip压缩 195 15.2.4 建立一个压缩的tar文件 195 第16章 安装新软件 196 16.1 概述 196 16.2 快速解决方案 198 16.2.1 寻找软件包 198 16.2.2 确定源代码是否可以在你的 机器上通过编译并运行 199 16.2.3 替换制作文件 199 16.2.4 编译源代码 200 16.2.5 安装二进制代码 200 16.2.6 把软件包添加到用户的PATH 语句中 200 16.2.7 识别可执行程序 201 第17章 C语言编程工具 202 17.1 概述 202 17.1.1 C语言编程工具 202 17.1.2 Linux操作系统中的C语言编程 202 17.2 快速解决方案 203 17.2.1 安装C语言编译器 203 17.2.2 安装基本C语言函数库 203 17.2.3 安装内核函数库 203 17.2.4 安装build管理器 204 17.2.5 安装C语言预处理器 204 17.2.6 安装文件比较工具软件 204 17.2.7 安装源代码补丁修补软件 204 17.2.8 寻找专业函数库 205 17.2.9 建立一个简单的制作文件 205 第18章 编写shell命令脚本程序 207 18.1 概述 207 18.1.1 shell概述 207 18.1.2 良好的命令脚本程序编程习惯 208 18.1.3 编程示范 208 18.2 快速解决方案 210 18.2.1 编写一个命令脚本程序 210 18.2.2 给变量赋值 211 18.2.3 使用某个变量的值 211 18.2.4 提示和接受输入数据 211 18.2.5 忽略元字符 211 18.2.6 编写条件if语句 212 18.2.7 接受命令行输入 213 18.2.8 添加注释语句 213 18.2.9 添加一个帮助组件 213 18.2.10 添加一个for循环语句 214 18.2.11 添加一个while循环语句 214 18.2.12 添加一个菜单 214 18.2.13 二次检查用户输入数据 215 18.2.14 比较文件、字符串以及正则 表达式 217 18.2.15 结束一个命令脚本程序 218 18.2.16 测试一个命令脚本程序 219 18.2.17 调试一个命令脚本程序 219 第19章 Perl语言 221 19.1 概述 221 19.1.1 为什么使用Perl语言 221 19.1.2 Perl语言编程示范 222 19.2 快速解决方案 224 19.2.1 建立一个Perl程序 224 19.2.2 运行一个Perl程序 224 19.2.3 使程序输出在下一行显示 224 19.2.4 接受命令行输入 225 19.2.5 给变量赋值 225 19.2.6 使用某个变量的值 225 19.2.7 测试true或者false 225 19.2.8 测试文件 225 19.2.9 使用数学计算 226 19.2.10 数据值比较 226 19.2.11 字符串处理 227 19.2.12 使用数组 227 19.2.13 使用for语句 228 19.2.14 使用foreach语句 229 19.2.15 使用if语句 229 19.2.16 使用unless语句 230 19.2.17 使用until语句 231 19.2.18 使用while语句 231 19.2.19 把数据写入一个文件 231 19.2.20 从一个文件中读出数据 232 第20章 配置系统备份策略 233 20.1 概述 233 20.2 快速解决方案 235 20.2.1 获取ftape驱动程序 235 20.2.2 安装ftape驱动程序 236 20.2.3 选择一种备份策略 236 20.2.4 人工建立备份:通用方法 237 20.2.5 使用软盘或磁带机进行一次完全 备份 237 20.2.6 从磁带或软盘中恢复完全备份 238 20.2.7 向一个现有的tar备份文件中添加 文件 238 20.2.8 设置备份操作在指定时间执行 238 20.2.9 选择备份用的软件 239 20.2.10 自动备份 239 20.2.11 决定是否使用一个活动硬盘 驱动器系统 240 第21章 安全性问题 242 21.1 概述 242 21.2 快速解决方案 243 21.2.1 关闭简单的薄弱环节 243 21.2.2 列出成功登录的记录清单 243 21.2.3 列出不成功登录的记录清单 244 21.2.4 查找安全漏洞 244 21.2.5 密切注意系统安全性方面的进展 244 21.2.6 确定是否需要一堵防火墙 245 21.2.7 强化对网络驱动器访问的控制 246 21.2.8 过滤向外发送的数据包 246 21.2.9 安装ipchains 247 21.2.10 在重启动/关机之前保存数据 包过滤规则 248 21.2.11 开机引导后恢复数据包过滤 规则 248 21.2.12 安装SOCKS 248 21.2.13 安装代理服务器程序 249 21.2.14 配置SOCKS 249 21.2.15 设置Linux机器通过代理防火墙 250
### 回答1: Linux系统的Shell检查脚本是一种用于检查和测试Shell脚本的工具。它可以帮助开发人员和系统管理员发现脚本中的错误和问题,以确保脚本的正确性和可靠性。Shell检查脚本可以检查脚本中的语法错误、变量使用、函数定义、文件操作等方面的问题,并提供详细的错误信息和建议。使用Shell检查脚本可以提高脚本的质量和可维护性,减少错误和故障的发生。 ### 回答2: Linux系统中有一种特殊的脚本称为shell脚本,它可以用来进行一些自动化的检查和处理操作。通过shell脚本,我们可以灵活地进行各种检查任务,节约时间和人力成本。 首先,在创建shell脚本之前,我们需要确定要进行的具体检查任务。可以是检查系统的硬件配置、软件版本、服务状态、文件和目录权限等。然后,我们可以利用shell脚本语言来编写具体的检查脚本。 在Shell脚本中,我们可以使用各种命令和工具来完成检查任务。例如,可以使用grep命令来搜索特定的关键词,使用awk命令来解析文本数据,使用find命令来查找文件和目录等。通过这些命令和工具的组合和使用,我们可以灵活地进行各种检查操作。 此外,我们还可以使用条件语句和循环语句来实现更复杂的检查逻辑。例如,我们可以使用if语句来判断某个条件是否满足,根据不同的情况执行不同的命令。我们还可以使用for循环来遍历某个范围内的数据,执行相同的检查任务。 最后,在运行shell检查脚本之前,我们需要给予执行权限。可以使用chmod命令来修改脚本文件的权限,使其可以执行。然后,我们可以使用./命令来运行脚本。 总之,Linux系统中的shell脚本可以用于进行各种检查任务,通过灵活使用各种命令和工具,结合条件语句和循环语句,可以实现复杂的检查逻辑。这样,我们可以方便地进行系统检查,提高效率和准确性。 ### 回答3: Linux系统中的shell检查脚本是一段用于自动化执行任务和检查系统状态的代码。它可以通过命令行或者定时任务的方式运行,以达到自动监控和报告系统运行情况的目的。 shell检查脚本可以包含各种命令和逻辑判断,用于检查系统的各种指标和状态。比如,可以通过检查磁盘空间占用率、进程运行状态、网络连接情况等来监控系统的健康度。当某个指标或状态达到预设的阈值时,脚本可以发出警报、记录日志或者采取其他预定的操作,以提醒系统管理员或采取相应的处理措施。 shell检查脚本的编写需要掌握相应的shell脚本语法和命令。可以使用if语句、for循环、while循环等控制结构来实现各种判断和循环操作。同时,还可以使用一些命令行工具如grep、awk、sed等来处理和过滤命令的输出。 一个好的shell检查脚本应该具备以下特点:简洁明了的逻辑结构、充分的错误处理机制、适当的日志输出和报警机制、良好的可读性和可维护性等。此外,还可以使用一些第三方工具或库来增强脚本的功能和易用性,如nagios、zabbix等监控系统。 总之,shell检查脚本在Linux系统中具有重要的作用,通过自动化的方式检查系统状态和运行情况,可以提高系统的可靠性和可维护性,减少系统管理员的工作压力,并及时发现和解决系统问题,保障系统的稳定运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值