运维之门

1、教学环境
2、云计算概念
3、工作岗位与内容
4、linux系统简介
5、shell概念
6、linux基础命令
man/help/info/pwd/cd/ls/mkdir/stat/touch/rm/copy/mv/echo/cat/less/more/tty/管道
7、重定向 >,1>,2>,&>,<,>>
 
 
一、教学环境
Linux + VMware WorkStation
 
二、云计算概念
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。
云计算(Cloud Computing)是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、 网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)、热备份冗余(High Available)等传统计算机和网络技术发展融合的产物。
 
三、运维工程师、DBA
运维工程师(Operations)在国内又称为运维开发工程师(Devops),在国外称为 SRE(Site Reliability Engineering)。负责维护并确保整个服务的高可用性,同时不断优化系统架构、提升部署效率、优化资源利用率提高整体的ROI。运维工程师面对的最大挑战是大规模集群的管理问题,如何管理好几十万台服务器上的服务,同时保障服务的高可用性,是运维工程师面临的最大挑战。
数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。
 
四、linux系统简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
1、特点:
完全免费;完全兼容POSI1.0标准;多用户、多任务;良好的界面(KDE,gnome,Xfce,LXDE);支持多种平台(x86、680x0、SPARC、Alpha)。
2、基本思想:
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。
3、文件类型:
- 普通文件(regular file):就是一般存取的文件,依照文件的内容,可以分为:纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data)。
d 目录文件(directory):就是目录。
l 连接文件(link):类似Windows下面的快捷方式。符号
设备与设备文件(device):与系统外设及存储等相关的一些文件,通常都集中在 /dev目录。通常又分为两种:
c 块设备文件(就是存储数据以供系统存取的接口设备,简单而言就是硬盘)
b 字符设备文件(即串行端口的接口设备,例如键盘、鼠标等等)。
s 套接字(sockets):这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。
p 管道(FIFO,pipe):FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。
# ls / --查看文件结构
bin boot data dev etc home jenkins lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var
 
五、Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。
同Linux本身一样,Shell也有多种不同的版本。主要有下列版本的Shell:
Bourne Shell: 是贝尔实验室开发的。
BASH: 是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。/bin/bash
Korn Shell: 是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
C Shell: 是SUN公司Shell的BSD版本。
Z Shell: The last shell you’ll ever need! Z是最后一个字母,也就是终极Shell。它集成了bash、ksh的重要特性,同时又增加了自己独有的特性。
 
六、Linux系统常用命令
1、Linux的命令分为内部命令和外部命令:
内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。
外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。系统将会读取环境变量文件.bash_profile、/etc/profile去找PATH路径。
# echo $PATH    --查看 PATH 包含哪些路径
# enable -a  --查看所有内部命令
# type service   --type判断命令为内部还是外部
# type pwd   --service 为外部命令;pwd为内部命令
# enable tree   --enable也可判断
2、linux命令语法规则
command -option file
3、命令帮助——manhelpinfo
# man passwd   --使用 man 手册查找 passwd 命令如何使用
# tree --help   --外部命令查询方式(或 -h);并不是所有命令都支持
# help cd   --内部命令查询方式
# info ls
4、工作目录切换——pwdcd
绝对路径: 一定是以"/"(根)开头,它是唯一一个绝对能够描述对象所在的路径的方式。"/" 根目录是linux操作系统最顶级的目录,没有任何路径比它还要靠前。他是操作系统所在的目录(分区)。
相对路径:路径是相对的,对象所在的路径是相对于当前所在路径而来,当前的所在路径不一样,那么目标对象的相对路径也不一样。
# pwd --查看当前所在的工作目录
# cd /usr/local/ --以绝对路径的方式去往 /usr/local 目录
# cd bin/ --以相对的路径去往 /usr/local/ 目录下的 bin 目录。如何使用绝对方式?
# cd . --. 代表当前目录。该命令代表工作目录没动
# cd .. --返回当前目录的父目录,也就是前一级。也属于相对路径
# cd - --返回前次所在的工作目录
# cd ~ --到当前用户的家目录
# cd /usr/local/../lib/../.. --这个到哪了??
5、列出目录下内容——ls
# ls --查看当前目录下的文件列表
# ls /bin/ --查看 /bin 目录下有哪些文件
# ls -l /etc/ --查看 /etc 目录下文件的详细信息,参数 -l
-rw-r--r--. 1 root root 46 Apr 22 18:56 adjtime
'-' 为文件类型,普通文件。文件类型有7类:-dslbcp
rw-r--r-- 为文件权限
# ls -a /root -- 显示以'.'开头的隐藏文件,参数 -a
# ls -ld /etc/ --查看目录本身的信息。参数 -d
# ls -lt /data/test --按文件的创建/最后修改排序
6、创建目录——mkdir
# mkdir /data --以绝对路径创建目录
# mkdir test --以相对路劲创建目录
# mkdir dir1 dir2 --同时创建好几个目录
# mkdir test/a/b/c -p --以相对路劲递归创建目录,参数 -p
7、文件状态——stat
# stat aa
File: `aa' --文件名
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 1968262 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-10-19 16:54:56.010977018 +0800 --访问时间
Modify: 2016-10-19 16:53:34.722976466 +0800 --修改时间
Change: 2016-10-19 16:53:34.722976466 +0800 --状态改变时间
注意:访问时间只记录文件状态、内容改变后的第一次访问时间。后面如果修改时间&状态改变时间没有发生变化,那么即使进行了对文件的多次访问,访问时间也不会改变
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。
如果文件创建后就没有修改过,修改时间=创建时间;
如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;
如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能
8、创建文件——touch
# touch /data/a
# touch test/a
# touch a b c
# touch file{1,2,3,}
# touch ["a b"]['a b'][a b] --创建一个文件 a b
# touch -r a aa --使用 a 的属性时间替换 aa 的属性时间
# touch -d '2016-10-10 10:10' aa --修改文件的 访问时间与修改时间。符号 -d
# touch -m -d '2016-11-1 11:11' aa --只修改文件的 修改时间。符号 -m
# touch -a -d '2016-6-6 6:6' aa --只修改文件的 访问时间。符号 -a
# touch -a -t 201505050555 aa --以该种时间格式修改文件访问时间。符号 -t
9、删除文件——rm
# rm /root/test/a --删除普通文件,并且会再让我们确认下
rm: remove regular empty file `/root/test/a'? y
# rm -f /root/test/aa --不用确认,直接删除普通文件。符号 -f
# rm -rf /root/test/ --删除目录,并且不用重新确认。符号 -r
# rm -rf /root/test1/* --删除目录下的所有文件
10、拷贝文件——cp
# cp /etc/passwd /root/test/ --拷贝普通文件
# cp /etc/passwd /root/test/password --拷贝普通文件,并且改名
# cp -r /etc/ /root/test --拷贝 /etc/ 目录到 /root/test 目录下
# cp -r /etc/* /root/test/bak/ --开呗 /etc/ 目录下的所有文件到 /root/test/bak/ 目录下
# cp -a /etc/passwd /root/test/ --将文件的各种属性尽量完整的拷贝到目的地
11、移动文件——mv
# mv /root/test/passwd bak/ --移动文件
# mv /root/test/passwd bak/pass --移动文件并改名
# mv /root/test/bak /root/test/bak-01 --移动目录并改名
12、输出——echo/tty
# echo 'hello world' --输出到终端
# tty --查看当前设备名
# echo 'hello world' > /dev/pts/1 --输出到另外一个终端
# echo -n 'hello world' --输出到终端后,不换行。符号 -n
# echo -e '123 hello world' --使能反斜杠转义。符号 -e
常用转义参数: (换行) (Tab) (退格键) v(换行再Tab) 等等
13、查看文件——cat/more/less
# cat /etc/passwd --输出文件内容
# cat -n /etc/passwd --显示每一行的行号。符号 -n
# cat -nb /etc/passwd --只显示非空的行。符号 -b
# more /etc/passwd -- 一页一页的打开文件,空格下一页,b 上一页,/ 搜索,q退出
# less /etc/passwd --打开形式与more 类似。f 下一页,w上一页,j 下一行,k上一行,/ 搜索,h 帮助,q退出
14、过滤——grep
# grep root /etc/passwd --查找文件里符合条件的字符串
# grep -v root /etc/passwd --将不包含root的行过滤出来。 -v
# grep -A2 root /etc/passwd --在过滤出符合条件行的同时将其后面的两行也显示出来。-A
# grep -B2 root /etc/passwd --在过滤出符合条件行的同时将其前面的两行也显示出来。-B
# grep -C2 root /etc/passwd --在过滤出符合条件行的同时将其前后的两行也显示出来。-C
# grep -c root /etc/passwd --计算出符合要求的行数。符号 -c
# grep -i Root /etc/passwd --忽略字符大小写。符号 -i
# grep root /root/* --大范围搜索
# grep -R root /root/* --大范围递归搜索,搜索的范围更加广。符号 -R
# grep -Rl root /root/* --只列出符合要求的文件名,不讲内容输出来。符号 -l
# grep -w bin /etc/passwd --只显示全字符合的列。符号 -w
# grep -wo bin /etc/passwd --只显示符合要求的字符。符号 -o
15、管道—— |
用法:command 1 | command 2
作用:是把第一个命令command 1执行的结果作为command 2的输入传给command 2
# cat /etc/passwd -n | less
# echo -e 'rootjjjjjjjj kkkkkkkk' | grep root
# cat /etc/passwd | grep root
 
七、重定向
作用:将输出的内容重新定向到别的地方;
输入为: 标准输入(0);默认为键盘
输出分为: 标准正确输出(1) 和 标准错误输出(2);默认为屏幕
相关符号: >,1>,2>,&>,< >>
# ls -l /etc/passwd --标准正确输出;默认到终端
-rw-r--r-- 1 root root 1920 Oct 11 22:37 /etc/passwd
# ls -l /etc/kkk --标准错误输出;默认到终端
ls: cannot access /etc/kkk: No such file or directory
# echo $? --对上一条执行命令的正确性进行判断;非0基本会标准错误输出
1、重定向与追加的区别
# echo 'hello world' > george --将本该输出到终端的内容重定向到george文件
# echo 'hi,george' > george --将新的内容重定向到george文件,发现覆盖了原来的内容
# echo 'hi,frank' >> george --追加则另起一行,将新的内容写入。符号 >>
2、标准正确输出重定向
符号 >,1>
# ls -l /etc/passwd 1> george --标准正确输出重定向到了 george 文件
# ls -l /etc/kkkkk > george --而标准错误输出还是到了我们的终端
ls: cannot access /etc/kkkkk: No such file or directory
3、标准错误输出重定向
符号 2>
# ls -l /etc/kkkkk 2> george --标准错误输出重定向到了 george 文件
# ls -l /etc/passwd 2> george --而标准正确输出还是到了我们的终端
-rw-r--r-- 1 root root 1920 Oct 11 22:37 /etc/passwd
4、标准正确&错误输出重定向
符号 &>
# ls -l /etc/jjj /etc/passwd > correct 2> error --将标准正确输出重定向到 correct;将标准错误输出重定向到 error
# ls -l /etc/jjj /etc/passwd &> george --将标准正确&错误都重定向到 george
5、标准输入
符号 <
# mail -s 'ooo' root@localhost --使用键盘标准输入
hello , root , wo zai yong jian pan qiao zi.
.
# mail -s 'ooo' root@localhost < /etc/passwd --使用标准输入符号进行标准输入,内容为 /etc/passwd 里头的内容
原文地址:https://www.cnblogs.com/libin-1/p/6676667.html