简单了解真实的工作环境
上游 | 下游 | 职责 | |
---|---|---|---|
产品经理 | 真实用户 | 研发人员 | 挖掘用户需求,生产需求说明 |
研发人员 | 产品经理 | 测试人员 | 功能研发 |
测试人员 | 研发人员 | 研发人员 | 进行相关测试 |
研发人员 | 测试人员 | 运维人员 | BUG修复/产品上线 |
运维人员 | 研发人员 | 真实的用户 | 保障线上产品的稳定运行 |
云服务器
云服务器是什么:利用虚拟技术模拟出来的一台电脑
买一台云服务器,就相当于:
1、买了台电脑
2、买了一台机房的机位(才能截图别人组好的网,对外提供服务)
3、买了一个公网 ip
4、买了一个 CentOS
5、买了其他零散的服务
Linux
1、PC 和云服务直接通信:应用层协议(SSH)/TCP/IP...
2、Server(在云服务器上工作:sshd:22 端口)
3、Client(XShell/Xftp)
Linux 下的基本指令
1. 使用 XShell 登陆主机
ssh [ip]
XShell 下的复制粘贴:复制: ctrl + insert (有些 insert 需要配合 fn) 粘贴: shift + insert
使用 tab 键补全:可以使用 tab 键来尝试补全,加快效率。
使用 Ctrl + c 重新输入:如果命令或者目录敲错了,可以 ctrl + c 取消当前的命令。
2. ls 指令 list
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。
对于文件,将列出文件名以及其他信息。
常用选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件;
- -d 将目录像文件一样显示,而不是显示其下的文件;
- -k 以 k 字节的形式表示文件的大小;
- -l 列出文件的详细信息;
- -r 对目录反向排序;
- -t 以时间排序;
- -R 列出所有子目录下的文件。
3. pwd 命令 print working directory
语法:pwd
功能:显示用户当前所在的目录
4. cd 指令 change directory
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法:cd 目录名
功能:改变工作目录,将当前工作目录改变到指定的目录下。
cd .. : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录
/ 根目录
. 当前目录
.. d当前目录的上级目录
认识 Linux 目录结构:
bin sbin:放可执行文件:我们直接运行的命令(binary)
boot:OS 启动用的文件
dev:各种 IO 设备(device)
etc:全局配置文件
home:如果新建用户,用户HOME放这里
lib lib64:运行时库
proc:OS 的当前状态的统计
root:root 用户的HOME
tmp:临时文件
usr:用户相关的内容
var:放运行日志
绝对路径 vs 相对路径:
-
例如:/usr/share/tomcat/logs/ 以 / (根目录)开头的,称为绝对路径。
-
例如:./logs 以 . 或者 .. 开头的,称为相对路径。
5. touch 指令
语法: touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
6. mkdir 指令 make directory
语法: mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
-p, --parents 可以是一个路径名称。
此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,
即一次可以建立多级目录。
递归建立多个目录:
7. rm 指令 remove
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
-f 使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
删除文件:
删除目录:
重要注意事项:千万不要运行 rm -rf / , 尤其是在公司的生产服务器上.
8. cp 指令 copy
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录
说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
-f 或 --force 强行复制文件或目录,不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-r 递归处理,将指定目录下的文件与子目录一并处理
若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
(1). 往 test.txt 文件写入内容:
(2). 按下 Esc,再输入 :wq ,退出编写:(:wq 保存退出;q! 强制不保存退出)
(3). ll 查看详细内容
(4). 复制 test.txt 到 dest 里
(5). 查看 dest
9. mv 指令 move
语法:mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),
它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
10. cat 指令
语法:cat [选项] [文件]
功能: 查看目标文件的内容(将文件打印到标准输出设备上)
-n 由1开始对输出的所有行数编号
cat -n [filename]:cat 命令加上 -n 命令参数,可以完成查看内容的同时带有行号
more指令:more [filename] 查看文件
类似 cat ,不过会以一页一页的形式显示,方便逐页查看文件内容。
空白键(space)就往下一页显示
b键就会往回(back)一页显示
11. man 指令
语法:man [选项] 命令
-k 根据关键字搜索联机帮助
num 只在第num章节找
man man 能够看到 man 手册中的若干个章节及其含义
12. less 指令
语法:less [参数] 文件
功能:查看文件内容,不会立刻把所有文件内容加载到内存中,也能进行查找(对文件进行分页显示的工具)
若使用了 less 查看到尾时,文件并不会显示结束后自动离开,需要配合-e选项或者q命令来结束查看。
当进入查看文件内容的时候,就可以使用[pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。
-N 显示每行的行号
q: 退出 less 命令
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
-e:当文件显示结束后,自动离开
Ctrl+F向前翻页,Ctrl+B向后翻页。
1、查看内容并且带有行号:less -N [filename]
2、在文件当中搜索字符串:/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
13. head 指令
语法:head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
-n<行数> 显示的行数
显示前4行:
不显示后4行:
14. tail 指令
语法:tail [必要参数] [选择参数] [文件]
功能:把某个档案文件的最后几行显示到终端上
-f 循环读取
-n<行数> 显示文件的尾部 n 行内容
有一个文件共有13行内容,请取出第4,5,6行内容:
head -n6 test.txt | tail -n3
动态读取文件内容:
用来监控文件在尾部是否有新的写入。
使用tail -f [filename],如果文件当中有新的内容写入,就会立即输出到控制台中,
这样第一时间就可以查看到,所以tail -f命令打开的文件,并不会直接结束。
如果需要结束循环读取,在命令行当中使用ctrl+c就可以停止循环读取。
关于重定向:
Linux 的很多指令, 如 cat head tail 等都是默认输出到 "标准输出" 中, 也就是显示器上的.
可以通过 > 这样的符号cat把本来要输出到标准输出上的内容写到特定文件中. 这样的操作称为 "重定向".
三种方式:
1. 标准输入重定向(<)
# 先构造一个文件, 里面添加一些内容.
cat < test.txt
2. 标准输出重定向 (>)
cat test.txt > test2.txt
3. 标准错误重定向 (2>), 注意 2 和 > 之间不能有空格.
# 尝试删除一个不存在的文件
rm aaa > test.txt
# 输出结果, 这个提示并没有被重定向到 test.txt 文件中.
rm: cannot remove ‘aaa’: No such file or directory
# 正确做法
rm aaa 2> test.txt
关于管道:
管道是一种 "进程间通信" 方式,在 Linux 指令中可以使用 | 作为管道标记。
意思是将前一个指令标准输出的内容,作为第二个指令的标准输入内容。
15. date 命令
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]... [+FORMAT]
15.1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
15.2. 时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
定位网络情况的命令:
定义应用层(HTTP):curl 作为一个 HTTP 客户端可以方便定位 HTTP 层的协议
定义应用层(DNS):dig/ping
定位传输层(TCP):telnet(yum install telnet)
定位网络层(IP):ping
查看本机网络连接:netstat