![](https://i-blog.csdnimg.cn/blog_migrate/9ec1cccc3ef878c3d6d6a238abb54a4d.png)
; 分号 (Command separator)在 shell 中,担任"连续指令"功能的符号就是"分号"。譬如以下的例子:cd ~/backup ; mkdir startup ;cp ~/.* startup/.
/ 斜线 (forward slash)在路径表示时,代表目录。cd /etc/rc.dcd ../..cd /通常单一的 / 代表 root 根目录的意思;在四则运算中,代表除法的符号。let "num1 = ((a = 10 / 2, b = 25 / 5))"
** 倒斜线**在交互模式下的escape 字元,有几个作用;放在指令前,有取消 aliases的作用;放在特殊符号前,则该特殊符号的作用消失;放在指令的最末端,表示指令连接下一行。
https://www.cnblogs.com/balaamwe/archive/2012/03/15/2397998.html
![](https://i-blog.csdnimg.cn/blog_migrate/5a31ac468b74daa1f336721686147491.png)
kill 命令用于删除执行中的程序或工作。
kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。
kill -9是彻底杀死,kill 9是先传信息使程序终止
使用 kill -l 命令列出所有可用信号。
最常用的信号是:
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。
![](https://i-blog.csdnimg.cn/blog_migrate/6dec927e0d00fdc86d5326406bc63942.png)
rm命令用于删除一个文件或者目录。
rm [options] name...
(rm的全部的选项)
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
![](https://i-blog.csdnimg.cn/blog_migrate/dad30f21ce7a6504a8d71a668195d8ef.png)
at [选项] [时间]
at 命令只要指定正确的时间,就可以输入需要在指定时间执行的命令。这个命令可以是系统命令,也可以是 Shell 脚本。
例:
[root@localhost ~]# at now +2 minutesat> /root/hello.sh >> /root/hello.log
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)
batch(选项)(参数)选项
-f:指定包含具体指令的任务文件;-q:指定新任务的队列名称;-m:任务执行完后向用户发送E-mail。参数
日期时间:指定任务执行的日期时间。
![](https://i-blog.csdnimg.cn/blog_migrate/ffd44001ba527340645194dd6461ab84.png)
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
/etc/bashrc,用户目录下.bashrc有什么区别? 一个是针对整个系统所有用户的,一个是针对特定用户的./etc/bashrc修改了以后要重启系统才生效,而用户目录下.bashrc修改了以后重新登录就生效
~/.bashrc
该文件包含专用于你的 bash shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该文件被读取。(每个用户都有一个 ~/.bashrc 文件,在用户目录下) 此文件类似于 /etc/bashrc,不需要重启就可以生效,重新打开一个 bash 即可生效,/etc/bashrc 对所有用户新打开的 bash 都生效,但 ~/.bashrc 只对当前用户新打开的 bash 生效。
![](https://i-blog.csdnimg.cn/blog_migrate/3f642dd1ca55dad8342d90da4b408d23.png)
BCD选项根本不存在,只有A选项可以,显示的文件没有颜色
![](https://i-blog.csdnimg.cn/blog_migrate/7ba2afab33b29404e792074442cbd2dc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cfdbf1c55ca743b877d9776267c2aa0.png)
/proc/modules文件
这个文件给出可加载内核模块的信息。lsmod程序用这些信息显示有关模块的名称,大小,使用数目方面的信息。
/proc/devices文件
这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。
/proc/ioports文件
这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多I/O端口范围。
没有/io文件夹
![](https://i-blog.csdnimg.cn/blog_migrate/7d745872fc6f3e102c6c249e9031f693.png)
rarp反向地址转换协议,网络层协议,RARP与ARP工作方式相反。 RARP使只知道自己硬件地址的主机能够知道其IP地址。RARP发出要反向解释的物理地址并希望返回其IP地址,应答包括能够提供所需信息的RARP服务器发出的IP地址。(就是可以通过物理地址解析ip地址)
route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。
使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。
“四表”是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):
filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。raw:控制 nat 表中连接追踪机制的启用状况,可以控制的链路有 PREROUTING、OUTPUT。
![](https://i-blog.csdnimg.cn/blog_migrate/215cb8503ebd41443032906d43a614d6.png)
lpr(line printer,按行打印)实用程序用来将一个或多个文件放入打印队列等待打印。
Linux lpq命令用于查看一个打印队列的状态,该程序可以查看打印机队列状态及其所包含的打印任务。
lpc指令用来控制打印机,它提供了一个命令行,用户可以输出命令来控制打印机。
命令 | 说明 |
exit | quit | 退出打印机命令行 |
? | help | 显示帮助 |
status | 显示打印机状态 |
Linux lpd命令 是一个常驻的打印机管理程序,它会根据 /etc/printcap 的内容来管理本地或远端的打印机。
![](https://i-blog.csdnimg.cn/blog_migrate/d6f8ff421c9d71d79f6c6b644f8a427c.png)
早期的 Linux 使用 Ext2 文件系统格式,CentOS 5.x 默认使用 Ext3,本教程中所用的 CentOS 6.x 默认使用 Ext4,而目前最新的 CentOS 7.x 默认使用 xfs 格式。
![](https://i-blog.csdnimg.cn/blog_migrate/884d25681581caed1403a955dc1d96ef.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c6fb08852722bbb8be8e02d0e694d84e.png)
FTP文件传输协议基于21端口和20端口:
21端口:FTP传输控制信息端口;
20端口:FTP传输数据端口,是否会用到20端口与FTP传输模式有关,主动模式使用20端口传输,被动模式下服务器端和客户端协商决定端口。
远程控制协议telnet端口号是23。
HTTP:使用80端口。
rsh端口号是514
514 shell TCP N Used by rsh, interactive shell without any logging (also rcp)
![](https://i-blog.csdnimg.cn/blog_migrate/e90e14478919505538852a13e502c8b9.png)
ppp两个认证协议
PAP(Password Authentication Protocol)
CHAP(Challenge-Handshake Authentication Protocol)
先来说说 PAP : ①PAP提供了一种简单的方法让对端使用2次握手来建立自己的身份,这个仅在初始连接建立时完成。 ②连接建立后,被认证者反复向认证者发送一对用户名和密码,直到认证被确认或连接中断。 ③安全性不高,密码在链路上明文传输,没有重放、反复尝试、错误攻击的保护。
①chap使用3次握手周期性验证对端的身份,这是在链路建立的开始就完成的,在链路建立完成后的任何时间都可以重复发送再验证。②链路阶段建立完成后,认证者发送一个“质询”给被认证者,被认证者通过一次HASH计算(质询+密码)生成的值发送给认证者,认证者把自己hash出来的值与此对比,如果一致,则接受,否则拒接。③两端才知道密码,而且密码不会在链路上传输。
特权访问管理 (PAM)
在企业环境中,“特权访问”是一个特指超出标准用户权限的特殊访问或能力的术语。特权访问使组织能够保护其基础设施和应用程序,有效地运行业务并保持敏感数据和关键基础设施的机密性。
特权访问可以与人类用户以及非人类用户(例如应用程序和计算机身份)相关联。
PGP(Pretty Good Privacy)加密,由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成,每个步骤支持几种算法。
![](https://i-blog.csdnimg.cn/blog_migrate/e0d811a7ea08cc48df416a35256927d8.png)
/lib 是库文件所在的地方。库是包含应用程序可以使用的代码文件。它们包含应用程序用于在桌面上绘制窗口、控制外围设备或将文件发送到硬盘的代码片段。
/root 是系统的超级用户(也称为“管理员”)的主目录。 它与其他用户的主目录是分开的,因为你不应该动它。
/bin 目录是包含一些二进制文件的目录,即可以运行的一些应用程序。 你会在这个目录中找到上面提到的 ls 程序,以及用于新建和删除文件和目录、移动它们基本工具。
/usr 目录是在 UNIX 早期用户的主目录所处的地方。然而,正如我们上面看到的,现在 /home 是用户保存他们的东西的地方。如今,/usr 包含了大量目录,而这些目录又包含了应用程序、库、文档、壁纸、图标和许多其他需要应用程序和服务共享的内容。
你还可以在 /usr 目录下找到 bin,sbin,lib 目录,它们与挂载到根目录下的那些有什么区别呢?现在的区别不是很大。
所以/user应该分配最大空间、
![](https://i-blog.csdnimg.cn/blog_migrate/76cb13a4508dbb64eaa8dde528d89eda.png)
linux安装软件的三种方式
deb,rpm,yum,apt-get安装
源码编译安装
二进制安装
Linux下deb包和rpm包区别
有的系统只支持使用rpm包安装,有的只支持deb包安装,混乱安装会导致系统问题。
rpm包主要用于redhat及分支如redhat,centos,Fedora等。例:rpm -ivh rpm包名而deb包主要用于debian及分支如debian,ubuntu等。例:dpkg -i xxx.deb rpm包相对来说版本不是最新的,但是比较稳定;而deb包则相对来说版本比较新,一般某个新软件出来说可能有deb包,但是使用过程中容易引起bugs。
![](https://i-blog.csdnimg.cn/blog_migrate/81a7e5bec2434fc82dd0f19644c9951d.png)
把.rpm用alien转换为.deb,然后再用dpkg安装.deb
![](https://i-blog.csdnimg.cn/blog_migrate/df0245c1e476178df10ae55c2efeb418.png)
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。
make是用来编译的,它从baiMakefile中读取指令,然后编译。
make install是用来du安装zhi的,它也从Makefile中读取指令,安装到指定的位置dao。
这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。
make dep
在配置好内核后就是编译内核了,在编译之前首先应该执行make dep命令建立好依赖关系,该命令将会修改linux中每个子目录下的.depend文件,该文件包含了该目录下每个目标文件所需要的头文件
make config: 这个要求你手动选择所有配置项,配置完成后生成.config文件.
![](https://i-blog.csdnimg.cn/blog_migrate/d2444079c1e5ff69b5b85863c0e3fcdb.png)
rpm 命令用于管理套件。
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
如何获得某个软件包的文件全名
[root@localhost ~]``# rpm -q tree
![](https://i-blog.csdnimg.cn/blog_migrate/108dba8a846e30c982009f0433a73800.png)
Linux常用命令lilo命令 用于安装核心载入,开机管理程序。lilo是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/lilo.conf配置文件,然后根据其内容安装lilo。
LILO(LInux Loader),即Linux引导程序。LILO是一个在系统启动时运行的程序,它用于选择引导计算机启动的操作系统。
![](https://i-blog.csdnimg.cn/blog_migrate/40cd05f0793f2f457b8fd55a1104cbc0.png)
ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。
/etc/ld.so.conf 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。
ldconfig再来看看ldconfig这个程序,位于/sbin下,它的作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新的搜索路径,需要运>行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库。
/etc/modules.conf 文件该配置文件定义了各种需要在启动时加载的模块的参数信息
/etc/conf.modules或者/etc/modules.conf文件里面描述了一些库的别名,加载库之前/之后要执行的命令,或者库之间的先后依赖关系,以及在加载库的时候提供的参数等信息,还可以制定一些路径作为加载某种库的时候的搜索路径。
![](https://i-blog.csdnimg.cn/blog_migrate/c7e767ef68249e5412670e056ba3b56f.png)
-t | 只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作。 |
-d或--diff或--compare | 对比备份文件内和文件系统上的文件的差异。 |
![](https://i-blog.csdnimg.cn/blog_migrate/771340db33d4188a5ee983afc64463ca.png)
所谓 Netd 就是Network Daemon 的缩写,表示Network守护进程
Apache(httpd)的介绍
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的Web服务器软件
inetd程序是一个Linux守护进程。inetd的角色是作为Telnet和FTP等与网络服务器相关的进程的“超级服务器”。
![](https://i-blog.csdnimg.cn/blog_migrate/b457a04907c2c846d82477eb7edc646c.png)
bind命令用于显示或设置键盘按键与其相关的功能。
您可以利用bind命令了解有哪些按键组合与其功能,也可以自行指定要用哪些按键组合。
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。
Samba由两个主要程序组成,它们是smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运 行,功能各异。
Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名字解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服 务器。
![](https://i-blog.csdnimg.cn/blog_migrate/7f0774e78d513520b5911623b21f03af.png)
在linux中,nobody是一个匿名用户,非特权用户,只能访问服务器上的公共内容。使用nobody用户名的“目的”是:使任何人都可以登录系统,但是其UID和GID不提供任何特权,即该uid和gid只能访问人人皆可读写的文件。
缺省,即系统默认状态,意思与“默认”相同。
没有apached
![](https://i-blog.csdnimg.cn/blog_migrate/a531172e4c6643084e013b65b126427e.png)
/var/spool/mail/邮件存放地
/var/mail/是/var/spool/mail/的软连接
/var/spool/mqueue/是未发出邮件存放地
没有D选项的文件夹
![](https://i-blog.csdnimg.cn/blog_migrate/e80941699bcfeff1d837500869ede1af.png)
httpd.conf是Apache网络服务器软件中重要的一个配置文件,它存储着Apache中许多必不可少的配置信息。最常用的一点,就是向里面添加建站网站信息。
只有A选项的配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/217e26efbf596a2d44b8a54cda82dd62.png)
有两个文件是用作符号表的:
/proc/ksyms
System.map
每当你编译一个新内核时,各种符号名的地址定会变化。
/proc/ksyms 是一个 "proc文件" 并且是在内核启动时创建的。实际上 它不是一个真实的文件;它只是内核数据的简单表示形式,呈现出象一个磁盘文件似 的。如果你不相信我,那么就试试找出/proc/ksyms的文件大小来。因此, 对于当前运行的内核来说,它总是正确的..
然而,System.map却是文件系统上的一个真实文件。当你编译一个新内核时,你原 来的System.map中的符号信息就不正确了。随着每次内核的编译,就会产生一个新的 System.map文件,并且需要用该文件取代原来的文件。
/etc/sysconfig/目录包括了在红帽企业LINUX下各种系统配置文件