linux命令范围
文件管理
?目录操作
?ls 浏览目录(-l i a F)
?cd 进入目录
?pwd 显示当前目录
?mkdir 新建目录(-m p)
?rmdir 删除目录(- p)
?文件操作
?touch 新建文件
?ln 新建链接文件(-s)
?cp 复制文件(-i f l R)
?mv 移动(重命名)文件(-i f v u)
?rm 删除文件(-i f v r)
?显示文件内容:
?cat
?more 可向后翻页
?less 前后翻页
?cut 选择文件部分内容输出:(-c f)
?查找文件
?find 按名字查找(-name、-user 、-size 、
-type)
?locate 按名字查找
?grep 在多文件里查找指定的字符串(会配合管道使用)
?chmod 设置文件权限(文字设定法、数字
设定法)
?wc 统计字数、行数(-c w l)
登录退出
?login
?exit
?halt
?shutdown
用户管理
?who 显示目前登入系统的用户信息
?passwd 设置密码
?useradd、usermod、userdel(熟悉/etc/passwd
文件内容)
?su 转换身份
磁盘管理
?tar 打包、压缩处理(-c x v f j z)?mount 挂载磁盘(-t)umount
?fdisk、mkfs
?apt-get
?df 检查文件系统的磁盘空间占
用情况
进程管理
?ps、top 查看进程(ps:-l a
x u top:)
?kill -9 进程号终止进程
?alias 设置命令别名date 查看、设置系
统时间clear清屏
选择
1.LINUX文件系统的目录结构是一棵倒挂的
树,文件都按其作用分门别类地放在相关的目录
中。现有一个外部设备文件,我们应该将其放在
_________目录中。
A./bin B./etc C./dev D.lib
2.ls –al 命令列出下面的文件列表,问那一个文
件是符号连接文件。()
A.-rw------- 2 hel-s users 56 Sep 09 11:05 hello
B.-rw------- 2 hel-s users 56 Sep 09 11:05 goodbey
C.drwx----- 1 hel users 1024 Sep 10 08:10 zhang
D.lrwx----- 1 hel users 2024 Sep 12 08:12 cheng
3. 所有的LINUX文件和目录都具有拥有权和许
可权,现在我们有一名为fido的文件,并用chmod 551 fido 对其进行了许可权的修改,我们用ls –al
查看到如下的几个文件许可权信息,问那一个文件
的许可权是fido文件的。()
A.–rwxr-xr-x B.-rwxr—r-- C.-r—r—r-- D.-r-xr
4.下列那一个指令可以用来列出目录的内容?
(1) ls
(2) ps
(3) rm
(4) del
解答:(1)
5.下列那一个指令可以用来显示档案的内容?
(1) ps
(2) rm
(3) cd
(4) cat
解答:(4)
6.下列那一个指令可以切换目录?
(1) ps
(2) ls
(3) cd
(4) rm
解答:(3)
7.下列那一个指令可以清除屏幕? (1) cls
(2) clear
(3) check
(4) put
解答:(2)
8.下列那一个指令可以显示目前的路径?
(1) show
(2) cd
(3) pwd
(4) more
解答:(3)
9.下列那一个指令无法用来分页显示档案内容?
(1) more
(2) less
(3) cat file | more
(4) ps
解答:(4)
10.下列那一个指令可以拷贝档案?
(1) rm
(2) cd
(3) talk
(4) cp
解答:(4)
11.下列那一个指令可以开设空目录?
(1) mk
(2) dir
(3) rmdir
(4) mkdir
解答:(4)
12.下列那一个指令可以在档案中搜寻关键词?
(1) ps
(2) cat
(3) more
(4) grep
解答:(4)
13.下列那一个指令可以删除空目录?
(1) rmdir
(2) more
(3) cp
(4) cls
解答:(1)
14.下列那一个指令可以删除档案?
(1) cp
(2) mkdir
(3) rm
(4) rmdir
解答:(3)
15.下列那一个指令可以开启一个空文档?
(1) rm
(2) pwd
(3) more
(4) touch
解答:(4)
16.下列那一个指令可以变更系统时间?
(1) time
(2) date
(3) clock
(4) settime
解答:(2)
17.下列那一个指令可以新增使用者账号?
(1) adduser
(2) newuser
(3) getuser
(4) nuser
解答:(1)
18.下列那一个指令可以设定使用者的密码?
(1) pwd
(2) newpwd
(3) passwd
(4) password
解答:(3)
19.下列那一个指令可以切换使用者身份?
(1) passwd
(2) log
(3) who
(4) su
解答:(4)
20.下列那一个指令可以显示磁盘剩余空间?
(1) dd
(2) df
(3) dw
(4) du
解答:(2)
21.下列那一个指令可以用来搜寻档案?
(1) find
(2) ffind
(3) fwhere
(4) fwho
解答:(1)
22.下列那一个指令可以用来挂载档案系统?
(1) munt
(2) mount
(3) unmount
(4) umont
解答:(2)
23.下列那一个指令可以用来卸载档案系统?
(1) umount
(2) unmount
(3) mount
(4) umont
解答:(1)
24.下列那一个指令可以用来显示记忆中行程的
活动?
(1) ds
(2) ps
(3) as
(4) ms
解答:(2)
25.下列那一个指令可以用来将某一个目录打包
成一个档案?
(1) tar
(2) cheese
(3) quee
(4) wzip
解答:(1)
26.下列那一个指令可以用来改变档案目录的权
限属性
(1) chown
(2) chmod
(3) chsh
(4) chpwd
解答:(2)
27.下列那一个指令可以用来查看登录的用户有
哪些?
(1) whom
(2) who
(3) whoami
(4) ww
解答:(2)
28.下列那一个指令可以用来查看系统负载情形
(1) w
(2) who
(3) load
(4) ps
解答:(1)
29.下列那一个指令可以用来显示使用者自己是
什么身份?
(1) ps
(2) whoami
(3) who
(4) w
解答:(2)
30.下列那一个指令可以用来查看程序执行的情
形和内存?
(1) top
(2) free
(3) showps
(4) memrun
解答:(1)
31.下列那一个指令可以用来关机?
(1) poweroff
(2) shutdown
(3) reboot
(4) closeboot
解答:(2)
32.bash 是指一种?
(1) shell
(2) batch command
(3) cgi
(4) asp
解答:(1)
33.档案权限755 , 对档案拥有者而言, 何义?
(1) 可读,可执行, 可写入
(2) 可读
(3) 可读,可执行
(4) 可写入
解答:(1)
34.目录权限711 , 对其它人(非目录拥有者)而
言, 何义?
(1) 可执行
(2) 可进入
(3) 可读,可执行
(4) 可写入
解答:(2)
35.rw-rw-rw- 的权限属性, 用八进制数字系统,
如何表示? (1) 555
(2) 444
(3) 777
(4) 666
解答:(4)
36.rw-r----x 的权限属性, 用八进制数字系统, 如
何表示?
(1) 641
(2) 341
(3) 541
(4) 441
解答:(1)
37.lilo 程序是?
(1) 查看开机的程序
(2) 一种安装核心加载,开机管理的程序
(3) 关机程序
(4) 网络除错程序
解答:(2)
38.vi 是?
(1) 一种编辑程序
(2) 一种设定接口
(3) 一种绘图程序
(4) 一种MP3拨放程序
解答:(1)
39.下列那一个指令可以用来移动或更名现有的
档案或目录?
(1) rename
(2) rm
(3) mv
(4) cp
解答:(3)
40.rm -Rf /home/sample 这个指令何义?
(1) 将/home/sample 中的档案删除
(2) 将/home/sample 目录立即删除
(3) 将/home/sample 目录备份
(4) 将/home/sample 这个目录移走
解答:(2)
41.mount /mnt/cdrom 是指?
(1) 挂上软盘
(2) 挂上硬盘
(3) 挂上光盘
(4) 挂上刻录机
解答:(3)
42.shutdown -r now 这个指令的用途?
(1) 关机
(2) 重新开机
(3) 使主机离开网络
(4) 射掉系统
解答:(2)
43./etc/passwd 这个档案的用途?
(1) 使用者密码文件
(2) 使用者quota檔
(3) 使用者邮件设定档
(4) 使用者登入设定档
解答:(1)
44./etc/passwd 这个档案中的每一列都是一笔记
录,该笔记录共有多少个字段?
(1) 4
(2) 5
(3) 6
(4) 7
解答:(4)
45.下列那一个不是转向(file redirection)的符号?
(1) >
(2) <
(3) >>
(4) /
解答:(4)
46.所谓管线(pipe line) | 是指?
(1) 将一个程序的输出作为某一个程序的输入
(2) 资料流
(3) I/O buffer
(4) memory buffer
解答:(1)
47.通常第一颗IDE硬盘的第一个分割区用下列
何者来表示?
(1) had
(2) hda1
(3) sda
(4) sda1
解答:(2)
48.下列何者代表第一颗IDE硬盘的第一个
logical partition?
(1) hda1
(2) hda2
(3) sda1
(4) hda5
解答:(4) 49.进入X window 的指令为?
(1) x
(2) start
(3) run x
(4) startx
解答:(4)
50./etc 这个目录的主要作用?
(1) 存放执行档
(2) 存放函式库
(3) 存放设定档
(4) 存放邮件档
解答:(3)
51./home 这个目录通常的主要作用为?
(1) 存放执行档
(2) 存放函式库
(3) 存放设定档
(4) 存放使用者的自家目录
解答:(4)
52.cd - 这个指令的用途是?
(1) 切换到自家目录
(2) 离线
(3) 回到先前的路径位置
(4) 回到上一层目录
解答:(3)
53.cd ~ 这个指令的用途是?
(1) 切换到自家目录
(2) 离线
(3) 回到先前的路径位置
(4) 回到上一层目录
解答:(1)
54.cd .. 这个指令的用途是?
(1) 切换到自家目录
(2) 离线
(3) 回到先前的路径位置
(4) 回到上一层目录
解答:(4)
55.date 0512******** 何义?
(1) 设定系统时间为2001-05-12 12:04
(2) 设定系统时间为2001-12-05 12:04
(3) 设定系统时间为2001-12-05 04:12
(4) 设定系统时间为2001-12-04 12:05
解答:(1)
56.下列那一个指令无法让使用者离线注销?
(1) exit
(2) CTRL+D (3) logout (4) top 解答:(4) 57.
/etc/passwd 中的 'root' 记录, 变成 'Root' 名称, 通常意谓着? (1) 权限变大 (2) 系统升级所致 (3) 可能被入侵了 (4) 没关系啦 解答:(3) 58.
哪个命令可以将普通用户转换成超级用户( D )
A. super
B. passwd
C. tar
D. su 59.
除非特别指定,cp 假定要拷贝的文件在下面哪个目录下( D )
A. 用户目录
B. home 目录
C. root 目录
D. 当前目录
60.
用下面哪个命令可以不用退出vi 编辑器来切换文件( A )
A. :n
B. set command
C. map command
D. export
command
比如:e ./b.c ,将加载b.c 文件到vi 编辑器中 61.
哪个命令用来显示/home 及其子目录下文件名( b )
A. ls -R /home
B. ls -d /home
C. ls -a
/home D. ls -l /home 62.
在一行内运行多个命令需要用什么字符隔开( C )
A. @
B. $
C. ;
D. * 63.
确定myfile 的文件类型的命令是( B )
A. whatis myfile
B. file myfile
C. type myfile
D. type -q myfile 64.
哪些命令组合起来能统计多少用户登录系统( BD )
A. who | wc –w
B. who | wc –l
C. who | wc –c
D. who | wc 65.
用 "rm -i",系统会提示什么来让你确认
( B )
A. 命令行的每个选项
B. 是否真的删除
C. 是否有写的权限
D. 文件的位置
66.用"useradd jerry"命令添加一个用户,这个用户的主目录是什么?( C )
A. /etc/jerry
B. /var/jerry
C. /home/jerry
D. /bin/jerry
67.哪一个命令能用来删除当前目录及其子目录下名为'core'的文件( A )
A. find . -name core -exec rm {} \ ;
B. find . -name core -exec rm ;
C. find . -name core -exec rm {} ;
D. find . -name core -exec rm {} -;
命令功能解释
重定向题目 ●
find /home -name "*csv" > csv.out
列出 home 目录下所有的 csv 文件并把结果保存到文件 csv.out 中 ●
cat /proc/meminfo >> sysinfo.out
获取系统内存使用信息并追加到文件 sysinfo.out
中
●
ls -aR /home/wei > /dev/null
如果不想看到某个命令执行的结果,可以这样将其丢弃 ●
cat data1.txt data2.txt >> all_data.txt
将data1.txt 和data2.txt 的内容合并到all_data.txt 文件中
●
如果不想让别人在网络上 ping 到自己
的机器,可以这么做
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
文件目录操作
●echo abcde > temp
输出字符串abcde到文件temp中
●chmod g+rw a.txt
为同组用户增加对文件a.txt的读写权限:
●cp -i data.txt bachup
将data.txt拷贝到backup目录中,如果有覆盖情况发生则询问用户。
●cp -R * bachup
将目前目录下的所有文件(含子目录)拷贝到backup目录中:
●cd ~
切换到用户根目录
●tar –xvf mytar.tar –C exa
解压mytar包到exa目录中
●tar –cvf mytar.tar *
当前目录所有文件打包成mytar.tar文件
●rm –rv foder
删除foder目录中的文件,包括子目录,同时显示过程
●chmod o+w my.txt
●chmod ug+w,o-w my.txt
●chmod +w my.txt
●chmod –R +w myfoder(-R子目录递
归处理)
●$grep 'kkk' ./*
搜索当前目录的含“kkk”字串的文件。
●Find –size -10c –type f
按大小搜索10字节内的普通文件
第二章课后练习题
写命令
●设当前目录下有一文件filea,写一个命令判断该文件是不是
字符设备文件
●设user用户的主目录下的有一文件ufile,写一个命令
将其拷贝到/root目录下。
●ls命令的-l, -a的含义是什么? 用ls命令以时间排序列出文
件及目录.
答: –l的含义为使用较长格式列出信息.-a的含义是不隐藏任何
以. 字符开始的项目.以时间排序的命令是ls –l –s –t, 或者ls
–lst
●练习cat, less, more命令, 并简述其区别.
答: less跟cat的区别是less是分屏显示. more跟less的区别是
more不能用上箭头键回选, 翻到最后自动退出. cat不管文件多大, 全部显示, 自动退出.
●cd-, cd, .. , . 命令各完成什么功能?
答: cd命令使用户当前目录回归到用户的家目录.cd -命令使用户
回到上一次他所在的目录.
●将/var/log目录下所有文件打包压缩, 拷贝到U盘.
答: 使用下面的指令序列:
tar cvf /var/log/* dest.tar .
gzip dest.tar
ls –lh dest.tar.gz cp dest.tar.gz /dev/sdc
#解压过程如下
gunzip dest.tar.gz #解压但不拆包gzip dest.tar #再次压缩
tar xvfz dest.tar.gz #解压
●使用cp命令备份你的/boot/grub/menu.lst文件.
答: cp /boot/grub/menu.lst ./menu.bak.lst
●10. fdisk, cfdisk查看硬盘分区信息.
答: sudo fdisk –l
sudo cfdisk
查看各个分区的占用率还可以使用df命令.
●11. 如何查看系统中那些占有cpu较多的进程?
答: 命令top
●12. 如何强行杀死系统中不要的进程.
答: 先使用top或ps命令找出我们想要杀掉的进程的PID, 然后使用kill [PID]
第二种方法, 如果我们知道进程名, 我们使用pkill [进程名]杀掉该进程.
第三种方法, 输入xkill命令, 然后让鼠标的小x选中窗口来杀掉该进程
●16. user1执行sudo passwd命令, 更改的是哪个用户的密码?
答: 修改的是自己的密码. 用户执行passwd的时候不需要有sudo 来提升权限, 因为用户有权限修改自己的口令. 如果要修改其他人的口令, 则必须拥有超级用户的权限, 并且要制定被重设密码的用户的用户名. 例如: sudo passwd sam
●17. user1执行sudo mount命令, 需要输入哪个用户的密码才
能执行?
答: 输入的是user1的密码.
●18. ls –l /bin/ls, 查看并简单描述-rwxr-xr-x的含义.
答: 开头的第一个字母, 如果是-说明是一个文件,开头是d说明是一个文件夹. 在这里可以看出这是一个非目录.
r代表读, w代表写, x代表执行. 对于文件来讲x代表可执行, 对于目录来讲x代表目录可以进入.
头第二个到第五个字母代表主人的权限, 中间三个代表用户组的权限, 后三个代表其他用户的权限.
详解如下, 主人可以读, 可写, 可执行, 用户组可读, 不可写, 可执行, 其他用户可读, 不可写, 可执行.
●查看某年某月某日是星期几
比如我要查看2008年5月22日是星期几,用cal来查看
cat 5 2008 显示2008年5月的日历
您是否发现命令行操作比图形界面浏览查看要快多了呢?
● 6 用最简单命令杀死一个进程
以前为了结束一个进程通常是ps -aux | grep xxx
然后再查看该进程的ID,最后是kill 进程ID。
如果你管道用的很熟,awk又会用一点,则有可能打下如此拉风的命令
ps ax | grep firefox | grep -v grep | awk '{ print $1 }' | xargs kill -9
其实你没必要使用那么多的管道加awk,有个很简单的命令pkill
执行pkill -9 firefox 就终结firefox进程。
●分屏显示计算机中所有进程。(显示所有进程命令ps -aux,
分屏显示命令more)
pa -aux|more
●新建文件夹/newdir。复制/etc/passwd文件为/newdir/pass1,
复制/etc/group文件为/newdir/group。
(mkdir /root/newdir cp /etc/passwd /root/newdir/pass1)
(mkdir /root/newdir cat /etc/passwd > /newdir/pass1)
●使用通配符删除/new下的所有文件。
Rm -r /new*
●将/etc目录中所有以―pa‖开头的文件输出到文件
/newdir/etcpa中。
Cat /etc/pa* > /root/newdir/etcpa
●将现在计算机中的所有进程的信息输出到文件/newdir/etcpa
末尾。
Ps -aux >> /newdir/etcpa
●切换到用户root的主目录中。Cd ~
●切换到根目录。Cd /
●切换到home文件夹。Cd /home
●切换到上一级目录。Cd ..
●查看现在的工作目录。pwd
●查看当前工作目录中有哪些文件。ll
●查看/root目录中有哪些文件。ll /root ●以长列表的方式列出/root目录中的所有文件。(Ls -l) ( ls -l
-a) (ls -la)
●复制/home文件夹到/newdir中。Cp /home /root/newdir
●新建/newdir/other目录。移动/newdir/所有文件到该目录中。
移动/newdir/home文件夹到该目录中。Mkdir /newdir/other mv /newdir/* /newdir/home
●将/newdir/other/pass1重命名为passwd。
Mv /root/newdir/other/pass1 /root/newdir/other/passwd
●新建文件夹/q/w/e/r/t。mkidr -p /q/w/e/r/t
●新建文件夹/a/s/d/f/g,使其权限为:root用户可以读写执行,
root组其他用户可以读写,其他多有用户只可以读。Mkidr -qm 764 /a/s/d/f/g
●使用不超过两条命令删除文件夹/q/w/e/r/t中的下三级目录。
Rm -rf /q/w/e
●删除文件夹/q中的w目录。Rm -rf /q/w
●删除文件夹/newdir。Rm -rf /root/newdir
●在/etc/目录中查找文件passwd。Find /etc/passwd
●查看/etc/passwd文件的内容。Cat /etc/passwd
●分屏查看/etc/passwd文件的内容。
(Cat /etc/passwd | more)
(Cat /etc/passwd | less 用Q可以退出的)
●将整个/etc 目录下的文件全部打包成为
/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc
tar -zcvf /tmp/etc.tar.gz /etc
tar -jcvf /tmp/etc.tar.bz2 /etc
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用
.tar 来作为辨识.
# 如果加z 参数,则以.tar.gz 或.tgz 来代表gzip 压缩过的tar file ~
# 如果加j 参数,则以.tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定.
●/tmp/etc.tar.gz 文件内有哪些文件?
tar -ztvf /tmp/etc.tar.gz
# 由於我们使用gzip 压缩,所以要查阅该tar file
内的文件时就得要加上z 这个参数了!
●将/tmp/etc.tar.gz 文件解压缩在/usr/local/src
底下
cd /usr/local/src
tar -zxvf /tmp/etc.tar.gz
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
我先将工作目录变换到/usr/local/src 底下,并
且解开/tmp/etc.tar.gz,则解开的目录会在
/usr/local/src/etc 呢!另外,如果进入/usr/local/src/etc
则会发现,该目录下的文件属性与/etc/ 可能会有所不
同!在/tmp 底下,我只想要将/tmp/etc.tar.gz 内的
etc/passwd 解开而已
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd
#透过tar -ztvf 来查阅tarfile 内的文件名称,如果单只要一个文件,就可以透过这个方式来下达!
注意到! etc.tar.gz 内的根目录/ 是被拿掉了!
●将/etc/ 内的所有文件备份下来,并且保存其权限!
tar -zxvpf /tmp/etc.tar.gz /etc
# 这个-p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
●在/home 当中,比2005/06/01 新的文件才备份
tar -N '2005/06/01' -zcvf home.tar.gz /home
●要备份/home, /etc ,但不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
●将/etc/ 打包后直接解开在/tmp 底下,而不产生
文件!
cd /tmp
tar -cvf - /etc | tar -xvf -
# 这个动作有点像是cp -r /etc /tmp 要注意的地方在於输出档变成- 而输入档也变成- ,又有一个| 存在~,这分别代表standard output, standard input 与管线命令,
Vi编辑器的常用命令
1. 请在/tmp 这个目录下建立一个名为vitest 的目录;
2. 进入vitest 这个目录当中;
3. 将/etc/passwd 拷贝到本目录底下
4. 使用vi 开启本目录下的passwd 这个文件;
5. 在vi 中设定一下行号;
6. 移动到第20 行,向右移动20 个字符
7. 移动到第一行,并且向下搜寻一下“backups”这个字符
串,请问他在第几行?
8. 接着下来,我要将10 到20 行之间的bin 改为BIN,
并且一个一个挑选是否需要修改,如何下达指令?
9. 修改完之后,突然反悔了,要全部复原,有哪些方法?
10. 我要复制10 到20 行这十行的内容,并且贴到最后一
行之后;
11. 删除10 到20 行之间的20 行;
12. 将这个文件另存成一个passwdback的文件;
13. 到第20 行,并且删除15 个字符;
14. 储存后离开
1. mkdir /tmp/vitest
2. cd /tmp/vitest
3. cp /etc/man.config .
4. vi man.config
5. :set nu
6. 先按下:20 再按下20→
7. 先执行:1 或gg 后,直接输入/backups
8. 直接执行:10,20s/bin/BIN/gc 即可
9. (1)简单的方法可以一直按u 恢复到原始状态,(2)使用不储存离开:q! 之后,再重新读取一次该文件;
10. :10 然后再10yy 之后按下G 到最后一行,再p粘贴10行
11. :10之后,再给他10dd即可删除20 行了;
12. :w passwdback
13. :20之后,再给他15x 即可删除15 个字符;
14. :wq!
四.编程与应用题:
1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev 目录下。
参考程序:
#!/bin/sh
echo “Input file name:”
read FILENAME
if [ -c "$FILENAME" ]
then
cp $FILENAME /dev
fi
2.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。参考答案:
#!/bin/sh
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
i=$(($i+1))
done
3.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
参考程序:
#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i+1 ))
done
4.源数据存放在在主硬盘/home/user/ workdata中,用以存放用户工作数据文件
备份位置:主硬盘/home/user/下建立备份目录disk1backup;另一块硬盘挂载为/dev/disk2backup
备份操作要求:每天将源数据备份到两个位置,保留最近三次的备份文件,命名要求为worknewdata.tar、work2nddata.tar、work3rddata.tar。
涉及命令:ls,cd,mkdir,mount,cp,mv,rm,tar
5.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback 存放在/usr/bin目录下。
参考答案:
编写shell程序fileback:
#!/bin/sh
DIRNAME=`ls /root | grep bak`
if [ -z "$DIRNAME" ] ; then
mkdir /root/bak
cd /root/bak
fi
YY=`date +%y`
MM=`date +%m`
DD=`date +%d`
BACKETC=$YY$MM$DD_etc.tar.gz
tar zcvf $BACKETC /etc
echo "fileback finished!"
6.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
参考答案: 建立程序Pro16如下:
#!/bin/sh
i=1
while [ i -le 50 ]
do
if [ -d /userdata ];then
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i echo "user$i"
let i = i + 1 (或i=$(($i+1))
else
mkdir /userdata
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo "user$i"
let "i = i + 1" (或i=$(($i+1))
fi
done
7. 写一个checkuser脚本文件,脚本运行时带一个用户名作为参数,要求:命令行格式不符合要求,应有错误提示信息;在/etc/passwd文件中查找是否有该用户。
8. 编写一个名为iffile程序,它执行时判断/bin目录下date 文件是否存在?
9.判断用户是否已经在系统当中登陆
#! /bin/bash
if test $# -ne 1 then
echo "Incorrect number of arguments“
else
user=$1
if who | grep –q $user ; then
echo $1 "user is logged on."
exit 0
else
echo $1 "user is not logged on."
exit 1
fi
fi
10.将当前目录下的所有*.txt更名
#!/bin/bash
for file in *.txt
do
leftname=`basename $file .txt`
mv $file $leftname.doc
done