Linux习题集(常用命令和shell)

   这是在网上到的Linux习题集,包含了常见命令,挺齐全的,这里给大家分享下。有答案哦!!!(部分命令有解释)

   

一、命令部分

1.新建一个用户user,密码设为123456,并将其加到root组。写出所用命令。

useradd -g root user

passwd user

2.将当前计算机的IP地址设为192.168.1.123,子网掩码为255.255.255.0。写出所用命令。

Ifconfig eth0 192.168.1.123 netmask 255.255.255.0

3.你是公司的Linux服务的管理员。你使用vi编缉/etc/inittab文件时,在命令模式下查询shutdown字符串,使用的命令。

/shutdown

4.显示当前系统的日期和时间命令。

date

5.查看命令sort的帮助文件,写出所用命令。

man sort

或者sort --help

6.统计/etc/passwd文件的字节数和行数,写出所用命令。

wc -lc /etc/passwd

7.分屏显示/etc/httpd/conf/httpd.conf文件的命令。

more /etc/httpd/conf/httpd.conf

8.将hello!写入 /home/wang/test.txt的命令(vi及vim编辑器除外)。

mkdir  /home/wang
echo hello!>> home/wang/test.txt


9.让named守护进程运行在级别3,5的命令。

init 3

init 5

10.更改用户zhang的登录shell为/sbin/nologin的命令。

usermod -s  /sbin/nologin zhang

或者 vim /etc/passwd 找到zhang的那一行,将最后一个字段改为/sbin/nologin

11.查看当前linux服务器的主机名的命令。
hostname


12.查看当前主机的路由的命令。

route

 



13.配置当前主机的默认网关为192.168.2.254的命令。

route add gw 192.168.2.254

14.连续ping目的IP为192.168.248.2为10次的的命令。

ping -c 10 192.168.248.2



15.查看当前主机TCP协议连接情况的命令。

netstat -at

16.打包并压缩/etc目录的命令。

tar -jcvf  /home/seed/etc.tar.bz2  /etc

-j bz2压缩,最后的后缀名为bz2

  -c 创建文件

  -v 显示打包过程

  -f 文档名)

17.测试httpd是否安装的命令。

dpkg -s httpd

(ubuntu 12.04)


18.卸载named软件包的命令。

rpt-get remove named

(ubuntu 12.04,未删除配置文件)

19.查看月历并将内容追加到文件/dd中的命令。
cal 2016 >>/dd


20.查看当前目录的命令。
pwd


21.显示历史命令表的所有内容的命令。

history

22.将/etc/passwd的内容追加到文件aaa中的命令。
cat  /etc/passwd >>/aaa


23.查看/etc/passwd文件的前10行的命令。

head -n 10 /etc/passwd

24.查看/etc/vsftpd/vsftpd.conf的后10行的命令。

tail -10 /etc/vsftpd/vsftpd.conf

25.重启samba服务的命令。
service sam restart


26.查看进程状态的命令。
ps -aux


27.列出后台作业的命令。
jobs  -l


#28.将作业ID为5的后台作业放到前台的命令。

29.停止ssh服务的命令。
service sshd stop

 
30.将name=wxstc配置为全局变量的命令。

export name=wxstc

31.重启linux服务器的命令。
shutdown -r now


32.要给文件file1加上其他人可执行属性的命令。
chmod o+x file1
33.为了达到使文件sudent.txt的所有者有读(r)和写(w)的许可,而其他用户只能进行只读访问的命令。
chmod 644 sudent.txt


34.把大写字母转换为小写字母的命令。

tr A-Z a-z <原来的文件>  新的文件   

<>这个符号不能省略

35.显示操作系统核心版本详细信息的命令。

cname -a

36.将新建文件权限设置为600的命令。
chmod 600 文件名
37.从IP地址查找域名或从域名来查找IP地址应使用什么命令。

host ip;

host 域名

38.如何查看用户zhang属于哪个组。

groups zhang

39.假如当前系统是在 level 3 运行,不重启系统就可转换到 level 5 运行的命令。

telinit 5

40.查看Linux的启动信息的命令。
chkconfig --list;


41.创建一个以自己姓的拼音缩写为名的用户。

useradd ozc

42.进入用户主目录,显示当前的路径。

cd ~

pwd

43.复制文件/etc/group到用户主目录,文件名不变。

cp /etc/group  ~

44.统计文件/etc/fstab的行数、单词数、字符数。

wc -l -w -m /etc/fstab

(用man wc可以查看使用详情)

45.查看/etc/passwd文件的后5行。
tail -5 /etc/passwd


46.创建普通文件/home/abc。

touch /home/abc

47.修改/home/abc的属性为:属主具有一切权限,同组用户和其他用户具有可读可写的权限。

chmod 766 /home/abc

48. 显示当前的时间。

date

49. 写出系统1分钟后关机的命令。
shutdown 1


50. 启动ssh服务器。
service sshd start


51.新建一个以你的学号为账号的用户。

Useradd 0906130225

52.复制文件/etc/passwd到用户主目录,文件名不变

cp  /etc/passwd  $HOME


53.进入用户主目录,显示当前的路径。

cd $HOME

pwd

54.统计文件/etc/passwd的行数。

wc -l /etc/passwd

55.查看/etc/passwd的前8行。

head -8 /etc/passwd

56.显示2011年1月的日历。

cal 1 2011

月份放在前面

57.建立文件/etc/group的符号链接文件/root/abc。

ln -s etc/group /root/abc

如果要强制删除已经存在的文件的话,要加参数-f

58.后台启动程序gedit。
gedit &


59.配置网卡eth0的IP地址为192.168.0.1,子网掩码为255.255.255.0
ifconfig eth0 192.168.0.1 netmask 255.255.255.0

 


60.查看dns服务器的状态。

pstree |grep named

或者是

ps -A |grep named

61.创建一个以自己的姓的拼音命名的用户。

useradd ozc

62.添加一个用户组,名称为wuxi。
groupadd wuxi


63.修改新建的用户属于wuxi组。

usermod -g wuxi ozc

64.复制文件/etc/passwd到用户主目录,文件名称不变。

cp /etc/passwd $HOME

65.修改该文件的属性为:属主具有一切权限,同组用户和其他用户具有可读权限。

chmod 744 文件名

66.显示当前系统时间。

date

67.写出30分钟后系统重启的命令。
shutdown -r 30


68.显示历史命令表的所有内容。

history

69.显示Linux系统运行所有进程。

ps -A

70.重新启动ssh服务器。

service sshd restart

71.创建一个以自己的名的拼音命名的用户。

useradd ozc

72.添加一个用户组,名称为js。

groupadd js

73.修改新建的用户属于js组。
usermod -g js ozc


74.进入该用户主目录,显示当前的路径。

cd $HOME

pwd

75.复制文件/etc/fstab到此文件夹,文件名称不变。

cp /etc/fstab ~

76.统计文件/etc/fstab的字符数。
wc -c /etc/fstab


77.设置当前时间设为15:00,显示当前系统时间。
date -s 15:00

date -s 2016-5-17 21:17  (修改系统时间)

(最后要用clock -w 写入时间)

date


78.写出系统5分钟后重启的命令。

shutdown -r 5

79.配置网卡eth0的IP地址为192.168.10.1,子网掩码为255.255.255.0

ifconfig eth0 192.168.10.1 netmask 255.255.255.0


80.查看DHCP服务器的状态。
sercive dhcpd status
 

二、操作题

1. 某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:

(1)在下午4 :50删除/abc目录下的全部子目录和全部文件;

  at  16:50

  rm -rf /abc/*

  (rm -rf /abc 的话会连abc目录页删除)


(2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内。

crontab -e   (进入文本编辑模式)
 0 8-18 * * * cat /xyz/x1 | cut -d :-f 1 >/backup/bak01.txt 如果是:号为分割符的话

:wq


 

 

5.编写一个名为mul的脚本程序,参数为一个大于20的正整数。先检查参数是否符合要求。如果不符合要求,请给出提示;如果符合要求,分别输出其与1到10的乘积。
#!/bin/bash

if [ $1 -gt  20 ] ;

  Then

  s=0

  for ((i=1;i<=10;i=i+1))

  do

  s=$(($1*$1))

  echo -e $s\n

  done  

else

   echo  Error input!
fi 

(注意:if [ $1 -gt  20 ] 不能写成 if [ $1< 20 ] ,因为<是字符串的比较,而-gt是数字大小的比较,如果用<的话,输如比20小的数还是会计算结果的)

在终端输入 sh mul.sh 34 sh mul.sh 19就可以看到两种结果



6.编写一个名为move的脚本程序,格式move  file1 file2  。如果file1不存在,给出提示;否则移动file1至file2。

#!/bin/bash

test ! -e $1 && echo -e file1 not exist! || mv $1 $2


 

7.编写一个shell脚本,能够显示下面序列的前25个数字。0,1,1,2,3,5,8,13…,前二个数字之和为第三个数字,即著名的Fibonacci序列。
#!/bin/bash

num1=0

num2=1

echo -e $num1\n$num2

for ((i=3;i<=25;i=i+1)

do

num=$(($num1+num2))

num2=$(($num))

num1=$(($num2)

echo $num

done

你可能感兴趣的:(linux,shell)