1.mirror 目录名,用于下载ftp中的目录文件。

2./etc/profile.d配置环境变量

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.      
并从/etc/profile.d目录的配置文件中搜集shell的设置.

3.export

4.下载网络上的源码包,得到那个源码包的链接地址,然后用wget 链接地址。下载源码包。

5./etc/crontab 用于系统cron(周期性任务计划)

对于用户cron,使用crontab命令来实现。

-l 查看自己的cron任务列表。

-e 打开用户自己的cron配置文件进行编辑。

-r 移除crontab文件

如果是管理员,可以为别的用户配置crontab作业:使用 –u 选项

crontab –e –u xiezhao


1、 Service就是指常驻内存大一些程序,且可以提供一些系统或是网络功能。提供service的那个程序就成为daemonDaemonservice可以视为等同,不必刻意去区分。

2、 Killproc专门杀掉deamon启动的服务,直接跟服务名。例:killpro named

3、 Daemon可以分为两类,一类是可独立启动的,成为stand alone;另一类是通过一支super daemon来统一管理的服务。

4、 Stand alone类型的daemon能够自动启动,常驻内存,对请求响应较快,如httpdvsftpd等。

5、 Super daemon统一管理的是用户有请求,super daemon就唤醒响应daemon,如果用户请求结束,就kill掉该daemon。优点不用常驻内存,缺点装到内存需要时间。如telnet。这个super daemon早期是inetd,后来被xinetd取代。

6、 Super daemonstand alone daemon的形象比喻:stand alone就像银行的专用窗口,某些窗口专门负责取钱,某些窗口专门负责兑换外币;super daemon就是一个综合性窗口,什么业务都受理。

7、 Linux中,daemon的命名规则通常是在所提供的服务名后面加d,如httpd

8、 /etc/services文件中记录了serviceport的对应关系。是网络服务文件,使用服务名称、端口名、协议名、以及别名来表示。

9、 Linux的端口号范围为0~655350,不适用;1-1023系统保留只能由root使用;1024-4999,客户端程序自由分配,5000-65535服务器端程序自由分配。

10、 一般的启动与关闭daemon都是写成一个shell script来完成。

11、 系统服务启动的script几乎全是放到/etc/init.d/目录下。CentOS实际上放到/etc/rc.d/init.d/中的,但是跟/etc/init.d/下一样,做了链接。

12、 几乎所有服务的初始化设定文档都是放在/etc/sysconfig/目录下,网络的初始化配置卸载/etc/sysconfig/network这个文件中。

13、 Super daemon的主要设定档写在/etc/xinetd.conf,它所管理的其它的daemon的设定档卸载/etc/xinetd.d/目录下。

14、 各服务的设定档都是放在/etc/目录下。

15、 /var/lib/放的都是各服务产生的数据。

16、 /var/run/放的是各服务的程序之PID记录处。

17、 spacer.gif

18、 除了16中所描述的使用/etc/init.d/目录下的shell script来管理服务,启动关闭daemon以外,可以使用service这个script(可以直接查看/sbin/service这个文件,纯文本写成的script)来管理daemonservice这个script可以分析service后面的参数,到/etc/init.d/下去取得正确的服务来startstop。如下:

spacer.gif

19、 Super daemon本身也是一支stand alonedaemon

19、partprobe 指令:告诉核心必须要重读新的分割表,指用fdisk进行分区后。

20、单向加密:用自己的私钥加密,别人用自己的公钥解密,来保证数据完整性和身份认证。

21、系统资源

# uname -a               # 查看内核/操作系统/CPU信息# free -m           # 查看内存使用量和交换区使用量
# head -n 1 /etc/issue   # 查看操作系统版本# df -h                  # 查看各分区使用情况
# cat /proc/cpuinfo      # 查看CPU信息# du -sh <目录名>        # 查看指定目录的大小
# hostname               # 查看计算机名# grep MemTotal /proc/meminfo   # 查看内存总量
# lspci -tv              # 列出所有PCI设备# grep MemFree /proc/meminfo    # 查看空闲内存量
# lsusb -tv              # 列出所有USB设备# uptime        # 查看系统运行时间、用户数、负载
# lsmod                  # 列出加载的内核模块# cat /proc/loadavg      # 查看系统负载
# env                    # 查看环境变量

磁盘和分区网络

# mount | column -t      # 查看挂接的分区状态# ifconfig               # 查看所有网络接口的属性
# fdisk -l               # 查看所有分区# iptables -L            # 查看防火墙设置
# swapon -s              # 查看所有交换分区# route -n               # 查看路由表
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)# netstat -lntp          # 查看所有监听端口
# dmesg | grep IDE       # 查看启动时IDE设备检测状况# netstat -antp          # 查看所有已经建立的连接

进程# netstat -s             # 查看网络统计信息

# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态

用户服务

# w                      # 查看活动用户# chkconfig --list       # 列出所有系统服务
# id <用户名>            # 查看指定用户信息# chkconfig --list | grep on    # 列出所有启动的系统服务
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务

程序

# rpm -qa                # 查看所有安装的软件包

如果是用rpm或者yum安装的软件包,那么其程序对应的服务可以通过service XXXX startrestartstatus等进行启动服务,重启服务或者查看服务的运行状态。

如果是手动编译安装的,那么就不可以了,需要自己手动写这些配置文件,从而达到可以使用和上面一样的方式去启动,重启和查看,service XXXX startrestartstatus.....其配置文件写在/etc/rc.d/init.d/中,名字自己起。

如何增加一个服务:
1.服务脚本必须存放在/etc/init.d/目录下;

/etc/init.d只是/etc/rc.d/init.d的软链接;
2.chkconfig --add servicename
   在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
3.chkconfig --level 35 mysqld on
   修改服务的默认启动等级。

加载内核完成后,执行init程序,由init执行的第一个脚本/etc/rc.d/rc.sysinit(设置主机名,开启网络,挂载设备),之后根据/etc/rc.d/rc的参数使系统运行在指定的运行级别上(可以在/etc/inittab中设置),根据运行级别然后启动对应脚本(/etc/rc.d/{rc0.d,rc1.d,rc2.d.....)这些脚本中都是到/etc/rc.d/init.d中的软链接,所以真正运行的服务都是在/etc/rc.d/init.d中的。

spacer.gif

rc.sysinit(设置主机,网络,挂载设备)后,根据rc 参数指定运行的级别,然后进如对应的rc#.d中,读取需要启动和关闭的服务(这些服务都在init.d中,rc#.d中只是init.d中的软链接)


一般安装一个软件:配置文件都在/etc/xxx 与之同名的目录下。

程序在/usr/sbin  /usr/bin  /usr/local/sbin  /usr/local/bin

Openssl :  格式为,例:  openssl -enc

标准命令:enc(对称加密), dgst(单向加密), genrsa(生成密钥对), rsautl, req(生成证书签署请求), ca(签署证书), rsa(查看公钥), passwd(给密码生成加密后的乱码串)

FQDN:FQDN是Fully Qualified Domain Name的缩写, 含义是完整的域名

例如, 一台机器主机名(hostname)是www, 域后缀(domain)是example.com, 那么该主机的FQDN应该是www.example.com.

检查DNS设置:cat /etc/resolv.conf

检查网关设置:# route

检查主机名:# hostname

DNS的软件名称为BIND,安装完成后服务名为 named

FQDN=主机名+域名

/etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的

例子 export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH

文件的判断

-r 文件或目录对此(有效的)用户(effective user)或组是可读的

-w 文件或目录对此(有效的)用户或组是可写的         -x 文件或目录对此(有效的)用户或组是可执行的

-o 文件或目录由本(有效的)用户所有                 -R 文件或目录对此用户(real user)或组是可读的

-W 文件或目录对此用户或组是可写的                  -X 文件或目录对此用户或组是可执行的

-O 文件或目录由本用户所有                           -e 文件或目录名存在      

-z 文件存在,大小为0(目录恒为false)                -s 文件或目录存在,大小大于0(值为文件的大小,单位:字节)

-f 为普通文本-                           -d 为目录                  -l 为符号链接

-S socket            -p 为管道(Entry is a named pipe(afifo))      -b block-special 文件(如挂载磁盘)

-c character-special 文件(如I/O 设备)

-u setuid 的文件或目录                 -g setgid 的文件或目录          -k File or directory has the sticky bit set

-t 文件句柄为TTY(系统函数isatty()的返回结果;不能对文件名使用这个测试)

-T 文件有些像“文本”文件            -B 文件有些像“二进制”文件

-M 修改的时间(单位:天)          -A 访问的时间(单位:天)          -C 索引节点修改时间(单位:天)

锁文件

/var/lock/subsys目录的作用的说明

很多程序需要判断是否当前已经有一个实例在运行,这个目录就是让程序判断是否有实例运行的标志,比如说xinetd,如果存在这个文件,表示已经有xinetd在运行了,否则就是没有,当然程序里面还要有相应的判断措施来真正确定是否有实例在运行。通常与该目录配套的还有/var/run目录,用来存放对应实例的PID,如果你写脚本的话,会发现这2个目录结合起来可以很方便的判断出许多服务是否在运行,运行的相关信息等等。

实际上,判断是否上锁就是判断这个文件,所以文件存在与否也就隐含了是否上锁。而这个目录的内容并不能表示一定上锁了,因为很多服务在启动脚本里用touch来创建这个加锁文件,在系统结束时该脚本负责清除锁,这本身就不可靠(比如意外失败导致锁文件仍然存在),我在脚本里一般是结合PID文件(如果有PID文件的话),从PID文件里得到该实例的PID,然后用ps测试是否存在该PID,从而判断是否真正有这个实例在运行,更加稳妥的方法是用进程通讯了,不过这样的话单单靠脚本就做不到了。

Linuxchkconfig命令详解

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

使用语法:

chkconfig [--add][--del][--list][系统服务] chkconfig [--level <等级代号>][系统服务][on/off/reset]

chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了onoff或者reset,那么chkconfi 会改变指定服务的启动信息。onoff分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。onoff开关,系统默认只对运行级345有效,但是reset可以对所有运行级有效。

参数用法:

  --add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

  --del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

  --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。

     等级0表示:表示关机

     等级1表示:单用户模式

     等级2表示:无网络连接的多用户命令行模式

     等级3表示:有网络连接的多用户命令行模式

     等级4表示:不可用

     等级5表示:带图形界面的多用户模式

     等级6表示:重新启动

     需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

   chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(onoff)。如果指定了name,那么只显示指定的服务在不同运行级的状态。

   chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。

   chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。

   chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。

运行级文件:

每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。

例如,random.init包含三行:

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for \

# higher quality random number generation.

使用范例:

chkconfig --list        #列出所有的系统服务

chkconfig --add httpd        #增加httpd服务

chkconfig --del httpd        #删除httpd服务

chkconfig --level httpd 2345 on        #设置httpd在运行级别为2345的情况下都是on(开启)的状态

chkconfig --list        #列出系统所有的服务启动情况

chkconfig --list mysqld        #列出mysqld服务设置情况

chkconfig --level 35 mysqld on        #设定mysqld在等级35为开机运行服务,--level 35表示操作只在等级35执行,on表示启动,off表示关闭

chkconfig mysqld on        #设定mysqld在各等级为on,“各等级”包括2345等级

如何增加一个服务:

1.服务脚本必须存放在/etc/ini.d/目录下;

2.chkconfig --add servicename

   在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;

3.chkconfig --level 35 mysqld on

   修改服务的默认启动等级。

/etc/init.d --> /etc/rc.d/init.d

在这里先解释一下init.d里面放的都是什么东西。这个目录存放的是一些脚本,一般是linuxrpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包,这里面就有很多对应的脚本。执行这些脚本可以用来启动,停止,重启这些服务。

前面说到,/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行。程序运行到这里(init进程读取了运行级别),相信从命名的角度大家也能猜到该运行/etc/rc.d/init.d里面的脚本了,不然它为什么也叫init(.d)呢是吧。没错,是该运行init.d里的脚本了,但是并不是直接运行,而是有选择的因为系统并不需要启动所有的服务。

   那么,系统是如何选择哪些需要启动哪些不要呢?这时刚才说的运行级别就起作用了。

   在决定了系统启动的run level之后,/etc/rc.d/rc这个脚本先执行。在RH9FC7的源码中它都是一上来就check_runlevel()(虽然实现的代码不一样,也大同小异),知道了运行级别之后,对于每一个运行级别,在rc.d下都有一个子目录分别是rc0.drc1.d .. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在 rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正干活的init.d里的脚本。


resolv.conf的关键字主要有四个,分别是:

nameserver    //定义DNS服务器的IP地址

domain       //定义本地域名

search        //定义域名的搜索列表

sortlist        //对返回的域名进行排序

下面我们给出一个/etc/resolv.conf的示例:

domain  51osos.com

search  www.51osos.com  51osos.com

nameserver 202.102.192.68

nameserver 202.102.192.69

最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。

nameserver表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver

domain   声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。

search   它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。

domainsearch不能共存;如果同时存在,后面出现的将会被使用。

sortlist  允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序


编译安装软件包时 --enable-XXX :指定要启动什么功能

  --with-XXX:指定把什么安装到哪个目录。不指定默认位置。

创建逻辑卷:

pvcreate /dev/sda3

vgcreate myvg /dev/sda3

lvcreate -L 10G -n mydata myvg

格式化:mke2fs -t ext4 /dev/myvg/mydata

开机自动挂载: /etc/fstab     /dev/myvg/mydata/dataext4default00

配置环境变量:/etc/profile.d/httpd.sh

/etc/ld.so.conf.d/目录下文件的作用

在了解/etc/ld.so.conf.d/目录下文件的作用之前,先介绍下程序运行是加载动态库的几种方法:
第一种,通过ldconfig命令
   ldconfig命令的用途, 主要是在默认搜寻目录(/lib/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
   这里面涉及到的关键内容有命令:ldconfig,配置文件目录:/etc/ld.so.conf.d,配置文件在/etc/ld.so.conf内容由用户编辑,缓冲文件/etc/ld.so.cache。下面举个例子,比如你在部署软件时,有些动态库安装在/usr/local/httpd目录下,可以通过如下方法实现,
1)配置httpd.conf文件,里面加一行/usr/local/httpd/lib,然后将该文件放到/etc/ld.so.conf.d目录下;
2)在/etc/ld.so.conf文件中增加一行include ld.so.conf.d/httpd.conf
3)执行 ldconfig命令
之后程序运行时,会自动增加在httpd目录中搜索动态库。
第二种,通过LD_LIBRARY_PATH环境变量
可以通过在.bashrc或者.cshrc中配置该环境变量,LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开.
同样是上面的例子,可以通过以上的方法来实现
.bashrc.cshrc中增加一行,export LD_LIBRARY_PATH = /exe$LD_LIBRARY_PATH即可。

/etc/ld.so.conf.d/下面放的是动态库文件,即安装软件后生成的lib库文件。


设置系统环境变量:

对所有用户起作用的环境变量修改:/etc/profile

/etc/profile会首先执行/etc/profile.d/目录下的所有 *.sh文件在/etc/profile.d/中加入:/etc/profile.d/XXX.sh为软件包配置其所需的环境变量


/etc/rc.d/init.d/* -------------/etc/init.d

将服务脚本放入:/etc/rc.d/init.d/* 是将脚本加入服务列表中、而/etc/init.d只是/etc/rc.d/init.d的一个软链接、当运行service这个脚本运行服务时、service就会去/etc/init.d中去读取这个服务的服务。正确的服务来startstopservice这个script(可以直接查看/sbin/service这个文件,纯文本写成的script)来管理daemonservice这个script可以分析service后面的参数,到/etc/init.d/下去取得正确的服务来startstop


手动编译安装后(即: ./configure && make && make install 后)

①:修改配置文件 /etc/xxxd/xxxd.conf

②:提供服务脚本/etc/rc.d/init.d/xxxd,还需要给脚本赋予执行权限

③:将服务添加至服务列表 chkconfig --add xxxd、启动脚本 chkconfig xxxd on

还需要添加环境变量 /etc/profile.d/xxx.sh 这样才能让软件命令生效

④:输出xxxman手册man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/xxx/man

⑤:输出xxx头文件至系统头文件路径/usr/include

这可以通过简单的创建链接实现:

# ln -sv /usr/local/xxx/include  /usr/include/xxx把软件中的include改名[即把include中的全部内容]放入到了系统的/include下。

⑥:输出mysql的库文件给系统库查找路径:

# echo '/usr/local/xxx/lib' > /etc/ld.so.conf.d/xxx.conf

而后让系统重新载入系统库:

# ldconfig


各种端口

Apache--> httpd  端口:80    Mysql --> mysqld 端口:3306

Ssh  ---> sshd    端口:22


usr/local:这里主要存放那些手动安装的软件

/usr/srcLinux源代码

/usr/include:系统头文件


LAMP linux apache mysql php/perl



RPM安装的apache,在/etc/httpd/中才有conf这个文件。建立虚拟主机在/etc/httpd/conf/httpd.conf中定义虚拟主机。

手动编译安装apache,在/etc/httpd/中没有conf这个文件。建立虚拟主机在 extra/ 中的http-vhosts.conf中定义虚拟主机。


route 路由相关:   netmask:当添加一个网络路由时,需要使用网络掩码。

   增加一个路由: route add -net IP netmask NETMASK dev eth#

                  route add -host IP netmask NETMASK dev eth#

   删除一个路由: route del -net IP netmask NETMASK dev eth#

                  route del -net IP netmask NETMASK dev eth#