Linux几个简单问题

Linux几个简单问题

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

别骂了别骂了…错误题解已经更改,感谢博友的指正~~,感谢憨憨老哥提供的代码。

  • 15
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr顺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值