环境:centos、subversion-1.7.1(1.7版本以后不需要subversion-devel了)
说明:此安装方法是独立的,不需要apache
一、 安装
1, 安装apr
#yum install apr
2, 安装apr-util
到http://apr.apache.org/download.cgi 下载 apr-1.4.5.tar.gz
#tar –zxvf apr-1.4.5.tar.gz
#cd apr-1.4.5
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/bin
# make && make install
3, 安装sqlite
#./configure --prefix=/usr/local/sqlite
#make && make install
4, 安装subversion-1.7.1
#tar –zxvf subversion-1.7.1.tar.gz
#cd subversion-1.7.1
# ./configure --prefix=/usr/local/subsersion --without-berkekey-db --with-zlib --with-apr=/usr/bin --with-apr-util=/usr/local/apr-util/ --with-sqlite=/usr/local/sqlite/
#make && make install
二、 配置
# /usr/local/subsesion/bin/svnadmin create /var/www/svnserve/
编辑/var/www/svnserve/svnserve.conf
8 [general]
19 anon-access=none
20 auth-access=write
27 password-db = passwd
34 authz-db = authz
39 realm = /var/www/svnserve/test
48 [sasl]
编辑passwd 文件
6 [users]
7 loginUser = loginPasswd
编辑authz文件(其它注释掉)
21 [groups]
24 user= loginUser
26 [/]
27 @admin = rw
三、 启动
#useradd svn
#passwd svn
#chown –R svn:svn /var/www/svnserve
# su - svn -c "/usr/local/subsersion/bin/svnserve -d --config-file=/var/www/svnserve/svnserve.conf --listen-port=8400 -r /var/www/svnserve"
1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。
3. Linux文件系统中每个文件用i字节来标识。
4. 全部磁盘块由四个部分组成,分别为引导块、i字节表块、专用块、数据储存块。
5. 链接分为: 硬链接 和 符号链接 。
6. 超级块包含了i字节表 和 空闲块表 等重要的文件系统信息。
7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644,该文件属性是 目录 。
8. 前台起动的进程使用 ctrl+c终止。
9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。
10. 网络管理的重要任务是: 控制 和 监控。
11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。
13. 编写的Shell程序运行前必须赋予该脚本文件 执行 权限。
14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新。
15. 系统交换分区是作为系统 虚拟储存器 的一块区域。
16. 内核分为 进程管理系统、文件管理系统、I/O管理系统和内存管理系统 等四个子系统。
17. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作。
18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址和 子网掩码 等必要信息。
19. 唯一标识每一个用户的是用户ID和用户名。
20 . RIP协议是最为普遍的一种内部协议,一般称为动态路由选择协议。
21. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 。
22. DHCP可以实现 动态 IP 地址分配。
23. 系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源。
24. 网络管理通常由检测、传输和管理三部分组成,其中管理部分是整个网络管理的中心。
25. 当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设备驱动程序 时,必须对内核 升级 。
26 Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,所以常常用于测试网络的 连通性 。
27. vi编辑器具有两种工作模式:命令模式 和 输入模式 。
28. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型 ,第二段占3位,表示 文件所有者 对该文件的权限。
29. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态 。
30. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址 和 主机名 之间的转换。
31. Apache是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端 web服务器 的就是apache应用程序。
32. 在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 。其中前者是指对 操作系统 的备份,后者是指对 应用程序 和用户文件的备份。
33. CD-ROM标准的文件系统类型是 iso9660。
34. 当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo 。
35. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 –b 。
36. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat。
37. 设定限制用户使用磁盘空间的命令是quota。
38 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是/etc。
39. 硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。
40. 套接字文件的属性位是 s。
41. 结束后台进程的命令是 kill。
42. 进程的运行有两种方式,即 独立运行 和 使用父进程运行 。
43. Links分为 硬链接 和 符号链接 。
44. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux 。
45. 管道文件的属性位是 p。
46. 将前一个命令的标准输出作为后一个命令的标准输入,称之为 管道 。
47. 为脚本程序指定执行权的命令及参数是 chmod a+x filename。
48. 进行远程登录的命令是 telnet。
49. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是: ping abc.tuu.edu.cn –c 10。
50. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf文件中定义的DNS分区数据库文件。
51. Apache服务器进程配置文件是 httpd.conf。
52.在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip。
53. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 w text.txt。
54 可以在标准输出上显示整年日历的命令及参数是 cal -y 。
55. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有 空格。
56. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck -a /dev/had5。
57. 在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 samba 服务器 。
58. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能管理。
59 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup。
60. 在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为hdb。
61. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 。
62. 如果只是要修改系统的IP地址,应修改/etc/rc.d/rc.inet1配置文件。
63. 当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts文件。
64. 在vi编辑环境下,使用Esc进行模式转换。
65. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由4部分组成。
66. 将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式tar zcvf /home/wang.tar.gz /home/stud1/wang。
67. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入。
68. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf文件。
69. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at、batch和crontab 。
70. test.bns.com.cn的域名是 bns.com.cn,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录。
71. Sendmail邮件系统使用的两个主要协议是: SMTP和 POP,前者用来发送邮件,后者用来接收邮件。
72. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址。
73. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid。
74. rm命令可删除文件或目录,其主要差别就是是否使用递归开关-r或者-R。
75. mv 命令可以移动文件和目录,还可以为文件和目录重新命名。
76. 路由选择协议(RIP)的跳数表示到达目的地之前必须通过的 网关 数,RIP接受的最长距离是 15 跳。
77. ping命令用于测试网络的连通性,ping命令通过 ICMP协议来实现。
78. nfs用于实现Unix(/linux)主机之间的文件系统共享。
79. 在Linux操作系统中,设备都是通过特殊的 文件 来访问。
80. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言。 bash是Linux的缺省shell。
81. 用>;>;符号将输出重定向内容附加在原文的后面。
82. 增加一个用户的命令是:useradd、adduser。
83 进行字符串查找,使用grep命令。
84. 使用*每次匹配若干个字符。
85. /sbin 目录用来存放系统管理员使用的管理程序。
二.单项选择题
1. 下面的网络协议中,面向连接的的协议是: 。
A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议
2. 在/etc/fstab文件中指定的文件系统加载参数中, 参数一般用于CD-ROM等移动设备。
A defaults B sw C rw和ro D noauto
3. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 。
A 文件类型 B 文件所有者的权限
C 文件所有者所在组的权限 D 其他用户的权限
4. 终止一个前台进程可能用到的命令和操作 。
A kill B ctrl+C C shut down D halt
5.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 。
A -m B -d C -f D -p
6. 下面关于i节点描述错误的是 。
A i节点和文件是一一对应的
B i节点能描述文件占用的块数
C i节点描述了文件大小和指向数据块的指针
D 通过i节点实现文件的逻辑结构和物理结构的转换
7. 一个文件名字为rr.Z,可以用来解压缩的命令是: 。
A tar B gzip C compress D uncompress
8. 具有很多C语言的功能,又称过滤器的是 。
A Csh
B tcsh
C awk
D sed
9. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 。
A 配置域名服务器
B 定义一条本机指向所在网络的路由
C 定义一条本机指向所在网络网关的路由
D 定义一条本机指向目标网络网关的路由
10. 建立动态路由需要用到的文件有 。
A /etc/hosts B /etc/HOSTNAME C /etc/resolv.conf D /etc/gateways
11. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 。
A route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
B route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.255 metric 1
C route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1
D route add default 192.168.1.0 netmask 172.168.1.1 metric 1
12. 下列提法中,不属于ifconfig命令作用范围的是 。
A 配置本地回环地址 B 配置网卡的IP地址
C 激活网络适配器 D 加载网卡到内核中
13. 下列关于链接描述,错误的是 。
A 硬链接就是让链接文件的i节点号指向被链接文件的i节点
B 硬链接和符号连接都是产生一个新的i节点
C 链接分为硬链接和符号链接
D 硬连接不能链接目录文件
14. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 。
A 主机IP设置有误
B 没有设置连接局域网的网关
C 局域网的网关或主机的网关设置有误
D 局域网DNS服务器设置有误
15. 下列文件中,包含了主机名到IP地址的映射关系的文件是: 。
A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks
16. 不需要编译内核的情况是 。
A 删除系统不用的设备驱动程序时 B 升级内核时
C 添加新硬件时 D 将网卡激活
17. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 。
A 直接赋值 B使用read命令
C 使用命令行参数 D使用命令的输出
18. 命令可以从文本文件的每一行中截取指定内容的数据。
A cp B dd C fmt D cut
19. 下列不是Linux系统进程类型的是 。
A 交互进程 B 批处理进程 C 守护进程 D 就绪进程
20.配置Apache 1.3.19服务器需要修改的配置文件为_____ __ 。
A httpd.conf B access.conf C srm.conf D named.conf
21. 内核不包括的子系统是 。
A 进程管理系统 B 内存管理系统 C I/O管理系统 D硬件管理系统
22. 在日常管理中,通常CPU会影响系统性能的情况是: 。
A CPU已满负荷地运转 B CPU的运行效率为30%
C CPU的运行效率为50% D CPU的运行效率为80%
23. 若一台计算机的内存为128MB,则交换分区的大小通常是 。
A 64MB B 128MB C 256MB D 512MB
24. 在安装Linux的过程中的第五步是让用户选择安装方式,如果用户希望安装部分组件(软件程序),并在选择好后让系统自动安装,应该选择的选项是 。
A full B expert C newbie D menu
25. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 命令。
A cat B more C less D menu
26. 下列信息是某系统用ps –ef命令列出的正在运行的进程, 进程是运行Internet超级服务器,它负责监听Internet sockets上的连接,并调用合适的服务器来处理接收的信息。
A root 1 4.0 0.0 344 204? S 17:09 0:00 init
B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty
C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd
D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd
27.在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中, 是能够实现本地与远程主机之间的文件传输工作。
A telnet B FTP C SNMP D NFS
28.当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,满足该目的的命令是 。
A ping B ifconfig C traceroute D netstat
29.对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是 。
A -rwxr-xr-x B -rwxr--r-- C -r--r--r-- D -r-xr-x—x
30. 在i节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第1块到第11块,则该文件共占有 块号。
A 256 B 266 C 11 D 256×10
31. 用ls –al 命令列出下面的文件列表, 文件是符号连接文件。
A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello
B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey
C drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang
D lrwxr--r-- 1 hel users 2024 Sep 12 08:12 cheng
32. DNS域名系统主要负责主机名和 之间的解析。
A IP地址 B MAC地址 C 网络地址 D 主机别名
33. WWW服务器是在Internet上使用最为广泛,它采用的是 结构。
A 服务器/工作站 B B/S C 集中式 D 分布式
34.Linux系统通过 命令给其他用户发消息。
A less B mesg y C write D echo to
35.NFS是 系统。
A 文件 B 磁盘 C 网络文件 D 操作
36. 命令可以在Linux的安全系统中完成文件向磁带备份的工作。
A cp B tr C dir D cpio
37.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 目录中。
A /bin B /etc C /dev D /lib
38.在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用 命令实现。
A # reboot B # halt C # reboot D # shutdown –r now
39.网络管理具备以下几大功能:配置管理、 、性能管理、安全管理和计费管理等。
A 故障管理 B 日常备份管理 C 升级管理 D 发送邮件
40.关于代理服务器的论述,正确的是 A 。
A 使用internet上已有的公开代理服务器,只需配置客户端。
B 代理服务器只能代理客户端http的请求。
C 设置好的代理服务器可以被网络上任何主机使用。
D 使用代理服务器的客户端没有自己的ip地址。
41.关闭linux系统(不重新启动)可使用命令 。
A Ctrl+Alt+Del B halt C shutdown -r now D reboot
42.实现从IP地址到以太网MAC地址转换的命令为: 。
A ping B ifconfig C arp D traceroute
43.在vi编辑器中的命令模式下,键入 可在光标当前所在行下添加一新行。
A B C D A
44.在vi编辑器中的命令模式下,删除当前光标处的字符使用 命令。
A B C D
45.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 命令。
A 上箭头 B 下箭头 C <.> D <*>
46.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 。
-rwxr-xr-- 1 root root 599 Cec 10 17:12 ff
A 普通文件 B 硬链接 C 目录 D 符号链接
47.删除文件命令为: 。
A mkdir B rmdir C mv D rm
48.在下列的名称中,不属于DNS服务器类型的是:____ _____。
A Primary Master Server B Secondary Master Server
C samba D Cache_only Server
49.网络管理员对WWW服务器进行访问、控制存取和运行等控制,这些控制可在 文件中体现。
A httpd.conf B lilo.conf C inetd.conf D resolv.conf
50.邮件转发代理也称邮件转发服务器,它可以使用SMTP协议,也可以使用 协议。
A FTP B TCP C UUCP D POP
51.启动samba服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中前者是在
文件中以独立进程方式启动。
A /usr/sbin/smbd B /usr/sbin/nmbd C rc.samba D /etc/inetd.conf
52.DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配___ ______地址。
A 网络 B MAC C TCP D IP
53.为了保证在启动服务器时自动启动DHCP进程,应将 文件中的dhcpd=no改为dhcpd=yes。
A rc.inet1 B lilo.conf C inetd.conf D httpd.conf
54.对文件进行归档的命令为 。
A dd B cpio C gzip D tar
55.改变文件所有者的命令为 。
A chmod B touch C chown D cat
56.在给定文件中查找与设定条件相符字符串的命令为: 。
A grep B gzip C find D sort
57.建立一个新文件可以使用的命令为 。
A chmod B more C cp D touch
58.在下列命令中,不能显示文本文件内容的命令是: 。
A more B less C tail D join
59.在使用匿名登录ftp时,用户名为 。
A users B anonymous C root D guest
60.在实际操作中,想了解命令logname 的用法,可以键入 得到帮助。
A logname --man B logname/? C help logname D logname --help
61.如果LILO被安装在MBR,使用 命令即可卸载LILO。
A lilo –u B lilo –c C lilo –v D lilo -V
62.当用命令ls –al查看文件和目录时,欲观看卷过屏幕的内容,应使用组合键 。
A Shift+Home B Ctrl+ PgUp C Alt+ PgDn D Shift+ PgUp
63.mc是UNIX风格操作系统的 。
A 文件编辑器/程序编译器 B 配置网络的窗口工具
C 目录浏览器/文件管理器 D Samba服务器管理工具
64.i节点是一个 长的表,表中包含了文件的相关信息。
A 8字节 B 16字节 C 32字节 D 64字节
65.文件权限读、写、执行的三种标志符号依次是 。
A rwx B xrw C rdx D srw
66.Linux 文件名的长度不得超过 C 个字符。
A 64 B 128 C 256 D 512
67.进程有三种状态: 。
A 准备态、执行态和退出态 B 精确态、模糊态和随机态
C 运行态、就绪态和等待态 D 手工态、自动态和自由态
68. 从后台启动进程,应在命令的结尾加上符号 。
A & B @ C # D $
69. 不是邮件系统的组成部分。
A 用户代理 B 代理服务器 C 传输代理 D 投递代理
70.在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是 。
A fold B join C tr D read
71.crontab文件由六个域组成,每个域之间用空格分割,其排列如下: 。
A MIN HOUR DAY MONTH YEAR COMMAND
B MIN HOUR DAY MONTH DAYOFWEEK COMMAND
C COMMAND HOUR DAY MONTH DAYOFWEEK
D COMMAND YEAR MONTH DAY HOUR MIN
72.用ftp进行文件传输时,有两种模式: 。
A Word和binary B .txt和Word Document
C ASCII和binary D ASCII和Rich Text Format
73.某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为 。
A 467 B 674 C 476 D 764
74.在DNS系统测试时,设named进程号是63,命令 是通知进程重读配置文件。
A kill –USR2 63 B kill –USR1 63 C kill -INT 63 D kill –HUP 63
75.Apache服务器默认的接听连接端口号是 。
A 1024 B 800 C 80 D 8
76.PHP和MySQL的联合使用解决了 。
A 在Proxy上处理数据库的访问问题 B 在WWW服务器上处理黑客的非法访问问题
C 在WWW服务器上处理数据库的访问问题
D 在Sendmail邮件系统上处理数据库的访问问题
77.OpenSSL是一个 。
A 加密软件 B 邮件系统 C 数据库管理系统 D 嵌入式脚本编程语言
78.Samba服务器的配置文件是 。
A httpd.conf B inetd.conf C rc.samba D smb.conf
79.关于DNS服务器,叙述正确的是 。
A DNS服务器配置不需要配置客户端
B 建立某个分区的DNS服务器时只需要建立一个主DNS服务器
C 主DNS服务器需要启动named进程,而辅DNS服务器不需要
D DNS服务器的root.cache文件包含了根名字服务器的有关信息
80.退出交互模式的shell,应键入 。
A B ^q C exit D quit
81.将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下,命令是 。
A
[email protected]:~#mount dev/had1 /winsys
B
[email protected]:~#mount /dev/had1 /winsys
C
[email protected]:~#mount /dev/had1 winsys
D
[email protected]:~#mount dev/had1 winsys
82.设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为 。
A /home B /root C /home/root D /usr/local
83.字符设备文件类型的标志是 。
A p B c C s D l
84.将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是 。
A mount /mnt/cdrom B mount /mnt/cdrom /dev/hdc
C mount /dev/hdc /mnt/cdrom D mount /dev/hdc
85.将光盘/dev/hdc卸载的命令是 。
A umount /dev/hdc B unmount /dev/hdc
C umount /mnt/cdrom /dev/hdc D unmount /mnt/cdrom /dev/hdc
86.在/home/stud1/wang目录下有一文件file,使用 可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。
A cat file >file.copy B cat >file.copy
C cat file file.copy & D cat file >file.copy &
87.在DNS配置文件中,用于表示某主机别名的是: 。
A NS B CNAME C NAME D CN
88.可以完成主机名与IP地址的正向解析和反向解析任务的命令是: 。
A nslookup B arp C ifconfig D dnslook
89.下列变量名中有效的shell变量名是: 。
A -2-time B _2$3 C trust_no_1 D 2004file
90.qmail是 。
A 收取邮件的协议 B 邮件服务器的一种 C 发送邮件的协议 D 邮件队列
91.已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是 。
A cd test B cd /stud1/test C cd stud1/test D cd home
92.已知某用户stud1,其用户目录为/home/stud1。分页显示当前目录下的所有文件的文件或目录名、用户组、用户、文件大小、文件或目录权限、文件创建时间等信息的命令是 。
A more ls –al B more –al ls C more < ls –al D ls –al | more
93.关于进程调度命令, 是不正确的。
A 当日晚11点执行clear命令,使用at命令:at 23:00 today clear
B 每年1月1日早上6点执行date命令,使用at命令:at 6am Jan 1 date
C 每日晚11点执行date命令,crontab文件中应为:0 23 * * * date
D 每小时执行一次clear命令,crontab文件中应为:0 */1 * * * clear
94.系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有 权限。
A 744 B 664 C 646 D 746
95.如果想配置一台匿名ftp服务器,应修改 文件。
A /etc/gateway B /etc/ftpservers C /etc/ftpusers D /etc/inetd.conf
96.Samba服务器的进程由 两部分组成 。
A named和sendmail B smbd和nmbd C bootp和dhcpd D httpd和squid
97.要配置NFS服务器,在服务器端主要配置 文件。
A /etc/rc.d/rc.inet1 B /etc/rc.d/rc.M C /etc/exports D /etc/rc.d/rc.S
98.为保证在启动服务器时自动启动DHCP进程,应对 文件进行编辑。
A /etc/rc.d/rc.inet2 B /etc/rc.d/rc.inet1 C /etc/dhcpd.conf D /etc/rc.d/rc.S
99.在配置代理服务器时,若设置代理服务器的工作缓存为64MB,配置行应为 。
A cache 64MB
B cache_dir ufs /usr/local/squid/cache 10000 16 256
C cache_ mgr 64MB D cache_ mem 64MB
100.安全管理涉及的问题包括保证网络管理工作可靠进行的安全问题和保护网络用户及网络管理对象问题。 属于安全管理的内容。
A 配置设备的工作参数 B 收集与网络性能有关的数据
C 控制和维护访问权限 D 监测故障
101.以下命令对中,正确的是: 。
A ls和sl B cat和tac C more和erom D exit和tixe
102. 命令是在vi编辑器中执行存盘退出。
A :q B ZZ C :q! D :WQ
103.下列关于/etc/fstab文件描述,正确的是 。
A fstab文件只能描述属于linux的文件系统
B CD_ROM和软盘必须是自动加载的
C fstab文件中描述的文件系统不能被卸载
D 启动时按fstab文件描述内容加载文件系统
104.通过文件名存取文件时,文件系统内部的操作过程是通过 。
A 文件在目录中查找文件数据存取位置。
B 文件名直接找到文件的数据,进行存取操作。
C 文件名在目录中查找对应的I节点,通过I节点存取文件数据。
D 文件名在中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据
105.Linux将存储设备和输入/输出设备均看做文件来操作, 不是以文件的形式出现。
A 目录 B 软链接 C i节点表 D 网络适配器
106.关于i节点和超级块,下列论述不正确的是 。
A i节点是一个长度固定的表
B 超级块在文件系统的个数是唯一的
C i节点包含了描述一个文件所必需的全部信息
D 超级块记录了i节点表和空闲块表信息在磁盘中存放的位置
107. 设备是字符设备。
A hdc B fd0 C hda1 D tty1
108. 目录存放着Linux的源代码。
A /etc B /usr/src C /usr D /home
109.关于文件系统的安装和卸载,下面描述正确的是 。
A 如果光盘未经卸载,光驱是打不开的
B 安装文件系统的安装点只能是/mnt下
C 不管光驱中是否有光盘,系统都可以安装CD-ROM设备
D mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的
110. 不是进程和程序的区别。
A 程序是一组有序的静态指令,进程是一次程序的执行过程
B 程序只能在前台运行,而进程可以在前台或后台运行
C 程序可以长期保存,进程是暂时的
D 程序没有状态,而进程是有状态的
111.文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 。
A chmod a+x g+w exer1 B chmod 765 exer1
C chmod o+x exer1 D chmod g+w exer1
112.有关归档和压缩命令,下面描述正确的是 。
A 用uncompress命令解压缩由compress命令生成的后缀为.zip的压缩文件
B unzip命令和gzip命令可以解压缩相同类型的文件
C tar归档且压缩的文件可以由gzip命令解压缩
D tar命令归档后的文件也是一种压缩文件
113.不是shell具有的功能和特点的是 。
A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令
114.下列对shell变量FRUIT操作,正确的是: 。
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.什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。
动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。
7.进程的查看和调度分别使用什么命令?
进程查看的命令是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节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。
12.简述网络文件系统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:到达目标网络经过的路由器数(跳数)。
16.试解释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文件;
(2)prgx文件的内容:
50 16 * * * rm -r /abc/*
0 8-18/1 * * * cut -f1 /xyz/x1 >;>; /backup/bak01.txt
50 17 * * * tar zcvf backup.tar.gz /data
55 17 * * * umount /dev/hdc
(3)由超级用户登录,用crontab执行 prgx文件中的内容:
root@xxx:#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 /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
五、多选题
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.关于建立系统用户的正确描述是(ABD)
A 在Linux系统下建立用户使用adduser命令
B 每个系统用户分别在/etc/passwd和/etc/shadow文件中有一条记录
C 访问每个用户的工作目录使用命令“cd /用户名”
D 每个系统用户在默认状态下的工作目录在/home/用户名
E 每个系统用户在/etc/fstab文件中有一条记录
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!
1 sort的工作原理
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
2 sort的-u选项
它的作用很简单,就是在输出行中去除重复行。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
pear
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
pear
[rocrocket@rocrocket programming]$ sort -u seq.txt
apple
banana
orange
pear
pear由于重复被-u选项无情的删除了。
3 sort的-r选项
sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。
[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort number.txt
1
2
3
4
5
[rocrocket@rocrocket programming]$ sort -r number.txt
5
4
3
2
1
4 sort的-o选项
由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。
[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt
[rocrocket@rocrocket programming]$ cat number.txt
[rocrocket@rocrocket programming]$
看,竟然将number清空了。
就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。
[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt
[rocrocket@rocrocket programming]$ cat number.txt
5
4
3
2
1
5 sort的-n选项
你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。
我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!
[rocrocket@rocrocket programming]$ cat number.txt
1
10
19
11
2
5
[rocrocket@rocrocket programming]$ sort number.txt
1
10
11
19
2
5
[rocrocket@rocrocket programming]$ sort -n number.txt
1
2
5
10
11
19
6 sort的-t选项和-k选项
如果有一个文件的内容是这样:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。
7 其他的sort常用选项
-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1
-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-M会以月份来排序,比如JAN小于FEB等等
-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思。今天,我们就来搞定它—-k选项!
1 准备素材
$ cat facebook.txt
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500
第一个域是公司名称,第二个域是公司人数,第三个域是员工平均工资。(除了公司名称,其他的别信,都瞎写的^_^)
2 我想让这个文件按公司的字母顺序排序,也就是按第一个域进行排序:(这个facebook.txt文件有三个域)
$ sort -t ‘ ‘ -k 1 facebook.txt
baidu 100 5000
google 110 5000
guge 50 3000
sohu 100 4500
看到了吧,就直接用-k 1设定就可以了。(其实此处并不严格,稍后你就会知道)
3 我想让facebook.txt按照公司人数排序
$ sort -n -t ‘ ‘ -k 2 facebook.txt
guge 50 3000
baidu 100 5000
sohu 100 4500
google 110 5000
不用解释,我相信你能懂。
但是,此处出现了问题,那就是baidu和sohu的公司人数相同,都是100人,这个时候怎么办呢?按照默认规矩,是从第一个域开始进行升序排序,因此baidu排在了sohu前面。
4 我想让facebook.txt按照公司人数排序 ,人数相同的按照员工平均工资升序排序:
$ sort -n -t ‘ ‘ -k 2 -k 3 facebook.txt
guge 50 3000
sohu 100 4500
baidu 100 5000
google 110 5000
看,我们加了一个-k2 -k3就解决了问题。对滴,sort支持这种设定,就是说设定域排序的优先级,先以第2个域进行排序,如果相同,再以第3个域进行排序。(如果你愿意,可以一直这么写下去,设定很多个排序优先级)
5 我想让facebook.txt按照员工工资降序排序,如果员工人数相同的,则按照公司人数升序排序:(这个有点难度喽)
$ sort -n -t ‘ ‘ -k 3r -k 2 facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
此处有使用了一些小技巧,你仔细看看,在-k 3后面偷偷加上了一个小写字母r。你想想,再结合我们上一篇文章,能得到答案么?揭晓:r和-r选项的作用是一样的,就是表示逆序。因为sort默认是按照升序排序的,所以此处需要加上r表示第三个域(员工平均工资)是按照降序排序。此处你还可以加上n,就表示对这个域进行排序时,要按照数值大小进行排序,举个例子吧:
$ sort -t ‘ ‘ -k 3nr -k 2n facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
看,我们去掉了最前面的-n选项,而是将它加入到了每一个-k选项中了。
6 -k选项的具体语法格式
要继续往下深入的话,就不得不来点理论知识。你需要了解-k选项的语法格式,如下:
[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
这个语法格式可以被其中的逗号(“,”)分为两大部分,Start部分和End部分。
先给你灌输一个思想,那就是“如果不设定End部分,那么就认为End被设定为行尾”。这个概念很重要的,但往往你不会重视它。
Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似n和r的选项部分。我们重点说说Start部分的FStart和C.Start。
C.Start也是可以省略的,省略的话就表示从本域的开头部分开始。之前例子中的-k 2和-k 3就是省略了C.Start的例子喽。
FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。
同理,在End部分中,你可以设定FEnd.CEnd,如果你省略.CEnd,则表示结尾到“域尾”,即本域的最后一个字符。或者,如果你将CEnd设定为0(零),也是表示结尾到“域尾”。
7 突发奇想,从公司英文名称的第二个字母开始进行排序:
$ sort -t ‘ ‘ -k 1.2 facebook.txt
baidu 100 5000
sohu 100 4500
google 110 5000
guge 50 3000
看,
我们使用了-k
1.2,这就表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。你会发现baidu因为第二个字母是a而名列榜首。sohu和
google第二个字符都是o,但sohu的h在google的o前面,所以两者分别排在第二和第三。guge只能屈居第四了。
8 又突发奇想,,只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序:
$ sort -t ‘ ‘ -k 1.2,1.2 -k 3,3nr facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
由
于只对第二个字母进行排序,所以我们使用了-k 1.2,1.2的表示方式,表示我们“只”对第二个字母进行排序。(如果你问“我使用-k
1.2怎么不行?”,当然不行,因为你省略了End部分,这就意味着你将对从第二个字母起到本域最后一个字符为止的字符串进行排序)。对于员工工资进行排
序,我们也使用了-k
3,3,这是最准确的表述,表示我们“只”对本域进行排序,因为如果你省略了后面的3,就变成了我们“对第3个域开始到最后一个域位置的内容进行排序”
了。
9 在modifier部分还可以用到哪些选项?
可以用到b、d、f、i、n 或 r。
其中n和r你肯定已经很熟悉了。
b表示忽略本域的签到空白符号。
d表示对本域按照字典顺序排序(即,只考虑空白和字母)。
f表示对本域忽略大小写进行排序。
i表示忽略“不可打印字符”,只针对可打印字符进行排序。(有些ASCII就是不可打印字符,比如\a是报警,\b是退格,\n是换行,\r是回车等等)
10 思考思考关于-k和-u联合使用的例子:
$ cat facebook.txt
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500
这是最原始的facebook.txt文件。
$ sort -n -k 2 facebook.txt
guge 50 3000
baidu 100 5000
sohu 100 4500
google 110 5000
$ sort -n -k 2 -u facebook.txt
guge 50 3000
baidu 100 5000
google 110 5000
当设定以公司员工域进行数值排序,然后加-u后,sohu一行就被删除了!原来-u只识别用-k设定的域,发现相同,就将后续相同的行都删除。
$ sort -k 1 -u facebook.txt
baidu 100 5000
google 110 5000
guge 50 3000
sohu 100 4500
$ sort -k 1.1,1.1 -u facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
这个例子也同理,开头字符是g的guge就没有幸免于难。
$ sort -n -k 2 -k 3 -u facebook.txt
guge 50 3000
sohu 100 4500
baidu 100 5000
google 110 5000
咦!这里设置了两层排序优先级的情况下,使用-u就没有删除任何行。原来-u是会权衡所有-k选项,将都相同的才会删除,只要其中有一级不同都不会轻易删除的:)(不信,你可以自己加一行sina 100 4500试试看)
11 最诡异的排序:
$ sort -n -k 2.2,3.1 facebook.txt
guge 50 3000
baidu 100 5000
sohu 100 4500
google 110 5000
以第二个域的第二个字符开始到第三个域的第一个字符结束的部分进行排序。
第一行,会提取0 3,第二行提取00 5,第三行提取00 4,第四行提取10 5。
又因为sort认为0小于00小于000小于0000….
因此0 3肯定是在第一个。10 5肯定是在最后一个。但为什么00 5却在00 4前面呢?(你可以自己做实验思考一下。)
答案揭晓:原来“跨域的设定是个假象”,sort只会比较第二个域的第二个字符到第二个域的最后一个字符的部分,而不会把第三个域的开头字符纳入比较范围。当发现00和00相同时,sort就会自动比较第一个域去了。当然baidu在sohu前面了。用一个范例即可证实:
$ sort -n -k 2.2,3.1 -k 1,1r facebook.txt
guge 50 3000
sohu 100 4500
baidu 100 5000
google 110 5000
12 有时候在sort命令后会看到+1 -2这些符号,这是什么东东?
关于这种语法,最新的sort是这么进行解释的:
On
older systems, `sort’ supports an obsolete origin-zero syntax `+POS1
[-POS2]‘ for specifying sort keys. POSIX 1003.1-2001 (*note Standards
conformance::) does not allow this; use `-k’ instead.
原来,这种古老的表示方式已经被淘汰了,以后可以理直气壮的鄙视使用这种表示方法的脚本喽!
(为了防止古老脚本的存在,在这再说一下这种表示方法,加号表示Start部分,减号表示End部分。最最重要的一点是,这种方式方法是从0开始计数的,以前所说的第一个域,在此被表示为第0个域。以前的第2个字符,在此表示为第1个字符。明白?)
1.系统启动,在出现系统选择界面时,在选项上按“e”键,
2.然后在这一行“kernel/boot/vmlinuz-2.4.18-14 root=LABEL=/”的“root”前加上“single”
3.然后按f10进入字符界面,当出现“sh-2.05b#”时,就意味着已经进入单用户模式。
4.输入“passwd root”,就可以重新设置root密码了。
5.设置完成后,reboot重启,用刚才设置的密码就可以进入linux系统了
显示日志文件
tail -n行号 -f 日志文件名 用于观察日志最后n行的刷新情况
删除目录
rm -rf 目录
解压缩
tar –zxvf apr-1.4.2.tar.gz
压缩
tar -czvf this.tar.gz ./*.*
获取系统时间
date +'%Y-%m-%d %H:%M:%S'
查进程
ps -ef|grep poscoupon/tomcat
ps aux|grep poscoupon/tomcat
批量杀进程,如查杀所有poscoupon的进程
ps -ef |grep poscoupon/tomcat |awk '{print $2}' |xargs kill -9
ps -ef |grep tomcat |awk '{print $2}' |xargs kill -9
杀进程: (-9强杀)
kill <pid> -9
查1天之内被存取过的文件
find /home -atime -1
查看8天内有变更的文件
find /home/tomcat/coupon -ctime -8
拷贝子目录
cp -R coupon/ bak1/
查看系统发行版本:
cat /etc/issue
查系统内核:
uname -a
查看端口号有80的tcp连接
netstat -anpt | grep 80
linux自启动命令
在/etc/rc.local 中添加要启动的命令
启动时将以root身份运行
启动时指定脚本以某用户身份运行
su - username -c "/path/program.name" 加进rc.local就可以了.
在root用户中,以指定用户身份运行
sudo -u poscoupon /home/poscoupon/autoStartup.sh
启动ftp
/etc/rc.d/init.d/vsftpd start
1. 查看内核版本命令:
1) [root@q1test01 ~]# cat /proc/version
Linux version 2.6.9-22.ELsmp (
[email protected]) (gcc version 3.4.4 20050721
3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005
2) [root@q1test01 ~]# uname -a
Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
3) [root@q1test01 ~]# uname -r
2.6.9-22.ELsmp
2. 查看linux版本:
1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:
[
[email protected] ~]# [root@q1test01 ~]# lsb_release -a
LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-
ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
Release: 4
Codename: NahantUpdate2
注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
2) 登录到linux执行cat /etc/issue,例如如下:
[root@q1test01 ~]# cat /etc/issue
Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
Kernel \r on an \m
3) 登录到linux执行cat /etc/redhat-release ,例如如下:
[root@q1test01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1
4) 登录到linux执行rpm -q redhat-release ,例如如下:
[root@q1test01 ~]# rpm -q redhat-release
redhat-release-4AS-3
注:这种方式下可看到一个所谓的release号,比如上边的例子是3
这个release号和实际的版本之间存在一定的对应关系,如下:
redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3
redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4
redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4
redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1
redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2
redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3
redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4
另:第3)、4)两种方法只对Redhat Linux有效.
查看系统是64位还是32位:
1、getconf LONG_BIT or getconf WORD_BIT
2、file /bin/ls
3、lsb_release -a
在debian中,IP地址的配置参数在/etc/network/目录下的interface中,而DNS的配置参数在/etc目录下的resolv.conf中,下面是配置参数的说明:
========================
IP地址设置: /etc/network/interface
// 动态DHCP获得
# 启动系统激活设备
# Loop回环地址
auto lo
iface lo inet loopback
# 启动系统激活设备
# 网卡eth0设置为DHCP类型
auto eth0
iface eth0 inet dhcp
// 静态Static获得
# 启动系统激活设备
# Loop回环地址
auto lo
iface lo inet loopback
# 启动系统激活设备
# 网卡eth0设置为Static类型
auto eth0
iface eth0 inet static
# 指定IP地址、子网掩码、网关
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
注:在配置IP地址参数时,“// 动态DHCP获得”和“// 静态Static获得”只能取其中的一种,二者不能同时存在,切记!!!
========================
DNS服务器设置: /etc/resolv.conf
# 必须设置.否则无法访问任何URL
nameserver 8.8.4.4
nameserver 8.8.8.8
========================
重启网卡
/etc/init.d/networking restart
ifdown eth0
ifup eth0
1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
# cd /tmp
# sudo wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
# sudo wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
2.先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure –prefix=/usr //如果出错需安装gcc,执行sudo apt-get install gcc
# make //如果出错需安装make,执行sudo apt-get install make
# sudo make install
3.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
表示都安装成功。
4.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure –with-libevent=/usr
# make
# sudo make install
5.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
6.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.1.100 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`
一,ifconfig
用于基本接口与IP配置的ifconfig
ifconfig工具(interface configurator,接口配置器)提供了一些非常基本但是非常重要的功能。它可以打开和关闭网络适配器,分配IP地址与netmask信息。一些常用指令如下:
查看网络接口当前配置与接口命名:
ifconfig
打开(up)或关闭(down)适配器
ifconfig <网络名> <up|down>
为适配器分配IP地址:
ifconfig <网络名> <ip地址>
为适配器分配第二个IP地址:
ifconfig <网络名:实例数> <ip地址>
范例:ifconfig eth0:0 192.168.1.101
二,ethtool
用于管理以太网卡的ethtool工具
Ethtool可以查看和修改以太适配器的各种设置(不包括Wi-Fi网卡),包括tx/rx,checksumming和wake-on-LAN设置。下面是一些有用的命令:
显示某个网络适配器的驱动信息,适用于查询软件兼容性的情况:
ethtool -i <接口名>
显示网络数据:
ethtool -S
设置适配器连接速度(Mbps)
ethtool speed <10|100|1000>
三,iwconfig
iwconfig配置无线网络
iwconfig工具可以算是无线网卡的ifconfig和ethtool。你可以检查基本的Wi-Fi网络设置,如SSID、channel和加密等细节。此外还可以修改一些高级设置,包括接收敏感度,RTS/CTS,碎片,以及重试数。下面介绍几个有用的命令:
显示当前无线设置,包括接口名称:
iwconfig
设置ESSID(扩展服务设置识别器)或网络名:
iwconfig <接口名> essid <网络名>
范例:iwconfig <接口名> "my network"
范例:Example: iwconfig <接口名> any
设置radio的无线channel(1-11):
iwconfig <接口名> <channel>
输入WEP加密密钥(WPA和WPA1尚不支持,需要wpa_supplicant的支持):
iwconfig eth0 key <HEX格式的密钥>
限制适配器仅能在指定MAC地址下连接到AP:
iwconfig <接口名> ap <mac地址>
范例:iwconfig eth0 ap 00:60:1D:01:23:45
设置radio的发射强度,仅在无线网卡支持的情况下有效。默认单位为dBm,可设置为mW:
iwconfig <接口名> txpower <强度>
范例:iwconfig eth0 txpower 15
范例:iwconfig eth0 txpower 30mW
四,tcpdump
用于嗅探网络包的tcpdump
这不是一个简单的工具。这是一个嗅探器/分析器。它可以捕捉你的接口中和网络上传输的包。这个工具常常通过其他GUI程序进行调用,不过在terminal下也同样有用。可以从以下几个指令开始了解:
-i:设置需要捕捉的接口,如eth0或ath0。
-n:停止用主机名称替换IP地址。
-nn:停止解析主机名或端口名。
-s:每个packet显示的最大byte数。默认值为68,设置为0则显示整个packet。
v,-vv和-vvv:显示随packet输出的详细信息,如IP packet的全长度和选项,完全解码的SMB packet,以及telnet细节。
-x:以HEX格式显示packet内容。
-X:以ASCII格式输出packet内容。
五,ping
Ping,你的网络声纳
Ping工具与微软在Windows中提供的差不多,不过选项类型和名称不同。另外,Linux中的Ping在默认情况下会无休止的ping,而不是Windows中的四次。
开始ping一个IP地址或主机名/域名:
ping <ip地址>
要停止ping,使用Ctrl+C。
一些有用的选项包括:
-c:为发送的packet计数
-i:packet间等待的时间长度,单位为秒
-s:packet大小,默认为56
-w:执行ping的时间长度,单位为秒
六,netstat
检测网络数据的netstat
netstat工具可以显示网络连接、接口数据、路由表、masquerade连接和multicast成员的详细信息。常用指令如下:
查看打开的socket列表:
netstat
显示所有网络接口:
netstat -i
显示每个协议的概括情况:
netstat -s
七,hostname
用于查看和修改主机名的hostname
所有管理员都知道主机名(hostname)是什么东西。主机名是一个相比IP地址而言更加友好的网络设备显示方式。Linux当中提供了一个hostname工具,可以让你暂时修改你的主机名。
查看当前主机名:
hostname
暂时更改主机名(可以维持到重启之前):
hostname <新的主机名>
若想要永久的更改主机名,则需要编辑/etc/hostname文件或/etc/sysconfig/network文件
Bash 是我们经常与之打交道的 Shell 程序,本文针对其使用技巧进行了搜罗。相信在你看过这些内容之后,定会在 Bash 的世界里游刃有余。
- 从历史中执行命令 有时候,我们需要在 Bash 中重复执行先前的命令。你当然可以使用上方向键来查看之前曾经运行过的命令。但这里有一种更好的方式:你可以按 Ctrl + r 组合键进入历史搜索模式,一旦找到需要重复执行的命令,按回车键即可。
- 重复命令参数 先来看一个例子:
mkdir /path/to/exampledir cd !$ 本例中,第一行命令将创建一个目录,而第二行的命令则转到刚创建的目录。这里,“!$”的作用就是重复前一个命令的参数。事实上,不仅是命令的参数可以重复,命令的选项同样可以。另外,Esc + . 快捷键可以切换这些命令参数或选项。
- 用于编辑的快捷键
- Ctrl + a:将光标定位到命令的开头
- Ctrl + e:与上一个快捷键相反,将光标定位到命令的结尾
- Ctrl + u:剪切光标之前的内容
- Ctrl + k:与上一个快捷键相反,剪切光标之后的内容
- Ctrl + y:粘贴以上两个快捷键所剪切的内容
- Ctrl + t:交换光标之前两个字符的顺序
- Ctrl + w:删除光标左边的参数(选项)或内容
- Ctrl + l:清屏
- 处理作业 首先,使用 Ctrl + z 快捷键可以让正在执行的命令挂起。如果要让该进程在后台执行,那么可以执行 bg 命令。而 fg
命令则可以让该进程重新回到前台来。使用 jobs 命令能够查看到哪些进程在后台执行。 你也可以在 fg 或 bg 命令中使用作业 id,如:
fg %3 又如: bg %7
- 使用置换
- 命令置换 先看例子:
du -h -a -c $(find . -name *.conf 2>&-) 注意 $() 中的部分,这将告诉 Bash 运行 find 命令,然后把返回的结果作为 du 的参数。
- 进程置换 仍然先看例子:
diff <(ps axo comm) <(ssh user@host ps axo comm) 该命令将比较本地系统和远程系统中正在运行的进程。请注意 <() 中的部分。
- xargs 看例:
find . -name *.conf -print0 | xargs -0 grep -l -Z mem_limit | xargs -0 -i cp {} {}.bak 该命令将备份当前目录中的所有 .conf 文件。
- 使用管道 下面是一个简单的使用管道的例子:
ps aux | grep init 这里,“|”操作符将 ps aux 的输出重定向给 grep init。 下面还有两个稍微复杂点的例子: ps aux | tee filename | grep init 及: ps aux | tee -a filename | grep init
- 将标准输出保存为文件 你可以将命令的标准输出内容保存到一个文件中,举例如下:
ps aux > filename 注意其中的“>”符号。 你也可以将这些输出内容追加到一个已存在的文件中: ps aux >> filename 你还可以分割一个较长的行: command1 | command2 | ... | commandN > tempfile1 cat tempfile1 | command1 | command2 | ... | commandN > tempfile2
- 标准流:重定向与组合 重定向流的例子:
ps aux 2>&1 | grep init 这里的数字代表:
上面的命令中,“grep init”不仅搜索“ps aux”的标准输出,而且搜索 sterr 输出。
编辑命令
- Ctrl + a :移到命令行首
- Ctrl + e :移到命令行尾
- Ctrl + f :按字符前移(右向)
- Ctrl + b :按字符后移(左向)
- Alt + f :按单词前移(右向)
- Alt + b :按单词后移(左向)
- Ctrl + xx:在命令行首和光标之间移动
- Ctrl + u :从光标处删除至命令行首
- Ctrl + k :从光标处删除至命令行尾
- Ctrl + w :从光标处删除至字首
- Alt + d :从光标处删除至字尾
- Ctrl + d :删除光标处的字符
- Ctrl + h :删除光标前的字符
- Ctrl + y :粘贴至光标后
- Alt + c :从光标处更改为首字母大写的单词
- Alt + u :从光标处更改为全部大写的单词
- Alt + l :从光标处更改为全部小写的单词
- Ctrl + t :交换光标处和之前的字符
- Alt + t :交换光标处和之前的单词
- Alt + Backspace:与 Ctrl + w
相同类似,分隔符有些差别 [感谢 rezilla 指正]
重新执行命令
- Ctrl + r:逆向搜索命令历史
- Ctrl + g:从历史搜索模式退出
- Ctrl + p:历史中的上一条命令
- Ctrl + n:历史中的下一条命令
- Alt + .:使用上一条命令的最后一个参数
控制命令
- Ctrl + l:清屏
- Ctrl + o:执行当前命令,并选择上一条命令
- Ctrl + s:阻止屏幕输出
- Ctrl + q:允许屏幕输出
- Ctrl + c:终止命令
- Ctrl + z:挂起命令
Bang (!) 命令
- !!:执行上一条命令
- !blah:执行最近的以 blah 开头的命令,如 !ls
- !blah:p:仅打印输出,而不执行
- !$:上一条命令的最后一个参数,与 Alt + . 相同
- !$:p:打印输出 !$ 的内容
- !*:上一条命令的所有参数
- !*:p:打印输出 !* 的内容
- ^blah:删除上一条命令中的 blah
- ^blah^foo:将上一条命令中的 blah 替换为 foo
- ^blah^foo^:将上一条命令中所有的 blah 都替换为 foo
友情提示:
- 以上介绍的大多数 Bash 快捷键仅当在 emacs 编辑模式时有效,若你将 Bash 配置为 vi 编辑模式,那将遵循 vi 的按键绑定。Bash 默认为 emacs 编辑模式。如果你的 Bash 不在 emacs 编辑模式,可通过
set -o emacs 设置。
- ^S、^Q、^C、^Z 是由终端设备处理的,可用
stty 命令设置。
1.下载站:
http://sourceforge.net/projects/boost/files/boost/1.48.0/
2.安装
tar -xzvf boost_1_48_0.tar.g -C ~/source
cd source/boost_1_48_0/
./bootstrap.sh
sudo ./bjam --layout=versioned --build-type=complete --toolset=gcc install
3.设置环境变量
在/etc/profile.d新建可执行文件boost.sh,添加文件内容:
#!/bin/sh
BOOST_INCLUDE=/usr/local/include/boost
BOOST_LIB=/usr/local/lib
export BOOST_INCLUDE BOOST_LIB
命令行执行:source /etc/profile.d/boost.sh
以后在编译程序时,只需要用:-I$BOOST_INCLUDE -L$BOOST_LIB 即可,还要使用-l指定了链接库。
4.设置共享库链接目录
/etc/ld.so.conf文件内容后面追加/usr/local/lib
命令行执行
sudo ldconfig
5.遇到的问题及解决方案
安装过程爆出很多和bz相关的错误,解决方案如下
sudo apt-get install libbz2-dev
PS 安装过程中的错误:
libs/iostreams/src/bzip2.cpp:20:56: error: bzlib.h: 没有那个文件或目录
libs/iostreams/src/bzip2.cpp:31: error: ‘BZ_OK’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:32: error: ‘BZ_RUN_OK’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:33: error: ‘BZ_FLUSH_OK’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:34: error: ‘BZ_FINISH_OK’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:35: error: ‘BZ_STREAM_END’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:36: error: ‘BZ_SEQUENCE_ERROR’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:37: error: ‘BZ_PARAM_ERROR’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:38: error: ‘BZ_MEM_ERROR’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:39: error: ‘BZ_DATA_ERROR’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:40: error: ‘BZ_DATA_ERROR_MAGIC’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:41: error: ‘BZ_IO_ERROR’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:42: error: ‘BZ_UNEXPECTED_EOF’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:43: error: ‘BZ_OUTBUFF_FULL’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:44: error: ‘BZ_CONFIG_ERROR’ was not declared in this scope
libs/iostreams/src/bzip2.cpp:48: error: ‘BZ_FINISH’ was not declared in this scope
//mostly like above....
6.测试
#include <boost/python.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello)
{
using namespace boost::python;
def("greet", greet);
}
把代码存为hello.cpp, 编译成so库
g++ hello.cpp -o hello.so -shared -I/usr/include/python2.6 -I /usr/lib/python2.6/config/ -lboost_python
此处python路径设为你的python路径, 并且必须加-lboost_python, 这个库名不一定是这个, 去/user/local/lib查
然后在有此so库的目录, 进入python, 可以如下使用
>>> import hello
>>> hello.greet()
'hello, world'
7.测试遇到问题及解决方案
如果遇到问题:
/usr/bin/ld: cannot find -lboost_python
collect2: ld returned 1 exit status
解决方案:
- 确认/etc/ld.so.conf.d/相关配置文件已包含boost_python.so所在目录
- boost_python库所在目录(默认安装在/usr/local/lib)存在libboost_python.so,若不存在则从libboost_python.so.***建软链接到libboost_python.so
linux下的文件结构,看看每个文件夹都是干吗用的
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录(呵呵,特权阶级)
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/x11r6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
通常情况下,根文件系统所占空间一般应该比较小,因为其中的绝大部分文件都不需要
经常改动,而且包括严格的文件和一个小的不经常改变的文件系统不容易损坏。
除了可能的一个叫/ v m l i n u z标准的系统引导映像之外,根目录一般不含任何文件。所有
其他文件在根文件系统的子目录中。
1. /bin目录
/ b i n目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些
命令都是二进制文件的可执行程序( b i n是b i n a r y - -二进制的简称),多是系统中重要的系统文件。
2. /sbin目录
/ s b i n目录类似/bin ,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使
用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
3. /etc目录
/ e t c目录存放着各种系统配置文件,其中包括了用户信息文件/ e t c / p a s s w d,系统初始化文
件/ e t c / r c等。l i n u x正是*这些文件才得以正常地运行。
4. /root目录
/root 目录是超级用户的目录。
5. /lib目录
/ l i b目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文
件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副
本,故可以使得可执行文件变得更小,节省空间。
6. /lib/modules 目录
/lib/modules 目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引
导系统所需的模块(例如网络和文件系统驱动)。
7. /dev目录
/ d e v目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用
户可以通过访问/ d e v / m o u s e来访问鼠标的输入,就像访问其他文件一样。
8. /tmp目录
/tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用
/ v a r / t m p来代替/tmp ,因为前者可能拥有一个更大的磁盘空间。
9. /boot目录
/ b o o t目录存放引导加载器(bootstrap loader)使用的文件,如l i l o,核心映像也经常放在这里,
而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的
文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在i d e硬盘的前1 0 2 4柱面内。
10. /mnt目录
/ m n t目录是系统管理员临时安装( m o u n t )文件系统的安装点。程序并不自动支持安装到
/mnt 。/mnt 下面可以分为许多子目录,例如/mnt/dosa 可能是使用m s d o s文件系统的软驱,
而/mnt/exta 可能是使用e x t 2文件系统的软驱,/mnt/cdrom 光驱等等。
11. /proc, /usr,/var,/home目录
其他文件系统的安装点。
下面详细介绍;
/etc文件系统
/etc 目录包含各种系统配置文件,下面说明其中的一些。其他的你应该知道它们属于哪个
程序,并阅读该程序的m a n页。许多网络配置文件也在/etc 中。
1. /etc/rc或/etc/rc.d或/etc/rc?.d
启动、或改变运行级时运行的脚本或脚本的目录。
2. /etc/passwd
用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其
他信息。
3. /etc/fdprm
软盘参数表,用以说明不同的软盘格式。可用setfdprm 进行设置。更多的信息见s e t f d p r m
的帮助页。
4. /etc/fstab
指定启动时需要自动安装的文件系统列表。也包括用swapon -a启用的s w a p区的信息。
5. /etc/group
类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据。
6. /etc/inittab
init 的配置文件。
7. /etc/issue
包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。具体内
容由系统管理员确定。
8. /etc/magic
“f i l e”的配置文件。包含不同文件格式的说明,“f i l e”基于它猜测文件类型。
9. /etc/motd
m o t d是message of the day的缩写,用户成功登录后自动输出。内容由系统管理员确定。
常用于通告信息,如计划关机时间的警告等。
10. /etc/mtab
当前安装的文件系统列表。由脚本( s c r i t p )初始化,并由mount 命令自动更新。当需要一
个当前安装的文件系统的列表时使用(例如df 命令)。
11. /etc/shadow
在安装了影子( s h a d o w )口令软件的系统上的影子口令文件。影子口令文件将/ e t c / p a s s w d
文件中的加密口令移动到/ e t c / s h a d o w中,而后者只对超级用户( r o o t )可读。这使破译口令更困
难,以此增加系统的安全性。
12. /etc/login.defs
l o g i n命令的配置文件。
13. /etc/printcap
类似/etc/termcap ,但针对打印机。语法不同。
14. /etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc
登录或启动时b o u r n e或c shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。
15. /etc/securetty
确认安全终端,即哪个终端允许超级用户( r o o t )登录。一般只列出虚拟控制台,这样就不
可能(至少很困难)通过调制解调器( m o d e m )或网络闯入系统并得到超级用户特权。
16. /etc/shells
列出可以使用的s h e l l。chsh 命令允许用户在本文件指定范围内改变登录的s h e l l。提供一
台机器f t p服务的服务进程ftpd 检查用户s h e l l是否列在/etc/shells 文件中,如果不是,将不允
许该用户登录。
17. /etc/termcap
终端性能数据库。说明不同的终端用什么“转义序列”控制。写程序时不直接输出转义
序列(这样只能工作于特定品牌的终端),而是从/etc/termcap 中查找要做的工作的正确序列。
这样,多数的程序可以在多数终端上运行。
/dev文件系统
/dev 目录包括所有设备的设备文件。设备文件用特定的约定命名,这在设备列表中说明。
设备文件在安装时由系统产生,以后可以用/dev/makedev 描述。/ d e v / m a k e d e v.local 是
系统管理员为本地设备文件(或连接)写的描述文稿(即如一些非标准设备驱动不是标准
makedev 的一部分)。下面简要介绍/ d e v下一些常用文件。
1. /dev/console
系统控制台,也就是直接和系统连接的监视器。
2. /dev/hd
i d e硬盘驱动程序接口。如: / d e v / h d a指的是第一个硬盘, h a d 1则是指/ d e v / h d a的第一个
分区。如系统中有其他的硬盘,则依次为/ d e v / h d b、/ d e v / h d c、. . . . . .;如有多个分区则依次为
h d a 1、h d a 2 . . . . . .
3. /dev/sd
s c s i磁盘驱动程序接口。如有系统有s c s i硬盘,就不会访问/ d e v / h a d,而会访问/ d e v / s d a。
4. /dev/fd
软驱设备驱动程序。如: / d e v / f d 0指系统的第一个软盘,也就是通常所说的a:盘,
/ d e v / f d 1指第二个软盘,. . . . . .而/ d e v / f d 1 h 1 4 4 0则表示访问驱动器1中的4 . 5高密盘。
5. /dev/st
s c s i磁带驱动器驱动程序。
6. /dev/tty
提供虚拟控制台支持。如: / d e v / t t y 1指的是系统的第一个虚拟控制台, / d e v / t t y 2则是系统
的第二个虚拟控制台。
7. /dev/pty
提供远程登陆伪终端支持。在进行te l n e t登录时就要用到/ d e v / p t y设备。
8. /dev/ttys
计算机串行接口,对于d o s来说就是“ c o m 1”口。
9. /dev/cua
计算机串行接口,与调制解调器一起使用的设备。
10. /dev/null
“黑洞”,所有写入该设备的信息都将消失。例如:当想要将屏幕上的输出信息隐藏起来
时,只要将输出信息输入到/ d e v / n u l l中即可。
/usr文件系统
/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的
所有文件一般来自l i n u x发行版( d i s t r i b u t i o n );本地安装的程序和其他东西在/usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。/usr 目录下的许多内容是
可选的,但这些功能会使用户使用系统更加有效。/ u s r可容纳许多大型的软件包和它们的配置
文件。下面列出一些重要的目录(一些不太重要的目录被省略了)。
1. /usr/x11r6
包含x wi n d o w系统的所有可执行程序、配置文件和支持文件。为简化x的开发和安装,
x的文件没有集成到系统中。x wi n d o w系统是一个功能强大的图形环境,提供了大量的图形
工具程序。用户如果对microsoft wi n d o w s或m a c h i n t o s h比较熟悉的话,就不会对x wi n d o w系统感到束手无策了。
2. /usr/x386
类似/ u s r / x 11r6 ,但是是专门给x 11 release 5的。
3. /usr/bin
集中了几乎所有用户命令,是系统的软件库。另有些命令在/bin 或/usr/local/bin 中。
4. /usr/sbin
包括了根文件系统不必要的系统管理命令,例如多数服务程序。
5. /usr/man、/ u s r / i n f o、/ u s r / d o c
这些目录包含所有手册页、g n u信息文档和各种其他文档文件。每个联机手册的“节”
都有两个子目录。例如: / u s r / m a n / m a n 1中包含联机手册第一节的源码(没有格式化的原始文
件),/ u s r / m a n / c a t 1包含第一节已格式化的内容。l联机手册分为以下九节:内部命令、系统调
用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序。
6. /usr/include
包含了c语言的头文件,这些文件多以. h结尾,用来描述c语言程序中用到的数据结构、
子过程和常量。为了保持一致性,这实际上应该放在/usr/lib 下,但习惯上一直沿用了这个名
字。
7. /usr/lib
包含了程序或子系统的不变的数据文件,包括一些s i t e - w i d e配置文件。名字l i b来源于库
(library); 编程的原始库也存在/usr/lib 里。当编译程序时,程序便会和其中的库进行连接。也
有许多程序把配置文件存入其中。
8. /usr/local
本地安装的软件和其他文件放在这里。这与/ u s r很相似。用户可能会在这发现一些比较大
的软件包,如t e x、e m a c s等。
/var文件系统
/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化
或扩充的。原来/ v a r目录中有些内容是在/ u s r中的,但为了保持/ u s r目录的相对稳定,就把那
些需要经常改变的目录放到/ v a r中了。每个系统是特定的,即不通过网络与其他计算机共享。
下面列出一些重要的目录(一些不太重要的目录省略了)。
1. /var/catman
包括了格式化过的帮助( m a n )页。帮助页的源文件一般存在/ u s r / m a n / m a n中;有些m a n页
可能有预格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n页在第一次看时都需要格式化,
格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。
(/var/catman 经常被清除,就像清除临时目录一样。)
2. /var/lib
存放系统正常运行时要改变的文件。
3. /var/local
存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,
即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。
4. /var/lock
锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以用来支持他们正在
使用某个特定的设备或文件。其他程序注意到这个锁定文件时,就不会再使用这个设备或文
件。
5. /var/log
各种程序的日志( l o g )文件,尤其是login (/var/log/wtmp log纪录所有到系统的登录和注
销) 和syslog (/var/log/messages 纪录存储所有核心和系统程序信息)。/var/log 里的文件经常不
确定地增长,应该定期清除。
6. /var/run
保存在下一次系统引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登
录的用户的信息。
7. /var/spool
放置“假脱机( s p o o l )”程序的目录,如m a i l、n e w s、打印队列和其他队列工作的目录。每
个不同的s p o o l在/var/spool 下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail 中。
8. /var/tmp
比/tmp 允许更大的或需要存在较长时间的临时文件。
注意系统管理员可能不允许/var/tmp 有很旧的文件。
/proc文件系统
/proc 文件系统是一个伪的文件系统,就是说它是一个实际上不存在的目录,因而这是一
个非常特殊的目录。它并不存在于某个磁盘上,而是由核心在内存中产生。这个目录用于提
供关于系统的信息。下面说明一些最重要的文件和目录(/proc 文件系统在proc man页中有更详
细的说明)。
1. /proc/x
关于进程x的信息目录,这一x是这一进程的标识号。每个进程在/proc 下有一个名为自
己进程号的目录。
2. /proc/cpuinfo
存放处理器( c p u )的信息,如c p u的类型、制造商、型号和性能等。
3. /proc/devices
当前运行的核心配置的设备驱动的列表。
4. /proc/dma
显示当前使用的d m a通道。
5. /proc/filesystems
核心配置的文件系统信息。
6. /proc/interrupts
显示被占用的中断信息和占用者的信息,以及被占用的数量。
7. /proc/ioports
当前使用的i / o端口。
8. /proc/kcore
系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅
仅是在程序访问它时才被创建。(注意:除非你把它拷贝到什么地方,否则/proc 下没有任何
东西占用任何磁盘空间。)
9. /proc/kmsg
核心输出的消息。也会被送到s y s l o g。
10. /proc/ksyms
核心符号表。
11. /proc/loadavg
系统“平均负载”; 3个没有意义的指示器指出系统当前的工作量。
12. /proc/meminfo
各种存储器使用信息,包括物理内存和交换分区( s w a p )。
13. /proc/modules
存放当前加载了哪些核心模块信息。
14. /proc/net
网络协议状态信息。
15. /proc/self
存放到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,这将会是不同
的连接。这主要便于程序得到它自己的进程目录。
16. /proc/stat
系统的不同状态,例如,系统启动后页面发生错误的次数。
17. /proc/uptime
系统启动的时间长度。
18. /proc/version
核心版本。
一、常用命令
1.ls
ls / 查看根目录
ls -a / 查看根目录下所要文件,包括隐藏文件
ls -l / 详细列出目录下文件的权限、所有者文件大小等详细信息,可以简单输入||
ls -f / 列出目录下文件名及其目录类型;文件后有*表示可执行文件、@表示符号链接、/结尾表示目录名
ls –t依照最后修改文件时间列出文件名
ls –R列出当前目录和其子目录的文件名
ls –color=never不以颜色方式显示
ls –color=always均以颜色方式显示
ls –color=auto系统自动判断
2.cd 切换用户当前目录
cd /etc 使用绝对路径进入"/etc"目录
cd ../dev 使用相对路径进入"/dev"目录
cd ~ 返回用户宿主目录
cd . 用户的当前目录
cd .. 返回上一级目录
3.pwd 查看用户当前所在位置
4.mkdir 创建目录
mkdir dir1 创建单个目录
mkdir dir1 dir2 dir3 创建多个目录
5.rmdir 删除目录,删除的目录必须是空的
rmdir dir1 删除目录dir1
rmdir dir1 dir2 删除目录dir1、dir2
6.touch创建文件命令
如果文件不存在的话直接创建空文件,如果存在只是更改一下时间属性
7.file 查看文件类型
File命令能够识别linux系统中大多数文件类型,可识别文本文件。二进制可执行文件、压缩文件等
8.cp复制文件
cp 源文件 目标位置
cp dir1/test/test /home
9.rm删除文件
rm是删除文件的命令,linux中的文件删除是不可恢复的
rm –r 循环删除直到删除没有
rm –f 强制删除
rm –rf 强制删除文件
10.mv移动文件或者重命名
mv /etc/test .
11.vi
12. 查看文件内容
more 3.txt
cat 3.txt
tac 3.txt
head -3 3.txt
tail -3 3.txt
13. find
find /ect -name *local
14. whereis 查找命令的环境变量
whereis ls
whereis find
15. ln 建立链接文件
hard link
symbol link 相关于桌面快捷方式
ln 3.txt 4
ln -s 3.txt 5
16. users and groups
useradd
passwd
userdel
groupadd
groupdel
17. wc 统计指定文本文件的行数、字数、字符数
18. grep 在指定的文本文件中查找指定的字符串
19. 其他命令
date ---- 显示和设置日期时间
stat ---- 显示指定文件的相关信息
who、w ---- 显示在线登录用户
whoami ---- 显示用户自己的身份
id ---- 显示当前用户的id信息
hostname ---- 显示主机名称
uname ---- 显示操作系统信息
dmesg ---- 显示系统启动信息
du ---- 显示指定的文件(目录)已使用的磁盘空间的总量
df ---- 显示文件系统磁盘空间的使用情况
free ---- 显示当前内存和交换空间的使用情况
fdisk -l ---- 显示磁盘信息
locale ---- 显示当前语言环境
二、linux常见文件类型
1. 系统文件
.conf 一种配置文件。配置文件有时也使用 .cfg
.lock 锁(lock)文件;用来判定程序或设备是否正在被使用
.rpm RedHat 用来安装软件的软件包管理器文件
2. 压缩和归档文件
.bz2 使用 bzip2 压缩的文件
.gz 使用 gzip 压缩的文件
.tar 使用 tar (tape archive,磁带归档的简写)
.tbz 用 tar 和 bzip 压缩的文件
.tgz 用 tar 和 gzip 压缩的文件
.rar windows 中常见,在 Linux 中较少使用
.zip 在 MS-DOS 中常见。在 Linux 下使用 gzip 压缩,而 .zip 归档较少见
3. 编程和脚本语言
.c C 程序语言的源码文件
.cpp C++ 程序语言的源码文件
.h C 或 C++ 程序语言的头文件
.o 程序的对象文件
.pl Perl 脚本
.py Python 脚本
.so 库文件
.sh shell 脚本
.java Java 程序源代码文件
.lcss Java 程序源代码编译后的中间代码文件
.tcl TCL 脚本
4. 常见的媒体文件
.au 音频文件
.gif GIF 图像文件
.swf Flash 动画文件
.html/htm HTML 文件
.xml XML 文件
.bmp 位图文件
.jpg JPEG 图像文件
.pdf 文档的电子映像;PDF 代表 Portable Document Format (可移植文档格式)
.png PNG 图像文件(Portable Network Graphic ,可移植网络图形)
.ps PostScript 文件,为打印而格式化过的文件
.wav 音频文件
.xpm 图像文件
三、Linux分区的命名 --/dev/xxyN
1. /dev/
这个字串是所有设备文件所在的目录名。因为分区在硬盘上,而硬盘是设备,所以这些文件代表了在/dev/上所有可能的分区
2. xx
分区名的前两个字母标明分区所在设备的类型。通常是hd(IDE磁盘)或sd(SCSI磁盘)
3. y
这个字母标明分区所在的设备。例如,/dev/hda(第一个IDE磁盘)或/dev/sdb(第二个SCSI磁盘)
4. N
最后的数字代表分区。前四个分区(主分区或扩展分区)是数字从1排列到4. 逻辑分区从5开始。例如,/dev/hda3是在第一个IDE硬盘上的第三个主分区或扩展分区;/dev/sdb6是在第二个SCSI硬盘上的第二个逻辑分区。
创建和移除挂载点
mount /dev/cdrom /mnt/cdr
umount /dev/cdrom
四、Linux分区
1.手动分区
/ ---- 根分区
/user ---- 应用软件存放位置
/home ---- 用户宿主目录的父mul
/var ---- 存放临时文件
/boot ---- 存放启动文件128M is enough
SWAP ---- 交换分区
内存的两倍
可以不建(但是不建议,有的程序会默认使用SWAP分区)
Windows中有PAGEFILE.SYS的文件相当于交换分区
2.磁盘分区方案
至少两个分区(for newbie)
/分区
SWAP分区
个人桌面分区
/分区
/boot分区
/usr分区
SWAP分区
光盘刻录在加一个/tmp分区
五、Linux目录结构
1. / Linux文件系统的入口,也是处于最高一级的目录
2. /bin 基础系统所需要的那些命令位于此目录,也是最小系统所需要的命令;比如ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户可以使用的命令。作为基础系统所需要的最基础的命令就是放在这裡
3. /boot Linux的内核及引导系统程序所需要的文件,比如vmlinuzinitrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
4. /dev 设备文件存储目录,比如声卡、磁盘......
5. /etc 系统配置文件的所在地,一些服务器的配置文件也在这裡;比如用户帐号及密码配置文件
6. /home 普通用户家目录默认存放目录
7. /lib 库文件存放目录
1./lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这裡。当系统启动的过程中fsck工具会检查这裡,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移动到这个目录中,可能会用手工的方式来修复,或移动文件到原来的位置上。
2. /media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录;CDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似cdrom目录
3. /mnt 这个目录一般是用于存放挂载存储设备的挂载目录的,比如有cdrom等
4. /opt 表示的是可选择的意思,有些软件包也会被安装在这裡,也就是自定义软件包,比如Fedora Core 5.0中,OpenOffice就是安装在这裡。有些我们自己编译的软件包,就可以安装这个目录
5. /proc操作系统运行时,进程(正在运行中的程序)信息机内核信息(比如cpu、硬盘分区、内存信息等)存放在这裡。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统
6. /root Linux超级权限用户的家目录
7. /sbin大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的
8. /tmp临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和这个目录相似
9. /usr 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包是,大多安装在这裡。如果有涉及服务器配置文件的,会吧配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts,帮助目录/usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin或/usr/local/bin或/usr/X11R6/bin,超级权限用户root的可执行命令存放目录,比如/usr/sbin或/usr/X11R6/sbin或/usr/local/sbin等;还有程序的头文件存放目录/usr/include
10. /var 这个目录的内容是经常变动的,可以理解为vary的缩写, /var下有/var/log这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,比如MySQL的,以及MySQL数据库的存放地。
六、boot sequence(important)
1. load bios(hardware infomation)
2. read MBR's config to find out the OS
3. load the kernel of the OS
4. init process starts
5. execute /etc/rc.d/sysinit
6. start other modules(etc/modules.conf)
7. execute the run lever scripts
8. execute /etc/rc.d/rc.local
9.execute /bin/login
10. shell started...
七、Login_Logout_Shutdown_Reboot
1. login
Terminal or Gui
2. Exit
3. Shutdown
4. Reboot
5. Init(run level - /etc/inittab)
init n
0 - 系统停机状态
1 - 单用户工作状态
2 - 多用户状态(没有NFS)
3 - 多用户状态(有NFS)
4 - 系统未使用,留给用户
5 - 图形介面
6 - 系统正常关闭并重新启动
八、文件权限
1.ls -l
drwxr-xr-x 4 root root 4096 Jun 12:03 d1
第一位:
d:目录 l:链接 -:文件
后九位:
r:读权限 w:写权限 x:执行权限 -:无权限
其中前三位代表文件拥有者对文件的权限
中间三位代表与文件拥有者同组的用户对文件的权限
最后三位代表除上面以外的其他用户对文件的操作权限
chmod -x 4
chmod +x 4
chmod u+x 4
chmod g+x 4
chmod o+x 4
九、管道
1.管道;将一个命令的输出传送给另一个命令,作为另一命令的输入
2.使用方法:
命令1 | 命令2 | 命令3....|命令n
3. 例子
ls -RI/etc | more
cat /etc/passwd | wc
cat /etc/passwd | grep lrj
dmesg | grep eth0
man bash | col -b > bash.txt
ls -l | grep "^d"
ls -l * | grep "^-" | wc -l
十、FTP
1.
service vsftpd start
ftp localhost
bye
ifconfig
service iptables stop 关闭Linux防火牆
匿名登录:
ftp 192.168.116.128
anonymous
administrator
允许root用户上传
more vsftpd.user_list
vi vsftpd.user_list
vi vsftpd.ftpusers
把root注释掉:#root
service vsftpd restart
十一、SSH
chkconfig --list | grep vsftpd
chkconfig vsftpd on 使vsftpd服务开机自启动
service sshd start 打开SSH服务
chkconfig sshd on
十二、JDK的安装
cd /var/ftp/pub
ls
jdk-6u3-linux-i586-rpm.bin
./jdk-6u3-linux-i586-rpm.bin
ls -l
chmod 755 jdk-6u3-linux-i586-rpm.bin 添加执行权限
检验是否安装成功:java、javac、java -version
jdk默认安装路径;/usr/java/
1.开机自启动apache
Python代码
/sbin/chkconfig httpd on
2.开机自启动mysql
Python代码
/sbin/chkconfig mysqld on
3.查看启动服务列表
Python代码
/sbin/chkconfig --list
- «
- 1
- ...
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- »