给大家出了几个练习题,由于本人水平有限,题目质量不高,有什么错误还请指正。

回复 收藏

1.两种配置ip地址的方式?(静态和动态)
静态配置ip地址编辑的配置文件?以及里面的重要参数。
2.怎么样配置本地yum源?
3.两台linux服务器怎么通过秘钥相互登录?
4.写出7个运行级别,如果忘记用户密码,我们应该进入那个级别,(写出具体操作)
若系统无法进入,比如grub损坏或者某一配置文件出错,我们应该怎么做?(写出具体操作步骤)
5.详述linux系统的启动过程。(根据各自的理解)
6.怎么通过yum工具安装或者卸载一个rpm包?若想利用一条命令,例如“mkpasswd”不知道安装哪个rpm包应该怎么办?通过什么命令查询rpm是否安装?
7.怎么样重启网络服务?(两种方法) 如何查看一个服务(例如网络服务)的状态?
8.下面的命令分别表示什么意思?
1)cd   2)cd ..  3)cd - 4)cd ~  5)cd ~/  6)cd ./ 7)cd .
9.怎么样查看当前用户的家目录?如何查看当前的工作目录?
10.如何设置系统的环境变量?(对所有的用户都适用root和普通用户)
11. Centos下打开vim怎么永久显示行号?
12 列出/etc/目录下,文件的详细信息?(包括目录)
13. 简单叙述一下什么是inode?
14. 软连接和硬链接的区别?
15. 如果设置umask为0021,那么用户默认创建的目录和文件的权限是多少?
16. 修改主机名可以通过什么方式?(两种)
17. 修改目录及目录下所有文件的所属主为user,属组为:group
18. 如何查看历史命令?清空历史命令呢?
19. 创建目录 /1/2/3/4/5?如何利用一条命令创建目录 1/2/3/4/5  /1/2/3/4/5?
20. 简述/etc/passwd个个字段的意思?
21. 在当前文件下查询权限为654的普通文件并打印到标准输出?在当前目录下查询以.txt的文件,并删除?
22. set_uid ,set_gid .stacky_bit的权限详细说明?
23. Shell脚本练习,打印/etc/passswd文件中的uid这一段,排序。
24. 在/tmp/目录下,有如下文件,test.bak.bak.bak 1.bak,2.bak.bak.bak……bak 如何将.bak的后缀去掉,请编写shell脚本实现。(此题稍微有点难度)
25.请详细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字。
       10 31 53 77 105 141 .....
26.分别统计,默认shell 各有多少用户,别分别列出用户:
格式:
/bin/bash :  3users   user1 user2 user3
/sbin/nologin
/sbin/halt
/bin/sync
/sbin/shutdown


2015-03-21 15:38 举报
已邀请:
0

定海偶然

赞同来自:

^_^
0

ztyspar

赞同来自:

24-26 等着学习
0

赞同来自:

1.        两种配置ip地址的方式?(静态和动态)
静态配置ip地址编辑的配置文件?以及里面的重要参数。

        静态
   直接执行dhclient命令,前提是网络中要有DHCP服务
   动态
   编辑/etc/sysconfig/network-scripts/ifcfg-eth0
   修改添加参数(IP地址以实际为准)
   NOBOOT=yes
   BOOTPROTO=static
   IPADDR=192.168.1.110
   NETMASK=255.255.255.0
   GATEWAY=192.168.1.1
   DNS1=8.8.8.8
   DNS2=4.4.4.4
2.        怎么样配置本地yum源?

        修改yum配置文件/etc/yum.repos.d/CenOS-Base.repo,或者清空目录下的文件,然后新建一个以 .repo结尾方文件
   编辑内容
   [dvd]
    name=dve install
    baseurl=file:///mnt
    enable=1
    gpgcheck=0
    保存退出
    挂载光盘命令:mount /dev/cdrom /mnt
    挂载iso文件:mount -o loop xxxx.iso /mnt
    开机自动挂载可编辑/etc/fstab 或者/etc/rc.local配置文件
3.        两台linux服务器怎么通过秘钥相互登录?


4.        写出6个运行级别,如果忘记用户密码,我们应该进入那个级别,(写出具体操作)
若系统无法进入,比如grub损坏或者某一配置文件出错,我们应该进入怎么做?(写出具体操作步骤)

        0:关机
        1:单用户
        2:无NFS的级别3(无网络服务)
        3:命令行模式
        4:保留
        5:图形化模式
        6:重启
        单用户模式
        重启系统时,3秒钟内按一下回车键
        按e,选择第二行,再按e
        在最后面空一格 输入single或者s 或者数字1,回车
        再按b
        进入系统后执行passwd命令修改密码
        援救模式
        光盘启动-选择Recue installed system
        无其他特别需要按默认ok
        输入chroot  /mnt/sysimage
        进入到系统挂载目录

5.        详述linux系统的启动过程。(根据各自的理解)
          BIOS加电自检——找启动介质后找MBR——加载bootloader(grub)——找kernel内核,加载静态驱动——启动init服务,根据系统设定的运行级别做系统初始化——建立终端——用户登陆


6.        怎么通过yum工具安装或者卸载一个rpm包?若想利用一条命令,例如“mkpasswd”不知道安装哪个rpm包应该怎么办?通过什么命令查询rpm是否安装?

        安装:yum install package
        卸载:yum remove package
        查找:rpm -qf /usr/bin/mkpasswd
       
7.        怎么样重启网络服务?(两种方法) 如何查看一个服务(例如网络服务)的状态?

        /etc/init.d/network restart
        service network restart
        查看状态把restart换成status即可
       
8.        下面的命令分别表示什么意思?
1)cd   2)cd ..  3)cd - 4)cd ~  5)cd ~/  6)cd ./ 7)cd .

        1:进入目录的命令cd不带参数直接回车是到家目录,2:返回上一级目录,3:返回上一次所在目录,4:回到家目录,5:还是家目录啊逗我么,6:当前目录,7当前目录

9.        怎么样查看当前用户的家目录?如何查看当前的工作目录?

        echo $HOME 或者echo ~username
           pwd
       
10.        如何设置系统的环境变量?(对所有的用户都适用root和普通用户)
        编辑/etc/profile最后另起一行添加
        PATH=$PATH:/dir
        保存退出

11.        Centos下打开vim怎么永久显示行号?

        vim ~/.vimrc
        set number
        :wq
       
12.        列出/etc/目录下,文件的详细信息?(包括目录)

        ls -l /etc/

13.        简单叙述一下什么是inode?
        inode是索引节点,存储着文件信息(大小,位置,时间戳,权限,属主,属组等),系统是通过inode找到数据存放的位置         
                       
14.        软连接和硬链接的区别?

        软连接:与源文件inode号不同,可以作用于文件和目录,可跨文件系统,存储的数据是源文件的路径,删除源文件,软连接失效
        硬连接:与源文件inode号相同,只能作用于文件,不可作用于目录和文件系统,修改硬连接文件内容,源文件也会被修改,删除源文件,不影响硬连接使用

15.        如果设置umask为0021,那么用户默认创建的目录和文件的权限是多少?

        目录:756
        文件:646
       
16.        修改主机名可以通过什么方式?(两种)

        hostname xxx
        vi /etc/hosts

17.        修改目录及目录下所有文件的所属主为user,属主为:group

        chown -R user:group /dir/

18.        如何查看历史命令?清空历史命令呢?

        history
        history -c 或者 vi ~/.bash_history
       
19.        创建目录 /1/2/3/4/5?如何利用一条命令创建目录 1/2/3/4/5  /1/2/3/4/5?

        mkdir -p /1/2/3/4/5
        mkdir -p 1/2/3/4/5  /1/2/3/4/5

20.        简述/etc/passwd个个字段的意思?

        一共7段,以冒号:分隔,从左到右依次为用户名、密码控位键、UID、GID、注释、家目录、登陆环境shell

21.        在当前文件下查询权限为654的普通文件并打印到标准输出?在当前目录下查询以.txt的文件,并删除?
        find ./ -type f -perm 654 -print
        find ./ -type f -name "*.txt" |xargs rm -rf


22.        set_uid ,set_gid .stacky_bit的权限详细说明?
        set_uid:设置在属主位user,只作用于二进制可执行程序对目录无效和文件无效,任何人都可以以拥有者的权限来执行该程序,大写S表示本身无x权限,小s表示本身有x权限
        set_gid:设置在属组位group,即作用于二进制可执行程序又可以作用于目录,任何人都拥有group权限
        stacky_bit:设置在其他人位other,只作用于目录对二进制文件无效,


23.        Shell脚本练习,打印/etc/passswd文件中的uid这一段,排序。


24.        在/tmp/目录下,有如下文件,test.bak.bak.bak 1.bak,2.bak.bak.bak……bak 如何将.bak的后缀去掉,请编写shell脚本实现。(此题稍微有点难度)


25.        请详细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字。
10 31 53 77 105 141 .....


26.
分别统计,默认shell 各有多少用户,别分别列出用户:
格式:
/bin/bash :  3users   user1 user2 user3
/sbin/nologin
/sbin/halt
/bin/sync
/sbin/shutdown

shell还不会,没有学过。有错的地方请指正{:4_99:}



0

l5211314121

赞同来自:

66666
0

赞同来自:


小马哥,帮我改作业
0

l5211314121

赞同来自:

彭 发表于 2015-3-21 19:42
小马哥,帮我改作业

{:6_155:} 水平太低,看不懂。。
0

l5211314121

赞同来自:

彭 发表于 2015-3-21 19:42
小马哥,帮我改作业

{:6_155:} 水平太低,看不懂。。
0

hangtiangazi

赞同来自:

本帖最后由 hangtiangazi 于 2015-3-21 21:45 编辑
彭 发表于 2015-3-21 18:36
1.        两种配置ip地址的方式?(静态和动态)
静态配置ip地址编辑的配置文件?以及里面的重要参数。
...

2 不是CentOS-Base.repo这个文件,是CentOS-Media.repo这个文件。
6.rpm -qa |grep rpm包
rpm -q  ”rpm包”
16 /etc/sysconfig/network 这个文件
0

hangtiangazi

赞同来自:

本帖最后由 hangtiangazi 于 2015-3-21 22:03 编辑

答案。。。[url=]附件[/url]
0

九月微寒

赞同来自:

第24题,也许我想的过于复杂了。。。求更简便方式。。shell 数组不熟,临时翻的资料,花费约一小时。。。。好长 。。。
  1. #!/bin/bash
  2. #在指定目录下,test.bak.bak.bak 1.bak,2.bak.bak.bak……bak 如何将.bak的后缀去掉。.

  3. dirname=$1                                 #获取制定目录参数,参数必须以/结尾,例/tmp/
  4. let a=0
  5. let b=0
  6. for FILE in $(ls $dirname| grep bak);do                        #获取带有bak的文件名
  7. var[$a]=$FILE
  8. let a++
  9. done
  10. length=${#var[*]}                                        #获取数组长度
  11. for NEWFILE in $(ls $dirname |grep bak | sed 's/bak//g');do #获取带有bak的文件名并删除bak
  12. new[$b]=$NEWFILE
  13. let b++
  14. done
  15. for ((i=0;i < $length;i++));do
  16. if [ -f $dirname${var[$i]} ];then   #检查是否为普通文件类型
  17. echo 重命名$dirname${var[$i]}为$dirname${new[$i]}。
  18. mv -f $dirname${var[$i]} $dirname${new[$i]}
  19. fi
  20. done





0

hangtiangazi

赞同来自:

本帖最后由 hangtiangazi 于 2015-3-22 09:02 编辑
九月微寒 发表于 2015-3-22 01:37
第24题,也许我想的过于复杂了。。。求更简便方式。。shell 数组不熟,临时翻的资料,花费约一小时。。。。 ...

第13行代码 应该改为这个
new[$b]=$dirname$NEWFILE
下面的相同 ,在bash中都要指出文件的决定路径,不论是条件,循环都是这样的。下面是我写的代码:感觉想的也是复杂了一些,也用到了数组
  1. #!/bin/bash
  2. #test by gxw
  3. cd  /tmp/
  4. number=`ls -l|grep -'^-'|wc -l`#有多少个文件
  5. filename=(`awk '{print $9}`)//获取的所有的文件的名字
  6. length=0//记录文件名最多有几部分组成
  7. for i in `seq 1 $number`;do
  8.         file$i=(`awk -F :'{for (j=1;j<=NF;i++)  print $j }' $filename`)
  9.         len=${#file$i[@]}
  10.         if [ $len -gt $length ];then
  11.                 length=len
  12.         fi
  13. done
  14. recyclenum=$[$length-1]
  15. for k in `seq 1  $recyclenum`;do
  16.      find /root/ -name "*.bak" –exec –i mv {} * \ ;
  17. done

0

九月微寒

赞同来自:

26题  passwd 和脚本在同一目录。
  1. #!/bin/bash
  2. #sum how man user for the shell

  3. I=0
  4. for file in $(cat passwd |cut -d : -f 7 | sort |uniq );do
  5. shellname[$I]=$file
  6. let I++
  7. done
  8. length=${#shellname[*]}
  9. echo 登陆SHELL  用户名
  10. for ((i=0;i < $length;i++));do
  11. echo ${shellname[$i]}"  " $(cat passwd | grep ${shellname[$i]}|cut -d : -f 1)
  12. done



0

SweetSmile

赞同来自:

九月微寒 发表于 2015-3-22 14:17
26题  passwd 和脚本在同一目录。

我不怎么会脚本,这是我写的0.0
#!/bin/bash
#
c=$(awk -F ":" '{print $7}' /etc/passwd| sort | uniq)
for z in $c
do
d=$(grep "$z" /etc/passwd |awk -F ":" '{print $1}')
echo -n "$z :"
echo $d
done
0

hangtiangazi

赞同来自:

hangtiangazi 发表于 2015-3-22 09:00
第13行代码 应该改为这个
new[$b]=$dirname$NEWFILE
下面的相同 ,在bash中都要指出文件的决定路径,不 ...

这个问题想复杂了。当初我也想复杂了,可以通过这么一条命令来是实现
#!/bin/bash
dirname=$1
cd $1
find . -name "*.bak" -type d |sed 's#.bak##g'
我总想着用数组去做,到头来是越做越麻烦
0

hangtiangazi

赞同来自:

SweetSmile 发表于 2015-3-22 16:37
我不怎么会脚本,这是我写的0.0
#!/bin/bash
#

继续加油啊!
0

hangtiangazi

赞同来自:

九月微寒 发表于 2015-3-22 14:17
26题  passwd 和脚本在同一目录。

你数组用的很好呀。。
0

九月微寒

赞同来自:

hangtiangazi 发表于 2015-3-23 09:00
这个问题想复杂了。当初我也想复杂了,可以通过这么一条命令来是实现
#!/bin/bash
dirname=$1

仅仅这条命令不够!
find 只是将符合条件的文件或目录输出到屏幕,而这里的sed作用与find输出的内容,但并没有修改实际文件!
这和我脚本里第二个数组的赋值是一个意思。
0

hangtiangazi

赞同来自:

那就在sed里面加一个-i选项
0

去疾

赞同来自:

铭哥辛苦
0

qq20847697

赞同来自:

本帖最后由 qq20847697 于 2015-3-30 11:14 编辑

24. 在/tmp/目录下,有如下文件,test.bak.bak.bak 1.bak,2.bak.bak.bak……bak 如何将.bak的后缀去掉,请编写shell脚本实现。(此题稍微有点难度)

你们写的数组我看不懂,我写个简单的,貌似也可以,不过不知道有什么缺陷,望批评指正
#!/bin/bash
cd /tmp
filename=`ls /tmp | grep '.bak'`
for i in $filename ; do
  newfilename=`ls $i | sed 's/.bak//g'`
  mv $i $newfilename
done

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: