Linux里面if -s命令作用是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux里面if -s命令作用是啥?相关的知识,希望对你有一定的参考价值。

  字符串判断

str1 = str2      当两个串有相同内容、长度时为真

str1 != str2      当串str1和str2不等时为真

-n str1        当串的长度大于0时为真(串非空)

-z str1        当串的长度为0时为真(空串)

str1         当串str1为非空时为真

2、数字的判断

int1 -eq int2    两数相等为真

int1 -ne int2    两数不等为真

int1 -gt int2    int1大于int2为真

int1 -ge int2    int1大于等于int2为真

int1 -lt int2    int1小于int2为真

int1 -le int2    int1小于等于int2为真

3 文件的判断

-r file     用户可读为真

-w file     用户可写为真

-x file     用户可执行为真

-f file     文件为正规文件为真

-d file     文件为目录为真

-c file     文件为字符特殊文件为真

-b file     文件为块特殊文件为真

-s file     文件大小非0时为真

-t file     当文件描述符(默认为1)指定的设备为终端时为真

3、复杂逻辑判断

-a         与

-o       或

!        非

EXAMPLE:

[ -a FILE ] 如果 FILE 存在则为真。

[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。

[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。

[ -d FILE ] 如果 FILE 存在且是一个目录则为真。

[ -e FILE ] 如果 FILE 存在则为真。

[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。

[ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。

[ -h FILE ] 如果 FILE 存在且是一个符号连接则为真。

[ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。

[ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。

[ -r FILE ] 如果 FILE 存在且是可读的则为真。

[ -s FILE ] 如果 FILE 存在且大小不为0则为真。

[ -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。

[ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。

[ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。

[ -x FILE ] 如果 FILE 存在且是可执行的则为真。

[ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。

[ -G FILE ] 如果 FILE 存在且属有效用户组则为真。

[ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。

[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。

[ -S FILE ] 如果 FILE 存在且是一个套接字则为真。

[ FILE1 -nt FILE2 ] 如果 FILE1 has beewww.028x.cn#hanged more recently than FILE2, or 如果 FILE1 exists and FILE2 does not则为真。

[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。

[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

[ -o OPTIONNAME ] 如果 shell选项 “OPTIONNAME” 开启则为真。

[ -z STRING ] “STRING” 的长度为零则为真。

[ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。

[ STRING1 == STRING2 ] 如果2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。

[ STRING1 != STRING2 ] 如果字符串不相等则为真。
参考技术A 条件判断,比如 if -s file 当文件大小非0时为真。

Linux面试题

Linux面试题总结一下

 

一、有文件file1

 1、查询file1 里面空行的所在行号

 awk ‘{if($0~/^$/)print NR}’ file

 or

 grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’

 2、查询file1 以abc 结尾的行

 grep abc$ file1

 3、打印出file1 文件第1 到第3 行

 sed -n ’1,3p’ file1

 head -3 file1

 二、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1

 Iptables -A PREROUTING -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT

 –to-destination 10.0.0.18:9000

 三、crontab

 在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么

 实现

 0 6-12/2 * 11 * /usr/bin/httpd.sh

 四、编写个shell 脚本将/usr/local/test 目录下大于100K 的文件转移到/tmp 目录下

 #!/bin/bash

 for file in `ls /root`

 do

 if [ -f $file ]; then

 if [ `ls -l $file|awk ‘{print $5}‘` -gt 10000 ]; then

 mv $file /tmp/

 fi

 fi

 done

 五、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。

 RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据

 传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高

 性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,

 RAID 0 不能应用于数据安全性要求高的场合。

 RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。

 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID

 1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,

 系统可以自动切换到镜像磁盘上读写 ,而不需要重组失效的数据。简单来说就是:镜象结

 构,类似于备份模式,一个数据被复制到两块硬盘上。

 RAID10:高可靠性与高效磁盘结构

 一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。

 主要用于容量不大,但要求速度和差错控制的数据库中。

 RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个

 硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常

 运行。

 六、oracle 数据库备份方式

 物理备份:开启网络监听,备份数据库文件。

 RMAN 备份:通过表空间文件在RMAN 模式对ORACLE 数据备份。

 七、如何查看占用端口8080 的进程

 lsof -i:8080

 八、请写出apache2.X 版本的两种工作模式,以及各自工作原理。如何查看apache 当前

 所支持的模块,并且查看是工作在哪种模式下?

 答案:

 prefork(多进程,每个进程产生子进程)和worker(多进程,每个进程生成多个线程)

 prefork 的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足

 MinSpareServers 设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,

 继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32 个,直到满足

 MinSpareServers 设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必

 在请求到来时再产生新的进程,从而减小了系统开销以增加性能。

 worker 是2.0 版中全新的支持多线程和多进程混合模型的MPM。由于使用线程来处

 理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。但是,

 worker 也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。这

 种MPM 的工作方式将是Apache 2.0 的发展趋势。

 可以通过命令httpd -l 可以查看apache 当前的模块,如果带有worker.c 就是工作在

 worker 模式下,如果有prefork.c 就是工作在prefork.c 的模式下。

 九、你使用过监控软件吗?说说其特点

 使用nagios 对服务器进行监控,其特点可实时实现手机短信、电子邮件、MSN、飞信报警。

 使用cacti 对流量进行监控。

 十、你对现在运维工程师的理解和以及对其工作的认识

 运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最

 安全的服务。运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失,因此

 运维工程师的工作需要严谨及富有创新精神。

 十一、linux 下常用的DNS服务软件是什么,举出几种常用的DNS记录,如果域名abc.com

 配置好了一台邮件服务器,IP 地址为202.106.0.20,我该如何做相关的解析?是否了解

 bind 的智能解析,如果了解请简述一下其原理

 答案:

 1)常用的DNS 软件是bind

 2)A 记录 地址记录

 MX 记录 邮件交换记录

 CNAME 记录 别名域记录

 3)修改abc.com 域名的配置文件,增加以下记录

 IN MX 10 mail.abc.com.

 mail IN A 202.106.0.20

 4)bind 根据请求解析客户端的IP 地址,做出不同的解析,其原理是在配置文件中,设定了

 view,在每个view 都有客户端的IP 地址段,bind 服务器根据请求解析客户端的IP 地址,

 匹配不同的view,再根据该view 的配置,到相应的配置文件进行查询,将结果返回给请求

 的客户端。

 十二、通过apache 访问日志access.log 统计IP 和每个地址访问的次数,按访问量列出

 前10 名。

 日志格式样例如下

 192.168.1.247 – - [02/Jul/2010:23:44:59 +0800] “GET / HTTP/1.1″ 200 19

 答案:

 cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10

 //这个别的方法也能统计,但有些命令是必要的 awk , sort,uniq ,主要看是否这些命令都

 使用了。

 十三、如何用mysql 命令进行备份和恢复?以test 库为例,创建一个备份,并再用此备份

 进行恢复。

 mysqldump -u root -p test > test.sql

 mysql -u root -p test < test.sql

 //主要考对方msqldump > test.sql 和 mysql < test.sql

 十四、你认为在系统调优方面都包括哪些工作,以linux 为例,请简明阐述,并举一些参数

 为例。

 答案:

 系统调优包括内核参数优化和应用优化2 个方面,对方只要从这两方面来说,就可以了,

 尽量能有些经验的阐述。

 有个文件如下:

 http://a.domain.com/1.html

 http://b.domain.com/1.html

 http://c.domain.com/1.html

 http://a.domain.com/2.html

 http://b.domain.com/2.html

 http://a.domain.com/3.html

 要求:得到主机名(和域名),并统计哪个网址出现的次数,并排序。可以shell 或C。

 得到的结果应该是:

 3 a.domain.com

 2 b.domain.com

 1 c.domain.com

 [[email protected] ~]# awk ‘BEGIN{FS=”/”}{arr[$3]++}END{for(i in arr) print

 arr[i],i}’ list| sort -r 答案

 3 a.domain.com

 2 b.domain.com

 1 c.domain.com

 挂载windows 的共享目录?

 mount.cifs //IP/SHARE linux 的目录 --verbose -o user=username <--这个用户是

 windows 下的用户--verbose 这个参数可以不加,它是显示过程的

 例如mount.cifs //10.1.1.246/gongxiang /mnt --verbose -o user=gao

 或者是mount -t cifs

 umount /mnt 或umount.cifs /mnt -l <--取消挂载

 图形界面:smb://IP

 A B 网络是通的,最少列出五种传输文件的服务

 nfs ,ftp,scp ,rsync,samba,http://

 1.假设Apache 产生的日志文件名为access_log,在apache 正在运行时,执行命令mv

 access_log access_log.bak,执行完后,请问新的apache 的日志会打印到哪里,为什么?

 新的日志会打印在access_log.bak 中,因为apache 启动时会找到access_log 文件,

 随时准备向文件中加入日志信息,

 虽然此时文件被改名,但是由于服务正在运行,因为它的inode 节点的位置没有变,程序

 打开的fd 仍然会指向原来那个inode,

 不会因为文件名的改变而改变。apache 会继续向已改名的文件中追加日志,但是若重启

 apache 服务,系统会检查access_log

 文件是否存在,若不存在则创建。

 2.在Shell 环境下,如何查看远程Linux 系统运行了多少时间?

 2、监控主机执行: ssh [email protected]被监控主机ip "uptime"

 这样得到了被监控主机的uptime

 3.处理以下文件内容,将域名取出并进行计数排序,如处理:

 http://www.baidu.com/index.html

 http://www.baidu.com/1.html

 http://post.baidu.com/index.html

 http://mp3.baidu.com/index.html

 http://www.baidu.com/3.html

 http://post.baidu.com/2.html

 得到如下结果:

 域名的出现的次数 域名

 3 www.baidu.com

 2 post.baidu.com

 1 mp3.baidu.com

 可以使用bash/perl/php/c 任意一种

 3、[[email protected] shell]# cat file | sed -e ‘ s/http:\/\///‘ -e ‘ s/\/.*//‘ | sort |

 uniq -c | sort -rn

 3 www.baidu.com

 2 post.baidu.com

 1 mp3.baidu.com

 [[email protected] shell]# awk -F/ ‘{print $3}‘ file |sort -r|uniq -c|awk ‘{print

 $1"\t",$2}‘

 3 www.baidu.com

 2 post.baidu.com

 1 mp3.baidu.com

 4.如果得到随机的字串,长度和字串中出现的字符表可定义,并将字串倒序显示,如

 把0123456789 作为基准的字串字符表,产生一个6 位的字串642031,打印出的字串为

 130246,可使用bash/perl/php/c 任意一种.

 4、[[email protected] ~]# awk -v count=6 ‘BEGIN

 {srand();str="0123456789";len=length(str);for(i=count;i>0;i--)

 marry[i]=substr(str,int(rand()*len),1);for(i=count;i>0;i--)

 printf("%c",marry[i]);printf("\n");for

 (i=0;i<=count;i++) printf("%c",marry[i]);printf("\n")}‘

 838705

 507838

 5.如何查看当前Linux 系统的状态,如CPU 使用,内存使用,负载情况等.

 5、Linux 系统中“/proc”是个伪文件目录,不占用系统空间,及时的反应出内存现在使用的

 进程情况......其中许多文件都保存系统运行状态和相关信息

 对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:

 cpuinfo 主机CPU 信息

 filesystems 文件系统信息

 meninfo 主机内存信息

 version Linux 内存版本信息

 diskstatus 磁盘负载情况

 另外top 命令可以动态的显示当前系统进程用户的使用情况,而且是动态的显示出来,尤其

 是在该命令显示出来的对上方对系统的情况进行汇总.

 free 命令呢可以查看真实使用的内存 一般用free -m

 使用lsof 、ps -aux 可以查看详细的每个进程的使用状况

 dmesg 也是常用来查看系统性能的命令

 #题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/

 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次

 #测试机器:虚拟机Linux as 4

 #1.首先建立服务器间的信任关系。拿两台机器做测试

 本机ip:192.168.1.6

 [[email protected] ~]# ssh-keygen -t rsa

 Generating public/private rsa key pair.

 Enter file in which to save the key (/root/.ssh/id_rsa):

 /root/.ssh/id_rsa already exists.

 Overwrite (y/n)? y (以为我是第2 次建立关系所以此处覆盖原来的文件)

 Enter passphrase (empty for no passphrase):(直接回车无须输入密钥)

 Enter same passphrase again:

 Your identification has been saved in /root/.ssh/id_rsa.

 Your public key has been saved in /root/.ssh/id_rsa.pub.

 The key fingerprint is:

 04:37:13:2a:4b:10:af:c1:2b:03:3f:6b:27:ce:b9:62 [email protected]

 [[email protected] ~]# cd .ssh/

 [[email protected] .ssh]# ll

 -rw------- 1 root root 883 Apr 25 17:51 id_rsa

 -rw-r--r-- 1 root root 221 Apr 25 17:51 id_rsa.pub

 -rw-r--r-- 1 root root 442 Apr 25 17:37 known_hosts

 id_rsa 是密钥文件,id_rsa.pub 是公钥文件。

 [[email protected] .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6

 [email protected]‘s password:

 id_rsa.pub 100% 221 0.2KB/s 00:00

 这里把公钥文件取名为本机的ip 地址就是为了以后和更多的机器建立信任关系不发生混

 淆。

 现在登陆到192.168.1.4 机器

 [[email protected] ~]# cd .ssh/

 [[email protected] .ssh]# cat 192.168.1.6 >> authorized_keys

 然后回到192.168.1.6 机器直接

 [[email protected] .ssh]# ssh 192.168.1.4

 Last login: Wed Aug 8 12:14:42 2007 from 192.168.1.6

 这样就可以了,里面偶尔涉及到权限问题。一般./ssh 文件夹是755 authorized_keys 为

 600 或者644

 ####脚本如下#######################

 #!/bin/bash

 #SCRIPT:df_check.sh

 #Writeen by codfei Mon Sep 3 07:25:28 CST 2007

 #PURPOSE:This script is used to monitor for full filesystems.

 #######################Begining####################

 ###################

 FSMAX="80"

 remote_user=‘root‘ #####完全可以不用root

 remote_ip=(192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9

 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 ) ---->

 这里填写你要监控的主机ip

 ip_num=‘0‘

 while [ "$ip_num" -le "$(expr ${#remote_ip[@]} - 1)" ]

 do

 read_num=‘1‘

 ssh "$remote_user"@"${remote_ip[$ip_num]}" df -h > /tmp/diskcheck_tmp

 gep ‘^/dev1 * * * clear

 94.系统中有用户user1 和user2,同属于users 组。在user1 用户目录下有一文件file1,

 它拥有644 的权限,如果user2 用户想修改user1 用户目录下的file1 文件,应拥有 B 权

 限。

 A 744

 B 664

 C 646

 D 746

 95.如果想配置一台匿名ftp 服务器,应修改 C 文件。

 A /etc/gateway

 B /etc/ftpservers

 C /etc/ftpusers

 D /etc/inetd.conf

 96.Samba 服务器的进程由B 两部分组成 。

 A named 和sendmail

 Bsmbd 和nmbd

 C bootp 和dhcpd

 D httpd 和squid

 97.要配置NFS 服务器,在服务器端主要配置 C 文件。

 A /etc/rc.d/rc.inet1

 B /etc/rc.d/rc.M

 C /etc/exports

 D /etc/rc.d/rc.S

 98.为保证在启动服务器时自动启动DHCP 进程,应对 B 文件进行编辑。

 A /etc/rc.d/rc.inet2

 B /etc/rc.d/rc.inet1

 C /etc/dhcpd.conf

 D /etc/rc.d/rc.S

 99.在配置代理服务器时,若设置代理服务器的工作缓存为64MB,配置行应为 D 。

 A cache 64MB

 B cache_dir ufs /usr/local/squid/cache 10000 16 256

 C cache_ mgr 64MB

 Dcache_ mem 64MB

 100.安全管理涉及的问题包括保证网络管理工作可靠进行的安全问题和保护网络用户及网

 络管理对象问题。 C 属于安全管理的内容。

 A 配置设备的工作参数

  收集与网络性能有关的数据

 C 控制和维护访问权限

 D 监测故障

 101.以下命令对中,正确的是: B 。

 A ls 和sl

 B cat 和tac

 C more 和erom

 D exit 和tixe

 cat 是显示文件夹的命令,这个大家都知道,tac 是cat 的倒写,意思也和它是相反的。cat

 是从第一行显示到最后一行,而tac 是从最后一行显示到第一行,而rev 则是从最后一个

 字符显示到第一个字符

 102. B 命令是在vi 编辑器中执行存盘退出。

 A :q

 B ZZ

 C :q!

 D :WQ

 103.下列关于/etc/fstab 文件描述,正确的是 D 。

 A fstab 文件只能描述属于linux 的文件系统

 B CD_ROM 和软盘必须是自动加载的

 C fstab 文件中描述的文件系统不能被卸载

 D 启动时按fstab 文件描述内容加载文件系统

 104.通过文件名存取文件时,文件系统内部的操作过程是通过 C 。

 A 文件在目录中查找文件数据存取位置。

 B 文件名直接找到文件的数据,进行存取操作。

 C 文件名在目录中查找对应的I 节点,通过I 节点存取文件数据。

 D 文件名在中查找对应的超级块,在超级块查找对应i 节点,通过i 节点存取文件数据

 105.Linux 将存储设备和输入/输出设备均看做文件来操作, C 不是以文件的形式出现。

 A 目录

 B 软链接

 C i 节点表

 D 网络适配器

 106.关于i 节点和超级块,下列论述不正确的是 B 。

 A i 节点是一个长度固定的表

 B 超级块在文件系统的个数是唯一的

 C i 节点包含了描述一个文件所必需的全部信息

 D 超级块记录了i 节点表和空闲块表信息在磁盘中存放的位置

 107. D 设备是字符设备。

 A hdc

 B fd0

 C hda1

 D tty1(A,B,C 为块设备)

 108. B 目录存放着Linux 的源代码。

 A /etc

 B /usr/src

 C /usr

 D /home

 109.关于文件系统的安装和卸载,下面描述正确的是 A 。

 A 如果光盘未经卸载,光驱是打不开的

 B 安装文件系统的安装点只能是/mnt 下

 C 不管光驱中是否有光盘,系统都可以安装CD-ROM 设备

 D mount /dev/fd0 /floppy 此命令中目录/floppy 是自动生成的

 110. B 不是进程和程序的区别。

 A 程序是一组有序的静态指令,进程是一次程序的执行过程

 B 程序只能在前台运行,而进程可以在前台或后台运行

 C 程序可以长期保存,进程是暂时的

 D 程序没有状态,而进程是有状态的

 111.文件exer1 的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写

 权限,下列命令正确的是 A 。

 A chmod a+x g+w exer1 B chmod 765 exer1

 C chmod o+x exer1 D chmod g+w exer1

 112.有关归档和压缩命令,下面描述正确的是 C 。

 A 用uncompress 命令解压缩由compress 命令生成的后缀为.zip 的压缩文件

 B unzip 命令和gzip 命令可以解压缩相同类型的文件

 C tar 归档且压缩的文件可以由gzip 命令解压缩

 D tar 命令归档后的文件也是一种压缩文件

 113.不是shell 具有的功能和特点的是 C 。

 A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令

 114.下列对shell 变量FRUIT 操作,正确的是: C 。

 A 为变量赋值:$FRUIT=apple

 B 显示变量的值:fruit=apple

 C 显示变量的值:echo $FRUIT

 D 判断变量是否有值:[ -f “$FRUIT” ]

 三.简答题:

 1.简述Linux 文件系统通过i 节点把文件的逻辑结构和物理结构转换的工作过程。

 参考答案:

 Linux 通过i 节点表将文件的逻辑结构和物理结构进行转换。

 i 节点是一个64 字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有

 者、文件的存取许可方式以及文件的类型等重要信息。在i 节点表中最重要 的内容是磁盘

 地址表 。在磁盘地址表中有13 个块号,文件将以块号在磁盘地址表中出现的顺序依次读

 取相应的块。Linux 文件系统通过把i 节点和文件名进行 连接,当需要读取该文件时,文

 件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i 节点号,通过该

 i 节点的磁盘地址表把分散存放的文件物 理块连接成文件的逻辑结构。

 2.简述进程的启动、终止的方式以及如何进行进程的查看。

 参考答案:

 在Linux 中启动一个进程有手工启动和调度启动两种方式:

 (1)手工启动

 用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:

 ①前台启动:直接在SHELL 中输入命令进行启动。

 ②后台启动:启动一个目前并不紧急的进程,如打印进程。

 (2)调度启动

 系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间

 和场合,到时候系统会自动完成该任务。

 经常使用的进程调度命令为:at、batch、crontab。

 3. 简述DNS 进行域名解析的过程。

 参考答案:

 首先,客户端发出DNS 请求翻译IP 地址或主机名。DNS 服务器在收到客户机的请求后:

 (1)检查DNS 服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;

 (2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信

 息;

 (3)若没有查到,则将请求发给根域DNS 服务器,并依序从根域查找顶级域,由顶级查

 找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS

 服务器发出应答信息,DNS 服务器收到应答后现在缓存中存储,然后,将解析结果发给客

 户机。

 (4)若没有找到,则返回错误信息。

 4.系统管理员的职责包括那些?管理的对象是什么?

 参考答案:

 系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监

 测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。

 5.简述安装Slackware Linux 系统的过程。

 参考答案:

 (1)对硬盘重新分区。 (2)启动Linux 系统(用光盘、软盘等)。

 (3)建立Linux 主分区和交换分区。(4)用setup 命令安装Linux 系统。

 (5)格式化Linux 主分区和交换分区(6)安装Linux 软件包

 (7)安装完毕,建立从硬盘启动Linux 系统的LILO 启动程序,或者制作一张启动Linux

 系统的软盘。重新启动Linux 系统。

 6.什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?

 参考答案:

 静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且

 网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变

 化后必须由网络管理员修改路由表。

 动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实

 时更新路由表的内容。动态路由可以自动 学习 网络的拓朴结构,并更新路由表。其缺点是

 路由广播更新信息将占据大量的网络带宽。

 87.进程的查看和调度分别使用什么命令?

 参考答案:

 进程查看的命令是ps 和top。

 进程调度的命令有at,crontab,batch,kill。

 8.当文件系统受到破坏时,如何检查和修复系统?

 参考答案:

 成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修

 复的文件系统。

 使用命令fsck 对受到破坏的文件系统进行修复。fsck 检查文件系统分为5 步,每一步检查

 系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck 命令时,检查首先从超

 级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。

 9.解释i 节点在文件系统中的作用。

 参考答案:

 在linux 文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的

 位置,用i 节点对一个文件进行索引。I 节点包含了描述一个文件所必须的全部信息。所以

 i 节点是文件系统管理的一个数据结构。

 10.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?

 参考答案:

 链接分硬链接和符号链接。

 符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。

 符号链接的文件类型位是l,链接文件具有新的i 节点。

 硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接

 文件的i 节点同被链接文件的i 节点相同。

 11.在对linux 系统分区进行格式化时需要对磁盘簇(或i 节点密度)的大小进行选择,请

 说明选择的原则。

 参考答案:

 磁盘簇(或i 节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调

 度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得

 小些。通常使用经验值。

 1

 2.简述网络文件系统NFS,并说明其作用。

 参考答案:

 网络文件系统是应用层的一种应用服务,它主要应用于Linux 和Linux 系统、Linux 和Unix

 系统之间的文件或目录的共享。对于用户而言可以通过 NFS 方便的访问远地的文件系统,

 使之成为本地文件系统的一部分。采用NFS 之后省去了登录的过程,方便了用户访问系统

 资源。

 13.某/etc/fstab 文件中的某行如下:

 /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2

 请解释其含义。

 参考答案:

 (1)第一列:将被加载的文件系统名;(2)第二列:该文件系统的安装点;

 (3)第三列:文件系统的类型;(4)第四列:设置参数;

 (5)第五列:供备份程序确定上次备份距现在的天数;

 (6)第六列:在系统引导时检测文件系统的顺序。

 14.Apache 服务器的配置文件httpd.conf 中有很多内容,请解释如下配置项:

 (1)MaxKeepAliveRequests 200 (2)UserDir public_html

 (3)DefaultType text/plain (4)AddLanguare en.en

 (5)DocumentRoot“/usr/local/httpd/htdocs”

 (6)AddType application/x-httpd-php.php.php.php4

 参考答案:

 (1)允许每次连接的最大请求数目,此为200;(2)设定用户放置网页的目录;

 (3)设置服务器对于不认识的文件类型的预设格式;

 (4)设置可传送语言的文件给浏览器;(5)该目录为Apache 放置网页的地方;

 6)服务器选择使用php4。

 15.某Linux 主机的/etc/rc.d/rc.inet1 文件中有如下语句,请修正错误,并解释其内容。

 /etc/rc.d/rc.inet1:

 ……

 ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1

 ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1

 参考答案:

 修正错误:

 (1)ROUTE 应改为小写:route;(2)netmask 255.255.0.0 应改为:netmask

 255.255.255.0;

 (3)缺省路由的子网掩码应改为:netmask 0.0.0.0;

 (4)缺省路由必须在最后设定,否则其后的路由将无效。

 解释内容:

 (1)route:建立静态路由表的命令;(2)add:增加一条新路由;

 (3)-net 192.168.1.0:到达一个目标网络的网络地址;

 (4)default:建立一条缺省路由;(5)gw 192.168.0.101:网关地址;

 (6)metric 1:到达目标网络经过的 路由器 数(跳数)。

 6.试解释apache 服务器以下配置的含义:

 (1)port 1080 (2)UserDir userdoc

 (3)DocumentRoot “/home/htdocs”

 (4);

 Options Indexes FollowSymLinks

 AllowOverride None

 Order deny,allow

 deny from all

 allow from 192.168.1.5

 ;

 (5)Server Type Standlone

 考答案:

 Apache 服务器配置行含义如下:

 (1)将apache 服务器的端口号设定为1080;

 (2)设定用户网页目录为userdoc;

 (3)设定apache 服务器的网页根目录:/home/htdocs;

 (4)在此apache 服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP 地

 址为192.168.1.5 的主机访问;

 (5)定义apache 服务器以独立进程的方式运行。

 17.简述使用ftp 进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp 文件传

 输命令是什么?

 参考答案:

 (1)ftp 有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,

 密码为:任何合法email 地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,

 密码为用户在远程系统中的用户密码。

 区别:使用匿名登录只能访问ftp 目录下的资源,默认配置下只能下载;而授权登录访问的

 权限大于匿名登录,且上载、下载均可。

 (2)ftp 文件传输有两种文件传输模式:ASCII 模式和binary 模式。ASCII 模式用来传

 输文本文件,其他文件的传输使用binary 模式。

 (3)常用的ftp 文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye

 四.编程与应用题:

 1.用Shell 编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。

 参考程序:

 #!/bin/sh

 FILENAME=

 echo “Input file name:”

 read FILENAME

 if [ -c "$FILENAME" ]

 then

 cp $FILENAME /dev

 fi

 2.请下列shell 程序加注释,并说明程序的功能和调用方法:#!/bin/sh

 #!/bin/sh

 #

 # /etc/rc.d/rc.httpd

 #

 # Start/stop/restart the Apache web server.

 #

 # To make Apache start automatically at boot, make this

 # file executable: chmod 755 /etc/rc.d/rc.httpd

 #

 case "$1" in

 ‘start‘)

 /usr/sbin/apachectl start ;;

 ‘stop‘)

 /usr/sbin/apachectl stop ;;

 ‘restart‘)

 /usr/sbin/apachectl restart ;;

 *)

 echo "usage $0 start|stop|restart" ;;

 esac

 参考答案:

 (1)程序注释

 #!/bin/sh 定义实用的shell

 #

 # /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。

 #

 # Start/stop/restart the Apache web server.

 #

 # To make Apache start automatically at boot, make this

 # file executable: chmod 755 /etc/rc.d/rc.httpd

 #

 case "$1" in #case 结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置

 参数”,即$1

 ‘start‘) #若位置参数为start

 /usr/sbin/apachectl start ;; #启动httpd 进程

 ‘stop‘) #若位置参数为stop

 /usr/sbin/apachectl stop ;; #关闭httpd 进程

 ‘restart‘) #若位置参数为stop

 /usr/sbin/apachectl restart ;; #重新启动httpd 进程

 *) #若位置参数不是start、stop 或restart 时

 echo "usage $0 start|stop|restart" ;; #显示命令提示信息:程序的调用方法

 esac #case 结构结束

 (2)程序的功能是启动,停止或重新启动httpd 进程

 (3)程序的调用方式有三种:启动,停止和重新启动。

 3.设计一个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

 4.编写shell 程序,实现自动删除50 个账号的功能。账号名为stud1 至stud50。

 参考程序:

 #!/bin/sh

 i=1

 while [ $i -le 50 ]

 do

 userdel -r stud${i}

 i=$(($i+1 ))

 done

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

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

 (2)从早8:00~下午6:00 每小时读取/xyz 目录下x1 文件中每行第一个域的全部数据

 加入到/backup 目录下的bak01.txt 文件内;

 (3)每逢星期一下午5:50 将/data 目录下的所有目录和文件归档并压缩为文件:

 backup.tar.gz;

 (4)在下午5:55 将IDE 接口的CD-ROM 卸载(假设:CD-ROM 的设备名为hdc);

 (5)在早晨8:00 前开机后启动。

 参考答案:

 解决方案:

 (1)用vi 创建编辑一个名为prgx 的crontab 文件;

 prgx 文件的内容:

 50 16 * * * rm -r /abc/*

 (2)、0 8-18/1 * * * cut -f1 /xyz/x1 >;>; /backup/bak01.txt

 (3)、50 17 * * * tar zcvf backup.tar.gz /data

 (4)、55 17 * * * umount /dev/hdc

 (5)、由超级用户登录,用crontab 执行 prgx 文件中的内容:

 [email protected]:#crontab prgx;在每日早晨8:00 之前开机后即可自动启动crontab。

 ---------------------------------------

 -------

 6.设计一个shell 程序,在每月第一天备份并压缩/etc 目录的所有内容,存放在/root/bak

 目录里,且文件名为如下形式yymmdd_etc,yy 为年,mm为月,dd 为日。Shell 程序

 fileback 存放在/usr/bin 目录下。

 参考答案:

 (1)编写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!"

 (2)编写任务定时器:

 echo "0 0 1 * * /bin/sh /usr/bin/fileback" >; /root/etcbakcron

 crontab /root/etcbakcron

 或使用crontab -e 命令添加定时任务:

 0 1 * * * /bin/sh /usr/bin/fileback

 7.有一普通用户想在每周日凌晨零点零分定期备份/user/backup 到/tmp 目录下,该用

 户应如何做?

 参考答案:(1)第一种方法:

 用户应使用crontab –e 命令创建crontab 文件。格式如下:

 0 0 * * sun cp –r /user/backup /tmp

 (2)第二种方法:

 用户先在自己目录下新建文件file,文件内容如下:

 0 * * sun cp –r /user/backup /tmp

 然后执行 crontab file 使生效。

 8.设计一个Shell 程序,在/userdata 目录下建立50 个目录,即user1~user50,并设

 置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文

 件所有者所在组的权限为:读、执行。

 参考答案: 建立程序 Pro16 如下:

 #!/bin/sh

 i=1

 while [ i -le 50 ]

 do

 if [ -d /userdata ];then

 mkdir -p -m 754 /userdata/user$i 加上-m 754 就不用写下面那一句了 -p 是递归建

 立目录

 #chmod 754 /userdata/user$i

 echo "user$i"

 let "i = i + 1" (或i=$(($i+1))

 else

 mkdir /userdata

 mkdir -p -m /userdata/user$i

 #chmod 754 /userdata/user$i

 echo "user$i"

 let "i = i + 1" (或i=$(($i+1))

 fi

 done

 五、多选题

 1.关于硬链接的描述正确的(BE)。

 A 跨文件系统

 B 不可以跨文件系统

 D 可以做目录的连接

 C 为链接文件创建新的i 节点 E 链接文件的i 节点同被链接文件的i 节点

 2.在网站发布用户wang 的个人网页时,需要创建用户网页目录,假定用户网页目录设定

 为web

 (用户目录在/home 目录下),如下描述正确的是(BCE)

 A 存放用户网页的绝对路径/wang/web

 B 存放用户网页的目录~wang/

 C 存放用户网页的绝对路径/home/wang/web D 存放用户网页的绝对路径/home/web

 E 在本机访问用户wang 的个人网页的URL 地址http://localhost/~wang/

 3.在一台WWW服务器上将端口号设定为8000,默认的网页文件index.html,服务器

 网页的根目录/www。在本机访问服务器时,正确的用法是(BDE)

 A 浏览器访问该服务器的URL 地址http://localhost/

 B 浏览器访问该服务器的URL 地址http://localhost:8000/

 C 浏览器访问该服务器的用户li 网页URL 地址http://localhost/~li

 D 浏览器访问该服务器的用户li 网页URL 地址http://localhost:8000/~li

 E 浏览器访问该服务器的URL 地址localhost:8000/

 4.在shell 编程中关于$2 的描述正确的是(CE)

 A 程序后携带了两个位置参数

 B 宏替换

 C 程序后面携带的第二个位置参数

 D 携带位置参数的个数 E 用$2 引用第二个位置参数

 5.某文件的权限是 - r w x r - - r- -,下面描述正确的是(CD)

 A 文件的权限值是755

 B 文件的所有者对文件只有读权 限

 C 文件的权限值是 744

 D 其他用户对文件只有读权限 E 同组用户对文件只有写权限

 6.关于OpenSSH 的作用的描述正确的是(ACE)

 A 开放源代码的安全加密程序

 B OpenSSH 常用于为http 协议加密

 C OpenSSH 用于提高远程登录访问的安全性

 D 它和telnet 实用同样的端口号

 E OpenSSH 是免费下载的应程序

 7.关于NFS 服务器描述正确的是(BC)

 A 网络中实现Windows 系统之间文件系统共享的应用软件

 B 网络中实现Linux 系统之间文件系统共享的应用软件

 C 网络中实现Unix 系统之间文件系统共享的应用软件

 D 网络中实现Windows 系统和Unix 之间文件系统共享的应用软件

 E 网络中实现Windows 系统和Linux 之间文件系统共享的应用软件

 8.关于sed 描述正确的是(ABD)

 A sed 是Linux 系统中的流编辑器

 B sed 是UNIX 系统中的流编辑器

 C sed 网络文件系统的类型

 D 利用管道对标准输入/标准输入的数据进行编辑和组合

 E sed 是NFS 的应用程序

 9.关于限制磁盘限额,描述正确的是(ABD)

 A 使用edquota 可以监控系统所有用户使用的磁盘空间,并在接近极限时提示用户

 B 用户组的磁盘限额是用户组内所有用户予设磁盘空间总和

 C 单个用户的磁盘限额就是该用户所在用户组内所有磁盘限额的总合

 D 在Linux 系统下限制用户使用的磁盘空间可以使用edquota

 E 用户组的磁盘限额就是该用户组内拥有最大磁盘限额值的用户的磁盘限额

 10.关于建立系统用户的正确描述是()

 A 在Linux 系统下建立用户使用adduser 命令

 B 每个系统用户分别在/etc/passwd 和/etc/shadow 文件中有一条记录

 C 访问每个用户的工作目录使用命令“cd /用户名”

 D 每个系统用户在默认状态下的工作目录在/home/用户名

 E 每个系统用户在/etc/fstab 文件中有一条记录

 lspci |grep Ethernet ==查看机器双网卡

 mii-tool 查看网线是否接号

 用户进程、系统进程、IO 进程、空闲的比例" 如果idle 时常处于0,则需要检查引起大量

 CPU 消耗的原因

 内存使用情况 "vmstat:观察free 值

 top: 观察memory 项" 低于50 时,值得注意

 交换区使用情况 "vmstat:观察pi、po 值

 top: 观察paging/paging space 项 free: 观察Swap 行的值" 当空闲值低时,值得

 注意

 I/O 情况 "sar -u:观察io 占用系统情况

 iostat -d:观察哪块盘io 较多

 top:观察io 最多的进程" IO 值过高的进程将会严重影响到整机的性能,要对高IO 的进程

 重点监控,检查

 系统进程 ps aux 有无多个相同的进程名

 df -h:检查空间使用达到90%的文件系统 尤其是使用情况

 系统日志 last:观察最近的主机登录情况,查看var/log/messages 文件内容, 对不明

 主机进行检查

 网络状况 ping:查看到其他主机的time 值是否小于10ms 无频繁丢包

 top 查询 CPU, 内存, 系统进程情况 ( CPU 内存瓶颈), 某个进程

 cat /etc/redhat-release <---看本机系统是什么版本的

 smartmontools-5.38-2.el5

 smartctl --all /dev/sda 检测磁盘有没有坏块

 smartctl -i /dev/sda

 vim /etc/smartd.conf

 /dev/sda -a -d sat 把硬盘注册为sat 57 行

 /dev/sda -d scsi -s L/../../3/18 打开注释 65 行

 service smartd restart 磁盘有问题的话,会发邮件给管理员的

 service sendmail restart

 yum istall -y sysstat

 iostat 看当前磁盘读写的情况 iostat 2 10 查询当前状态 ( 磁盘 i/o )

 sar 2 10 查询当前状态 ( service sysstat start )

 sar -r ( 内存 )

 sar -u ( cpu )

 sar -P ( cpu ) --> sar -P 0 || sar -P ALL

 sar -b ( i/o )

 sar -n DEV ( 网络设备 )

 sar -f

 service sysstat on

 checkconfig sysstat on 每十分钟搜集一次信息

 sar -f /var/log/sa/sa13 -s 10:10:00 -e 11:10:00 查看昨天(今天是14 号)10:

 10:00 到 11:10:00 的系统情况

 针对日志 /var/log/sa/* 查询之前的日志信息

 sar -n DEV

 tty 看自己的

 mpstat 2 查看cpu 状态

 vmstat 2 10

 mpstat 2 10 <- cpu 每二秒显示一次,共显示十次

 vmstat 2 10 <- 整体资源

 free ltrace

 pmap 进程号 是看这个进程占了多少内存

 pgrep httpd 查询这个服务的所有进程号 killall httpd 杀掉所有 <--不怎么安全

 ps aux | grep mysql |xargs kill -9 杀掉所有前面查出来的所有进程 <--推荐用这个

 pstree ps nice renice 不建议把系统资源的优先级提高

 ldd /bin/ls 显示当前这个命令运行时所需要的库文件

 yum install strace -y

 strace +服务名称 分析出当前的命令执行时所找的库文件的路径

 lspci | grep Ethernet 查本机有哪些网卡设备

 dmesg 查看本机的设备信息

 mii-tool 看本机网卡是否连接正常

 iptraf 查看本机当前的流量

 

以上是关于Linux里面if -s命令作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

linux shell查找内容做多次判断

shell里面的for循环

求写一个 Linux 下 对mysql的操作脚本

linux 环境变量的配置

Linux面试题

java中if条件里面判断boolean值判断的true还是false?