linux如何vi 如何find,20200309 Linux命令(示例代码)

上周回顾

使用vmware当成虚拟机,virtualbox

企业中使用最多的就是 centos 6和7 ,

6和7中的命令都差不多 掌握 linux 常见的基本命令操作,企业中服务器都是unix系列的, 全部都是敲命令的。深入学习linux,参考老男孩运维课程

宿主机(windows)连接虚拟机(centos),大部分人一般使用xshell (ssh), putty, secureCRT。 在mac下,自带的工具直接连接,finalshell

linux命令

1. 网络相关

hostname

hostname 显示主机名称

hostname -f 显示完整的主机名和域名

hostname -i 显示当前机器的ip地址

ping

ping静数据包发送用户指定的地址,当包被接受,目标机器发送返回数据包

windows中的ping,只会执行4次,linux中会一直ping下去

ifconfig

查看用户网络配置,他显示当前网络设配配置

centos7 中使用 ip命令 以及ip addr

netstat

Centos7默认不安装netstat组件,需要使用时需要自己安装。

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

安装使用

安装:

yum install net-tools

查看:

netstat -natup

ps

ps -aux

是列出当前服务器上的所有的进程

组合使用:

| :管道符 ,将左边执行的命令结果传给右边进行操作

grep: 用来过滤筛选

ps -aux | grep mysql # 查看mysql所有的相关进程

kill

杀死某一个进程

kill 服务的进程号

kill -9 服务的进程号 # -9 :强制杀死

service

centos6的系统

service命令能够将目录“/etc/init.d/”中有关网络服务或系统服务脚本程序以一种统一的格式执行,格式为:“service 脚本程序 选项”,常用选项有:status、stop、 start、restart。service命令使用举例如下:

service 服务名 status : 查看某一个服务的状态

service sshd status : 查看sshd服务的状态

service 服务名 stop : 关闭某一个服务

service sshd stop : 关闭sshd服务

service 服务名 start : 启动一个服务

service sshd start: 启动ssh的服务

service 服务名 restart : 重新启动一个服务

service sshd restart: 重新启动ssh的服务

centos7系统:

systemctl status 服务名 # 查看某一服务的状态

systemctl start 服务名# 启动

systemctl restart 服务名# 关闭

top

wget

向某一网页发送get请求,获得的信息并保存到路径下

wget https://www.baidu.com/

2. vim的指令

需要进行安装

不装的话,虚拟机上只有vi

常见命令

复制 yy

粘贴 p

删除 dd

创建文件

vim 文件名.txt

touch 文件名.txt

3. 基础命令

clear

clear

ctrl l

都是清空屏幕的作用

yum

安装程序

lrzsz

需要进行安装

yum install lrzsz* -y

安装所有日志rz sz 的所有包,-y不经过确认直接安装

使用:

rz:

从本地选择上传文件

sz:

下载某一文件到本地

df

查看磁盘的使用情况

df或df -h

[root@localhost /]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/centos-root 17811456 1638232 16173224 10% /

devtmpfs 485780 0 485780 0% /dev

tmpfs 497948 0 497948 0% /dev/shm

tmpfs 497948 7824 490124 2% /run

tmpfs 497948 0 497948 0% /sys/fs/cgroup

/dev/sda1 1038336 135592 902744 14% /boot

tmpfs 99592 0 99592 0% /run/user/0

[root@localhost /]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 17G 1.6G 16G 10% /

devtmpfs 475M 0 475M 0% /dev

tmpfs 487M 0 487M 0% /dev/shm

tmpfs 487M 7.7M 479M 2% /run

tmpfs 487M 0 487M 0% /sys/fs/cgroup

/dev/sda1 1014M 133M 882M 14% /boot

tmpfs 98M 0 98M 0% /run/user/0

查看cpu使用cat /proc/cpuinfo

[root@localhost /]# cat /proc/cpuinfo

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 158

model name: Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz

stepping: 10

microcode: 0xb4

cpu MHz: 2904.005

cache size: 9216 KB

physical id: 0

siblings: 1

core id: 0

cpu cores: 1

apicid: 0

initial apicid: 0

fpu: yes

fpu_exception: yes

cpuid level: 22

wp: yes

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp

bogomips: 5808.01

clflush size: 64

cache_alignment: 64

address sizes: 42 bits physical, 48 bits virtual

power management:

tree

安装

yum install tree

使用

[root@localhost cxw]# tree

.

├── a

│   ├── aa

│   └── bb

├── a.txt

└── b

clear

或者ctrl l清屏

ls

ls

ls -a隐藏文件

ls -l详细信息

ls -al 隐藏+详细

su

切换用户

su root 切换用户身份

su - root 切换用户(显示登陆信息)

exit

退出当前用户

sudo

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

使用权限:在 /etc/sudoers 中有出现的使用者。

sudo -V

sudo -h

sudo -l

sudo -v

sudo -k

sudo -s

sudo -H

sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s

sudo command

4. 文件操作指令

mkdir

创建文件夹

touch

创建文件

cp

复制文件/文件夹

cp 文件 目标目录

cp -r 文件夹 目标路径 # 递归进行拷贝

mv

剪切文件(也可以改名)

mv 文件 目标路径

echo

输入内容

rm

删除文件

rm 文件 # 删除

rm -f 文件# 强制删除

rm -rf 文件# 递归+强制

查看文件内容

vi

cat

more 分页方式显示

查看大文件的内容 : cat 大文件.txt | more

less 与more相似,可前翻页

tail 查看文件尾部内容

head 查看文件头部

find

搜索文件

find 文件夹路径 -name 目标文件名

终端文件

终端文件 /dev/tty

黑洞文件 /dev/null

文件统计

wc 参数 文件名

-c 统计字节数

-l 统计行数

-w 统计字数

grep

强大的正则表达式,搜索文本并将相应的行打印出来

5.后台指令

& 后台运行

在命令的后面加上&,可以让一个命令在后台自动运行

job -l

查看后台的命令

history

记录所有的历史命令

history # 查看所有的历史命令(一般记录1000行)

!行数 # 执行行数的命令 (例如:\'!100\')

环境变量

echo $PATH

6. 常见面试题

https://www.cnblogs.com/passzhang/p/8552757.html

linux 全部都是一些命令,只需要大家不断去敲去熟练

自动化运维

python就业方向

web方向 (php, java)

爬虫+数据分析 (python)

自动化运维 (Python) saltstck ansible

人工智能 + 机器学习

案例比较

项目的流程

==>产品经理调研需求 ==>三方开会(产品经理,研发,运维) ==>研发流程 ==>开发 ==>测试(白盒测试,黑盒测试) ==>上线(运维)

传统的项目上线流程

打包压缩,发邮件给运维,运维解压到对应的linux目录下面,然后启动服务,访问就ok了

自动化的上线流程(代码发布系统)

做一个代码上线的系统,可以通过复选框选择要上线的服务器,上传对应的代码,直接上线,就ok

实现自动化的发布系统,我们需要知道服务器的IP地址,hostname,磁盘大小等服务器的基础信息

目标: 自动化运维就是标准化一切,实现各种自动化的系统,比如说(代码自动发布系统,监控系统,自动装机系统等)

CMDB简介

CMDB 是自动化运维的基石系统,是所有子系统的数据来源

CMDB就是配置管理数据库,存储与管理企业IT架构中设备的各种配置信息,通过识别、控制、维护,检查企业的IT资源,从而高效控制与管理不断变化的IT基础架构与IT服务,并为其它流程,例如事故管理、问题管理、变更管理、发布管理等流程提供准确的配置信息。

CMDB: 就是管理服务器的基础信息的 configure manage database

目标: 采集服务器的基础信息(ip,hostname,磁盘信息等)

CMDB可以存储并自动发现整个IT网络上的各种信息,比如一个IT网络上有多少台服务器、多少存储、设备的品牌、资产编号、维护人员、所属部门、服务器上运营什么操作系统、操作系统的版本、操作系统上有哪些应用、每个应用的版本等等,此外,CMDB还有一个非常重要的功能,即存储不同资源之间的依赖关系,如果网络上某个节点出现问题,通过CMDB,可以判断因此受到影响的业务

作者:爱喝咖啡的土拨鼠

链接:https://www.jianshu.com/p/9d6a246028e5

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

7759ca46a3af4b2fac029ba3c0cf2ba1.jpg

CMDB架构图

思考步骤:

1.如何获取服务器的主机名或者ip地址等信息?

答:执行linux的相关命令,比如说执行ifconfig获取IP地址

2.如何使用Python来执行linux命令?

答:使用subprocess执行

subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。

subprocess用来替换多个旧模块和函数:

os.system

os.spawn*

os.popen*

popen2.*

commands.*

运行python的时候,我们都是在创建并运行一个进程,linux中一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在python中,我们通过标准库中的subprocess包来fork一个子进程,并且运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所欲我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。

3.如何将采集到的数据发送给api?

答:使用requests模块完成发送数据

4.如何在服务端获取客户端post过来的数据?

答:使用request.body获取。然后接下来会判断头信息,content-type是啥类型

客户端发送的数据头

content-type: application/url-formed-encode

使用request.POST获取数据

content-type:application/json

使用 request.body获取

第一套方案:agent

缺点:每部署一台机器,都需要将写的采集的代码部署到服务器上一遍,然后设置定时任务,定时

执行

37bcab1b12fb4477b5f96aa1be34a4fe.jpg

a678c775cd884b99b77f214244ec315e.jpg

第二套方案:ssh类方案

2672c27bf90e4953800a8b04a169e617.jpg

894c24a0d42446689eb64c1f1bdb2c51.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值