1 Linux介绍

1.1 常见的操作系统

Windows

它微软公司开发的一款桌面操作系统(闭源系统)。版本有dos、win98、win NT、win XP、win 7、win vista、win 8、win 10。服务器操作系统:win server 2003、win server 2008、win server 2012。

Mac

苹果公司开发的一款操作系统(闭源系统),目前最新的版本是IOS12。界面风格还是不错。对于系统底层的优化也是很好。

Linux

Linux是一个开源的操作系统,目前是市面上占有率极高的服务器操作系统。目前其分支有很多。安卓

Linux的开发作者,李纳斯·托瓦兹。

Linux是开源的操作系统。所谓开源就是指开放源代码。

1983年 GNU计划 格奴计划

Linux分支: 常见的有centos(社区企业网络操作系统)、RedHat、乌班图、debian等等。

Unix

Unix是Linux操作系统的前身,Unix时间戳是指1970年1月1日0时0分0秒,1970年是Unix的时间元年,也就是Unix诞生的年份。

1.2 Linux操作系统好处

之所以大部分的公司开发的时候都是使用Linux操作系统,取决于两个特性:

稳定性:取决于系统的底层架构,一般情况下Linux系统能做到很长时间不关机一点也不卡顿;

安全性:开源系统,所有人都可以贡献自己的源代码为Linux系统打补丁;

1.3 Linux目录介绍

/: 表示根的意思

/bin: (binary)存放的是一些二进制文件, 但是在Linux中二进制文件是可以被执行的, 这个目录中的命令是给普通用户使用(非超级管理员用户).

/etc: Linux下所有的配置文件都会放到etc目录

/home: 是所有非root用户家目录的集合

/root: root用户的家目录

/sbin: sbin表示super bin(shell bin),里面同样也类似于bin目录,也存放了一些二进制文件, 只不过这些命令只能让超级管理员去运行

/usr: 存放着一些用户自己安装的软件, 其实类似于windows下的Program File目录

/var: (variable)存放着Linux下的一些日志文件, 在实际开发的时候有一些公司习惯把Apache或者nginx的站点目录也会放到这个目录中

2 命令行

2.1 命令行(shell, 壳)

常见的shell, Csh, tcsh, zsh, bash等,

在Linux中打开命令行界面

在Linux中的任意一个空白的地方(不要点着图标),右键然后选择【在终端中打开】

在Linux中 #表示超级管理员身份, $符号表示普通用户

2.2 基本命令

通用的语法格式: # 指令名称 [选项] [操作的目标]

2.2.1 ls指令

#ls[路径]

表示列出指定路径下的文件夹和文件的名字, 如果路径没有指定则列出当前路径下的(list)

#ls -l [路径]

表示以列表的形式列出指定路径下的文件夹和文件的名字

#ls -la [路径]

表示以列表的形式列出指定路径下的文件夹和文件名(包含隐藏文件, all)

隐藏文件(特点是'.'开头的名字)

如果一个指令拥有多个选项, 一般情况下(95%)对于选项的顺序没有要求,随意前后, 为了避免混淆按照笔记顺序.

Linux严格区分大小写

2.2.2 clear指令

清空当前屏幕中全部的命令(实质是没有清空,只是顶到上面)

#clear 等效于ctrl+L

清楚Windows的cmd指令叫做: cls

2.2.3 su指令

切换用户(switch user)

#su需要切换到的用户名(用户名可以不写, 则表示切换到root用户)

当切换到的用户权限比当前用户的权限低,可以直接切换,不需要密码;反之,如果从低往高切换则要求输入被切换到的账户对应的密码(高级权限账户密码)。

2.2.4 cd指令

切换目录 (change directory)

#cd 需要切换到的路径(路径可以是相对路径或绝对路径)

路径可以写也可以不写,不写则表示切换到当前用户的家目录

tab键可以自动补全命令路径

低级用户没有权限访问高级用户相关的资源(权限)

相对路径是相对当前路径的一种表现形式。

特点:只要不是以“/”开头的就是相对路径。

绝对路径是直接从“根”开始的一种路径形式。

特点:以“/”开头的路径称之为绝对路径。

2.2.5 pwd指令

打印当前的工作路径(print working directory)。

#pwd

2.3 文档操作命令

2.3.1 创建文件

#touch 路径

2.3.2 创建文件夹

mkdir [-p] 文件夹路径 [make directory]

-p表示递归创建(parent),可同时创建多级不存在的文件夹

不能以后缀判断是文件还是文件夹, ls -l指令看第一个字母, d文件夹,-表示普通文本文件,c字符设备文件, b:块级设备文件, l:连接文件(快捷方式), s:套接字文件

系统不允许在同一路径下存在同名的文档

2.3.2 复制

#cp[-r] 需要赋值的文档,需要保存的位置 copy

-r表示递归, 如果复制的是文件夹, -r是必须要加的.

2.3.3 移动/剪贴/重命名

剪贴+粘贴

#mv需要操作的文档 新的文档的位置 move

# mv /root/php2019. txt /root/

重命名

# mv /root/php2019. txt /root/php. doc

2.3.4 删除

#rm [-rf] , 需要删除的文档

-r: 表示递归(当删除的类型是文件夹时候就加-r)

-f: force, 表示强制, 没有删除确认提示

# rm -rf /

2.4 文档查看命令

2.4.1 tail指令

#tail -n 文件的路径 查看一个文件的末n行

-n 可以不写, 不写 默认末10行

# tail -5 /root/install.log

2.4.2 head指令

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

-n 可以不写, 不写 默认头10行

2.4.3 cat指令

#cat 文件路径1 文件路径2 文件路径3 …

查看某个文件的全部阵容(将内容全部输出在命令行中[正序])

2.4.4 tac指令

#tac 文件路径1 文件路径2 文件路径3 …

查看某个文件的全部阵容(将内容全部输出在命令行中[倒叙])

2.4.5 vim指令

#vim 文件路径 打开一个文件,显示内容

推出 ':q '按下回车即可

2.5 关机重启命令

2.5.1 reboot指令

#reboot 重启计算机

除非自开机以来只有当前一个普通用户登录过

普通用户无法执行reboot指令

2.5.2 shutdown指令

#shutdown -h 时间 关机

now:(shutdown -h now),表示立即关机

+m:(m表示minutes数字),+5,则表示五分钟之后关机

2.5.3 halt指令

#halt 关机(关闭内存)

2.5.4 其他

init 0 关机 poweroff

init 6 重启

2.6 补充

2.6.1 ctrl+a / ctrl+e

光标的快速定位行首ahead

光标的快速定位行末end

2.6.2 ↑和↓键

查看执行命令历史

2.6.3 执行结果保存文件中(输出重定向)

#需要执行有输出结果的命令> 需要保存到的文件路径 【覆盖写】

#需要执行有输出结果的命令>> 需要保存到的文件路径 【追加写】

Windows中 tree 需要执行有输出结果的命令> 需要保存到的文件路径

2.7 进阶指令

2.7.1 du指令

#du -sh 目录路径 目录所占的磁盘空间大小情况(directory used)

-s:表示sumary,汇总统计

-h:表示以较高可读性的形式显示

2.7.2 df指令

#df -h 查看磁盘的剩余空间情况(disk free)

-h:表示以较高可读性单位进行查看。

2.7.3 free指令

free -m 查看内存的使用情况

-m:表示以mb为单位进行查看

第一行表示memory,是内存各项的数字。

2.7.4 find指令

#find 范围路径 选项 选项的值 [选项 选项的值...]

表示根据条件去查询文档的所在位置

-name:根据名字进行查询,支持通配符(*),模糊查询,表示任意长度的任意字符.

-type:根据文档的类型进行查询。[d表示文件夹,f表示普通文件,s表示套接字文件,l表示连接文件,c表示字符设备文件,b表示块状设备文件]

-user:根据所有者进行查询

-group:根据所属的用户组进行查询

-size:根据大小进行查询

查询磁盘中全部的.conf文件,#find / -name “*.conf” -type f

2.7.5 ps指令

#ps -ef (process show)查看进程

#ps aux BSD格式进行输出

-e:等价于-A,all,表示全部

-f:表示full,显示全部的列

UID:该进程的启动用户名;

PID:process id,进程的id号

PPID:parent process id,父级进程id号

C:表示的cpu的使用情况

STIME:start time,启动时间

TTY:终端的设备编号,“?”表示该进程不是由终端发起的

TIME:持续运行的时间

CMD:command,显示进程的名称或者位置

结束进程的指令

#kill PID

top指令(查资源占用情况用top)

2.7.6 service指令

#service 服务名 start/stop/restart

#/etc/init.d/服务名 start/stop/restart

CentOS7中

#systemctl start/stop/restart 服务名

操作服务的(启动/停止/重启)

服务名必须要在/etc/init.d中可见

2.7.7 grep指令

#grep [选项] 关键词 文件路径/内容

搜索、过滤,主要用于对文件/内容进行筛选,选出需要的内容

-v:排除,取反

#grep -E/#egrep “关键词1|关键词2|…” 文件路径或内容

-E表示extension,该语法表示多条件筛选,“|”表示or

2.7.8 wc指令

#wc -lwc 文档的路径 统计文件的各项数值(行、单词数、字节数)

-l:line,行数

-w:word,单词数

-c:byte,字节数

2.7.9 管道(|)

将多个指令合在一行上进行操作, 主要用在搜索过滤

# 必须在终端中有输出内容的指令 | 有输入的指令[要求有读取文件内容的需求]

管道前面的指令的输出其实就是管道后面指令的输入。

3 vim编辑器

3.1 vi/vim介绍

Vi编辑器是所有Unix及Linux系统下标准的编辑器,

vi和vim都是Linux中的编辑器,不同的是,vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding(写代码的)。

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

3.2 三种模式

命令模式:

在该模式下是不能对文件直接编辑,可以输入快捷键(命令)进行一些操作(删除行,复制行,移动光标,粘贴等等)【打开文件之后默认进入的模式】;

编辑模式(输入模式):

在该模式下可以对文件的内容进行编辑;

末行模式(尾行模式)

可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等);

3.3 Vim的打开文件的方式

#vim 文件路径 作用:打开指定的文件(可以是不存在的)

#vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行

#vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词(搜索)

3.4 命令模式

该模式是打开文件的第一个看到的模式(打开文件即可进入)

3.4.1 光标移动
  1. 光标移动到行首 shift + 6 或 ^

  2. 光标移动到行尾 shift + 4 或 $

  3. 光标移动到首行行首 gg

  4. 光标移动到末行行首 G

  5. 翻屏 翻屏:按键ctrl + b/f 或PgUp/PgDn

  6. 快速定位到指定行 数字G

3.4.2 复制/剪切/删除
  1. 复制光标所在行 yy 在想要粘贴的地方按下p键

  2. 向下复制指定的行数 数字yy

  3. 剪切/删除 光标所在行 dd

  4. 向下删除/剪切指定的行 数字dd

  5. 删除之后下一行不上移 D

  6. 撤销 :u

  7. 恢复:ctrl+r

3.4.3 模式间的切换

末行模式进入之后的特征:光标在最后一行上

编辑模式进入之后的特征:在最后一行有类似于“------插入(insert)-----"

末行模式和编辑模式之间是没有办法直接切换的,必须先走命令模式。

3.5 末行模式

进入方式:由命令模式进入,按下“:”或者“/(表示查找)”即可进入

退出方式:

a. 按下esc

b. 连按2次esc键

c. 删除末行全部输入字符

  1. 保存操作(write) :w 保存文件 输入:“:w 路径” 另存为

  2. 退出(quit)输入:“:q” 退出文件

  3. 保存并退出 输入:“:wq” 保存并且退出

  4. 强制(!) 输入:“:q!” 表示强制退出,刚才做的修改操作不做保存

  5. 搜索/查找 输入:“/关键词”,再按下回车

  6. 替换

    :s/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容

    :s/搜索的关键词/新的内容/g 替换光标所在行的全部符合条件的内容

    :%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容

    :%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容

    %表示整个文件(所有行)

    g表示全局(global)

  7. 显示行号

    输入:“:set nu” [number]

    如果想取消显示,则输入:“:set nonu”

  8. 要想永久显示行号,需要进行对vim的配置。

    建议创建文件:“~/.vimrc”(该配置是针对用户的,每个用户自己家下有一个独立.vimrc)

末行模式下的复制(yy)、剪切(dd)、删除(dd)操作
复制语法:“:开始行号,结束行号y”,例如输入“:1,10y”
剪切删除语法:“:开始行号,结束行号d”,例如输入“:1,10d”

一步到位的复制语法——“:开始行号,结束行号 co 粘贴到的行号”
剪切粘贴一步到位语法——“:开始行号,结束行号 m 粘贴到的行号

3.6 编辑模式

img

i(insert) a(after)。

退出方式:按下esc键

3.7 异常退出

编辑文件之后并没有正常的去wq(保存退出)

删除“.文件名.swp”文件即可解决上述问题。

3.8 别名机制

允许操作者对现有的指令/脚本进行重新的命名

允许用户创建自己的指令。

~/.bashrc alias 别名=’原始名称/路径’

保存退出之后不会立即生效,需要当前用户重新登录到系统才会生效。

4 用户与用户组

Linux系统是一个多用户、多任务的操作系统

每个用户账号都拥有一个唯一的用户名和各自的密码.

/etc/passwd 存储用户的关键信息

/etc/group 存储用户组的关键信息

/etc/shadow 存储用户的密码信息

4.1 用户管理

添加用户

#useradd 选项 选项的值 …. 用户名

-g:表示指定用户的用户主(主要)组,选项的值可以是用户组的id,也可以是组名

-G:表示指定用户的用户附加(额外)组,选项的值可以是用户组的id,也可以是组名

-u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义

-c:comment,添加注释(选择是否添加)

-s:指定用户登入后所使用的shell 解释器

-d:指定用户登入时的启始目录(家目录位置)

-n:取消建立以用户名称为名的群组

passwd

用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell

用户名:创建新用户名称,后期登录的时候需要输入;

密码:此密码位置一般情况都是“x”,表示密码的占位;

用户ID:用户的识别符;【-u】

用户组ID:该用户所属的主组ID;【-g】

注释:解释该用户是做什么用的;【-c】

家目录:用户登录进入系统之后默认的位置;【-d】

解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;【如果解释器是/bin/bash表示用户可以登录到系统,/sbin/nologin表示该用户不能登录到系统】【-s】

注意

如果需要为一个用户指定多个附加组,只需要将多个附件组的id通过英文逗号“,”分割即可。

主组只能有1个,附加组可以多个,也可以没有附加组

文档的属组指的是主组

4.1.1 修改用户

#usermod选项 选项的值 …. 用户名

Usermod:user modify,用户修改

-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

-u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义

-l:修改用户名

-c<备注>:修改用户帐号的备注文字

-d<登入目录>:修改用户登入时的目录

-s<shell>:修改用户登入后所使用的shell

4.1.2 设置密码
  1. 该指令普通用户也可以执行

  2. 只有root用户才可以指定用户名

Linux不允许没有密码的用户登录到系统

#passwd[用户名]

  1. 从root往普通用户切换不需要密码,反之需要root密码;

  2. 切换用户之后前后的工作路径是不变的;

  3. 普通用户没有办法访问root用户家目录,反之可以;

4.1.3 删除用户

#userdel 选项 用户名

Userdel:user delete(用户删除)

-r:表示删除用户的同时,删除其家目录;

kill对应用户的全部进程

在登录需要删除的用户之后,按下快捷键“ctrl+d”进行对当前用户的注销,随后退回到上一个用户(root)此时就可以对需要删除的用户进行删除操作。

4.2 用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。

文件结构

用户组名:密码:用户组ID:组内用户名[看附加组的]

密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;

组内用户名:表示附加组是该组的用户名称;

4.2.1 用户组添加

#groupadd 选项 选项的值 …. 用户组名

-g:类似用户添加里的“-u”,

-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从500之后递增;

4.2.2 用户组编辑

#groupmod 选项 选项的值 … 用户组名

-g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字

-n:类似于用户修改“-l”,表示设置新的用户组的名称

4.2.3 用户组删除

#groupdel 用户组名

当需要删除一个组,但是这个组是某个用户的主组时,则不允许删除(附加组是可以的);如果确实需要删除,则先从组内移出所有用户。

5 权限管理

5.1 权限介绍

在Linux中分别有读、写、执行权限:

读权限

对于文件夹来说,读权限影响用户是否能够列出目录结构

对于文件来说,读权限影响用户是否可以查看文件内容

写权限

对文件夹来说,写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档

对于文件来说,写权限影响用户是否可以编辑文件内容,

执行权限

一般都是对于文件来说,特别脚本文件。

对于文件来说,执行权限影响文件是否可以运行。

对于文件夹来说,执行权限影响对应的用户是否可以在文件夹内执行指令。

5.2 身份介绍

Owner身份 (文档所有者,默认为文档的创建者) 除本人(文件所有者)之外的用户无法查看文件内容

Group身份(与文档所有者同组的用户) 能互相修改对方的数据

Others身份(其他人,相对于所有者与同组用户)

Root用户(超级用户) 神一样存在 设置文档的权限的时候不必考虑root用户

5.3 Linux权限查看

Linux中存在用户(owner)、用户组(group)和其他人(others)概念

img

第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软连接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等;

第2-4位:表示文档所有者的权限情况,第2位表示读权限的情况,取值有r、-;第3位表示写权限的情况,w表示可写,-表示不可写,第4位表示执行权限的情况,取值有x、-。

第5-7位:表示与所有者同在一个组的用户的权限情况,第5位表示读权限的情况,取值有r、-;第6位表示写权限的情况,w表示可写,-表示不可写,第7位表示执行权限的情况,取值有x、-。

第8-10位:表示除了上面的前2部分的用户之外的其他用户的权限情况,第8位表示读权限的情况,取值有r、-;第9位表示写权限的情况,w表示可写,-表示不可写,第10位表示执行权限的情况,取值有x、-。

权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用 – 代替。

5.4 权限设置

#chmod [选项] 权限模式 文档路径

-R:递归设置权限 (当文档类型为文件夹的时候)

权限模式:就是该文档需要设置的权限信息

文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

想要给文档设置权限,操作者要么是root用户,要么就是文档的所有者

5.4.1 字母形式

img

给谁设置:

u:表示所有者身份owner(user)

g:表示给所有者同组用户设置(group)

o:表示others,给其他用户设置权限

a:表示all,给所有人(包含ugo部分)设置权限

如果在设置权限的时候不指定给谁设置,则默认给所有用户设置

权限字符:

r:读

w:写

x:表示执行

-:表示没有权限

权限分配方式

+:表示给具体的用户新增权限(相对当前)

-:表示删除用户的权限(相对当前)

=:表示将权限设置成具体的值(注重结果)【赋值】

设置多个身份的权限时候,每个身份之间需要通过英文逗号分开。

如果有两部分权限一样则可以合在一起写

5.4.2 数字形式

读:r 4

写:w 2

执行:x 1

img

组合权限数字的时候遵循,最短路径要求,并且最多只能出现一次。

如果一个权限数字中但凡出现2与3的数字,则该权限有不合理的情况。

5.5 注意事项

在Linux系统中,创建文档的权限有一个默认值,以当前的系统为例,其创建文件夹之后的默认权限是755,创建文件之后的权限是644。

之所以会这样是受到了系统中umask(掩码)的值的影响,其是用于指定文档创建好之后的权限,umask默认为022。

计算方式:

对于文件:文件的权限 = 666 – umask掩码

对于文件夹:文件夹的权限 = 777 - umask掩码

在Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限、执行权限,如果有才可以删除。

5.6 属主与属组

属主:所属的用户(文件的主人),文档所有者

属组:所属的用户组(同组用户的组名称)

前面的那个root就是属主

后面的那个roo就是属组

这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)。

之所以需要设置这个:如果有时候去删除某个用户,则该用户对应的文档的属主和属组信息就需要去修改

5.7 chown/chgrp/sudo

5.7.1 chown

#chown [-R] 新的username 文档路径

更改文档的所属用户(change owner)

修改所有者的人必须是root或者所有者自己(也可能出现没有权限的情况),其他人无权修改所有者。

5.7.2 charp

#chgrp [-R] groupname 文档的路径

更改文档的所属用户组(change group)

5.7.3 sudo

Sudo可以让管理员(root)事先定义某些特殊命令谁可以执行(事先放权规则。

默认sudo中是没有除root之外用户的规则,要想使用则先配置sudo。

Sudo配置文件:/etc/sudoers

该文件默认只读,不允许修改,因此不能直接修改。

  1. 配置sudo文件请使用“#visudo”,

  2. 配置普通用户的权限

    Root表示用户名,如果是用户组,则可以写成“%组名”

    ALL:表示允许登录的主机(地址白名单)

    (ALL):表示以谁的身份执行,ALL表示root身份

    ALL:表示当前用户可以执行的命令,多个命令可以使用“,”分割

    一般需要调整的就是用户/用户组名称与可以执行的指令名。

# sudo 需要执行的指令(就是放权的指令名称)

#sudo -l 表示list

6 运行级别

运行模式也可以称之为运行级别(Running Level)

0 — 表示关机级别(不要将默认的运行级别设置成这个值)
1 — 单用户模式(找回root密码的)
2 — 多用户模式,不带NFS(Network File Syetem)
3 — 多用户模式,完全的多用户模式(不带桌面的,纯命令行模式)
4 — 没有被使用的模式(被保留模式)
5 — X11,完整的图形化界面模式
6 — 表示重启级别(不要将默认的运行级别设置成这个值)

6.1 相关命令 / 网络设置

(临时切换,立即生效):

#init 0 表示关机

#init 3 表示切换到不带桌面的模式(CLI 命令行模式)

#init 5 切换到图形界面(前提必须先确保已经安装了图形化界面)

#init 6 重启电脑

注意:init指令需要超级管理员的权限,普通用户无法执行。

这些命令其实都是调用的init进程,将数字(运行级别)传递给进程,进程去读配置文件执行对应的操作。

6.2 永久命令行模式

将/etc/inittab文件中的initdefault值设置成3,然后重启操作系统。切换重启之后默认即命令行模式:

6.3 网络设置

6.3.1 IP地址查看

远程连接、配置相关软件时(vpn)

#ifconfig

有2块网卡,一个叫eth0,另一个lo(本地回环网卡,本机ip)

ip地址是 inet addr那一项

6.3.2 网卡配置文件

/etc/sysconfig/network-scripts/ifcfg-*文件

ONBOOT:表示是否自动连接

BOOTPROTO(COL):网卡启动之后使用的协议,一般情况下是DHCP

HWADDR:硬件地址(mac地址,物理地址),计算机之间的通信都是依赖于mac地址

#ln -s 原始路径 快捷方式路径

针对像网卡配置目录层次比较深的文件,如果需要频繁更改,可以将需要的文件设置一个快捷方式,将其放在经常操作的目录,以简化后续的打开文件操作。

6.3.3 网络服务操作

#service network start/stop/restart

通过service指令来对网络的服务进行重启/停止/启动等操作。

#ifdown 网卡名 停止某个网卡

#ifup 网卡名 启动某个网卡

7 ssh

ssh(secure shell,安全外壳协议),该协议有2个常用的作用:远程连接、远程文件传输。

协议使用端口号:默认是22。

可以是被修改的,如果需要修改,则需要修改ssh服务的配置文件:

#/etc/ssh/ssh_config

服务启动/停止/重启 {服务名中的d全称daemon,守护进程}

#service sshd start/stop/restart

#/etc/init.d/sshd start/stop/restart

7.1 远程登录

终端工具主要帮助运维人员连接远程的服务器,常见终端工具有:Xshell、secureCRT、Putty等

  1. 获取服务器ip地址,可以通过ifconfig命令进行查看,然后顺手测试ip的连接相通性#ifconfig

  2. 打开putty,输入相关的信息

  3. 在弹出key确认的时候点击“是”,以后不会再提示

  4. 输入登录信息

虚拟机的centos中全部的指令在远程终端中都是可以得到执行的

不借助第三方工具实现远程连接
①打开Windows的cmd黑窗口(前提是Windows必须安装ssh服务,如果没有而需要这个功能,则自行安装openSSH)
②输入“ssh 需要登录的用户名@远程服务器的连接地址”回车
③输入密码

7.2 sftp文件传输

可视化的界面传输工具:Filezilla

  1. 选择“文件”- “站点管理器(Ctrl + S)”

  2. 点击“文件”菜单下方的“▽”选择需要连接的服务器

  3. 从本地windows上传文件到linux中方式,支持直接拖拽文件,也可以右键本地需要上传的文件,然后点选“上传”即可

  4. 下载linux文件到本地,支持服务器文件直接拖拽到本地,也可以在右侧窗口选择需要下载的文件,右键,点选“下载”。

7.3 软件的安装方式

7.3.1 rpm

优点:

对于软件包的操作比较简单,通过简单指令即可操作

缺点:

①安装时需要自行下载软件包

②安装、卸载软件时需要考虑到依赖关系

③软件的自定义性比较差,不适合444有特殊需求的场景

语法:

① 查询

#rpm -qa 关键词 (

查询机器上是否有安装指定的软件包,只查通过二进制包的形式安装的软件,不包含编译软件与绿色软件)

选项说明:

-q:query,查询

-a:all,所有

②卸载

#rpm -e 软件包全称 [--nodeps] (

卸载软件,包的全称需要通过①去查询)

选项说明:

-e:卸载

--nodeps:忽略依赖关系

③安装

#rpm -ivh 软件包路径

(软件包的下载需要自行解决)

选项说明:

-i:install,安装

-v:显示安装过程

-h:以“#”形式显示安装过程

④更新(了解)

#rpm -Uvh 软件包路径

(软件包的下载、依赖关系需要自行解决)

选项说明:

-U:upgrade,升级

-v:显示安装过程

-h:以“#”形式显示安装过程

⑤查看某个文档是由哪个软件包创建的

#rpm -qf 需要查询的文件路径

选项说明:

-q:query,查询

-f:file,指定文件

7.3.2 yum

优点:

①快速、傻瓜式的软件管理方式

②在联网情况下,自动从服务器上下载软件包(内、外网服务器均可)

③自动解决软件依赖关系

缺点:

因其底层实为rpm操作,所以也丧失了对软件的自定义功能

Yum常用语法:

①搜索/查询相关

#yum search [all] 关键词 (根据关键词搜索服务器上的包资源)

#yum list [关键词] (列出所有的包,包含已经安装的和可供安装的)

#yum list installed [关键词] (列出当前已经安装的包)

②安装

注意:操作指令(install)与-y选项可以颠倒,下同,-y类似于rm指令的-f选项。

#yum [-y] install 关键词 (安装指定的软件)

③卸载

#yum [-y] remove 关键词 (卸载指定的软件)

④更新

#yum [-y] update (更新整个系统,包含内核)

#yum [-y] update 关键词

7.3.3 编译方式

优点:

①用户可选择需要的软件功能

②源码方式,有开发能力的用户,可对源码进行自定义

缺点:

①需要自行解决依赖关系

②编译时间较长

③容易出错,一旦出错,需要重新编译安装

步骤:

①下载源码包

②解压源码包

③进入解压目录

④配置安装

⑤编译

⑥安装

5 计划任务

指定的时间点去执行任务

:#crontab 选项

-l:list,列出指定用户的计划任务列表

-e:edit,编辑指定用户的计划任务列表

编辑计划任务

计划任务的规则语法格式,以行为单位,一行则为一个计划:

取值范围(常识):

分:0~59

时:0~23

日:1~31

月:1~12

周:0~7,0和7表示星期天

四个符号:

*:表示取值范围中的每一个数字

-:做连续区间表达式的,要想表示1~7,则可以写成:1-7

/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6

分 时 日 月 周 需要执行的命令

每月1、10、22日的4:45重启network服务

45 4 1,10,22 * * service network restart

每天18:00至23:00之间每隔30分钟重启network服务

*/30 18-23 * * * service network restart