1,同步日志
- rsync: rsync是中小型企业常用的同步工具是基于内容的同步,其他的也都可以,但是存在一些问题:
rsync结合inotify可以达到实时同步,最重要的是rsync是同步差异的内容,而不是同步差异的文件开销比其他的小,并且是基于ssh协议的,sshd服务都是服务器必备的,不需要额外装其他服务。
2,命令与对应文件
“dpkg ”是“Debian Packager ”的简写。为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都使用 “dpkg”,例如 “Ubuntu”、“Knoppix ”等。示例:
- dpkg -i avg71flm_r28-1_i386.deb
类似地:
命令 | 目标文件后缀 |
---|---|
dpkg | .deb |
yum | .rpm |
apt-get | .deb |
tar | .bz2 |
unzip | .zip |
3,arp相关指令
- a<主机> 显示arp缓冲区的所有条目
- H<地址类型> 指定arp指令使用的地址类型
- -d<主机> 从arp缓冲区中删除指定主机的arp条目
- -D 使用指定接口的硬件地址
- -e 以Linux的显示风格显示arp缓冲区中的条目
- -i<接口> 指定要操作arp缓冲区的网络接口
- -s<主机><MAC地址> 设置指定的主机的IP地址与MAC地址的静态映射
- -n 以数字方式显示arp缓冲区中的条目
- -v 显示详细的arp缓冲区条目,包括缓冲区条目的统计信息
- -f<文件> 设置主机的IP地址与MAC地址的静态映射
4,Linux进程通信方法
Linux下进程通信的八种方法:
- 管道(pipe)
- 命名管道(FIFO)
- 内存映射(mapped memeory)
- 消息队列(message queue)
- 共享内存(shared memory)
- 信号量(semaphore)
- 信号(signal)
- 套接字(Socket)
但是对于临界区,指的是必须以互斥的方式执行的代码段,也就是说临界区范围内只能由一个活动的线程。例如:修改共享变量的过程中其他的执行线程可能会访问共享变量,那么修改共享变量的代码就被看成是临界区的一部分。
而临界区问题指用安全、公平和对称的方式来执行临界区代码的问题。
因此,临界区不能用于Linux中的进程通信。
5,删除命令
- ndd:删除当前行开始的连续n行。
- dd:删除光标所在行。
- n1, n2d:删除n1到n2行,例如删除1到10行,1, 10d
- n, $d:删除从某行开始至文本末尾,例如删除第8行至末尾,8, $d
6,复制文件
- cp命令:cp指令用于复制文件或目录。
将文件file1复制成文件file2命令如下:cp file1 file2 - cat命令:cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的。
一次显示整个文件命令如下: cat filename - > : linux中的数据流重导向:输出导向,覆盖导向的文件内容。
- < :linux中的数据流重导向:输入导向,理解为原本由键盘输入改为文本输入。
- dd命令 :作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
参数:if 输入文件(或设备名称) of 输出文件(或设备名称)
将文件file1拷贝到文件file2中命令如下: dd if=file1 of=file2 - | :管道命令操作符,处理经由前面一个指令传出的正确输出信息,然后,传递给下一个命令,作为标准的输入。
Q:将文件file1赋值为file2可以用的指令是?
A:
- cp file1 file2
- cat file1 >file2
- cat < file1 >file2
- dd if=file1 of=file2
- cat file1 | cat >file2
7,查看启动时间
查看当前系统的启动时间:
- who -b
- last reboot
- w
- top
- uptime
8,默认支持的文件系统
Q:linux 2.6.* 内核默认支持的文件系统有哪些?
A:
- ext2
- ext3
- ext4
- xfs
9,卸载光盘
挂载设备使用mount,卸载设备使用umount。
卸载命令为umount
卸载设备有三种方式
- 根据设备名,存在于 /dev 目录下
- 根据挂载点,一般存在与 /mnt 目录下
- 根据设备名和挂载点,两个都写,但是实际测试下,代表先卸载第一个设备(可能是设备名,也可能是挂载点),在卸载第二个设备(可能是设备码,也可能是挂载点),如果两个代表的是同一个设备,那么就会显示第二个设备没有挂载,所以此时可以卸载,但是第二个参数多余。
Q:将光盘/dev/hdc卸载的命令是?
A:
- umount /dev/hdc
- umount /mnt/cdrom
- umount/mnt/cdrom /dev/hdc
10,DHCP配置
Q:
Linux 系统中DHCP 服务器的服务程序是dhcpd,配置文件是dhcpd.conf,如果在该配置文件中包括如下配置内容:
Subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200 ;
}
关于以上配置内容,说法正确的是?
A. 对子网“192.168.2.0/16”中的主机进行动态地址分配
B. 对子网“192.168.2.0/24”中的主机进行动态地址分配
C. 在子网中用于动态分配的IP 地址数量为100 个
D. 在子网中用于动态分配的IP 地址数量为101 个
A:
从上面的命令中,子网掩码为255.255.255.0,因此B是正确的。
而有range可知,动态地址分配从100-200,包括100和200,正好是101个,因此D正确。
11,usermod
usermod(选项)(参数):参数若为两个,顺序一般为
usermod (选项) 目标参数 原始参数
- -c<备注>:修改用户账号的备注文字
- -d<登入目录>:修改用户登入时的目录
- -e<有效期限>:修改账号的有效期限
- -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号
- -g<群组>:修改用户所属的群组
- -G<群组>;修改用户所属的附加群组
- -l<帐号名称>:修改用户帐号名称
- -L:锁定用户密码,使密码无效
- -s:修改用户登入后所使用的shell
- -u:修改用户ID
- -U:解除密码锁定
Q:
vivek希望将他的login ID从vivek改为viv,应该执行下列哪个命令?
A:
- usermod -l viv vivek
12,根据内容检索
Q:
Linux命令行下如何查找列出/usr/local这个目录下所有包含字符mrtg的文件?
A. grep “mrtg” /usr/local
B. grep -Rn “mrtg” /usr/local
C. find /usr/local -name ‘mrtg’
D. find /usr/local -name ‘mrtg’ -R
A.
搜索的是文件内容,而不是文件名。
在上面的代码中,find是根据name、ctime、mtime等信息搜索文件的命令,不会根据文件内容去检索,也就是它只利用了iNode的信息,因此,CD都是错误的。
而对于选项A,/usr/local下面几乎都是目录,所以grep需要加-R或-r表示递归查询子目录。另外,实际不加-n也可,毕竟没强调说,要输出’mrtg’所在行。即:
- grep -r “mrtg” /usr/local
其中,-r或-R是搜索子目录,-n是显示行号信息。
13,软链接与硬链接
(1)什么是链接?
链接操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的 访问权限 ,以控制对信息的共享和安全性的问题。 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名。而且,即使我们删除这个链接,也不会破坏原来的目录。
(2)硬链接
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
(3)软链接(符号链接)
软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软连接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)。
(4)硬链接与软链接的区别
硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。
硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。
软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。
14,bash中的赋值
Q:
在bash中,下列哪些语句是赋值语句?
A. a =“test”
B. $a =“test”
C. a=“test”
D. $a=“test”
A:
bash中有两个内置的命令declare 和 typeset 可用于创建变量。除了使用内置命令来创建和设置变量外,还可以直接赋值,格式为:变量名=变量值
因此,这道题选择C
需要注意的是:
- 变量名前面不应该加"$"
- 等号"="前后不可以有空格
- shell中不需要显示的语法来声明变量
- 变量名不可以直接和其他字符相连,如果想相连,必须用括号: echo “this is $(he)llo!”
15,Linux的命令
- telnet为用户提供了在本地计算机上完成远程主机工作的能力,使用Telnet协议,是TCP/IP 协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
- wget 是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。
- scp是有Security的文件copy,可以把当前一个文件copy到远程另外一台主机上,基于SSH登录,SSH采用面向连接的TCP协议传输 ,应用22号端口 安全系数较高。
- rsync是类unix系统下的数据镜像备份工具——remote sync。支持本地复制,或者与其他SSH、rsync主机同步。可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
在上面四者中,rsync支持的协议更多,可以是面向连接的(tcp协议),也可以是无连接的(udp协议,socket中可以选择),然而1~3采用的都是面向连接的协议(Telnet,TCP,HTTP,SSH等),一定程度上保证可靠性。
16,并发连接数
Q:
下列哪些因素不会限制Linux服务器并发连接数?
A. 系统内存大小
B. 系统网卡数量
C. 系统最大文件句柄数量
D. 系统IP地址数量
A:
答案为B。
网卡的作用是对数据的封装与解封,不涉及并发问题。
内存大小、IP地址和最大文件句柄数量都会影响linux服务器并发连接数的。
IP地址数越多,建立的连接就越多。
句柄最大数影响network在vfs操作的上限。
17,Linux Daemon
- Service就是指常驻内存大一些程序,且可以提供一些系统或是网络功能。提供service的那个程序就成为daemon。Daemon和service可以视为等同,不必刻意去区分。
- Daemon可以分为两类,一类是可独立启动的,成为stand alone;另一类是通过一支super daemon来统一管理的服务。
- Stand alone类型的daemon能够自动启动,常驻内存,对请求响应较快,如httpd、vsftpd等。
- Super daemon统一管理的是用户有请求,super daemon就唤醒响应daemon,如果用户请求结束,就kill掉该daemon。优点不用常驻内存,缺点装到内存需要时间。如telnet。这个super daemon早期是inetd,后来被xinetd取代。
- 网络的daemon应该指的是network daemon,netd表示network的守护进程,netd主要负责一些网络的相关配置,操作,管理和查询功能的实现。
18,host
hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下。
hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名。在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决。通过可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问。
19,setuid
setuid位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。
因此当程序设置了setid权限位时,普通用户会临时变成root权限,但实际用户任然是原来的mike。
调用setid使进程成长为一个会话组长,setid调用成功后,进程成为新的会话组长和进程组长,并与原来的登陆会话和进程组脱离,由于会话过程对控制终端的独占性,进程同时与控制终端脱离。
Q:
Linux系统中某个可执行文件属于root并且有setid,当一个普通用户mike运行这个程序时,产生的进程的有效用户和实际用户分别是?
A:
root mike
20,^与$
Q:
在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?
A:
- grep -E ^a try_grep
grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
-e<范本样式>或–regexp=<范本样式> 指定字符串做为查找文件内容的范本样式。
- -E或–extended-regexp:将范本样式为延伸的普通表示法来使用
- ^:匹配正则表达式的开始行
- $:匹配正则表达式的结束行