Chinaunix首页 | 论坛 | 博客
  • 博客访问: 73894
  • 博文数量: 53
  • 博客积分: 3015
  • 博客等级: 中校
  • 技术积分: 560
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-26 21:53
文章分类
文章存档

2011年(1)

2009年(52)

我的朋友
最近访客

分类: LINUX

2009-09-01 12:53:45


Linux系统的安全性
在Linux系统中,当你在自动更新系统的时候,它将同时升级系统中所有的软件。
Linux系统天生就被设计成一个多用户的操作系统,除了超级用户外,其他每个用户都只具有很有限的权限。因此,即便是某个用户想要进行恶意破坏,底层系统文件依然会受到保护。假如,在非常不幸的情况下,有任何远程的恶意代码在系统中被执行了,它所带来的危害也将被局限在一个小小的局部之中。
Linux系统采用的是模块化设计。这表示,如果不需要的话,你可以将任何一个系统组件给删除掉。由此而带来的一个好处是,如果用户感觉Linux系统的某个部分不太安全,他就可以移除掉这个组件。
在Linux系统中,当谈论到系统安全性的时候,用“你所看到的,就是你所得到的”这句话来形容,是再合适也不过了。开放源代码意味着,任何可能的软件漏洞都将被“无数双眼睛”所看到,并且得到尽可能快的修复。
必须时刻牢记,系统的安全性最终还是掌握在用户手中的。一位有经验的用户可以安全地使用Windows 98 操作系统,而一位无知的用户则可以让基于OpenBSD的系统都变得千疮百孔。因此,归根结蒂,人才是系统安全的核心,人才是一切的根本。要牢记这一点!
  #mount -t vfat /dev/sdd1 /mnt/usb
  注:现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示,可以使用下面的命令。
  #mount -t vfat -o iocharset=cp936 /dev/ sdd1 /mnt/usb
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
/etc/sysconfig/目录下的文件
   如果一些在此列出的文件没有出现在你的/etc/sysconfig/目录中,下面将对这些文件进行分别介绍,在此只对这些配置文件进行一般程度的说明,如果要看它们的完整内容,请查看其手册页。  
(1)/etc/sysconfig/amd此文件的内容是为启用amd守护进程提供它的各种参数,这些参数允许此进程自动挂载或卸载文件系统。  (2)/etc/sysconfig/apmd   高级电源管理所使用的配置文件。  
(3)/etc/sysconfig/arpwatch 此文件为arpwatch守护进程的配置文件,在系统启动时arpwatch守护进程会使用此文件中的某些区段arpwatch      进程主要用来维护一张MAC地址与IP地址的对应表。  
(4)/etc/sysconfig/authconfig内容为主机在进行认证时使用。在此文件中可能有如下所示的配置项:USEMD5=:可以是如下值中的一个:yes- 使用         kerber认证no-不使用kerberos认证  USELDAPAUTH=:可以是如下值中的一个;yes-使用LDAP认证no-不使用LDAP认证 
(5)/etc/sysconfig/autofs  此文件用来定义自动挂载设备时使用的选项,包括NFS文件系统、CD-ROMS、DISKTTES或其它媒体,文件内容如下所列:  LOCALOPTIONS="":为字符串格式,用来定义自动挂载规则,缺省为空。  DAEMONOPTIONS="":值用来设置卸载设备前的时间长度(以秒为单位),缺省为60S。  UNDERSCORETODOT=:为二进制会下值,用来控制是否将下载线转换为点,例如:auto_home转换为auto.home,缺省为1,即允许。  DISABLE_DIRECT=值为二进制,用来设置是否可以禁止直接连接支持,缺省为1,即允许。  
(6)/etc/sysconfig/clock  此文件用来控制解释从系统硬件时钟读取的值,其下确值如下:  UTC=:可以是下列值中的一个:  true或yes-硬件时钟设为universal格式  false或no-硬件时钟为本地时间  ARC=:为下列值:  true或yes-设置为此值时硬件时钟只用于HRC或HLPHABIOS系统  false或no-设置为此值时硬件时钟只用于unix系统  SRM=:为下列值:  yes或true-设置为此值时系统时间从1900年开始,此值只有于SRm-based ALPHA系统  no或false-设置为此值是为普通UNIX使用  ZONE=<filename>:为/usr/share/zoneinfo下的时区文件,如 zone="america/newyork"。  
(7)/etc/sysconfig/desktop  当使用运行级别5时,此文件为新用户指定桌面和运行显示管理器。其内容可能如下所示:  DESK="":可以为下列值之一:  GNOME-使用GNOME桌面环境  KDE-使用KDE桌面环境  DISPLAYANAGER="":可以为以下值之一:  GNOME-使用GNOME显示管理器  KDE-使用KDE显示管理器  XDM-使用XDM显示管理器  (8)/etc/sysconfig/devlabel  此文件为设备标签配置文件,不必通过手工编辑设置,可以使用/sbin/devlabel命令来修改其中指定项的值来设置此文件。  
(9)/etc/sysconfig/dhcpd  此文件内容提供一些区段给dhcpd守护进程在系统引导时使用,dhcpd守护进程使用DHCP及BOOTP协议为主机自动分配IP地址。更详细的说明请参考dhcpd的帮助页。  
(10)/etc/sysconfig/exim  此文件允许发送信息给一个或多个客户,如果网络需要可以路由此信息。其内容如下:  DAEMON=:可为下列值中的一个:   yes-exim将配置监听25端口进来的信息   no-exim不监听25端口  QUEUE=1h 定义发送时间间隔  
(11)/etc/sysconfig/firstboot 此文件为firstboot守护进程的配置文件。  
(12)/etc/sysconfig/gpm  此文件通过其内容中的一些段提供给gpm守护进程在系统引导时使用。gpm进程为鼠标服务,此文件内容包括一些与鼠标相关的如鼠标键数、接口信息等。  
(13)/etc/sysconfig/harddisks  此文件中的内容为系统中已安装的硬盘的参数。其内容如下所列:  USE_DMA=1:设置硬盘是否使用DMA,值为1使用,0不使用。  MULTIPLE_IO=16:当此项设置值为16时,允许每一次I/O中断读取多个扇区。设置此值可以减少30%-50%的系统开销,但要小心使用此项,缺省为禁止。  EIDE_32BIT=3:设置此项值为3时找开(E)IDE32位I/0支持,缺省禁止。  LOOKAHEAD=1:设置此项为1时允许驱动read-lookahead方式工作,缺省禁止。  EXTRA_PARAMS=SPECIFITS:指定EXTRA的参数,缺省为无(没有参数)。  
(14)/etc/sysconfig/hwconf  此文件内容列出系统中所有KUDZU检测出来的硬件列表,此文件不应手动编辑,如果对此文件中的内容进行了改变,相应设备就会立即增加或删除。 
(15)/etc/sysconfig/i18n  此文件内容用来设置缺省语言、其它支持的语言和缺省的系统字体,例如:  LANG="en_us,UTF-8"  SUPPORTED="en_us,UTF-8!en_us:en"  SYSFONT="latareycreb-sun16"  
(16)/etc/sysconfig/init  此文件中的内容用来在系统引导期间控制显示和其它功能。它的内容可以为以下所示:  BOOTUP=:可以为以下值之一:  color-设置为此值时,当设备初始化成功或失败时显示不同的颜色。  verbise-设置为此值时为一种旧的显示样式,提供一些信息比如成功或失败的信息  RES_COL=::设置的值为移动光标时移动的列数。  ECHO_EN:此命令设定通过用echo -en命令光标移动的行数。  SETCOLOR_SUCCESS=<value>:设置的值用来设定echo -en命令成功时显示的颜色,缺省为绿色。  SETCOLOR_TAILURE=:设置的值用来设定echo -en命令错误时显示的颜色,缺省为红色。  SETCOLOR_WARNING=:设置的值用来设定echo -en命令警告时的颜色,缺省为黄色。  SETCOLOR_NORMAL=:设置的会下用来设定echo -en命令一般模式时的颜色为“NORMAL”。  LOGLEVEL=:设置内核初始化日志记录层次,缺省为3,设置为8时设置记录所有方面的日志信息,包括debugging信息,设置为1时只记录kernel panics信息,syslogd守护进程在启动时会读取此文件。  PROMPT=:为下列值中之一:  yes-设置为此值时允许通过按键来进行交互模式显示启动  no-设置为此值时不允许通过按键来进行交互  (17)/etc/sysconfig/ip6tables-config  此文件中保存的内容用来给内核在ip6tables服务启动或设置IPV6过滤规则时使用。不要直接编辑此文件中的内容,除非非常熟悉ip6tables的结构和规则。规则可以通过使用/sbin/ip6tables命令来创建,并保存规则到/etc/sysconfig/ip6tables文件中,保存规则使用此命令:service ip6tables save  一旦保存了所有的规则到/etc/sysconfig/ip6tables文件中,那么当ip6tables服务启动或系统启动时就会通过读取此文件中的规则来设置系统IPV6防火墙。  
(18)/etc/sysconfig/iptables-config  此文件中保存的内容用来给内核在iptables服务启动或设置IPV4过滤规则时使用。不要直接编辑此文件中的内容,除非非常熟悉iptables的结构和规则。规则可以通过使用/sbin/iptables命令来创建,并保存规则到/etc/sysconfig/iptables文件中,保存规则使用此命令:service iptables save  一旦保存了所有的规则到/etc/sysconfig/iptables文件中,那么当iptables服务启动或系统启动时就会通过读取此文件中的规则来设置系统IPV4防火墙。-------
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
系统服务祥解     
      做为RED HAT LINUX的启动来说,如果只是个人使用的话,只需要启用以下服务,如果还在精减的话,只启用Network就可,这是Fedora
      core 2启动服务.
      acpid:提供高级电源管理。
      cpuspeed:可以提高系统运行效率。
      crond:执行例行性程序。
      Iptables: 防火墙。
      Kudzu:自动检测硬件的变更。
      Network: 激活网络接口。
      Random:加快系统的启动。
      Readahead和Readahead_early:加快系统的启动。
      Syslog:把各类事件写入日志。
      acpid 配置文件:/proc/acpi/event
      预设端口:无
      说明:Advanced Configuration and Power Interface,为替代传统的APM电源管理标准而推出的新型电源管理标准。
      是否需要启动:如果你需要对电源进行管理,那就需要启动。
      anacron 配置文件:/etc/anacron
      预设端口:无
      说明:一个自动化运行任务。Red Hat Linux 随带四个自动化任务的工具:cron、 anacron、at、和
      batc。当你的Linux主机并不是全天候开机,这个anacron就可以帮你执行在”crontab”设定的时间内没有执行的工作。举例来说,当你的主机在晚上12:00会自动关闭,但是偏偏crontab这个例行性工作是在4:00工作,这个时候例行性工作就不能起作用了。不过利用anacron就能做到。
      是否需要启动:如果主机已经24小时开机,而且运行了cron,那么这个守护程序就不需要启动了。
      apmd 配置文件:/etc/sysconfig/apmd
      预设端口:无
      说明:Advanced Power
      Management,高级电源管理。传统的电源管理标准。一般系统都会同时支持APM和APMD两种标志,但系统加载时只需加载一个即可。对于笔记本电脑比较有用,可以了解系统的”电池电量”。
      是否需要启动:如果我们使用的是台式电脑或一直开机的机型,就不需要使用这个守护程序。
      atd 配置文件:/etc/at.allow,/etc/at.deny
      预设端口:无
      说明:一个自动化运行任务。
      是否需要启动:通常需要启动。不过如果你一直使用cron,那么也可以不启动。
      autofs 配置文件:/etc/rc.d/init.d/autofs
      预设端口:无
      说明:实现光盘、软盘的自动加载。
      是否需要启动:一般不需要启动。
      chargen
      chargen-udp 预设端口:TCP/UDP 19
      说明:Character Generator Protocol,一种网络服务,主要功能是提供类似远程打字的功能。
      更多细节:

      是否需要启动:为安全起见,尽量关闭这个服务。
      cpuspeed 说明:监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。
      更多细节:
     

      是否需要启动:需要启动。
      crond 配置文件:/etc/crontab
      预设端口:无
      说明:用来执行例行性命令的守护程序。
      是否需要启动:必须启动。
      cups 配置文件:
      CUPS服务器配置文件:/etc/cups/cupsd.conf
      CUPS客户端配置文件:/etc/cups/client.conf
      CUPS打印机配置文件:/etc/cups/printers.conf
      CUPS中类(class)配置文件:/etc/cups/classes.conf
      说明:Common UNIX Printing System,公共UNIX打印支持,为Linux提供打印功能。
      是否需要启动:如果不安装打印机,就不需要启动。
      cups-lpd 预设端口:无
      说明:CUPS Line Printer Daemon (”LPD”),提供打印功能。
      是否需要启动:如果不安装打印机,就不需要启动。
      daytime
      daytime-udp 预设端口:TCP 13
      说明:Daytime协议(RFC867)是一个简单的协议,为客户机实现从远程服务器获取日期和时间的功能。
      是否需要启动:不用启动。
      echo
      echo-udp 预设端口:7
      说明:服务器回显客户数据服务。
      是否需要启动:不用启动。
      gpm 配置文件:/etc/sysconfig/mouse
      预设端口:无
      说明:General Purpose Mouse Daemon ,gpm为文本模式下的Linux程序如mc(Midnight
      Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝,粘贴操作以及弹出式菜单。
      是否需要启动:没必要的话,建议不要启动。
      iptables 说明:防火墙。
      是否需要启动:必须启动。
      irda Infrared Data Association,是一个实现红外无线数据传输的工业标准。
      irqbalance 对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。
      是否需要启动:如果你只安装了一个CPU,就不需要加载这个守护程序。
      isdn Integrated Services Digital Network,综合数字服务网络。提供对isdn设备的支持。
      kudzu 配置文件:
      /etc/sysconfig/hwconf
      /etc/sysconfig/kudzu
      说明:硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。当系统启动时,kudzu会对当前的硬件进行检测,并且和存储在
      /etc/sysconfig/hwconf中的硬件信息进行一一对照,如果某个硬件从系统中被添加或者删除时,那么kudzu就会察觉到,并且通知用户是否进行相关配置,然后修改/etc/sysconfig/hwconf,使硬件资料与系统保持同步。如果/etc/sysconfig/hwconf这个文件不存在,那么kudzu将会从/etc/modprobe.conf,/etc/sysconfig/network-scripts/和
      /etc/X11/XF86Config中探测已经存在的硬件。
      是否需要启动:如果启动kudzu,则每次启动系统,都会检查新硬件(checking new
      hardware),会延长系统启动的时间。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。
      mdmonitor 与RAID设备相关的守护程序。
      mdmpd 与RAID设备相关的守护程序。
      messagebus D-BUS是一个库,为两个或两个以上的应用程序提供一对一的通讯。
      dbus-daemon-1是一个应用程序,它使用这个库来实现messagebus守护程序。多个应用程序通过连接messagebus守护程序可以实现与其他程序交换信息。
      更多细节:
     

      microcode_ctl 可以编码以及发送新的微代码到kernel以更新Intel IA32系列处理器(Pentium
      Pro,PII,PIII,Pentium 4,Celeron, Xeon 等等 - 全部 P6 以及更高,不包括 pentium
classics)。
      更多细节:
     

     

      netdump News Backup Dump Server,远程备份服务器。
      netfs Network Filesystem Mounter,安装和卸载NFS、SAMBA和NCP网络文件系统。
      netplugd 配置文件:
      /etc/netplug/netplugd.conf
      /etc/netplug.d/netplug
      说明:network cable hotplug management
      daemon,netplugd是一个守护程序,可以监控一个或多个网络接口的状态,当某些事件触发时运行一个外部脚本程序。
      更多细节:

      network 在系统启动时激活所有的网络接口。
      nfs 网络文件系统。
      nfslock NFS是一个流行的通过TCP/IP网络共享文件的协议,此服务提供了NFS文件锁定功能。
      ntpd 配置文件:/etc/ntp.conf
      说明:Network time Protocol daemon,网络时间校正协议。简单的说,NTP是用来使系统和一个精确的时间源保持时间同步的协议。
      推荐大家看一篇文章:《NTP-让网络里的电脑时间精确到毫秒》
      发表在2004年12月份的《在线技术》杂志第63页
      pcmcia Pcmcia卡,支持笔记本电脑的PCMCIA 设备,如调制解调器, 网络适配器, SCSI卡等等。
      portmap Portmap守护程序为RPC服务,如NIS和NFS提供动态端口的分配。
      psacct 包括几个工具用来监控进程活动的工具,包括ac,lastcomm, accton 和sa。
      random 说明:快速的将系统的状态在随机的时间内存到景象档案中,对于系统相当重要。因为在开机之后,系统会迅速的恢复到开机之前的状态。
      是否需要启动:必须启动。
      rawdevices 在使用集群文件系统时用于加载raw设备的守护程序。
      readahead
      readahead_early 配置文件:/etc/readahead.early.files /etc/readahead.files
      说明:readahead和readahead_early是在Fedora core
      2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间,将启动系统所要用到的文件首先读取到内存中,然后在内存中进行执行,以加快系统的启动速度。而上面两个配置文件就保存着将要读取到内存的文件列表。
      rhnsd Red Hat 网络服务。通知你有关官方的安全信息以及为你的系统打补丁。
      rpcgssd
      rpcidmapd
      rpcsrcgssd 说明:gestion NFS v4,是Linux 2.6内核新添的功能。
      是否需要启动:不需要启动。
      rsync remote sync,远程数据备份工具。
      saslauthd 使用SASL的认证守护程序。
      sendmail 邮件服务器。
      services 一个内部xinetd服务,用于监听活动的服务。
      sgi-fam 实现实时数据镜像。监控文件的变更,提供一个应用程序API接口用来当指定的文件火目录改变时及时通知。
      smartd Self Monitor Analysis and Reporting Technology System,监控你的硬盘是否出现故障。
      sshd 配置文件:
      OpenSSH服务器配置文件:/etc/ssh/sshd_config
      OpenSSH客户端配置文件:/etc/ssh/ssh_config
      预设端口:22
      说明:Secure Shell Protocol,实现安全地远程登陆管理主机。
      是否需要启动:如果想实现远程管理,就需要启动。
      syslog 配置文件:/etc/syslog.conf
      说明:记录所有的系统行为。
      是否需要启动:必须启动。
      time 从远程主机获取时间和日期,采用TCP协议。
      time-udp 从远程主机获取时间和日期,采用UDP协议。
      vncserver VNC (Virtual Network
      Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个”桌面”的轻量型协议。
      更多细节:

      xfs 预设端口:TCP 7100
      说明:x font server,X Window字型服务器,为本地和远程X服务器提供字型集。
      是否需要启动:如果使用run-level为5的图形界面,那么就需要启动。
      xinetd 配置文件:/etc/xinetd.conf
      说明:xinetd作为inetd的后续版本,负责管理系统中不频繁使用的服务,这些服务程序在有请求时才由xinetd服务负责启动运行,一旦完成服务请求服务程序结束运行,这样可以有效地减少对系统资源的占用率。通常,xinetd管理的程序有telnet、ftp、rsh和rlogin。关闭
      inetd也就关闭了这些由它管理的服务。
      更多细节:

      是否需要启动:必须启动。
      yum 配置文件:/etc/yum.conf
      说明:Yellow Dog
      UpdaterModified,是一个自动更新、安装和删除RPM软件包的管理程序,它会自动计算软件包的管理程序,并判断哪些软件应该安装,哪些软件则不必安装。
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
Unix简介
1. UNIX操作系统诞生于60年代末期的Bell实验室
2. 特点
        真正的多用户多任务
        安全性好          每个用户赋予不同权限
        把硬件看作文件    模糊了硬件设备和文件的区别,方便、高效的对设备进行控制
        灵活的文件系统    是逻辑概念,支持大部分文件系统,跨越了物理存储设备的限制,可以多个不同文件系统组成一个文件系统使用
 可靠性高          可以每年365天不间断地运行
 伸缩性强          笔记本电脑,PC,直到巨型机上都可以运行的操作系统
 开放性好          本质特征,源码公开,使UNIX的发展充满动力和生机。
 植根于网络        UNIX几乎所有系统都包括对TCP/IP的支持。在Internet网络服务器中,UNIX服务器占80%以上,占绝对优势
 面向数据库使用    UNIX系统对各种数据库,特别是关系型数据库管理系统提供了强大的支持能力
3. GNU的基本原则是共享
                                  + - - - - - - - - - - - - - - - - - - - - - - -+
                                         |                用户进程                      |
                                         | + - - - - - - - - - - - - - - - - - - - -+   |
                                         |  |                 shell                  |  |
                                         |  | + - - - - - - - - - - - - - - -- - -+  |  | 
                                         |  |  |              Kernel              |  |  |
                                         |  |  | + - - - - - - - - - - - - - - -+ |  |  |
                                         |  |  | |          Hardware            | |  |  |  
                                         |  |  | + - - - - - - - - - - - - - - -+ |  |  |
                                         |  | + - - - - - - - - - - - - - - - - - +  |  |
                                         | + - - - - - - - - - - - - - - - - - - - - +  |
                                         + - - - - - - - - - - - - - - - - - - - - - - -+
   init 0  关机 
   init 1  单用户模式
   init 2  没有nfs服务的文本模式
   init 3  文本模式
   init 4  未定义
   init 5  图行化模式
   init 6  重启动
4. 系统文件
        文件名最大为255个字符
        -:一般文件          白色
    执行文件          绿色    
 d:目录文件          蓝色
 b:块设备文件        黄色
 c:字符设备文件      黄色
 l:链接文件          浅蓝
 p:管道文件          灰色
5. 系统目录
        / :  根目录
 /bin:存储常用用户指令。
 /boot:存储核心、模块映像等启动用文件
 /dev:存储设备文件
 /etc:存储系统、服务的配置目录与文件
 /home:存放个人主目录
 /lib:存放库文件,诸如核心模块、驱动
 /lost+found:存储fsck用的孤儿文件
        /var: 日志文件存放目录
        /tmp: 临时文件的存放目录
        /mnt: 外部设备的装载目录
        /usr: 用户信息
        /lib: 库文件目录
        /opt:第三方工具使用的安装目录
        /sbin:存储系统管理用指令
 /proc:虚拟文件系统,包含系统讯息等资料,包括系统硬件、网络设置、内存使用,及其他一些东西
  /proc/interrupts:IRQ设置
  /proc/cpuinfo:CPU信息
  /proc/dma:DMA设置
  /proc/ioports:输入输出设置
  /proc/meminfo:系统内存使用状况
  /proc/loadavg:系统负载平均值
  /proc/uptime:系统运行时间与发呆时间
  /proc/version:Linux核心版本、创建主机、创建时间等
  /proc目录下的常用目录
   /proc/scsi:scsi设备信息
   /proc/ide:ide设备信息
   /proc/net:网络状态与配置信息
   /proc/sys:核心配置参数
   /proc/:进程的信息

shell简介
1. shell是解释型编程语言,用来处理用户输入命令的一种程序,介于系统核心程序与使用者间的中介者,具有简便、功能强大等优点,强大   表现在能将多条指   令组合在一起进行执行,效率高,功能强
    子shell        子shell对父shell赋过值的变量一无所知
                   子shell无法改变父shell中的变量的值
            没有导出的变量是局部变量,子shell不知道它的存在
                   导出的变量在子shell中可以修改,但这种修改对父shell,
    父shell        父shell一旦导出,对所有后续子shell都是导出变量
2. 环境变量
    $HOME           当前用户的宿主目录
    $PATH           执行命令时的搜索目录
    $PWD            当前工作目录
    $CDPATH         给出的目录不完整时进行搜索
3. 文件名匹配
    ?               一个任意字符
    *               0个或以上字符,或目录中所有的文件名
    a*              匹配以a打头的文件名
    a*b             匹配以a开头以b结尾的文件名
    *.c             以.c结尾的文件名
    [0-9]           数字
    [!0-9]          不包含数字
4. 正则表达式
    x*             0个或多个x
    xx*            1个或多个x
    Xx*            1个X后面跟0个或多个x
    .r.            3个字符,中间是r
    ^the      行首是the,行首符
    the$           行尾符,以the结尾的行
    \              转义字符
     反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。
    ^\.            以.开头的行
    \.$            以.结尾的行
    ^$             空行
    s/the/THE/     每行第一次出现的改变
    s/the/THE/g    全问全部改变
    [tT]he         匹配the或The
    [0-9]          匹配数字
    [A-Z]          匹配大写字母
    s/  */ /g      将1个或多个连续的空格替换为1个空格
    [^a-z]         匹配不包含小写字母
    X\{1,5\}       1到5个之间的X
    [A-Za-z]\{7,\} 7个或7个以上连续的字母
    寄存器
    ^\(.\)    行首第一个字符
    ^\(.\).*\1$    匹配行首第一个字符与行尾最后一个字符相同的行   
5. 八进制值
    \7             响铃
    \10            退格
    \11            制表符  Tab
    \12            换行
    \14            换页
    \15            回车
    \33            转义
6. 变量
   字母或下划线开头,后面跟若干个字母、下划线、数字
   $#    所有变量个数
   $*    所有变量内容
   $?    上一条命令的返回状态,0成功,1失败
   $@    所有变量的内容
   $$    当前程序的程序号,可以用来创建临时文件
   $0    当前程序的程序名
   PS1   首要提示符 $
   PS2   辅助提示符 >
   :     空命令
   shift 位置参数左移
   ${10} 第10个变量
   cp $filename ${filename}K
   $((a=a+1))  shell内部整数算术运算
   特殊字符: \  `  !   $
   ' '   告诉shell忽略所有特殊字符
   " "   只要求忽略大多数,不忽略的有\  `  !   $
   ` `   命令替换,能够将一个命令的标准输出插在一个命令行中任何位置。
   命令替换
    `command` =  $(command)  
   export  HOME  导出变量
   子shell   (command1;command2)
   普通shell { command1; comand; }
7. 条件测试
    test "$name"  =  king
    [ "$name" =  king ]
    字符串比较
     string1 = string2
     string1 != string2
     -n string  string不为空 
     -z string  string为空
     test -n "$name"
    整数操作符比较
        -eq   等于
        -gt   大于
        -ge   大于等于 
        -ne   不等于
        -lt   小雨
        -le   小于等于
    文件操作符:
         -d   为目录
         -e   存在
         -f   为普通文件
         -r   为可读文件
         -w   为可写文件
         -s   长度不为0
         -x   可执行
         -L   为符号链接
    逻辑操作符比较:
         -a   逻辑与
         -o   逻辑或
          !   逻辑非
         !  >  -a  > -o
8. 条件语句
   a. if 语句
     if     xxxx                 if       xxxx
     then                        then
  xxxx                      xxxx
     else                        elif     xxxx
  xxxx             then
     fi       xxxx    
     else   
       xxxx
                                 fi   
   b. case 语句
      case "$1"  in
         0 )  echo zero;;
                1 )  echo one;;
                2 )  echo two;;
      esac
   c. &&  ||
      command1 $$ command2 || command3    若1成功执行2,1不成功执行3
9. 循环语句,循环语句后面可以跟上重定向或管道
   break 跳出循环
   continue 不退出循环,只是跳出循环体后面的那些命令
   a.  for  xxx in  xxx   
       do
            command1
            command2
       done 
   b.  while xxxxx
       do
     command1
            command2
       done
   c.  until command
       do
     command1
            command2
       done  
   试验:
 使用for while until 分别完成在一个目录中手动一次创建以1-20这20个数字命名的文件
  1. 
      for  i  in  {1..20}
      do
    touch "$i"
      done
 
  2. 
      i=1
      while  [ "$i" -le 20 ]
      do
     touch "$i"
     i=$((i+1))
      done
  3. 
      i=1
      until  [ "$i" -gt 20 ]
      do
     touch "$i"
            i=$((i+1))
      done
文件系统类型
  光盘或光盘镜像:           iso9660
  DOS fat16文件系统:        msdos
  Windows 9x fat32文件系统: vfat
  Windows NT ntfs文件系统:  ntfs
  Samba 的共享文件系统:     smbfs
  UNIX(LINUX) 文件网络共享: nfs
    linux早期中常用的文件系统  ext2
    ext2的升级版,带日志功能   ext3   能更快的根据系统日志文件排除系统故障或恢复系统数据
    内存文件系统,速度很快     RAMFS
    OS/2操作系统采用的文件系统 HPFS 
设备文件类型
    字符设备:一次只能输入或输出一个字符的设备,键盘、鼠标
    块设备:  以数据块为单位进行存储或I/O,硬盘、光盘、软盘
    /dev/hd[a-t]   IDE设备
    /dev/sd[a-z]   scsi设备
    /dev/fd[0-7]   标准软驱
    /dev/md[0-31]  软RAID设备
    loop[0-15]     本地回访设备
    ram[0-19]      内存
    /dev/null      无限资源接收设备
    /dev/zero      无限零资源设备
    /dev/tty[0-31] 虚拟终端
    /dev/ttyS[0-9] 串口
    /dev/lp[0-3]   并口 /dev/lp0表示第一个并口设备,通常对应打印机
    /dev/console   控制台
    /dev/fb[0-31]  真的缓存
    每一个硬盘:
           主引导记录            /Master Boot Record       /MBR     前446个字节
           硬盘分区表            /Standard Partition Table /SPT     447-510,共64个字节,后两位是校验码,表示之前数据有效                主分区                /Primary  Partition
           扩展分区              /Extended Partition
        逻辑分区   /Logical  Partition
快捷键
 ctrl + c      中断键盘请求
        ctrl + d      表示输入结束
        ctrl + a      光标移动到行首
        ctrl + e      光标移动到行尾
        ctrl + k      删除至行尾
        ctrl + u      删除整行
        ctrl + l      清屏幕
        ctrl + s      暂停屏幕输出
        ctrl + q      恢复屏幕输出
        Tab           自动补齐
重要文件
□ /etc/passwd         644,存放系统用户的文件
□ /etc/shadow         400,系统密码文件
□ /etc/group          644,系统组用户文件
□ /etc/nologin        这个文件存在的话,只有root用户可以登陆系统
□ /etc/login.defs     修改关于用户口令限制条件的文件
                        PASS_MAX_DAYS 9999       口令的有效期限
   PASS_MIN_DAYS 0          口令必须修改的期限
   PASS_MIN_LEN             口令的最小长度
   PASS_WARN_AGE 7          口令到期前多长时间提醒用户
                        CREATE_HOME              是否为用户建立宿主目录
□ /etc/inittab        定义系统在哪个级别下启动,#注释的作用,可以注释掉不常用的选项,比如:终端,CTRL-ALT-DELETE
□ /etc/at.allow       允许使用at
□ /etc/at.deny        不允许使用at
□ /etc/cron.allow     允许使用crontab
□ /etc/cron.deny      不允许使用crontab
□ /etc/crontab        系统级别的计划任务
□ /var/spool/cron/**  用户级别的计划任务
□ /var/spool/at/**    用户级别的at任务
□ /etc/init.d/**      存放系统服务的启动文件
□ /etc/rc.d/init.d/   /etc/init.d/的软链接
□ /etc/fstab          系统启动自动加载的文件系统
                       1.设备文件
         2.挂载点
          3.文件系统类型
         4.mount参数
         5.是否dump备份:0永不备份,1表示是,2表示否
                       6.fsck顺序:0表示忽略,1、2、3表示检查顺序,数字越大优先级越低
□ /etc/mtab           当前系统已挂载的文件系统
□ /etc/profile        系统环境变量存放文件
□ ~/.bash_profile     用户宿主目录中的文件,定义保存历史命令的条数
□ ~/.bash_history     用户宿主目录中的记录历史命令的文件
□ /etc/bashrc         系统所有用户的设置文件
□ ~/.bashrc           某个用户的设置文件
□ /etc/modprobe.conf  网卡、声卡、显卡驱动程序
□ /proc/modules       查看系统中已载入的模块
□ /etc/sysconfig/hwconf 此文件内容列出系统中所有KUDZU检测出来的硬件列表,此文件不应手动编辑,如果对此文件中的内容进行了改变                         ,相应设备就会立即增加或删除。如果/etc/sysconfig/hwconf这个文件不存在,那么kudzu将从/etc/modprobe.conf                       ,/etc/sysconfig/network-scripts/和 /etc/X11/XF86Config中探测已经存在的硬件。
□ /etc/sysconfig/i18n 设置缺省语言、其它支持的语言和缺省的系统字体 lang='en'
□ /var/log/dmesg       核心启动日志
□ /var/log/messages    系统报错日志
□ /var/log/maillog     邮件系统日志
□ /var/log/wtmp        登录记录
□ /var/log/secure      安全信息
1. 关于用户口令期限的设置
   a. usermod -e 10 king
   b. passwd  -n 10 king
   c. 修改/etc/login.defs文件
   d. chage -M 10 king
2. 进入单用户模式
   a. 在系统中
                 > A. 直接修该/etc/inittab文件,重启系统 
                 > B. 命令 init 1
   b. 不在系统中
                 > A. 进入救援模式,修该/etc/inittab文件,重启系统
                 > B. 多重启动管理器
                                     > LILO 引导器
                                                在LILO引导画面,按Ctrl+X键切换入命令行,linux single
                                     > GRUB 引导器
             在出现GRUB引导画面时,按字母e键,进入GRUB编辑状态。
      按↑键或↓键选择相应的引导项,并再接字母e键进入命令行编辑。
      在出现的命令行上添加"1"或single,并按键,返回GRUB编辑状态。
      按字母b键,引导进入单用户模式。
3. 进入救援模式
   a. 进入BOIS,设置为光驱引导,重启动
   b. 在引导界面shell中输入linux rescue ,语言选择,键盘选择,网络选择,是否查找硬盘上的系统
   c. 硬盘上的系统已经被找到并挂载在/mnt/sysimage 下
      chroot /mnt/sysimage
          grub挂了的,grub-install /dev/hdxx
           配置文件改错的,vi /etc/fstab vi /etc/inittab ..................
           软件包被毁的 rpm -F xxx.rpm
      exit命令退出chroot,系统重启。
  d. 如果你硬盘上的系统是非rhel系统如debian的,那么在第4步时,rescue 程序会找步不到硬盘上的系统,所以我们这是选择"跳过",直        接进入shell。假设现在硬盘上的有一个debian 系统 /dev/hda1 为/boot 分区 /dev/hda5 为 / 分区 /dev/hda6 为swap。那么我们现      在这么做。
             # fdisk -l (查看分区情况)
    # mkdir /mnt/linux
    # mkdir /mnt/linux/boot (根据fdisk -l 得到的信息创建目录)
    # mount -t ext3 /dev/hda5 /mnt/linux
    # mount -t ext3 /dev/hda1 /mnt/linux/boot (挂载硬盘上的文件系统)
    # chroot /mnt/linux (chroot 改变工作系统)
   e. 如果你的系统是文件系统损坏那么就不用挂载,chroot 系统了。
      直接 fsck /dev/hdxx 即可。
4. 软件安装方法
   a. RPM包安装
       #rpm -ivh xxx.rpm       安装 
     #rpm -e xxx.rpm         卸载
     #rpm -u xxx.rpm         升级
       #rpm -qa | grep xxx     查询是否已安装
   b. 源码安装
       #tar zxvf xxx.tar.gz    解压缩
       #./configure            预编译
       #make                   编译
       #make install           安装
       #make clean             卸载
5. 显示系统环境变量
   a. env
   b. set
   c. cat /etc/profile
6. 远程登陆方法
 
   Telnet
 
 

Linux常用命令一览
一、关机与重新启动
1)#init 0重启  #init 6关机(改变系统运行级别的方法)
2)#reboot重启  #halt关机(命令法)
3)#showdown -h +5  (5分钟后关机)  #showdown -r +5(5分钟后重启)
二、常用目录操作命令
1)显示文件和目录:ls -a -l
2) 复制文件或目录:cp 源文件  目的文件
3)移动文件或目录:mv 源文件 目的文件
4)显示文件内容:cat 文本文件
5)分页显示文本内容:more 文本文件  或less 文本文件
6)显示文件开头或结尾的几行:head -3 myfile(显示myfile文件头3行)。或tail -5 myfile.
7)统计指定文本文件的行数、字数、字符数:$wc -l myfile(统计myfile文件的行数)
8)在文件系统中查找指定的文件:$find -name 'my*'(从当前目录下找以my开头的文件)
9)从指定的一个或多个文本文件中逐行查找指定字符串:
$grep  "my*"   file1 file2(从文件file1和file2中逐行查找my开头的字符串)
10)显示当前工作目录:pwd
11)创建目录:mkdir mydir1(在当前目录下创建一个名为mydir1的目录)
12)删除目录:rmdir mydir1(将mydir1目录删除)
13)删除文件:rm my*.*(将my开头的所有文件都删除)
三、常用信息显示命令
1)显示指定文件相当信息:stat myfile
2)显示在线登录用户:who
3)显示用户自己身份:whoami
4)显示主机名称:hostname
5)显示操作系统名称:uname
6)显示网络接口信息:ifconfig
7)测试网络连通性:ping IP地址
8)显示网络状态信息:netstat
9)显示当前用户ID:id
四、常用备份压缩命令
1)文件目录打包:tar -选项 文件
选项:-t 列出打包文件的内容  -c 创建新文件包 -r追加文档 -x释放文件
2)压缩成gz文件:gzip
3)压缩成Z文件:compress
4) 压缩成bz2文件:bzip
五、常用系统管理命令
1)挂装文件系统。mount -t vfat /dev/sdb1 /mnt/udisk(把U盘挂到/mnt/udisk下。注意相应目录要提前创建)。
2)改变文件或目录权限 :chmod  +-= 权限 文件
如: chmod u+x,g+w,o+r myfile
3)改变用户 : su
4) 显示系统进程:ps
5)停止指定进程:kill 进程号
6)rpm
 
 
系统命令   
1. 文件管理
      alias     设置命令的别名,临时性,重启机器释放,可将命令加入.bash_profile或.bashrc这两个文件中,以便下次继续使用
                alias 别名=指令
                -p  列出系统所有定义的alias
      cat       显示文件内容
                -n  对所有输出行进行编号  cat -n file1 > file2
                -b  与-n相似,但不对空白行编号
                -s  遇到两行及以上空白行输出为一行
      cd        切换目录
                cd ..   进入上级目录
                cd ~    回宿主目录
                cd -    返回上次工作目录
                cd ./king   进入当前目录中的king子目录
      chattr    改变文件属性
                -R  对目录中的文件递归处理
                +A  文件改变时,修改时间不变
                +a  只可追加,不可删改
                +i  文件不可改变
                -?  去掉某项属性
      chgrp     改变文件或目录所属的群组
                -R  递归改变群组
                改变/opt/local,/book/及其子目录下的所有文件的属组为help,命令如下:
                chgrp -R help /opt/local /book
      chmod     改变文件或目录的权限
                -R  递归改变
                u   文件所有者  chmod u+x  xxxx
                g   组用户      chmod go-r xxxx
                o   其他用户   
                a   全部用户  
                +   添加某个权限。
  -   取消某个权限。
                =   赋予给定权限并取消其他所有权限(如果有的话)。
                chmod ug+w,o-x text
      chown     改变文件或目录的所有者和群组
                -R  递归改变    chown -R user1.user1  xxxx
      cksum     检查文件的CRC是否正确,是一种排错工具,确保文件从一个系统传输到另一个系统地过程中没有被损坏。
      cmp       比较两个文件的差异,发现有差异,会标出第一个不同之处的字符和行号,简单的比较
                如果文件不同,则显示第一个不同的位置;例如:
                                                            prog.o.bak prog.o differ : char 4, line 1
                -s  如果文件相同,则给出值 0,如果不同,则给出值 1,或者如果发生错误,则给出值 2。
      cp        复制文件或目录
                -a  该选项通常在拷贝目录时使用,它保留链接、文件属性,并递归地拷贝目录.
                -i  覆盖已有文件前询问
                -f  覆盖已有文件而不提示。
                -o  不改变文件属性进行复制
                --o 复制时所有属性都不改变
                -r  复制目录
                -R  复制目录                
      cut       从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
                -c  截取字符
                -d  指定分隔符,用‘ ’括上
                -f  截取字段
                -s  空行略过
                截取范围:-      全截取
                          1,5   第1,第5
                          10-    第10之后
                          1-15   第1至第15
      diff      比较文件间的差异,详细的列出不同之处
                -i  不区别大小写的不同
                -B  不检查空白行
                -b  不检查空格的不同
                -c  显示全部内文,并标出不同之处。
                -r  表示比较目录
                -N  表示将不存在的文件当作空文件处理
      diffstat  根据diff比较的结果,显示统计字数
      du        查询档案或目录的磁盘使用空间
  -a  显示全部目录和其次目录下的每个档案所占的磁盘空间
                -s  只显示各档案大小的总合
                -h  修改为高级别单位
                    统计某个目录的大小  -sh
      echo      显示文字,显示变量内容
                -n  不要在最后自动换行
                *   打印当前目录中的文件名
  -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
          文字输出:
          \a 发出警告声;
          \b 删除前一个字符;
          \c 最后不加上换行符号;
          \f 换行但光标仍旧停留在原来的位置;
          \n 换行且光标移至行首;
          \r 光标移至行首,但不换行;
          \t 插入tab;
          \v 与\f相同;
          \\ 插入\字符;
          \nnn 插入nnn(八进制)所代表的ASCII字符;
      expr      做整数算术运算,每一个操作符和操作数必须分别用参数传给expr
                expr 1 + 2        3
                expr 1+2          1+2
                expr 10 + 20 / 2  20
                expr 17 \* 6      102
      file      辩识文件类型
                file 文件名
                -f<名称文件>  file -f a1
      find      查找文件命令
                find  path  -option  [  -print ]  [ -exec command ]  {} \;
                #-print 将查找到的文件输出到标准输出
                #-exec  command  {} \;     -----将查到的文件执行command操作,{} 和 \;之间有空格
                #-ok 和-exec相同,只不过在操作前要询用户
                -name  filename             #查找名为filename的文件
                -perm  777                  #按执行权限来查找
                -user   username            #按文件属主来查找
                -group groupname            #按组来查找
                -mtime  -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
                -atime   -n +n              #按文件访问时间来查
                -ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
                -nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
                -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
                -newer  f1 !f2              #查更改时间比f1新但比f2旧的文件
                -type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
                -size     n[c]              #查长度为n块[或n字节]的文件
                -depth                      #使查找在进入子目录前先行查找完本目录
                -mount                      #查文件时不跨越文件系统mount点
                -follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
                -cpio                       #对匹配的文件使用cpio命令,将他们备份到磁带设备中
                $find  .  -name  "[a-z][a-z][0--9][0--9].txt"   -print  #查以两个小写字母和两个数字开头的txt文件
                $find  .  -perm  755  -print
                $find  .  -perm -007  -exec ls -l {} \;
      grep      搜索特定的字符串
                grep '*'  star
                -i   不区分大小写
                      grep -i 'the'  =  grep "[tT]he"
                -v   显示不包含条件的行
                -n   将搜索出来的行加上行号
                -l   显示搜索字符串的文件名,不显示行信息
      head      查看文件开始部分
                -10   查看文件前10行内容
      indent    调整C原始代码文件的格式
      less      分页显示文本内容
      ln        为某一个文件在另外一个位置建立一个不同的链接,无论是软链接还是硬链接,文件都保持同步变化。
                软链接(符号链接)就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间。
                硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,不可以跨文件系统。
                ln -s  /bin/less /usr/local/bin/less
     -f  如果 目标文件 存在时,就主动的将目标文件直接移除后再建立!
      locate    locate命令用于查找文件,它比find命令的搜索速度快。执行updatedb,建立一个数据库。
      ls        列出目录中的文件
                -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  -c 输出文件的 i 节点的修改时间,并以此排序。
  -d 将目录象文件一样显示,而不是显示其下的文件。
  -i 输出文件的 i 节点的索引信息。
  -k 以 k 字节的形式表示文件的大小。
  -l 列出文件的详细信息。
  -m 横向输出文件名,并以“,”作分格符。
  -n 用数字的 UID,GID 代替名称。
  -r 对目录反向排序。
  -s 在每个文件名后输出该文件的大小。
  -t 以时间排序。
  -R 列出所有子目录下的文件。
  -S 以文件大小排序。
  -1 一行只输出一个文件。
      lsattr    显示文件属性
                -a  显示所有文件和目录
                -d  显示目录名称,而非其内容。
                -R  递归处理,将指定目录下的所有文件及子目录一并处理。
      mattrib   本程序可用来修改 MS_DOS 档案的属性。
                -a/+a  除去/设定备份属性。
              -h/+h  除去/设定隐藏属性。
              -r/+r  除去/设定唯读属性。
              -s/+s  除去/设定系统属性。
              -/     递回的处理包含所有子目录下的档案。
              -X     以较短的格式输出结果。
              范例:
                    mattrib a: 列出 A 槽 MSDOS 格式磁片上所有档案的属性。
                    mattrib -h -s -r a:msdos.sys 除去 A 槽磁片上 msdos.sys 档案的隐藏、系统与唯读属性。
                    mattrib -r -/ a:*.* 除去 A 槽磁片上包含子目录下所有档案的唯读属性。
      mc        提供一个菜单式的文件管理程序
                -a  当mc程序画线时不用绘图字符画线。
   -b  使用单色模式显示。
   -c  使用彩色模式显示。
   -C<参数>  指定显示的颜色。
   -d  不使用鼠标。
  -f  显示mc函数库所在的目录。
      mcopy     在MS-DOS与Linux的文件系统之间复制文件
                -b  批处理模式。
    -n  覆盖其他文件时,不需进行确认而直接覆盖。
    -m  将源文件修改时间设为目标文件的修改时间。
    -p  将源文件属性设为目标文件的属性。
    -Q  复制多个文件时,若发生错误,则立即结束程序。
    -t  转换文本文件。
    -/  复制子目录以及其中的所有文件。
      mdel      本程序可用来删除 MSDOS 格式的档案。
      mdir      模拟MS-DOS的dir指令,可显示MS-DOS文件系统中的目录内容
                -/ 显示目录下所有子目录与文件。
  -a  显示隐藏文件。
  -f  不显示磁盘所剩余的可用空间。
  -w  仅显示目录或文件名称,并以横排方式呈现,以便一次能显示较多的目录或文件。
  -X  仅显示目录下所有子目录与文件的完整路径,不显示其他信息。
      mkdemp    mktemp可建立一个暂存文档,供shell script使用
                -q  执行时若发生错误,不会显示任何信息。
   -u  暂存文档会在mktemp结束前先行删除。
      mkdir     创建目录
                -p   递归创建
      mmove     模拟MS-DOS的move指令,可在MS-DOS文件系统中移动现有的文件或目录,或是更改现有文件或目录的名称。
      more      分页显示文本内容
                mmove [源文件或目录...][目标文件或目录]
      mread     可将MS-DOS文件复制到Linux的文件系统中。这个指令目前已经不常用,一般都使用mcopy指令来代替。
                mread [MS-DOS文件...][Linux文件或目录]
      mren      模拟MS-DOS的ren指令,可更改MS-DOS文件或目录名称。
                mren [源文件或目录...][目标文件或目录]
      mshowfat  可显示MS-DOS文件在FAT中的记录编号。
                mshowfat [文件...]
      mtools    显示mtools支持的指令。mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令。
                -a  长文件名重复时自动更改目标文件的长文件名。
    -A  短文件名重复但长文件名不同时自动更改目标文件的短文件名。
    -o  长文件名重复时,将目标文件覆盖现有的文件。
          -O  短文件名重复但长文件名不同时,将目标文件覆盖现有的文件。
    -r  长文件名重复时,要求用户更改目标文件的长文件名。
    -R  短文件名重复但长文件名不同时,要求用户更改目标文件的短文件名。
    -s  长文件名重复时,则不处理该目标文件。
    -S  短文件名重复但长文件名不同时,则不处理该目标文件。
      mtoolstest 测试并显示mtools的相关设置。mtoolstest为mtools工具指令,可读取与分析mtools的配置文件,并在屏幕上显示结果。
      mv        更改文件或目录的名称,或移动文件
                -i   覆盖时询问
                -f   覆盖已有文件而不提示。
      paste     组合文件内容,默认用制表符分隔
                -d   指定作为分隔符的符号 -d'+'
                -s   使文件中多行内容变为1行
      pwd       用于显示用户当前所在的目录。
      rcp       远端复制文件或目录
                -p  保留源文件或目录的属性,包括拥有者,所属群组,权限与时间。
  -r  递归处理,将指定目录下的文件与子目录一并处理。
      scp       远端复制文件或目录
                scp /etc/lilo.conf

                会将本地的 /etc/lilo.conf 这个档案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目录下。
                scp
/etc
  会将 net67.ee.oitdu.tw 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。
   保持从来源 host 档案的属性
  scp –p
/etc
      seq       用于产生从某个数到另外一个数之间的所有整数
                -w   指定输出数字同宽
                seq 1 10
  结果是: 1 2 3 4 5 6 7 8 9 10
      sh        跟踪程序的执行
                -x   每一步结果都显示出来
      sort      对文件进行
                -u   去除重复行
                -r   反向排序
                -o   重新输出为文件
                -n   按数字进行排序
      rhmask    产生与还原加密文件,执行rhmask指令可制作加密过的文件,方便用户在公开的网络上传输该文件,而不至于被任意盗用。
      rm        删除文件或目录。
                -i   删除前先询问
                -f   强制删除
                -r   递归删除
      rmdir     删除空的目录
      sed       查找替换
                sed 's/unix/UNIX/g'    intro
                sed -n       '1,5p'    intro
                sed -n    '/unix/p'    intro
                sed -d       '1,2d'    intro
                sed -d    '/unix/d'    intro
                sed '1,6s/unix/UNIX/g' intro
                sed   '/jan/s/-1/-5/g' intro
      slocate   查找文件或目录
                    slocate [-u] [-d <目录>] [查找的文件]
                -u   更新数据库
                -d   指定查找目录
      shift     位置参数左移
                shift     左移一位
                shift 3   左移三位
      split     切割文件,预设每1000行会切成一个小文件
                -<行数>或-l<行数>  指定每多少行就要切成一个小文件。
                -b<字节>           指定每多少字节就要切成一个小文件。
      tail      显示指定文件的后部分。
                -f   动态读取文件尾部,有实时监视的效果
                -10  读取后10行
                +100 读取从第100行后到结尾
      tee       读取标准输入的数据,并将其内容输出成文件
                列出文本文件slayers.story的内容,同时复制3份副本
                cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3
      tmpwatch  删除暂存文件,可以设置文件超期时间,单位以小时计算。
                -a   删除任何类型的文件。
                -f   强制删除文件或目录.
      touch     创建文件,若文件存在则更新文件创建时间
                touch [-acfm] [-d <日期时间>] [-r <参考文件或目录>] [文件或目录...]
                -a或 --time=use     只更改存取时间。
   -c或--no-create     不建立任何文件。
   -d<时间日期>        使用指定的日期时间,而非现在的时间。
  -r<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
      tr        用来装换字符
                tr e x < intro
                date | tr ' ' '\11'
                -s   去掉重复的字符
                      tr -s ':' '\11'
                      tr -s ' ' ' '
                -d   去掉该字符
                      tr -d ' ' < intro
                      tr -d '[0-9]'
      umask     显示或更改系统文件或目录掩码,默认022
                umask 011
      uniq      在文件中查找重复行,并去掉重复行,两行靠在一起算是重复行
                sort name | uniq
                -d   将重复的显示出来
                -c   统计行出现的次数               
      wc        统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。
                -c   统计字节数
                -l   统计行数
                -w   统计字数
      whereis   查找文件位置
      which     查找命令所在位置
                which  pwd
                -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
   -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
2. 系统管理
      arp       显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。
      at        做时间点计划任务
                -q   查询等待的任务  = atq
                -l   列出所有的指定  = atl
                -d   删除指定        = atrm
                三天后的下午5点锺执行/bin/ls :                at 5pm + 3 days /bin/ls
  三个星期后的下午5点锺执行/bin/ls :            at 5pm + 2 weeks /bin/ls
         1999年最后一分钟印出 the end of world !       at 23:59 12/31/1999 echo the end of world !
      cal       显示日历。
                -m   以星期一为每周的第一天方式显示。
                -y   显示今年年历。
                cal  显示本月的月历。
      bg        将暂停的后台程序搬到后台继续执行 = &
                bg %number
      chage     管理用户密码时效
  -m   密码可更改的最小天数。为零时代表任何时候都可以更改密码。
    -M   密码保持有效的最大天数。
    -W   用户密码到期前,提前收到警告信息的天数。
    -E   帐号到期的日期。过了这天,此帐号将不可用。
    -d   上一次更改的日期
    -i   停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
    -l   例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
      chkconfig 主要用来更新(启动或停止)和查询系统服务的运行级信息。
                --list  查看系统服务在各个级别下的启动状况
                --level 3 nfs on | off   在级别3下开启或关闭nfs服务
                --level 345 nscd off
                --add **  添加某个服务
                --del **  删除某个服务
      chsh      更换登入系统时使用的shell
                -s   更改系统预设的shell环境
                -l   列出目前系统可用的shell清单
      crontab   制定计划任务
                -u   指定做计划任务的用户
                -e   编辑计划任务
  -r   删除目前的时程表
  -l   列出目前的时程表
                格式:  f1 f2 f3 f4 f5 program
                        f1  分钟
                        f2  小时
                        f3  表示一个月份中的第几日
                        f4  表示月份
                        f5  表示一个星期中的第几天
                        a.  当 f1 为 * 时表示每分钟都要执行
                        b.  当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行
                        c.  当 f1 为 */n 时表示每间隔n分钟执行一次
                        d.  当 f1 为 a, b... 时表示第 a, b, ... 分钟要执行
                在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
   */20 6-12 * 12 * /usr/bin/backup
                周一到周五每天下午 5:00 寄一封信给
:
   0 17 * * 1-5 mail -s "hi"
< /tmp/maildata
      date      显示或设定系统的日期与时间
                %H : 小时(00..23)
  %I : 小时(01..12)
  %k : 小时(0..23)
  %l : 小时(1..12)
  %M : 分钟(00..59)
  %p : 显示本地 AM 或 PM
  %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  %S : 秒(00..61)
  %T : 直接显示时间 (24 小时制)
  %X : 相当于 %H:%M:%S
  %Z : 显示时区
  日期方面 :
  %a : 星期几 (Sun..Sat)
  %A : 星期几 (Sunday..Saturday)
  %b : 月份 (Jan..Dec)
  %B : 月份 (January..December)
  %c : 直接显示日期与时间
  %d : 日 (01..31)
  %D : 直接显示日期 (mm/dd/yy)
  %h : 同 %b
  %j : 一年中的第几天 (001..366)
  %m : 月份 (01..12)
  %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
  %w : 一周中的第几天 (0..6)
  %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
  %x : 直接显示日期 (mm/dd/yy)
  %y : 年份的最后两位数字 (00.99)
  %Y : 完整年份 (0000..9999)
      dd        作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
                if=file   输入文件名,缺省为标准输入。
                of=file   输出文件名,缺省为标准输出。
                bs=1m     同时设置读写块的大小为 bytes
                count=n   拷贝次数
  skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
                conv = ASCII 把EBCDIC码转换为ASCIl码。
  conv = ebcdic 把ASCIl码转换为EBCDIC码。
  conv = ibm 把ASCIl码转换为alternate EBCDIC码。
  conv = block 把变动位转换成固定字符。
  conv = ublock 把固定位转换成变动位。
  conv = ucase 把字母由小写转换为大写。
  conv = lcase 把字母由大写转换为小写。
  conv = notrunc 不截短输出文件。
  conv = swab 交换每一对输入字节。
  conv = noerror 出错时不停止处理。
  conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。
      df        显示系统分区
                -a   显示全部的档案系统和各分割区的磁盘使用情形
  -i   显示i -nodes的使用量
  -k   大小用k来表示 (默认值)
  -h   用高单位显示
      dmesg     显示开机加载磁盘等信息。
      env       显示系统中的环境变量
      exit      与logout命令一样都是注销用户
      export    将变量变成环境变量
                export 变量名
      fdisk     linux下的磁盘分区工具
                fdisk -l        查看所有分区
                fdisk /dev/sdb  为/dev/sdb分区
      fg        将后台进程调入前台执行
                  jobs 查看作业号,假如作业号为2
                  fg %2                  
      finger    查询用户信息
                -l   列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计          划文件和方案文件内容。
      free      显示内存状态。
                -b  以Byte为单位显示内存使用情况。
    -k  以KB为单位显示内存使用情况。
    -m  以MB为单位显示内存使用情况。
    -o  不显示缓冲区调节列。
    -s<间隔秒数>  持续观察内存使用状况。
    -t  显示内存总和列。
      fsck      Linux分区有损坏情况,启动有问题,不能正常进入文本或图形界面。会出现提示需要输入Root密码登录后进行修复
                -t   给定档案系统的型式,
                -s   依序一个一个地执行 fsck 的指令来检查
                -r   如果检查有错则由使用者回答是否修复
                -C   显示完整的检查进度
                 fsck -t ext3 -r /    检查ext3档案系统的/根目录是否正常,如果有异常便自动修复
      groups    显示当前用户属于哪些组
                groups psp
      groupadd  建立新组
                -g gid    指定组ID号。
                -r gid    加入组ID号,低于499系统账号。
      groupdel  删除已存在的组
                groupdel  [群组名称]
      groupmod  更改组的信息
                -n 原组名 新组名
                -g 原gid  新gid
      halt      关闭系统。
      history   历史命令,一般保存在用户目录下的.bash_history文件中。默认保存1000条
                export HISTTIMEFORMAT='%F %T   '   查看命令历史的时间戳
                -n   显示后n条历史命令
                !ps  查找上一条以ps开头的命令
                -c   清除所有的命令历史
      host    
      hostname  命令显示当前主机系统的名称
      id        显示用户ID信息,uid,gid等
                id psp
      ifconfig  配置网卡的基本命令
                ifconfig | more
                ifconfig | grep eth0
                ifconfig eth0 up | down    =    ifup eth0 | ifdown eth0
                ifconfig eth0 192.168.0.14 netmask 255.255.255.0
                ifconfig eth0:0  192.168.0.11  netmask 255.255.255.0
                ifconfig eth0:1  192.168.0.12  netmask 255.255.255.0     
                MTU 每个包的最大传输单位          
      jobs      显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;
                -l
      kill      删除执行中的程序或工作。
                -l    好像启动进程的用户已注销的方式结束进程。
                -p    指定kill命令只是显示进程的pid,并不真正送出结束信号
                -9    强制杀死进程
                -HUP  杀死某进程后再重新启动它
                杀死前台进程方法: ctrl + c           kill -9  PID
                杀死后台进程方法: 1. jobs -l        获取信息(PID、作业号)
                                   2. kill -9  PID
                                   3. kill %num      作业号
      killall   killall命令杀死同一进程组内的所有进程
    其允许指定要终止的进程的名称,而非PID。
      last      列出目前与过去登入系统的用户相关信息。
                -a  把从何处登入系统的主机名称或IP地址,显示在最后一行。
                -d  将IP地址转换成主机名称。
                -f <文件名>  指定要显示的记录文件,是默认是wtmp,/var/log/btmp能显示的更详细,可以显示远程登录,例如ssh登录。
                -i   显示特定ip登录的情况。跟踪用。
                -x  显示系统关机,重新开机,以及执行等级的改变等信息。
                -n 10  只显示10行记录
      lastb     列出登入系统失败的用户相关信息。记录的登入失败的用户名单,全部显示出来。
                -a  把从何处登入系统的主机名称或IP地址显示在最后一行。
                -d  将IP地址转换成主机名称。
                -n<显示列数>或-<显示列数>  设置列出名单的显示列数。
    -R  不显示登入系统的主机名称或IP地址。
    -x  显示系统关机,重新开机,以及执行等级的改变等信息。
      login     登入系统。/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。
      logname   显示用户名称,它会显示目前用户的名称。
      logout    让用户退出系统,其功能和login指令相互对应
      lsmod     显示系统中已载入的模块,查看/proc/modules这个文件也可以实现相同功能
      mesg      打开/关闭终端交互工具
                mesg -y    打开
                mesg -n    关闭
      mkfs      创建文件系统,格式化
                -c   检查分区坏块
                -j   为ext2文件系统添加日志功能
                -t   指定文件系统的类型
                mkfs   -t ext3 /dev/md0
                mkfs.ext3      /dev/md0
      mknod     系统用户可以用mknod指令来建立所需的设备文件
  mknod     文件名    文件类型    主号    从号
                主号与从号可以在
                                   /usr/src/linux-2.4/Documentation/devices.txt中找到
                mknod /dev/fd0 b 2 0
      mount     挂载文件系统
                -t  指定文件系统的类型
                -o  主要用来描述设备或档案的挂接方式
                      loop:     用来把一个文件当成硬盘分区挂接上系统
          ro:       采用只读方式挂接设备
        rw:       采用读写方式挂接设备
                     iocharset:指定访问文件系统所用字符集
      netstat   于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。可让你得知整个Linux系统的  网络情况。
                -a   显示所有连线中的Socket。
                -r   显示核心路由表
                -n   直接使用IP地址
                -s   查看网卡收发的数据包
                -t   显示TCP传输协议的连线状况。
  -u   显示UDP传输协议的连线状况。
      nohup     不挂断地运行命令。
                nohup command &
      wall      向所有在线用户广播
                wall   
                        xxxxxxxxxxxxxxxxx
                ctrl + d
      write     向某个在线用户广播
                write username  tty?     ctrl + d
      passwd    修改用户密码
                -l   锁定已经命名的账户名称
                -u   解开账户锁定状态
                -x, --maximum=DAYS:最大密码使用时间
                -n, --minimum=DAYS:最小密码使用时间
                -d   删除使用者的密码,若忘记系统root用户密码可以进入单用户模式,将口令清空
      poweroff  关机,在多用户方式下(Runlevel 3)不建议使用
      ps        报告程序状况。可以搭配kill指令随时中断,删除不必要的程序。
                -a  显示所有终端机下执行的程序,除了阶段作业领导者之外。
    a  显示现行终端机下的所有程序,包括其他用户的程序。
    -A  显示所有程序(包括内核进程)。
                -e  此参数的效果和指定"A"参数相同。
     e  列出程序时,显示每个程序所使用的环境变量。
         -f  显示UID,PPIP,C与STIME栏位。
                 u  以用户为主的格式来显示程序状况。
                -ef  用户当前进程的列表(没系统内核进程)
  -kf  只有内核的进程列表
      pstree    以树状图显示程序。
                -a  显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。
    -h  列出树状图时,特别标明现在执行的程序。
  -p  显示程序识别码。
    -u  显示用户名称。
      read      从标准输入读取数据来为变量赋值
                read  name
      reboot     执行reboot指令可让系统停止运作,并重新开机。
                -f  强制重新开机,不调用shutdown指令的功能。
                -n  重开机之前不检查是否有未结束的程序。
                -i  在重开机之前,先关闭所有网络界面。
                -w  仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
      rlogin    执行rlogin指令开启终端机阶段操作,并登入远端主机。
                rlogin [-l <用户名称>]  [主机名称或IP地址]
                -l用户名称>  指定要登入远端主机的用户名称。
      rsh       rsh提供用户环境,也就是Shell,以便指令能够在指定的远端主机上执行。
  rsh  [-l <用户名称>]  [主机名称或IP地址]  [执行指令]
                -l<用户名称>  指定要登入远端主机的用户名称。
      rsync     数据同步的工具,如果要在两台计算机之间保持大型、复杂目录结构的同步性(尤其是两者间的差异很小时), 是一种使用起  来极为方便(并且执行速度很快)、随心所欲的工具。
                 -V,--verbose 输出的信息;
         -q,--quiet 安静模式,几乎没有信息产生.常用在以cron执行rsync;
          -a,--archive archive mode权限保存模式,相当于-rlptgoD 参数;
          -p,--perms 保留档案权限;
         -O,--owner保留档案所有者(root only);
         -g,--g rouP 保留档;案群;
         -D,--devices 保留device 信息(root only);
         -e,--h=COMMAND定义所使用的remote shell;
         -4, --ipv4 使用IPv4协议;
         -6, --ipv6 使用IPv6协议;
      rwho      它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令。
                -a  列出所有的用户,包括闲置时间超过1个小时以上的用户。
      sar       查看CPU、内存的使用情况
                -A:所有报告的总和。        
  -u:CPU利用率        
  -v:进程、I节点、文件和锁表状态。        
  -d:硬盘使用报告。        
  -r:没有使用的内存页面和硬盘块。        
  -g:串口I/O的情况。
  -b:缓冲区使用情况。
  -a:文件读写情况。
  -c:系统调用情况。
  -R:进程的活动情况。
  -y:终端设备活动情况。
  -w:系统交换活动。
      service   管理Linux操作系统中服务的命令,此命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。
                service mysqld start|stop|restart  =  /etc/init.d/mysqld start|stop|restart
      shutdown  系统关机指令。
                 -c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令。
    -f  重新启动时不执行fsck。
      -F  重新启动时执行fsck。
         -h  将系统关机。
   -k  只是送出信息给所有用户,但不会实际关机。
    -n  不调用init程序进行关机,而由shutdown自己进行。
    -r  shutdown之后重新启动。
      sleep     可以用来将目前动作延迟一段时间
                -number       s 为秒,m 为 分钟,h 为小时,d 为日数
                sleep 10d     延迟10天
      slogin    同ssh
      setup     一个设置公用程序,提供图形界面的操作方式。
      source    也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注  销并重新登录。
                source file = . file
      ssh       远程登陆
                ssh IP       提示输入密码                 ssh 172.18.6.227
                ssh
  提示输入密码
                -l user   指定使用某用户进行登陆       ssh -l user 172.18.6.227 
                                                       ssh 172.18.6.227 ls -l /   登陆后执行命令
             ssh 172.18.6.227 "cd /root && ls "  执行不止一个命令,用引号括住
                -v        显示详细信息
                -f        要求ssh 在幕后执行命令
                -g        允许远程主机去连接本地指派的ports。

      su        变更用户身份
                -c<指令>   执行完指定的指令后,即恢复原来的身份。
                -m         变更身份时,不要变更环境变量。
      sudo      可让用户以其他的身份来执行指定的指令,预设的身份为root。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限                ,超过期限则必须重新输入密码。
                -u<用户>  以指定的用户作为新的身份。
                -b  在后台执行指令。
                -H  将HOME环境变量设为新身份的HOME环境变量。
                -l  列出目前用户可执行与无法执行的指令。
      tar       打包,解包
                打普通包  tar cvf   home.tar       /home
                打gzip包  tar zcvf  home.tar.gz    /home
                打bzip2   tar jcvf  home.tar.bz    /home
                打Z包     tar Zcvf  home.tar.Z     /home
                解tar包   tar xvf   home.tar
                解gzip    tar zxvf  home.tar.gz
                解bzip2   tar jxvf  home.tar.bz
                解Z包     tar Zxvf  home.tar.Z
                t   列出档案文件的内容,查看已经备份了哪些文件。
                b   该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
      time      量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。
  -o   会将 time 的输出写入所指定的档案中。
      top       监视系统资源使用情况
                c            列出程序时,显示每个程序的完整指令,包括指令名称,路径和参数等相关信息。
                d<间隔秒数>  设置top监控程序执行状况的间隔时间,单位以秒计算。
                u 用户名      查看某个用户开启的进程
                k  PID        杀掉某进程
                q            持续监控程序执行的状况
                i            执行top指令时,忽略闲置或是已成为Zombie的程序。
      tty       显示终端机连接标准输入设备的文件名称。
                可以执行tty指令查询目前使用的终端机的文件名称。
                tty -s
      tune2fs   将ext2文件系统升级为ext3文件系统
                tune2fs -j /dev/hda1     =   mke2fs -j  /dev/hda1
      w         查询当前登陆系统用户
      who       查询当前登陆系统用户
      umount    卸除文件系统。
  -a                卸除/etc/mtab中记录的所有文件系统。
                -t<文件系统类型>  仅卸除选项中所指定的文件系统。
      uname     显示系统信息。
                -a   显示全部信息
                -n   显示主机名
                -r   显示系统发行编号
                -s   显示操作系统名称
                -v   显示操作系统版本
      uptime    显示系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载
      useradd   建立用户帐号
                -d   指定宿主目录
                -e<有效期限> 指定帐号的有效期限。
                -g<群组>    指定用户所属的群组。
                -G<群组>    指定用户所属的附加群组。
                -s         指定用户登入后所使用的shell。
                -u ID       指定用户ID。
      userdel   删除用户帐号。
                -f  删除用户登入目录以及目录中所有文件。
                -r   删除用户时也删除其宿主目录
      usermod   改变用户信息
                -c   改变用户名称
                -d   改变用户宿主目录
                -e   设置密码过期时间
                -g   改变用户gid
                -G   将用户加入一个新组
                -s   改变用登陆的shell
                -u   改变用户UID
                -p   改变用户的密码
                -L   锁住密码
                -U   密码解锁
      vlock     可锁住虚拟终端,避免他人使用。
                -a   锁住所有的终端阶段作业,则会将用键盘切换终端机的功能一并关闭。
                -c   锁住目前的终端阶段作业,此为预设值。
      w         显示目前登入系统的用户信息。
      who       显示目前登入系统的用户信息。
      whoami    显示的是当前“操作用户”的用户名
      whois     查找并显示用户信息。
                whois [帐号名称]
      ytalk     与其他用户交谈。
                -h<主机名称IP地址>   指定交谈对象所在的远端主机。
  -i        用提醒声响代替显示信息。
  -s                   在指令提示符号先开启ytalk交谈窗。
  -x                   关闭图形界面。
 
 

-----------------------------------------------------------------------------------------------------------------------
一、Linux系统--批量创建用户与密码
1. 编写user.txt文件
    user001::600:100:user:/home/user001:/bin/bash
  user002::601:100:user:/home/user002:/bin/bash
    ..........................................................................
    .............................................................................
2. 编写passwd.txt密码文件
    user001:密码
  user002:密码
    .............................................................................
3. 命令
    newusers < user.txt        导入数据到/etc/passwd文件中
    pwunconv                   取消shadow password功能,将/etc/shadow的shadow密码栏删掉
    chpasswd < passwd.txt      创建用户密码
    pwconv                     密码编码为shadow password,并将结果写入/etc/shadow
-----------------------------------------------------------------------------------------------------------------------
二、Linux系统--磁盘限额
分为软限制和硬限制,注意区别
1.先修改 /etc/fstab 文件.在文件系统相应的 mount 命令行中加入限额选项
   LABEL=/home         /home             ext3   defaults,usrquota,grpquota   1 2
2. 重新装载 Linux 分区:
   mount -o remount /home
3.会在目录下生成 aquota.user 和 aquota.group 这两个文件。
   quotacheck -cmug /home
4. 为用户设置磁盘空间限额:
   edquota -u landy
   edquota -g groupname
5.启动磁盘配额功能。
   quotaon -auvg
另:你可以使用quota -username和quotastats来查看下当前状态。
-----------------------------------------------------------------------------------------------------------------------
Linux系统--硬盘分区
1. 硬盘的种类主要是SCSI、IDE、SATA
   SCSI标准经历了SCSI-1、SCSI-2、SCSI-3
   IDE 遵循的是ATA标准,IDE是并口设备
   SATA是ATA标准的升级版本,SATA是串口,SATA的发展目的是替换IDE
2. 物理结构:
   由盘、磁盘表面、柱面、扇区组成,一个张硬盘内部是由几张碟片叠加在一起,这样形成一个柱体面;每个碟片都有上下表面;磁头和磁盘表面接触从而能读取数据
3. fdsik -l
         Disk /dev/hda: 80.0 GB, 80026361856 bytes         此硬盘有 255个磁盘面,有63个扇区,有9729个柱面
         255 heads, 63 sectors/track, 9729 cylinders       磁盘的大小:255 x 63 x 512 x 9729 = 80023749120 bytes
         Units = cylinders of 16065 * 512 = 8225280 bytes  硬盘厂家:向大单位换算,每次除以1000
         Device Boot Start End Blocks Id System            操作系统:向大单位换算,每次除以1024,所以实际要比标配的大小要小
         /dev/hda1 * 1 765 6144831 7 HPFS/NTFS            
         /dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)    
         /dev/hda3 2806 9729 55617030 5 Extended          
         /dev/hda5 2806 3825 8193118+ 83 Linux
         /dev/hda6 3826 5100 10241406 83 Linux
         /dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris
         /dev/hda8 5199 6657 11719386 83 Linux
         /dev/hda9 6658 7751 8787523+ 83 Linux
         /dev/hda10 7752 9729 15888253+ 83 Linux
4. 分区划分标准
   一块硬盘只能有四个主分区,也可以将一个主分区变成扩展分区
   硬盘的分区由主分区、扩展分区和逻辑分区组成;主分区(包括扩展分区)的最大个数是四个,主分区个数由硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程序(GRUB,LILO等)和分区表记录。扩展分区下可以包含更多的逻辑分区;所以主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的.
   /dev/hda            表示整个IDE硬盘
   /dev/hda1          表示第一块IDE硬盘的第一个主分区
   /dev/hda2          表示第一块IDE硬盘的扩展分区
   /dev/hda5          表示第一块IDE硬盘的第一个逻辑分区
   /dev/hda8          表示第一块IDE硬盘的第四个逻辑分区
   /dev/hdb           表示第二个IDE硬盘
   /dev/hdb1          表示第二块IDE硬盘的第一个主分区
   /dev/sda          表示第一个SCSI硬盘
   /dev/sda1          表示第一个SCSI硬盘的第一个主分区
   /dev/sdd3          表示第四个SCSI硬盘的第三个主分区
-----------------------------------------------------------------------------------------------------------------------
vi编辑器
vi 提供两种模式
命令模式
浏览、删除、剪贴、查找等
可以用各种命令进入插入模式
插入模式
输入新文档
退出插入模式回命令模式
□ 从命令模式进入插入模式:
□ i:光标在当前位置进入插入模式
□ I:光标跳到行首并进入插入模式
□ a:光标后退一格并进入插入模式
□ A:光标退到行尾并进入插入模式
□ o:在光标所在行下新起一行并进入插入模式
□ O:在光标所在行上新起一行并进入插入模式
□ s:删除光标所在字符并进入插入模式
□ S:删除光标所在行并进入插入模式
命令模式下(command mode):
□ Ctrl-G  显示光标在第几行
□ G       光标会移动到最后一行
□ nG      光标会移动到第n列
□ gg      光标会移动到第一列
□ J       将光标所在列与下一列合并为一列
□ nJ      从该列算起,将该列与下n-1列合并为一行     
□ ctrl+b 向上移动一屏
□ ctrl+f 向下移动一屏
在vi中删除
□ x: 向后删除一个字符
□ X: 向前删除一个字符
□ nx:删除下n个字符
□ X:删除光标前一个字符
□ nX:删除光标前n个字符
□ dd:删除当前行
□ ndd:删除n行
□ dw:删至词尾
□ ndw:删除后n个词
□ d$:删至行尾
□ nd$:删除后n行
在vi中剪贴、复制
□ yy:选定光标所在行复制
□ yw:选定光标所在词复制
□ nyw:选定光标所在位置到之后n个单词复制
□ y0: 复制从光标到行首的内容
□ y$:选定光标所在位置到行尾的部分复制
□ p:贴在光标所在位置之右
□ P:贴在光标所在位置之左
取消操作
□ u:取消上一个指令
□ nu:取消上n个指令
□ U:取消一行内的所有更动
:重做
□ :e! :放弃所有更动,重新编辑
□ 如果vi因shell关闭或一些特殊事件而被关闭,我们可以用vi -r 文件名来恢复之前的编辑状态。
查找文本
□ /: 向下查找
□ ?: 向上查找
□ ??或者//将重复上次查找
□ n: 查找下一个
□ N: 查找上一个
命令模式的输入选项
□ :r <文件名>    把文件插入到光标处
□ :r !<命令>      把<命令>的输出插入到当前文本中
□ :nr <文件>       把<文件>插入到第n行
□ :!<命令>          运行<命令>,然后返回
□ :sh                    转到SHELL
□ :so <文件>       读取<文件>,再执行文件里面的命令
保存与退出
□ :w         保存
□ :w file    另存为文件file
□ :n1,n2 w file 把n1行到n2行保存为文本file
□ :wq        保存并退出
□ :wq!       保存并强制退出
□ :q         不保存退出
□ :q!        不保存强制退出
□ :!command 显示命令command的结果
替换文本:
□ :s/S/R/g      把当前光标所处的行中的S替换成R
   :s/the/THE/g 把光标所在的行,把所有单词the,替换成THE
□ :%s/S/R       把文档中所有S替换成R;
   :%s/the/THE/g 把整篇文档中的the都替换为THE
□ :#,# s/S/R/g #号表示数字,表示从多少行到多少行,把S替换成R;
   :1,10 s/the/THE/g   第1行到第10行中的the,替换成THE
   :1,$ s/the/THE/g 从第1行到最后一行都替换
□ :set nu        显示行号
   :set nonu      取消行号
 
-----------------------------------------------------------------------------------------------------------------------
Linux系统--网络配置
1. 层次结构
   TCP/IP协议由4个层组成,从上到下分别为:
-----------------------------------------------------------------------------------------------------------
数据单位命名层次        │     TCP            │                                │       UDP
-----------------------------------------------------------------------------------------------------------
   应用程序层           │ Stream(数据流)     │                                │    Message(消息)
-----------------------------------------------------------------------------------------------------------
   传输层               │ Segment(分段)      │                                │    Packet(报文)
------------------------------------------------------------------------------------------------------------
   Internet层           │                              │ Datagram(数据报)     │
------------------------------------------------------------------------------------------------------------
   网络访问层           │                              │ Frame(侦)            │
------------------------------------------------------------------------------------------------------------
应用层       HTTP FTP SMTP POP3 这些协议都是在TCP和UDP协议基础上实现的
传输层       TCP(Transmission Control Protocol),传输控制协议
             UDP(User Datagram Protocol),用户数据报协议
Internet层   ICMP(Internet Control Message Protocol),网络控制报文协议,实现回送请求的功能,ping
网络访问层   处理的是通过链路(光纤、同轴电缆)进行数据侦(Frame)物理发送的详细过程
2. 路由配置
   a. 静态路由
   b. 动态路由
3. 静态路由表,可以获得路由信息
   route    -r
   netstat -rn
   a. 添加到网络,通过eth0接口的路由
      route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
   b. 增加默认网关
      route add default gw 192.168.100.1
   c. 添加到主机的路由
      route add -host 192.168.100.100 gw 192.168.100.1
   d. 删除到主机的路由
      route del -host 192.168.100.100 gw 192.168.100.1
4. 动态路由
   a. RIP协议,适合中小型企业
   b. OSPF协议,最短路径优先协议,与整个网络共享路由信息
   c. BGP协议,边界路由协议,使用最广泛,支持策略路由,避免发生路由循环
5. 配置以太网卡
   a. 网卡驱动
      /etc/modprobe.conf   声卡、网卡、显卡的驱动文件
   b. 网卡IP
      动态IP 自动获取
      静态IP 自己配置
                     ifconfig eth0 192.168.0.25 netmask 255.255.255.0
             配置文件
                     /etc/sysconfig/network-scripts/ifcfg-eth0
      重启网卡使设置生效
                     ifconfig eth0 up
                     ifconfig eth0 down
      重启网络
                     service network start
6. 端口信息
   a. 查看端口是否被打开         netstat -an | grep xx
   b. 查看端口被什么程序打开     lsof -i :xx
-----------------------------------------------------------------------------------------------------------------------
Linux系统--磁盘阵列
1. 基本想法是把多个便宜的小磁盘组合到一起,成为一个大的磁盘,使性能达到一个昂贵的大磁盘程度
2. RAID分类
             ① 硬件RAID技术 价格昂贵
             ② 软件RAID技术 Linux自带的技术
3. 优点
             ① 整合多个磁盘
             ② 具有较高的安全性,具有修改错误的能力
             ③ 加快了磁盘的I/O速率
4. 级别
             ① RAID 0 数据请求被多个磁盘并行执行,I/O速率提升,缺点是没有数据冗余,无法恢复数据
                  RAID 2 不常用
             ② RAID 1 全冗余模式,2XN磁盘,写数据同时也写入镜像盘,容错性好,但有效容量减少了一半
             ③ RAID 3 技术上实现太复杂,很少被用
             ④ RAID 4 一块盘为校验盘,其他盘类似RAID 0 方式工作,但以最小磁盘容量为标准,所以磁盘大小最好相等。两块同时出现故障,数据会丢失,校验信息存储在一个磁盘上,每次写数据时都会更新这些信息,容易造成瓶颈,很少使用。
             ⑤ RAID 5 三块盘以上,并可使用备用磁盘,也以最小磁盘容量为标准。与4区分是,校验信息均匀分布在各个磁盘上,如果一块磁盘出现故障,立即使用备用盘开始同步数据,不支持两块或更多盘同时的故障,最常用。
             ⑥ RAID 6 是RAID 5的扩展,校验信息均匀分布在各个磁盘上,只是增加一块校验盘,备份各个磁盘上的校验信息,这就允许两块磁盘同时出现故障,至少需要4块磁盘
5、创建RAID 5
  
   A. 例如有4块磁盘,分别为/dev/sdb /dev/sdc /dev/sdd /dev/sde
      给这些磁盘分区
      fdisk -l       列出当前所有分区及存储设备
      fdisk /dev/sdb
      ..............
      fdisk /dev/sde
   B. 创建RAID 5
      mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
      查看/dev/md0相关信息
      mdadm --detail /dev/md0
   C. 配置文件
      mdadm --detail --scan > /etc/mdadm.conf
      vi /etc/mdadm.conf
                           DEVICE /dev/sab1 /dev/sdc1 /dev/sdd1 /dev/sde1
   D. 分区、格式化(创建文件系统)、装载
      fdisk /dev/md0
      mkfs.ext3 /dev/md0
      cd /mnt
      mkdir md0
      mount /dev/md0 /mnt/md0
   E. 操作
      a. 查看软RAID状态
         cat /proc/mdstat
      b. 模拟故障
         mdadm /dev/md0 --fail /dev/sdc1
      c. 移除故障磁盘
         mdadm /dev/md0 --remove /dev/sdc1
      d. 添加新磁盘
         mdadm /dev/md0 --add /dev/sde1
-----------------------------------------------------------------------------------------------------------------------
Linux系统--NFS网络文件系统
定义:通过网络实现文件系统的共享的重要方式,被广泛的应用在集群式的分布式的服务器系统中。SUN在80年代发明。
原理:通过网络,将远程主机共享的文件系统,挂载到本机。为C/S架构。通过RPC(远过程调用)实现, 
      所有的NFS操作都由RPC过程来进行。注意NFS是基于rpc机制的,所以portmap服务一定要打开
版本: V2 早期版本
       V3 主流版本(常用)
       V4 需要认证,不通用
实现步骤:
1. 用ifconfig将主机和开发板设置到同一网段,如主机192.168.1.111,子网掩码为255.255.255.0,开发板为192.168.1.168,子网掩码255.255.255.0,然后互相ping下,Ping的通说明网线和网卡没问题。
2. 启动portmap(111端口)、nfs(2049端口)服务、关闭防火墙
3. 远程主机建立共享文件夹,设置用户权限、组权限为 nfsnobody。
4. 远程主机编辑/etc/exports 这个文件,sync意思是未知。
   /share      192.168.1.*(rw,sync)
5. 本地主机挂载
   showmount -e 192.168.1.168   查看是否存在
   mount -t nfs 192.168.1.168:/share /home/share
6. 若想重启后还应用,则将其挂载到/etc/fatab文件中。
               NFS协议                                    OSI模型
-----------------------------------------------------------------------------------------------
               NFS                                        应用层
-----------------------------------------------------------------------------------------------
               XDR 扩展数据表示                           表示层
-----------------------------------------------------------------------------------------------
               RPC 远程过程调用                           会话层
-----------------------------------------------------------------------------------------------
               UDP 用户数据报协议                         传输层
-----------------------------------------------------------------------------------------------
               IP Internet协议                            网络层
-----------------------------------------------------------------------------------------------
        令牌环、ARCnet、以太网                            数据链路层
                                                          物理层
-----------------------------------------------------------------------------------------------
RPC 通过过程调用访问服务器上的可用服务,NFS协议定义了18种远程过程调用。
XDR 当其他系统的编码方式与NFS不同时,负责数据编码的转换
 
locate: can not open `/var/lib/mlocate/mlocate.db': 没有找到指定数据库文件
locate是透过 update程序将硬盘中的所有文件和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达 update强迫系统立即修改索引数据库。此时就要执行 slocate -u该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由locate到此数据库寻找所要找的资料。
 
阅读(1091) | 评论(0) | 转发(0) |
0

上一篇:linux基础知识汇总

下一篇:history

给主人留下些什么吧!~~