Linux学习

一、指令与选项

在Linux终端(命令行中输入的内容,就是指令)。

  1. # 指令主体 [选项] [操作对象]

一条指令只能包含一个指令主题,多个选项和内容

二、基础命令

1. ls指令—作用:列出指定目录下所有文档的名称

命令格式:
#ls [选项] [路径]

ps:文件为黑色,目录为蓝色

选项:
-a           作用:显示所有文档(包括隐藏文件:以“.”开头的文件)
-A           作用:同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-b           作用:把文档中不可输出的字符用反斜杠加字符编号的形式列出
-B           作用:不输出以“~”结尾的文档
-c           作用:按文档状态改变时间(i节点中的ctime)排序并输出目录内容。
--color      作用:终端是否使用颜色区分文件类别  等同于[=when] 
-d           作用:将目录名像文件一样显示,而不是显示其下的文件
-D           作用:当同“-l”一起使用时,输出后额外打印一行
-f           作用:不排序目录内容,将它们在磁盘上存储的顺序列出
-F           作用:在列出的文档名称后加一符号:可执行档加 "*", 目录加 "/",符号链接加“@”,FIFOs加“|”,套接字加“=”
-g           作用:不显示用户主信息,作用同“-lG”
-i           作用:在每个文档左边打印i节点号(文件序列号/索引号)
-I  文档名    作用:不列出指定的文档名
-l           作用:以详细列表的形式显示所有文件/文件夹
-m           作用:水平列出文档信息,每行尽可能多,以逗号进而空格分隔
-n           作用:列出数字化的UID和GID,而不是用户名和组名
-o           作用:不显示用户组信息
-p           作用:在文档名后附上一个字符说明文档类型,类似“-F”,但是不标记可执行文件
-q           作用:用问号代替文档名中非打印的字符
-Q           作用:用双引号引用文档名
-r           作用:逆序排列目录内容
-R           作用:递归列出全部目录的内容
-s           作用:在每个文档左侧输出该文档的大小,以字节块为单位(字节块:512字节)
-S           作用:按照文档大小排序目录内容,大文档靠前
-t           作用:按文档最近修改的时间排序
-T           作用:设置制表符的宽度,默认为8
-u           作用:用文件最近访问时间取代文件修改时间,访问不一定做修改。
-w           作用:设置显示屏幕的宽度,默认为80
-X           作用:按文件扩展名的字典序排序
-1           作用:单列输出
--full-time  作用:列出完整的时间

2. pwd指令—作用:打印当前工作目录

命令格式:
#pwd

3. cd指令—作用:切换当前的工作目录

命令格式:
#cd  路径

4. mkdir指令—作用:创建目录(文件夹)

命令格式:
#mkdir [选项] 路径

选项:
-p        作用:嵌套创建目录(文件夹)
-m        作用:创建文件时,可以设置文件的访问模式(权限)

5. touch指令—作用:创建文件,可以一次性创建多个文件

命令格式:
#touch  路径

ps:若文件已经存在则会改变文件的访问和修改时间,文件内容不变

6. cp指令—作用:复制文件/文件夹到指定位置

命令格式:
#cp   [选项]   被复制的文件路径  文件被复制到的路径

ps:复制文件/文件夹时可以更改文件/文件夹名

选项:
-r        作用:复制文件夹到指定位置,“-r”表示递归命令
-p        作用:拷贝文件内容、修改时间、存取模式、存取控制表,但不拷贝UID 及 GID

7. mv指令—作用:移动文件/文件夹到指定路径

命令格式:
#mv 需要移动的文档  需要保存的位置路径

ps:移动文件/文件夹时 可以更改 文件/文件夹名

8. rm指令—作用:删除文件/文件夹

命令格式:
#rm [选项] [文件路径/文件夹路径]

选项:
-r       作用:删除文件夹
-f       作用:强制删除文件,不再提示“是否删除xxxx”
-rf      作用:强制删除文件,不再提示“是否删除xxxx”,可同时删除多个文档

9. vim指令—作用:文本编辑器,打开文件

命令格式:
#vim   文件

ps:使用“shift+:” -> “q” -> “回车” 退出 或 :x

10. >和>>指令—作用:输出重定向

命令格式:
# >/>>  文件路径
>    作用:覆盖输出,会覆盖到之前的文件内容
>>   作用:追加输出,不会覆盖掉原始文件,会在原始文件末尾继续添加

11. cat指令—作用:内容输出在终端,可同时打开多个文件

命令格式:
#cat  文件路径
#cat  文件路径1  文件路径2 ... 文件路径n  >  合并之后的文件路径   作用:对多个文件进行

三、进阶指令

1.df指令—作用:查看磁盘空间

命令格式:

 #df  -h      作用:以可读性最高的形式展示

字段含义:

filesystem:文件系统对应的设备文件的路径名(一般是硬盘上的分区);
1k-blocks: 给出分区包含的数据块(1024字节)的数目;
used、available:分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。Use% 表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间;
Mounted on:表示文件系统的挂载点。

2. free指令—作用:查看内存空间

命令格式:

#free  -m       作用:以Mb为单位查看内存,进行显示

字段含义:

buffers:输入所占内存
cached: 输出所占内存
+/- buffers/cache:剩余可用内存
swap:用于临时内存,当系统真实内存不够用时,可以使用磁盘空间来充当内存

3.head指令—作用:查看文件的前n行,默认前十行

命令格式:

#head  -n  文件路径 查看文件的前n行

4.tail指令—作用:查看文件的后n行,默认后十行

命令格式:

#tail  [选项]  文件路径

选项:

-n         作用:查看文件的后n行
-f         作用:查看一个文件的动态变化,一般用于查看系统日志

ps: -f只能查看非手动写入

5.less指令—作用:查看文件以较少内容进行输出

命令格式:

#less  文件路径

6.wc指令—作用:统计文件内容信息

命令格式:

#wc  [选项]  文件路径  作用:统计文件内容信息(行数、单词书、字节数)

选项:

-l      作用:统计文件行数
-w      作用:统计文件单词数
-c      作用:统计文件字节数

7.date指令—作用:操作时间、日期

命令格式:

#date  [选项]

选项:

1.显示当前时间
+%F         等价于   “+%Y-%m-%d”
“+%F  %T”   等价于   “+%Y-%m-%d  %H:%M:%S”
2.获取之前或者之后的某个时间
#date  -d  [“-1 day”]  “+%F  %T”

8.cal指令—作用:日历,默认第一天为周日

命令格式:

cal  [选项]

选项:

-1           作用:输出当前月的日历
-3           作用:输出前、中、后三个日历
-y  年份      作用:输出某一年的日历
-s           作用:#cal,默认为  #cal  -s
-m           作用:第一天为周一

9.clear/ctrl+l指令—消除终端中当前页面

命令格式:

clear/ctrl+l 作用:实际上是将当前页面的内容上移

10.|指令—作用:管道符,用于“过滤”、“特殊”、“扩展处理”

不能单独使用,必须配合指令使用,其作用主要是辅助作用 以|为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出。通俗的讲就是管道前面的输出就是管道后面的输入

用法一:过滤包含y字母的文档

#ls  路径  |grep y

用法二:实现less的等价效果

#cat  路径  |less

用法三:统计某个文档的总个数

#ls  路径  |wc  -l

四、高级指令

1.hostname指令—作用:操作主机名(读取、设置)

用法一:查看主机名

#hostname

用法二:输出当前主机名中的FQDN(全限定域名)

#hostname  -f

2.id指令—作用:查看一个用户的一些基本信息

#id  [用户名]

验证用户信息是否正确:通过文件/ect/passwd #cat /etc/passwd
验证用户组信息是否正确:通过文件/ect/group #cat /etc/group

3.whoami指令—作用:显示当前登录的用户名

#whoami

4.ps指令—作用:查看当前服务器的进程信息

用法一:查看当前服务器的进程信息

#ps  [选项]
-e        作用:等价于“-A”,列出全部的进程
-f        作用:显示全部的列

用法二:过滤出想要的进程,至少有一个

#ps  -ef  |grep  进程名

5.top指令—作用:查看服务器进程占的资源

#top  
退出:按下“q”健
按下“M”健:表示将结果按照内存从高到低降序排列
按下“P”健:表示将结果按照cpu使用率从高到低降序排序
按下“1”:当拥有多个cpu时,展开/收起cpu的详细信息

作用:动态显示服务器进程占的资源(每3s刷新)

6.du指令—作用:显示目录的真实大小

#du  [选项]
-s       作用:summaries,只显示汇总的大小
-h       作用:以较高可读性的形式进行显示

7.find指令—作用:用于查找文件

#find  路径范围  [选项]  选项值
可以搜索隐藏文件
-name    作用:按照文档名称进行搜索
-type    作用:按照文档类型进行搜索:“f”表示文件,“d”表示文件夹

8.service指令—作用:用于控制软件服务的启动/停止/重启

#service  服务名  start/stop/restart

9.kill指令—作用:杀死进程

用法一:

#kill  进程pid       
作用:关闭进程,配合ps一起使用

用法二:

#killall  进程名称       
作用:关闭进程

10.ifconfig指令—作用:用于操作网卡相关指令

#ifconfig        
作用:获取网卡信息

11.reboot指令—作用:重启

用法一:

#reboot
作用:重启

用法二:

#reboot  -w
作用:模拟重启,但是不重启

12.shutdown指令—作用:关机(慎用)

用法一:

#shutdown  -h  now  “关机提示”          
作用:立即关机

用法二:

#shutdown  -h  15:25  “关机提示”        
作用:定时关机
取消:shutdown  -c(7.x之后的版本) 
ctrl+c           (7.x之前的版本)

ps:需要在root账号下,才能使用

13.uptime指令—作用:输出计算机的持续在线时间

#uptime
作用:计算机从开机到现在的在线时间

14.uname指令—作用:操作系统的相关信息

#uname  -a
作用:获取较为详细的信息(包括类型、全部的主机名、内核版本、发布时间、开源计划)

15.netstat指令—作用:查看网络连接状态

#netstat  [选项]        
-t          作用:只列出tcp协议的连接
-n          作用:表示将地址从字母组合转化为ip地址,将协议转化为端口号显示
-l          作用:过滤出“start”列出其值为LISTEN的连接
-p          作用:显示发起连接进程的pid和name
-tnlp

16.man指令—作用:手册,查看指令的

#man  指令

按q退出

17.grep

可以通过正则表达式,搜索文件内容,展示在终端

18.sed

和vim类似,不同的是vim是打开文件,在文件内对文件进行操作,sed是在终端修改,且不会直接修改源文件,而是在缓存区对文件内容操作

19.awk

和 sed 命令类似,awk 命令也是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。

五、vim编辑器

Vim重点是光标的移动,模式切换,删除,查找,替换,复制,粘贴,撤销命令的使用

1.vim三种模式

vim存在三种模式:命令模式、编辑模式、末行模式
命令模式:该模式下不能对文件进行直接编辑,可以输入一些快捷键进行一些操作(删除行、复制行、移动光标、粘贴等)【打开文件默认进入的模式】
编辑模式:在该模式下可以对文件的内容进行编辑
末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)
打开文件的方式有4种:

#vim  文件路径                            作用:打开指定的文件
#vim  +数字  文件路径                      作用:光标移动到指定行
#vim  +/关键词  文件路径                    作用:打开指定的文件,并且高亮行
#vim  文件路径1  文件路径2  ...  文件路径n    作用:同时打开多个文件

①.命令模式

(1)光标移动
shift+6(T字母右上角)/^   作用:光标移动到行首
shift+4 (R字母左上角)/$  作用:光标移动到行尾  
gg                      作用:光标移动到首行
G                       作用:光标移动到末行
(ctrl+b)/pgup          作用:向上翻屏
(ctrl+f)/pgdown        作用:向下翻屏    
数字G                   作用:快速将光标移动到指定的行数
数字↑/↓                 作用:将当前光标为准向上/下移动n行
数字←/→                 作用:将当前光标为准向左/右移动n行
数字                    作用:末行模式下的快速移动到指定行   
(2)复制(用p键复制)
yy                        作用:复制光标所在行        
数字yy                     作用:以光标所在行向下复制,包括当前行 
ctrl+v   接着按↑↓ 接着按yy   作用:可视化复制  
(3)剪切/删除(可用p键复制)
dd                    作用:剪切/删除光标所在行,删除后下一行上移
数字dd                作用:以光标所在行向下剪切/删除,包括当前行,删除后下一行上移
D                     作用:剪切/删除当前行为空白,下一行不上移
(4)撤销/恢复
u                作用:撤销 
ctrl+r         作用:恢复撤销

②末行模式

进入方式:输入英文的冒号:

(1)保存操作           
①:w                作用:保存文件
②:w  路径       作用:另存为
(2)退出
:q            作用:退出
(3)保存并退出
:wq         作用:保存并退出
(4)强制
:q!         作用:强制退出,不保存操作
(5)调用外部命令
:!外部命令           作用:暂时退出显示外部命令的执行结果

(6)搜索/查找
/关键词            作用:搜索关键字并高亮

在搜索结果中切换上/下结果:“N/n”
取消高亮:“:nohl”
(7)替换
①:s/搜索的关键词/新的内容                 作用:替换光标所在行的第一处
②:s/搜索的关键词/新的内容/g              作用:替换光标所在行的所有
③:%s/搜索的关键词/新的内容              作用:替换所有行的第一处
④:%s/搜索的关键词/新的内容/g           作用:替换所有行
(8)显示行号
:set nu           作用:临时显示行号
输入“:set nonu”取消显示
(9)在末行模式下切换打开的多个文件
①:files              作用:查看当前已经打开的文件名称

在%a的位置有2种显示的可能:
%a:a=active,表示当前正在打开的文件
#:表示上一个打开的文件
②:open 文件名            作用:打开指定切换的文件名

③:bp           作用:切换到上一个文件
④:bn           作用:切换到下一个文件

③编辑模式

进入方式:

i           作用:在光标所在字符前开始插入
a           作用:在光标所在字符后开始插入
o           作用:在光标所在行的下main另起一新行插入
I           作用:在光标所在行的行首开始插入,如果行首有空格则在空格之后插入
A           作用:在光标所在行的行尾插入
O           作用:在光标所在行的上面另起一新行开始插入
S           作用:删除光标所在行并开始插入

2.实用功能

(1)代码着色
①:syntax  on        作用:显示颜色
②:syntax  off       作用:关闭显示
(2)vim中计算器的使用
在编辑文件中需要使用计算器编辑计算公式,vim自身集成了一个简易的计算器。
进入编辑模式→按下“ctrl+r”→输入“=”

3.vim的配置

vim是编辑器,有配置文件,vim配置有三种情况:

(1)在文件打开时末行模式下输入的配置(临时的配置)
(2)个人配置文件(~/.vimrc,可自行新建)新建之后进入编辑模式,进行配置输入
(3)全局配置文件(vim自带,/etc/vimrc)如果针对同一项的配置,个人配置中存在,就以个人配置为准,否则以全局配置为准

4.异常退出

在编辑文件后并没有保存退出,遇到突然关闭终端或者异常断电的情况,就是异常退出。
解决办法:将交换文件.xxx.swp(编辑过程中的临时文件)删除

5.新建别名

作用:相当于创建属于自己的自定义命令
别名机制是依靠一个别名映射文件:~/.bashrc
新创建的命令生效:重新登录当前用户/source重新加载配置文件

6.退出方式

vim另外的保存退出方式:“:x”
如果文件没有被修改,使用“:wq”退出的话,文件的修改时间会被更新;“:x”则不会。
会混淆用户对修改时间的认定

六、linux自有服务

自有服务:不需要用户独立去安装的软件服务,当系统安装好之后就可以直接使用的服务

1.运行模式

运行模式也可以称之为运行级别。

在linux中存在一个进程:init(initialize,初始化),进程id 为1

该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位于/etc/inittab)

与该级别相关的几个命令:
①#init  0          作用:关机
②#init  3          作用:切换到不带桌面的模式

开机之后仍是图片界面,设置模式为永久命令行模式:将/etc/inittab中的initdefault值设置为3,然后重启电脑。

③#init  5          作用:切换到图形界面
④#init  6          作用:重启
这些命令都是调用init进程,将数字(运行级别)传递给进程,进程去读配置文件执行对应的操作。
init命令需要超级管理员的权限,普通用户无法执行。

2.用户与用户组管理

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的密码。
用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。
要想实现用户账号的管理,要完成的工作主要有如下几个方面:
a.用户账号的添加、删除、修改以及用密码的管理
b.用户组的管理
注意三个文件: /etc/passwd 作用:存储用户的关键信息
/etc/group 作用:存储用户组的关键信息
/etc/shadow 作用:存储用户的密码信息

1.用户管理

除#passwd命令外,所有的用户操作命令只有root超级管理员有权限执行

①添加用户
#useradd  [选项]  用户名
在不添加选项的时候,执行useradd之后会执行一系列的操作:创建同名的家目录、创建同名的目录组。
[常用选项]:
-g      作用:指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
可通过passwd文件查看用户的主组
-G      作用:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
可通过group文件查看用户的附加组
-u      作用:uid,用户的id(用户标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配,可以通过该选项自定义

验证是否创建成功:

a.查看/etc/passwd最后一行是否有新增用户信息
b.验证是否存在家目录(会产生同名家目录)

②修改用户
#usermod  [选项]  用户名
常用选项:
-g  作用:指定用户的用户主组,选项的值可以是用户组的id,也可以是组名可通过passwd文件查看用户的主组
-G  作用:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名可通过group文件查看用户的附加组
-u  作用:uid,用户的id(用户标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配可以通过该选项自定义
-l  作用:修改用户名,新用户名在前

③设置密码
#passwd  用户名
修改密码的过程中,没有输入提示
设置之后可以查看密码
设置密码之后就可以登录用户。
#su[用户名]    作用:切换用户名,用户名不指定切换到root用户

④删除用户
#userdel  [选项]  用户名
[常见选项]:
-r       作用:删除用户的同时,删除其家目录

2.用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

①用户组添加
#groupadd  [选项]  用户组名
常用选项:
-g 作用:类似用户添加里的“-u”,表示可以选择自己设置一个自定义的用户组id数字,不指定则默认从500之后递增

②用户组编辑
#groupmod  [选项]  用户组名
常用选项:
-g 作用:类似用户修改里的“-u”,表示可以选择自己设置一个自定义的用户组id数字,不指定则默认从500之后递增
-n 作用:类似用户修改里的“-l”,表示设置新的用户组的名称

③删除用户组
#groupdel  [选项]  用户组名

3.网络设置

网卡配置文件,在目录中网卡的配置文件命名格式:ifcig-网卡名称

(1)#ln -s                                 作用:创建快捷方式,软连接
(2)#service  network  restart             作用:重启网卡
                                    此处重启网卡命令还可以使用: #/etc/init.d/network restart
(3)#ifdown  网卡名                         作用:停止某个网卡
(4)#ifup  网卡名                           作用:开启某个网卡

在有的分支版本中可能没有service 命令来快速操作服务,但是有一个共性的目录:/etc/init.d这个目录中放着很多服务的快捷方式

4.ssh服务

全称:Secure shell(安全外壳协议),该协议有2个常见的作用:远程连接协议、远程文件传输协议。
协议使用的端口号:默认22(可以被修改。如果要修改,需要修改ssh服务的配置文件:/etc/ssh/ssh_config)

xhell

(1)#service  sshd  start/stop/restart         作用:ssh服务的开启/停止/重启
  或者 #/etc/init.d/network  start/stop/restart 
(2)远程终端
终端工具主要是帮助运维人员连接远程的服务器,常见的终端工具有:Xshell、secureCRT、Putty等。
a.获取服务器IP地址,可以通过ifconfig命令查看,然后测试ip的连接相通性
b.打开putty,输入相关信息
c.输入用户名登录
(3)ssh服务文件传输
①可视化的界面传输工具:filezilla
a.打开“文件”→“站点管理器”
b.连接好之后的效果
c.从本地windows上传文件到linux中方式:直接拖拽文件,也可以右键本地需要上传的文件,然后点击“上传”即可
d.从linux下载文件到本地windows中方式:直接拖拽文件,也可以右键linux中需要下载的文件,然后点击“下载”即可

XFTP:pscp.exe

使用命令行传输文件/文件夹:pscp.exe(需要通过cmd命令行打开)
为了使用方便可以将其放置在环境变量目录中,如果不清楚哪些路径是环境变量,只需将其放到C:/windows目录下即可。
a.下载到本地:将远程linux下的etc整个目录下载到F:\download下
pscp -r root@192.168.8.192:/etc F:\download
b.上传到linux:将E:\code整个目录上传到远程linux:/root下
pscp -r E:\code root@192.168.8.192:/root
《“-r” 会有报错,建议单个传输,并加上“-P 22”》

5.设置主机名

(1)临时设置主机名

#hostname  设置的主机名

(2)永久设置主机名

a.找到文件“/etc/sysconfig/network”,修改其中hostname为自定义主机名,接着修改linux服务器的hosts文件,将自定义主机名指向本地(设置FQDN)
问题:不设置FQDN会怎么样?

①很多开源服务器软件(例如Apache)则无法启动,或出现报错;
②方便记忆,看到主机名对其作用有一个初步判断;
③如果不设置则会影响本地的域名的解析(本地访问);

6.chkconfig—开机启动项”的一个管理服务

①开机启动服务查询

#chkconfig  --list

②删除服务

#chkconfig  --del  服务名

③添加开机启动服务

#chkconfig  --add  服务名

④设置服务在某个级别下开机启动/不启动

#chkconfig  --level  连在一起的启动级别  服务名  on/off

7.ntp服务—用于对计算机的时间同步管理操作

①一次性同步时间(手动)

#ntpdate  时间服务器的域名或者IP地址
http://www.ntp.org.cn/pool

②ntpd服务:时间同步服务(自动同步)

启动服务:
#service nptd start         
#/etc/init.d/nptd  start

8.防火墙—iptables

①查看iptables是否开机启动

②iptables启动/关闭/重启

#service iptables start/stop/restart
#/etc/init.d/nptd  start/stop/restart

③查看iptables状态

#service iptables status

④查看iptables规则

命令:
#iptables -L -n

参数:
-L       作用:列出规则
-n       作用:将单词表达形式改为数字表达形式

⑤简单设置防火墙规则

a.允许本地回环接口(即运行本机访问本机)
#iptables  -A  INPUT  -s  127.0.0.1  -d  127.0.0.1  -j  ACCEPT

b.允许已建立的或相关连的通行
#iptables  -A  INPUT  -m  state  --state  ESTABLISHED, RELATED  -j  ACCEPT

c.允许所有本机向外的访问
#iptables  -A  OUTPUT  -j  ACCEPT

e.允许访问22端口
@iptables  -A  INPUT  -p  tcp  --dport  22  -j  ACCEPT

f.允许访问80端口
#iptables  -A  INPUT  -p  tcp  --dport  80  -j  ACCEPT

g.允许ftp服务的21端口
#iptables  -A  INPUT  -p  tcp  --dport  21  -j  ACCEPT

h.允许PTP服务的20端口
#iptables  -A  INPUT  -p  tcp  --dport  20  -j  ACCEPT

i.禁止其他未允许的规则访问
#iptables  -A  INPUT  -j  reject

j.禁止其他未允许的规则访问
#iptab1es  -A  FORIARD  -j  REJECT

命令组成:
Iptables :主命令
-A: add,添加规则
INPUT:进站请求[出站output]
-p :protocol,指定协议(icmp/tcp/upd)
dport :指定端口号
-j :指定行为结果,允许(accept) /禁止(reject)
添加之后要有保存操作:/etc/init.d/iptables save

9.rpm管理—对linux软件包进行管理

①查询某个软件的安装情况

命令:
#rpm  [选项]  |grep  关键词

参数:
-q        作用:查询
-a         作用:全部软件

②卸载某个软件

正常卸载:
#rpm  -e 软件名称

强制卸载:
#rpm  -e  软件名称  --nodeps

③软件安装

要想装软件,和windows下一-样,先得找到安装包。软件包的获得方式:

a. 去官网去下载;

b.不介意老版本的话,可以从光盘(或者镜像文件)中读取;
1.查看块状设备
#lsblk
2.光盘挂载和解挂
    解挂:
        #umount  当前设备的挂载点
    挂载:#mount  设备的原始路径  要挂载的路径
设备的原始路径:统一在/dev下,然后根据大小确定具体的name值,拼凑在一起组成原始路径。例如当前的“/dev/sr0”。要挂载的路径:一般都在都在/mnt下,也可以在/mnt下建目录,此处以“/mnt/dvd"为例。

c.rpm 安装
#rpm [选项]  软件包完成名称

选项:
-i           作用:安装
-v           作用:显示进度条
-h           作用:以“#”形式显示进度条

10.cron/crontab—定时任务

①用法:

命令:
#crontab  选项

常见选项:
-l          作用:列出指定用户的计划任务列表
-e          作用:编辑指定用户的计划任务列表
-u          作用:指定的用户名,如果不指定,则表示当前用户
-r          作用:删除指定用户的计划任务列表

语法格式:
以为单位,一行则为一个计划:分  时  日  月  周  需要执行的命令

取值范围:
分:0~59;时:0~23;日:1~31;月:1~12;周:0~6(0表示周日)

四个符号:
取值范围内的每一个数字;“-”:区间表达用“1-7”表示1~7;“/”:每多少个,“*/10”表示每10分钟执行一次;“,”:多个取值,“1,2,6”表示1点,2点,6点多个取值

eg:
每1,10,22日的4:45重启network服务:45  4  1,10,22  *  *  service  network  restart
每周六、周日的1:10重启network服务:10  1  *  *  6,0  service  network  restart
每天18:00到23:00之间每隔30分钟重启network服务:*/30  18-23  *  *  *  service  network restart
每隔两天的上午8点到11点的第3和第15分钟执行一次重启:3,15  8-11  */2  *  *  reboot
每5分钟往root家目录中的RT.txt中输入当前的时间信息,为了看到效果使用追加输出:/5  *  *  *  *  date  “+%F %T”  >> /root/RT.txt

②Crontab权限问题

黑名单:
本身是任何用户都可以创建自己的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务
配置文件位于/etc/cron.deny(黑名单),里面写用户名,一行一个

白名单:
配置文件位于/etc/cron.allow(白名单,本身不存在,需要自行创建),里面写用户名,一行一个。

ps:白名单的优先级高于黑名单:如果针对同一用户,白名单中存在,就以白名单为准,否则以黑名单为准

七、linux的权限管理操作

linux的权限操作与用户、用户组是兄弟操作

1.权限概述

总述: Linux 系统一般将 文件可存/取访问的身份分为3个类别: owner、 group、 others, 且
3种身份各有read、 write、 execute等权限。

①权限介绍

在多用户(可以不同时)计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力,像是文件夹、特定系统指令的使用或存储量的限制。
在linux中分别有读、写、执行权限:

读权限:对文件夹来说,读权限影响用户是否能够列出目录结构;对文件来说,读权限影响用户是否可以查看文件内容 
写权限:对文件夹来说,写权限影响用户是否可以在文件夹下创建/删除/复制到/移动到文档 ; 对文件来说,写权限影响用户是否可以编辑文件 
执行权限:一般都是对于文件来说,特别是脚本文件。

②.身份介绍

1.Owner身份(文件所有者,默认为文档的创造者)
2.Group身份(与文件所有者同组的用户)
3.Others身份(其他人)
4.Root用户(超级用户)

③linux的权限介绍

查看权限:
#ls  -l 路径      同#ll

Linux中存在用户、用户组和其他人概念,各自有不同的权限,对于一个文档

r 可读   4
w 可写   2
x 可执行 1

2.权限设置

命令:

#chmod  选项  权限模式  文档

常见选项:

-r    作用:递归设置权限(当文档类型为文件夹时)

权限模式:就是文档需要设置的权限信息
如果想给一个文档设置权限,操作者要么是root用户,要么是文档的所有者

字母形式

#chmod  u+x,g+rx,o+r  anaconda-ks.cfg         
作用:给anaconda-ks.cfg文件设置权限:所有者拥有全部权限,同组用户拥有读和执行权限,其他用户只读权限

#chmod  u=rwx,g=rx,o=r  anaconda-ks.cfg         
作用:给anaconda-ks.cfg文件设置权限:所有者拥有全部权限,同组用户拥有读和执行权限,其他用户只读权限

#chmod  u-x,g-rx,o-r  anaconda-ks.cfg         
作用:还原anaconda-ks.cfg文件权限

#chmod  a=---  anaconda-ks.cfg         
作用:取消anaconda-ks.cfg文件全部权限

#chmod  a+x(或者a=x或者+x)
作用:给所有用户增加执行权限  anaconda-ks.cfg

数字形式

①#chmod  754  anaconda-ks.cfg         
作用:给anaconda-ks.cfg文件设置权限:所有者拥有全部权限,同组用户拥有读和执行权限,其他用户只读权限

面试题:用超级管理员设置文档的权限命令是#chmod  -R  731  aaa,请问这个命令有没有什么不合理的地方
拥有者:7=4+2+1(读+写+执行)
同组用户:3=2+1(写+执行)                 没有读权限,没办法写入。可使用“ehco  内容 >> 文档”
其他人:1(执行)

属主与属组设置

属主:所属的主人(文件的主人)
属组:所属的用户组

如果有时候需要去删除某个用户,则该用户对应的属主和属组信息就需要去修改

(1)#chown  -R  username  文档路径            
作用:更改文档的所属用户,-R表递归(可选)

(2)#chgrp  -R  groupname  文档路径        
作用:更改文档的所属用户组,-R表递归(可选)

(3)#chown  -R  username:groupname  文档路径            
作用:更改文档的所属用户和所属用户组,-R表递归(可选)

sudo操作

reboot、shutdown、init、halt、user管理在普通用户上都是操作不了的,但是有些特殊情况下又需要有执行权限。
可以使用sudo(su do),命令进行权限设置。sudo可以让管理员(root)事先定义某些特殊命令谁可以执行。
sudo中默认只有root用户,使用之前需要先配置(即添加其他用户权限)
sudo不是任何linux分支都有点的命令,常见centos与ubuntu都有sudo命令

(1)配置sudo文件使用#visudo命令,打开之后和vim操作一样

(2)配置普通用户的权限

本身zhangsan用户不能添加用户,要求使用sudo配置,将其设置为可以添加用户,并且可以修改密码(不能修改root用户密码),在写命令时不能使用直接形式命令,而需要写命令的完整路径
#which 指令名称 作用:查看命令的完整路径

(3)验证zhangsan用户是否拥有权限

在添加好对应的规则之后,就可以切换到普通用户zhangsan,再去执行。
需要使用命令#sudo 需要执行的命令去进行
为防止修改root密码,需要设置成如下配置


!/usr/bin/passwd,/usr/bin/passwd[a-zA-Z]*,!/usr/bin/passwd root

(4)在普通用户下查看自己具有的特殊权限
#sudo  -l

八、linux网络基础

1.网络相关概述

a.网络发展

1969年是internet元年

网络分类:

局域网(Local Area Network, LAN) 是指范围在几百米到十几公里内办公楼群或校园内的计算机相互连接所构成的计算机网络。
城域网(Metropolitan Area Network,MAN)所采用的技术基本上与局域网相类似,只是规模上要大一些。城域网既可以覆盖相距不远的几栋办公楼,也可以覆盖一个城。
广域网(Wide Area Network, WAN)通常跨接很大的物理范围,如一个国家。
除了上述的划分,网络还可以按照所有者分为公网、私网是两种Internet的接入方式。
公网接入方式:上 网的计算机得到的IP地址是Internet上的非保留地址,公网的计算机和Internet上的其他计算机可随意互相访问。私网则反之。

b.IP地址

IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。
IP地址类型分为:公有地址、私有地址。
公有地址(Public address)由Inter NIC (Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向InterNIC提出申请的组织机构。通过它直接访问因特网。
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。以下列出留用的内部私有地址:
A类:10.0.0.0—10.255.255.255
B类:172.16.0.0—172.31.255.255
C类:192.168.0.0—192.168.255.255 (常用)
IP地址按类型可以分为一下三类:

c.网卡

网卡是一个网络组件,属于硬件范畴,主要负责计算机之间数据的封装和解封。
MAC地址(十六进制,网卡的物理地址,网卡设备的编号,默认情况是全球唯一)与IP地址的区别:长度不同:IP地址为32位,MAC地址为48位;分配依据不同;网络寻址方式不同:IP地址基于osi模型第三层(网络层),mac地址是第二层(数据链路层) 。

2.网络相关命令

a.检测当前主机与目标主机之间的连通性

#ping  主机地址(ip地址、主机名、域名等)
该命令不是100%准确。可以跨平台。在线ping工具(ping.chainz.com)

b.查看网络的连接信息

#netstat

在tcp/ip协议中也会用到

用法一:
#netstat  -tnlp       
-t          作用:只列出tcp协议的连接
-n          作用:表示将地址从字母组合转化为ip地址,将协议转化为端口号显示
-l          作用:过滤出“start”列出其值为LISTEN的连接
-p          作用:显示发起连接进程的pid和name

用法二:
#netstat   -an
-a          作用:全部
-n          作用:将字母转化为数字

c.查找当前主机与目标主机之间所有的网关(路由器)

#traceroute  主机地址(ip地址、主机名、域名等)

会给沿途的路由器发送icmp数据包,该命令不是100%准确,类似查看快递的跟踪路由。

windoes下也有类似命令(#tracert)

d.查看本地缓存mac表

#arp  -a

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的协议。该命令在windows下同样适用。

当一个主机发送数据时,首先查看本机MAC地址缓存中有没有目标主机的MAC地址,如果有就使用缓存中的结果;如果没有,ARP协议就会发出一个广播包,该广播包要求查询目标主机IP地址对应的MAC地址,拥有该IP地址的主机会发出回应回应中包括了目标主机的MAC地址,这样发送方就得到了目标主机的MAC地址。如果目标主机不在本地子网中,则ARP解析到的MAC地址是默认网关的MAC地址。

删除指定的缓存记录:
 #arp  -d  主机地址

e.抓取数据表—tcpdump

用法一:
#tcpdump  port  端口

用法二:

#tcpdump  host  地址

用法三:

#tcpdump  -i  网卡设备