1.常用的shell有哪几种?Linux系统中默认的shell是什么?
默认shell为bash
2.Shell的主要特点是什么?
shell程序可以认为是将shell命令按照控制结构组织到一个文本文件中,批量的交给shell去执行
不同的shell解释器使用不同的shell命令语法
shell程序解释执行,不生成可以执行的二进制文件
3.执行shell脚本的方式有哪些?
1)以脚本名作为参数,用bash解释器命令直接运行Shell脚本文件。其一般形式是:
$ bash 脚本名 [参数]
2)如果以目前shell(以.表示)执行一个SHELL脚本,则可用如下简便形式:
$ . 脚本名 [参数]
3)通过输入完整路径的方式来执行。但默认会因为权限不足而提示报错信息,此时只需要为脚本文件增加执行权限即可。
$ ./脚本名 [参数]
将shell脚本的权限设置为可执行,
然后在提示符下直接执行它。
4.说明三种引号的作用有什么区别?
双引号:由双引号扩起来的字符,除$、倒引号``和转义字符\外,均作为普通字符对待。$表示变量值,倒引号``表示命令替换。
单引号:由单引号括起来的所有字符都作为普通字符出现。
倒引号:用倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令行,并以执行结果取代整个倒引号部分。
5.编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目录中。
6.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev目录下。
7.编写一个 shell 脚本,完成功能: 1)显示文字“Waiting for a while….” 2)长格式显示当前目录下面的文件和目录,并输出重定向到/home/file.txt 文件 3)定义一个变量,名为 s,初始值“Hello” 4)使该变量输出重定向到/home/string.txt 文件
#!/bin/bash
echo “Waiting for a while....”
ls -l >>home/file.txt
s="Hello"
echo $s>/home/string.txt
8.编写一个 shell 脚本,利用 for 循环将当前目录下的.c 文件移动到指定的目录,并按文件大小显示出移动后指定的目录的内容。
#!/bin/bash
for file in *.c
do
cp ${file} ../tdemo2
done
ls -lS ../tdemo2
9.利用数组形式存放 10 个城市的名字,然后利用 for 循 环把它们打印出来。
#!bin/bash
name=(唐山 北京 天津 保定 秦皇岛 廊坊 石家庄 邯郸 承德 邢台)
for i in ${name[*]}
Do
echo $i
done
设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
#!/bin/bash
i=1
groupadd class1
while [ $i -le 30 ]或while ((i<=30))
do
if [ $i -le 9 ]
then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd –G class1 $USERNAME
((i=$i+1))
done
参考答案2:
#!/bin/bash
groupadd class1
for(i=1;i<=30;i++)
do
if [ $i -le 9 ]