目录结构介绍
文件系统
文件系统就是操作管理存储设备或分区上的文件的方法和数据结构;即存储设备上组织文件的方式。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
- fat16(MS-DOS 6.x),每个分区只能值2GB
- fat32(windows 95),不能存放大于4GB的单个文件,性能较弱,容易产生碎片
- ntfs(windows NT,2000/XP/Vista/Win7),提升了fat的稳定性
- ext4(linux),扩展文件系统,是linux下的日志型文件系统
- hfs[+](mac),苹果电脑的文件系统
- exfat(mac/win),可以支持4GB以上的文件,适合于闪存
目录结构
-
linux和windows的文件系统差别很大,没有C/D/E等盘符,他是从’/’开始的,只有它没有上一级目录,是处于最顶层的目录,倒过来看目结构像一棵树,’/’就相当于树根,因此通常称为根目录。
-
根目录文件及目录说明
目录 | 说明 |
---|---|
/ | 根目录,源头;没有上级目录 |
/bin | 大多数的操作命令 |
/boot | 启动文件 |
/dev | 设备文件(一切设备皆文件) |
/etc | 配置信息 |
/home | 用户的家目录,每个用户对应/home下的一个文件夹 |
/root | 超级管理员用户root的家目录 |
/lib | 库文件 |
/lib64 | 64位的库文件 |
/lost+found | 通常是空的,出现异常(非法关机)时保存信息 |
/media | 自动识别一些设备,会挂在到该目录 |
/mnt | 专门用于挂载的目录 |
/opt | 安装系统之外的非必须软件的地方 |
/proc | 虚拟文件系统目录,会映射硬件信息 |
/sbin | 超级用户执行的命令 |
/selinux | selinux软件目录,用于保证系统安全 |
/srv | 存储本机或本机服务器提供的数据或服务 |
/sys | 类似于/proc的特殊文件系统,存放内核数据信息 |
/tmp | 保存随时可能销毁的文件 |
/usr | 存放应用程序 |
/var | 系统产生的不可自动销毁的文件,缓存文件,日志文件,mail、database、log |
VIM编辑器
-
简介:是一款终端编辑器vi,后来有了vi的增强版本vim。被誉为终端编辑器之神。
-
安装:
yum install -y vim
-
使用:通过不同的模式切换,完成特定的功能
- 正常模式(命令模式),打开文件时的默认模式
命令/操作 功能说明 vim filename 打开或新建(需要修改才会真的创建)文件 esc 从其它模式回到正常模式 ZZ(shift + zz) 保存退出 定位光标 vim filename +10 打开文件,将光标定位到第10行 vim filename + 打开文件,将光标定位到末尾 gg 定位到首行 G 定位到尾行 ngg 定位到第n行,n为行号 0 (数字) 行首 ^ 第一个非空字符 $ 行尾 k 上 j 下 h 左 l 右 ctrl + f 向下翻一页 ctrl + b 向上翻一页 ctrl + u 向上翻半页 ctrl + d 向下翻半页 删除/复制/粘贴/撤销 yy 复制整行 y^ 复制光标到行首 y$ 复制光标到行尾 yw 复制一个word yG 复制光标到文档尾部 ynG/nyG 复制到第n行 x 向右删一个字符 X 向左删一个字符 nx 向右删n个字符 nX 向左删n个字符 dd 删除光标所在行 ndd 删除光标开始的n行 d0 删除光标之前的内容,单行 d$ 删除光标之后的内容,单行 dG 删除光标至文件末尾的内容 d1G 删除光标至文件开头的内容 p 粘贴剪切板中的内容 u 撤销刚才的操作 ctrl + r 反撤销 - 插入模式(输入模式),从键盘获取内容进行文件内容的编辑会修改,正常模式下输入以下命令即可进入
命令/操作 功能描述 i 在光标位置插入 I 在一行的第一个非空字符处插入 a 在光标下一个字符插入 A 在行尾插入 o 在光标下一行插入空行 O 在光标上一行插入空行 s 删除光标所在字符 S 删除光标行 - 编辑模式(尾行模式),在命令模式下输入’:’即可进入,末尾会出现一个’:’
命令/操作 功能说明 :w 保存,但是不退出vim :q 退出vim :wq 保存并退出 :w newfile 将内容保存到newfile中 :w! 强制保存 :q! 强制退出 :x 保存退出,等价于 :wq,等价于 ZZ :e! 放弃修改,重新恢复到修改之前的文本 :n 跳转到第n行 :set nu[mber] 显示行号 :set nonu[mber] 隐藏行号 :set tabstop=4 tab的空白字符数 :set fileencodings=utf-8,gbk 文件字符集 :set mouse=a 启用鼠标 :set syntax on/off 语法高亮开/关 [:]/内容 查找内容,n下翻,N上翻,可以不带冒号 [:]?内容 查找内容,N下翻,n上翻,可以不带冒号 :%s/原内容/新内容 全文使用新内容替换原内容 :m,ns/原内容/新内容 使用新内容替换m到n行内的原内容 -
使用配置
- 上面的设置都是单次的,关闭vim就失效了
- 永久配置:在用户的家目录创建.vimrc文件,将配置的内容写入该文件即可
- 配置生效:重启电脑,或使用命令
source ~/.vimrc
man命令
-
安装:
yum install -y man
-
简介:man是manual(手册)的简写,提供了标准的帮助文档的查询
-
使用
操作 | 说明 |
---|---|
man name | 查询特定的命令/函数等的帮助文档 |
q | 退出查询 |
空格 | 向下翻页 |
pageup | 向上翻页 |
pagedown | 向下翻页 |
↑ | 向上一行 |
↓ | 向下一行 |
enter | 向下一行 |
?内容 | 搜索内容 |
help
- 查看命令的帮助文档
- 格式:ls –help
使用命令
-
命令格式
- 1
- 2
- 3
-
常见命令
命令 | 说明 |
---|---|
ls | 显示指定目录的内容,默认不指定目录显示当前目录的内容 |
pwd | 查看工作目录 |
cd | 切换工作目录 |
history | 查看所有历史命令,保存在~/.bash_history文件中 |
alias | 给命令起别名,例如:alias ll=’ls -l –color=auto’ |
unalias | 取消别名,例如:unalias ll |
which | 查看具体的命令 |
- 目录相关符号
符号 | 说明 |
---|---|
. | 当前目录 |
.. | 上级目录 |
~ | 用户家目录 |
- | 刚才切换过来的目录 |
- ls命令选项
选项 | 说明 |
---|---|
-a | 显示所有,包括隐藏文件(以.开头的文件) |
-l | 列表展示详细信息 |
-h | 人性化的显示文件(K/M/G) |
- ls -l结果说明
类型权限 | 引用数 | 用户 | 用户组 | 大小 | 月份 | 日 | 时间/年份 | 名称
-
颜色与类型对应
- 1
- 2
- 3
- 4
- 5
- 6
- 7
扩展
-
修改yum源
- 1
- 2
- 3
- 4
- 5
文件操作
文件及目录
- 相关命令
命令 | 说明 |
---|---|
touch | 创建文件,可以一次性创建多个文件 |
rm | 删除文件或目录(需要加-r选项) |
cp | 拷贝文件或目录(需要加-r选项) |
mv | 移动文件或目录 |
mkdir | 创建目录 |
rmdir | 删除目录,只能是空目录 |
- 选项说明
- -f:表示强制,默认删除操作是给予提示,添加此选项就不再提示
- *:表示模糊匹配任意
- -r:删除或拷贝目录时的递归操作
- -p:创建目录时,需要创建中间目录,例:mkdir -p 1/2/3
文件流操作(sed)
-
格式
- 1
- 2
- 3
-
指令
- 1
- 2
- 3
- 4
- 5
-
实例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
查看文件
- 相关命令
命令 | 说明 |
---|---|
cat | 从上到下,顺序显示全部内容 |
tac | 从下到上,逆序显示全部内容 |
head | 显示开头的几行,默认10行,使用‘-n’,n表示要显示的行数,例:head -3 1.txt |
tail | 显示末尾的几行,用法同head |
nl | 功能同cat,额外显示行号 |
wc | 统计显示,行数 | 单词数 | 字节数 | 文件名 |
more | 一点一点显示内容 |
less | 一点一点显示内容 |
- more和less使用说明
- 显示一屏就会停止
- q退出查看
- 空格下翻一页
- 回车下翻一行
- more查看完毕时会自动退出,而less不会
- less比more多了上下按键单行的查看
- 通常更多的情况是结合管道,如:ls -l /etc | more,将输出的结果作为more的参数
用户和用户组
- 相关命令
命令 | 说明 |
---|---|
whoami | 查看当前登录用户 |
useradd | 添加用户,会在/home目录创建一个与用户名相同的文件夹 |
userdel | 删除用户,添加’-rf’可以同时删除用户家目录和邮件目录 |
su [-] | 切换到指定用户,默认root。带’-‘会将shell环境也进行切换 |
sudo | 以指定用户(默认root)执行命令,但是并不会切换用户,如:sudo 命令 |
passwd | 设置指定用户密码,默认设置root用户,只有root用户才有权限 |
groupadd | 添加用户组 |
groupdel | 删除用户组 |
gpasswd | 向群组添加/删除指定用户,如:gpasswd -a/-d test hello |
chown | 修改文件拥有者[及所属组],如:chown test[:test] 1.txt |
chgrp | 修改文件所属组,如:chgrp root 1.txt |
chsh | 修改用户的shell,chsh test -s /sbin/nologin不能登录,chsh test -s /bin/bash可以登录 |
- 特殊文件
-
/etc/passwd,改文件存放了系统中所有的用户信息,一行表示一个用户,具体解释:
- 1
-
/etc/group,改文件存放了系统中所有的用户组信息,一行表示一个用户组,具体解释:
- 1
-
/etc/shadow,用户密码文件,依附于/etc/passwd,但是并不是由该文件生成。
- 使用说明
-
用户以及用户组ID通常要大于500,小于500的系统已占用
- 创建用户时
- 禁止登陆:useradd test -s /sbin/nologin
- 指定UID:useradd test -u 600
- 指定家目录:useradd test -d /xxx/yyy
- 指定用户组:useradd test -g group
- 修改用户shell,chsh test -s /sbin/nologin
- 用户身份标识:普通用户$,超级用户#
- 修改所有者时加’-R’,会进行递归操作
- 在使用用户名和用户组的地方通常可以使用UID和GID替代
文件权限
-
说明:linux的权限有所有者、所属组、其它的概念
-
权限:所有文件都涉及,可读(r)、可写(w)、可执行(x),-表示没有对应权限
-
原理:在ls -l查看的结果集中,第一项表示权限,分为3组,分别对应所有者、所属组、其它
-
修改文件权限,使用命令chmod,格式:
chmod [身份] [修改] [权限]
选项 | 说明 |
---|---|
身份 | |
u | 用有者 |
g | 所属组 |
o | 其它 |
a | 所有 |
修改 | |
+ | 添加 |
- | 去掉 |
= | 设置 |
权限 | |
r | 可读 |
w | 可写 |
x | 可执行 |
- chmod使用说明:-R表示递归操作
-
本质:使用一组(3位)八进制的数来表示权限,如:0755,详解如下:
- 1
- 2
- 3
- 4
-
简写:
chmod 0755 1.txt
掩码(umask)
-
作用:限定了新建文件的默认权限,实际的权限与掩码相反(普通文件减去可执行权限)
-
命令:umask [value],查看或设置掩码,不加value表示查看
-
实例分析
- 1
- 2
- 3
-
命令的修改是临时的,修改配置文件才能永久生效
- 1
- 2
特殊属性
-
有时候root都无法修改一个文件,多半是添加了特殊权限,可以使用lsattr查看,使用chattr修改,其中最重要的一个权限是保护权限,就是不能更改(immutable),方式误删除
-
使用实例
- 1
- 2
- 3
- 4
链接文件
-
命令:ln
-
作用:创建一个文件或目录的链接
-
格式:
ln [-s] 原文件 新名称
-
说明:使用ls -l查看时,文件类型为’l’的就是软链接
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
文件搜索与磁盘管理
文件搜索
-
find
-
作用:功能非常强大的搜索命令,可以搜索任意文件
-
格式:
find [目录] [条件]
-
选项:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 说明
- 1
- 2
-
-
whereis
-
作用:专门用于搜索应用程序
-
格式:whereis grep
-
结果:
- 1
- 2
-
-
which
- 作用:在$PATH环境变量中,查找系统命令,能够明确的指明使用的是哪一个
- 例子:which ls
-
grep
-
作用:正则表达式搜索
-
格式:grep [选项] pattern [文件名]
-
选项:
- 1
- 2
- 说明:
- 1
- 2
- 实例
- 1
- 2
- 3
-
磁盘管理
-
基本说明
- 1
- 2
- 3
- 4
- 5
- 6
-
磁盘挂载
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
-
磁盘分区
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
-
分区格式化
- 1
- 2
- 3
- 4
-
磁盘查看
df
- 1
- 2
- 3
- 4
- 5
du
- 1
- 2
- 3
- 4
PATH
-
说明:其实就是一个环境变量,类似于windows下的环境变量
-
查看:echo $PATH
-
配置:
- 1
- 2
- 3
- 4
管道(|)
-
说明:将前面命令的输出作为后面命令的输入,中间使用’|’拼接
-
实例
- 1
- 2
-
对于不支持管道做为参数的命令,可以使用xargs
- 1
shell脚本
-
shell是什么?
其实shell就是一个命令解析器,将用户输入的命令解释给系统
-
常见的shell解析器
sh、bsh、csh、bash(linux默认)、ksh、zsh
-
交互方式
- 交互式:用户输入一条命令,敲回车,然后shell解析一下
- 脚本式:编写一个shell脚本文件,shell会依次解析并执行
-
编写脚本
-
创建一个文件:vim test.sh
-
输入内容
- 1
- 2
- 3
- 4
- 5
-
添加可执行权限:chmod +x test.sh
-
执行shell脚本
- 1
- 2
-
扩展
-
安装ntfs-3g以支持nfts文件系统的磁盘挂载
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
系统服务管理
OSI模型
- 概念:七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
- 七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
- TCP/IP:简化的OSI模型,共四层:应用层、传输层、网络层、网络接口层
网络服务
- 相关命令
命令 | 说明 |
---|---|
ping | 检测网络连通性,-c可以指定次数 |
ifconfig | 查看或修改网卡信息 |
ifup | 启动网卡 |
ifdwon | 关闭网卡 |
service network start|stop|restart | 开启|关闭|重启网络服务 |
- 相关文件
网卡配置:/etc/sysconfig/network-scripts/ifcfg-eth0
域名解析:/etc/resolv.conf
nameserver 8.8.8.8 #一行表示一个域名解析服务器(DNS)
本地劫持:/etc/hosts 相当于本地的DNS
IP 域名 #一行表示一个
服务监测
-
netstat
- 1
- 2
-
free
- 1
- 2
-
w
- 1
- 2
-
top
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
-
vmstat
- 1
- 2
进程管理
-
ps
- 1
- 2
- 3
- 4
- 5
- 6
-
kill
- 1
- 2
- 3
- 4
- 5
服务管理
-
检查配置:chkconfig
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
-
服务开关:service 服务 start|stop|restart|reload #开启|关闭|重启|重新加载配置
远程会话
-
场景:当系统管理员远程连接服务器,需要做费时任务,只能干等,因为连接中断服务停止
-
安装screen命令:
yum install -y screen
-
使用说明:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
计划任务
-
说明:让计算机在一定的时间间隔做指定的事情
-
添加任务
- 修改配置文件/etc/crontab,只能是root,用于给其它用户安排任务,必须指定用户
- 使用crontab命令编辑计划任务文件,每个用户都可以使用,保存在:/var/spool/cron/用户名
-
配置格式说明
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
-
crontab命令使用
- 1
- 2
- 3
- 4
系统安全
-
selinux:是linux下的一套安全机制,非常复杂,通常都需要关闭,否则程序可能会出意想不到的问题
- 1
- 2
- 3
- 4
- 5
- 6
-
iptables:防火墙,就是在外网和内网之间的一道安全屏障,保证计算机的安全
- 1
它通过设置很多规则,来保证安全,规则有点复杂,了解一下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
软件安装方式
压缩解压
-
zip/unzip
- 1
- 2
- 3
- 4
-
gzip/gunzip
- 1
- 2
- 3
- 4
- 5
-
bzip2/bunzip2
- 1
- 2
- 3
- 4
- 5
-
tar
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
-
rar/unrar
- 1
- 2
- 3
- 4
- 5
- 6
源码安装
-
基本步骤
- 1
- 2
- 3
-
实例演示(httpd-2.2.34)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
-
实例演示(httpd-2.4.27)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
RPM安装
-
基本说明
- 原来是Redhat Pakage Manager的缩写,现在是RPM Pakage Manager的缩写
- 在linux下大多数软件都有依赖(一个软件需要另一个软件)
- rpm就是这种软件包的后缀
-
rpm命令
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-
实例演示(vim)
- 1
- 2
- 3
YUM安装
-
基本说明
- 1
- 2
- 3
- 4
- 5
- 6
- 7
-
更改yum源
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
yum操作
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
-
安装桌面环境测试
- 1
- 2
- 3
重定向
-
标准输入(stdin)、标准输出(stdout)、标准错误(stderr)
-
在linux中创建一个进程,系统会自动创建上面三个数据流,即三个文件
-
三个文件描述符分别为:0、1、2,都指向终端
-
重定向就是改变原来默认的表现位置
-
实例演示
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
文件传输共享
秘钥
-
说明:秘钥就是一个参数,就是在明文和密文之间转换所传递的参数。
-
分类:
- 对称秘钥加密:加密和解密使用的秘钥是一样的
- 非对称秘钥加密:使用不同的秘钥进行加密和解密操作
-
名词
- 秘钥:秘密的钥匙
- 公钥:公开的钥匙
- 私钥:私有的钥匙
-
主机信任,在使用ssh协议远程连接另一台计算机是需要输入用户名和密码,添加主机信任就是不需要密码就可远程连接,需要配置秘钥对(公钥和私钥)实现,具体步骤如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
scp命令
-
格式:scp 原文件 目标文件
-
实例
- 1
- 2
- 3
-
说明:默认连接远程主机是需要密码的,建立主机信任后即可实现无密码的访问
rsync命令
-
作用:在本地与本地,本地与远程之间进行数据的同步,备份等操作
-
使用
-
安装命令:
yum install -y rsync
-
基本格式:
rsync [选项] 源地址 目标地址
-
基本实例:
- 1
- 2
- 选项说明:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
-
-
典型应用场景
同步指定的yum源,备份线上服务器的数据等
Samba服务器
-
基本说明:
- Smaba是在linux或unix系统上实现了SMB协议的一个免费软件
- SMB是一种在局域网之间共享文件或打印机的通讯协议
- SMB协议由服务器和客户端构成
-
安装步骤
-
安装:
yum install -y samba samba-client
-
无密码访问配置:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 有密码访问配置:
- 1
- 2
- 3
- 4
-
-
启动管理
- 添加到开机启动:
chkconfig smb on
- 启动控制:
service smb start|stop|restart
- 添加到开机启动:
-
windows主机测试
- 1
- 2
- 3
- 4
- 5
windows共享文件夹给Linux
-
在windows下创建一个文件夹(tp5),然后共享之
- 1
- 2
- 3
- 4
-
在虚拟机中安装:
yum install -y cifs-utils
-
将windows共享的文件夹挂载到linux指定的目录
- 1
- 2
- 3
- 4
- 5
- 6
FTP服务器
-
安装依赖:
- 1
-
下载软件:
wget -c https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.46.tar.bz2
-
解压文件:
- 1
-
进入目录
- 1
-
配置
- 1
-
编译安装
- 1
-
添加用户管理
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-
创建虚拟的用户数据库
- 1
-
修改配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
- 1
- 2
-
启动FTP服务
- 1
- 2
NFS服务器
-
基本说明
- network file system,网络文件系统,采用的是RPC协议
- RPC是远程过程调用协议
- 也是客户端服务器的结构
-
安装步骤:
yum install -y nfs-utils
-
在NFS服务器上修改配置文件:/etc/exports
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
-
启动服务
- 1
- 2
- 3
- 4
- 5
-
客户端测试