Linux几个简单问题
- 1.若下达 # rmdir test 命令来删除某个已存在的目录,但无法成功,请说明可能的原因
- 2.请用shell中的while循环输出1-100的和
- 3.请用shell中的for循环输出1-100。
- 4.计算输入的参数1和参数2的两个数的和,并输出到控制台
- 5.判断输入的用户名是否为root和test如果是"hallo ",如果都不是提示"sorry"
- 6.假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,然后创建一个新组test,把用户zheng加入到新建的组test中
- 7.在目录/root/zheng下,新建一个目录back,然后将该目录改名为bak,在bak下建立两个长度为“0”的文件test1和test2,然后把test2复制到其父目录中并改名为file2
- 8.简述用两种方法运行shell的脚本文件/home/test/test.sh
- 9.Jack一个人使用linux系统,他既是系统管理员,又是普通用户。为系统的稳定使用,他需要使用管理员账号为自己创建两个用户帐号tenny和ten,Jack平时使用这两个用户登陆使用系统,为了这两个用户交换和共享使用的方便,还需要达到如下要求:
- 10. 编写shell脚本获取本机的网络地址。 比如:本机的ip地址是:172.16.248.201/255.255.255.0,
- 11.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。 要求必须有提示信息:Input file name:
- 12.使用for循环输出当前文件夹下面的所有文件,统计文件数量并打印。
- 13.使用shell脚本完成如下功能。 1.切换工作目录至/var 2.依次向/var目录中的每个文件或子目录问好,形如: Hello,log 3.统计/var目录下共有多个文件,并显示出来
- 14.编写shell程序,实现自动删除30个账号的功能。账号名为stud01至stud30。
- 15.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stuxx,其中xx从01到30。
- 16.创建两个用户账号user1、user2,并设置密码 创建两个用户组group1、group2 把user1加入group1 把user2加入group2
- 17.请按下列要求写出每一步骤的命令 (1)新建用户ray,在个人目录下新建目录software (2)并搜索路径/etc下所有以h开头的文件及目录,拷贝到software中 (3)请把目录software下所有内容建立压缩的tar包,并命名为software. tar. gz
1.若下达 # rmdir test 命令来删除某个已存在的目录,但无法成功,请说明可能的原因
答:此目录不为空,或者目录中有隐含文件存在,或者目录被设置了权限,解决方法就是先修改权限,在使用rm –r命令删除。
2.请用shell中的while循环输出1-100的和
#!/bin/bash
i=1
s=0
while [ $i -le 100 ]#-le 是less 和equal意思,<=
do
s=$(( $s+$i ))
i=$(( $i+1 ))
done
echo "The sum is: $s"
方法是:vi a 建立a文档,在文档中输入:上面代码,wq保存退出,bash a,运行得结果。
3.请用shell中的for循环输出1-100。
sum=0
for i in $(seq 1 100);do
sum=$(($sum+$i))
#sum=$[$sum+$i] 第二种表示求和:$[]
done
echo $sum
方法是:vi b 建立b文档,在文档中输入:上面代码,wq保存退出,bash b,运行得结果。
4.计算输入的参数1和参数2的两个数的和,并输出到控制台
#计算两个数,并输出到控制台
#!/bin/bash
read num1
read num2
sum=$(( $num1 + $num2))
#变量sum的和是num1加num2 ,记住从地址中取出值的时候需要$
echo $sum
#打印变量sum的值
5.判断输入的用户名是否为root和test如果是"hallo “,如果都不是提示"sorry”
if [ `whoami` = "root" ||`whoami` = "test"];
then echo "hallo"
else echo "sorry"
fi
6.假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,然后创建一个新组test,把用户zheng加入到新建的组test中
useradd zheng
passwd ’’123456’’ zheng
groupadd test
gpasswd -a zheng test
7.在目录/root/zheng下,新建一个目录back,然后将该目录改名为bak,在bak下建立两个长度为“0”的文件test1和test2,然后把test2复制到其父目录中并改名为file2
cd /root/zheng
mkdir back
mv back bak
cd bak
touch test1 test2
cp test2 ../file2
8.简述用两种方法运行shell的脚本文件/home/test/test.sh
答案:
bash /home/test/test.sh or sh /home/test/test/sh or . /home/test/test/sh
9.Jack一个人使用linux系统,他既是系统管理员,又是普通用户。为系统的稳定使用,他需要使用管理员账号为自己创建两个用户帐号tenny和ten,Jack平时使用这两个用户登陆使用系统,为了这两个用户交换和共享使用的方便,还需要达到如下要求:
(1)在系统上建立一个目录/myfile;
(2)设置目录/myfile的权限为:该目录里面的文件只能由tenny和Ben两个用户读取、增加、删除、修改和执行,其他用户只能查看不能对该目录进行写入执行等访问操作。
#!/bin/bash
useradd tenny
useradd ten
groupadd mygroup
gpasswd -a tenny mygroup
gpasswd -a ten mygroup
mkdir /myfile #创建目录myfile
chmod 744 /myfile #myfile拥有:rwx-r-r权限 记住这里:r:4,w:2,x:1
chgrp mygroup /myfile #用来改变文件或目录所属的用户组
编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下
#!/bin/bash
#ext-1
#Using for move currently directory to /tmp
for Filename in $(ls -l |awk '$5 > 10240 {print $9}')
do
mv $Filename /tmp
done
ls -la /tmp
echo "Done!"
10. 编写shell脚本获取本机的网络地址。 比如:本机的ip地址是:172.16.248.201/255.255.255.0,
#!/bin/bash
#This script print ip and network
IP=`ifconfig | grep 'inet ' | sed 's/^.*addr://g' | awk -F' ' '{print $1}'`
NETMASK=`ifconfig | grep 'inet ' | sed 's/^.*Mask://g'`
echo "ip: $IP"
echo "netmask: $NETMASK"
#exit 0
11.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。 要求必须有提示信息:Input file name:
#!/bin/bash
if[-c $file]
then
cp $file /dev/$file.bak
echo "Copied 字符设备文件至 /dev"
fi
12.使用for循环输出当前文件夹下面的所有文件,统计文件数量并打印。
#!/bin/bash
count=0
for i in `ls –l|grep “^-”|awk ‘ ’’{print $NF}’`
do
echo “file:”$i
let count++
done
echo “file numbers:”$count
13.使用shell脚本完成如下功能。 1.切换工作目录至/var 2.依次向/var目录中的每个文件或子目录问好,形如: Hello,log 3.统计/var目录下共有多个文件,并显示出来
#!/bin/bash
cd /var #转至目录 var
let num=0
for I in `ls /var/*`;
do
echo "hello $I"
num=$[$num+1]
done
echo "the number of files is $num"
14.编写shell程序,实现自动删除30个账号的功能。账号名为stud01至stud30。
#!/bin/bash
for i in `seq 30`
do
if [ $i -le 9 ]
then
userdel -r stud0${i}
else
userdel -r stud$i
fi
done
15.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stuxx,其中xx从01到30。
#!/bin/bash
for i in `seq 30`
do
if [ $i -le 9 ]
then
useradd -r stud0${i}
else
useradd -r stud$i
fi
done
16.创建两个用户账号user1、user2,并设置密码 创建两个用户组group1、group2 把user1加入group1 把user2加入group2
1.先切换到root:
su root
2.创建两个用户 :
useradd user1
useradd user2
3.修改用户的密码:
passwd user1
passwd user2
4.创建一个群组
groupadd test
5.将两个用户添加到群组中
gpasswd -a user1 test
gpasswd -a user2 test
17.请按下列要求写出每一步骤的命令 (1)新建用户ray,在个人目录下新建目录software (2)并搜索路径/etc下所有以h开头的文件及目录,拷贝到software中 (3)请把目录software下所有内容建立压缩的tar包,并命名为software. tar. gz
#(1)新建用户ray,在个人目录下新建目录software
useradd ray
mkdir software
#(2)并搜索路径/etc下所有以h开头的文件及目录,拷贝到software中
cp -r /etc/h* /home/linux/桌面/software
#(3)请把目录software下所有内容建立压缩的tar包,并命名为software.tar.gz
tar -cvf software. tar. gz /home/linux/桌面/software
别骂了别骂了…错误题解已经更改,感谢博友的指正~~,感谢憨憨老哥提供的代码。