日常工作就是写脚本、测试、部署、服务器环境配置、数据流监控、爬虫运行状况监控等
1、查看当前目录下所有文档的内容行数 : wc -l *
[root@localhost conf]# wc -l server.xml 查看指定文件的内容行数
167 server.xml
clear 清屏
2、查看当前目录下所有文档的大小 : du -sh *
[root@localhost conf]# du -sh server.xml 查看指定文件的大小
8.0K server.xml
3、查看日志文件:tail -10f server.xml 可以指定显示行数
4、查看服务器磁盘使用情况:df -h
5、查看服务器内存状况:free -m
6、查看当前目录下文件数量:ls -l |grep "^-"|wc -l
[root@localhost conf]# ls -lh
total 228K
drwxr-x---. 3 root root 22 Apr 17 12:44 Catalina
-rw-------. 1 root root 13K Mar 13 23:58 catalina.policy
-rw-------. 1 root root 7.1K Mar 13 23:58 catalina.properties
7、统计当前目录下的目录个数:ls -l |grep "^d" |wc -l
8、查看运行指定进程 , 并杀掉此进程:
ps -ef |grep python3
kill -9 进程号
9、vi编辑器的功能:
1)示脚本当前光标所在行号:切换到命令行模式nu
2)显示脚本所有行号:命令行模式下set nu
10、统计当前目录下的文件个数,包括子目录中的(R必须大写,否则无效):ll -R |grep "^-" |wc -l
11、统计当前目录下的目录个数,包括所有子目录中:ll -R |grep "^d" |wc -l
12、批量替换文件指定内容:
find -name 'nohup.out' | xargs perl -pi -e 's|old_str|new_str|g'
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
Linux企业运维人员最常用150个命令汇总
命令 |
功能说明 |
线上查询及帮助命令(2个) |
|
man |
查看命令帮助,命令的词典,更复杂的还有info,但不常用。 |
help |
查看Linux内置命令的帮助,比如cd命令。 |
文件和目录操作命令(18个) |
|
ls |
全拼list,功能是列出目录的内容及其内容属性信息。 |
cd |
全拼change directory,功能是从当前工作目录切换到指定的工作目录。 |
cp |
全拼copy,其功能为复制文件或目录。 |
find |
查找的意思,用于查找目录及目录下的文件。 |
mkdir |
全拼make directories,其功能是创建目录。 |
mv |
全拼move,其功能是移动或重命名文件。 |
pwd |
全拼print working directory,其功能是显示当前工作目录的绝对路径。 |
rename |
用于重命名文件。 |
rm |
全拼remove,其功能是删除一个或多个文件或目录。 |
rmdir |
全拼remove empty directories,功能是删除空目录。 |
touch |
创建新的空文件,改变已有文件的时间戳属性。 |
tree |
功能是以树形结构显示目录下的内容。 |
basename |
显示文件名或目录名。 |
dirname |
显示文件或目录路径。 |
chattr |
改变文件的扩展属性。 |
lsattr |
查看文件扩展属性。 |
file |
显示文件的类型。 |
md5sum |
计算和校验文件的MD5值。 |
查看文件及内容处理命令(21个) |
|
cat |
全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 |
tac |
tac是cat的反向拼写,因此命令的功能为反向显示文件内容。 |
more |
分页显示文件内容。 |
less |
分页显示文件内容,more命令的相反用法。 |
head |
显示文件内容的头部。 |
tail |
显示文件内容的尾部。 |
cut |
将文件的每一行按指定分隔符分割并输出。 |
split |
分割文件为不同的小片段。 |
paste |
按行合并文件内容。 |
sort |
对文件的文本内容排序。 |
uniq |
去除重复行。oldboy |
wc |
统计文件的行数、单词数或字节数。 |
iconv |
转换文件的编码格式。 |
dos2unix |
将DOS格式文件转换成UNIX格式。 |
diff |
全拼difference,比较文件的差异,常用于文本文件。 |
vimdiff |
命令行可视化文件比较工具,常用于文本文件。 |
rev |
反向输出文件内容。 |
grep/egrep |
过滤字符串,三剑客老三。 |
join |
按两个文件的相同字段合并。 |
tr |
替换或删除字符。 |
vi/vim |
命令行文本编辑器。 |
文件压缩及解压缩命令(4个) |
|
tar |
打包压缩。oldboy |
unzip |
解压文件。 |
gzip |
gzip压缩工具。 |
zip |
压缩工具。 |
信息显示命令(11个) |
|
uname |
显示操作系统相关信息的命令。 |
hostname |
显示或者设置当前系统的主机名。 |
dmesg |
显示开机信息,用于诊断系统故障。 |
uptime |
显示系统运行时间及负载。 |
stat |
显示文件或文件系统的状态。 |
du |
计算磁盘空间使用情况。 |
df |
报告文件系统磁盘空间的使用情况。 |
top |
实时显示系统资源使用情况。 |
free |
查看系统内存。 |
date |
显示与设置系统时间。 |
cal |
查看日历等时间信息。 |
搜索文件命令(4个) |
|
which |
查找二进制命令,按环境变量PATH路径查找。 |
find |
从磁盘遍历查找文件或目录。 |
whereis |
查找二进制命令,按环境变量PATH路径查找。 |
locate |
从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库。 |
用户管理命令(10个) |
|
useradd |
添加用户。 |
usermod |
修改系统已经存在的用户属性。 |
userdel |
删除用户。 |
groupadd |
添加用户组。 |
passwd |
修改用户密码。 |
chage |
修改用户密码有效期限。 |
id |
查看用户的uid,gid及归属的用户组。 |
su |
切换用户身份。 |
visudo |
编辑/etc/sudoers文件的专属命令。 |
sudo |
以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。 |
基础网络操作命令(11个) |
|
telnet |
使用TELNET协议远程登录。 |
ssh |
使用SSH加密协议远程登录。 |
scp |
全拼secure copy,用于不同主机之间复制文件。 |
wget |
命令行下载文件。 |
ping |
测试主机之间网络的连通性。 |
route |
显示和设置linux系统的路由表。 |
ifconfig |
查看、配置、启用或禁用网络接口的命令。 |
ifup |
启动网卡。 |
ifdown |
关闭网卡。 |
netstat |
查看网络状态。 |
ss |
查看网络状态。 |
深入网络操作命令(9个) |
|
nmap |
网络扫描命令。 |
lsof |
全名list open files,也就是列举系统中已经被打开的文件。 |
|
发送和接收邮件。 |
mutt |
邮件管理命令。 |
nslookup |
交互式查询互联网DNS服务器的命令。 |
dig |
查找DNS解析过程。 |
host |
查询DNS的命令。 |
traceroute |
追踪数据传输路由状况。 |
tcpdump |
命令行的抓包工具。 |
有关磁盘与文件系统的命令(16个) |
|
mount |
挂载文件系统。 |
umount |
卸载文件系统。 |
fsck |
检查并修复Linux文件系统。 |
dd |
转换或复制文件。 |
dumpe2fs |
导出ext2/ext3/ext4文件系统信息。 |
dump |
ext2/3/4文件系统备份工具。 |
fdisk |
磁盘分区命令,适用于2TB以下磁盘分区。 |
parted |
磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。 |
mkfs |
格式化创建Linux文件系统。 |
partprobe |
更新内核的硬盘分区表信息。 |
e2fsck |
检查ext2/ext3/ext4类型文件系统。 |
mkswap |
创建Linux交换分区。 |
swapon |
启用交换分区。 |
swapoff |
关闭交换分区。 |
sync |
将内存缓冲区内的数据写入磁盘。 |
resize2fs |
调整ext2/ext3/ext4文件系统大小。 |
系统权限及用户授权相关命令(4个) |
|
chmod |
改变文件或目录权限。 |
chown |
改变文件或目录的属主和属组。 |
chgrp |
更改文件用户组。 |
umask |
显示或设置权限掩码。 |
查看系统用户登陆信息的命令(7个) |
|
whoami |
显示当前有效的用户名称,相当于执行id -un命令。 |
who |
显示目前登录系统的用户信息。 |
w |
显示已经登陆系统的用户列表,并显示用户正在执行的指令。 |
last |
显示登入系统的用户。 |
lastlog |
显示系统中所有用户最近一次登录信息。 |
users |
显示当前登录系统的所有用户的用户列表。 |
finger |
查找并显示用户信息。 |
内置命令及其它(19个) |
|
echo |
打印变量,或直接输出指定的字符串 |
printf |
将结果格式化输出到标准输出。 |
rpm |
管理rpm包的命令。 |
yum |
自动化简单化地管理rpm包的命令。 |
watch |
周期性的执行给定的命令,并将命令的输出以全屏方式显示。 |
alias |
设置系统别名。 |
unalias |
取消系统别名。 |
date |
查看或设置系统时间。 |
clear |
清除屏幕,简称清屏。 |
history |
查看命令执行的历史纪录。 |
eject |
弹出光驱。 |
time |
计算命令执行时间。 |
nc |
功能强大的网络工具。 |
xargs |
将标准输入转换成命令行参数。 |
exec |
调用并执行指令的命令。 |
export |
设置或者显示环境变量。 |
unset |
删除变量或函数。 |
type |
用于判断另外一个命令是否是内置命令。 |
bc |
命令行科学计算器 |
系统管理与性能监视命令(9个) |
|
chkconfig |
管理Linux系统开机启动项。 |
vmstat |
虚拟内存统计。 |
mpstat |
显示各个可用CPU的状态统计。 |
iostat |
统计系统IO。 |
sar |
全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。 |
ipcs |
用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 |
ipcrm |
用来删除一个或更多的消息队列、信号量集或者共享内存标识。 |
strace |
用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 |
ltrace |
命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。 |
关机/重启/注销和查看系统信息的命令(6个) |
|
shutdown |
关机。 |
halt |
关机。 |
poweroff |
关闭电源。 |
logout |
退出当前登录的Shell。 |
exit |
退出当前登录的Shell。 |
Ctrl+d |
退出当前登录的Shell的快捷键。 |
进程管理相关命令(15个) |
|
bg |
将一个在后台暂停的命令,变成继续执行 (在后台执行)。 |
fg |
将后台中的命令调至前台继续运行。 |
jobs |
查看当前有多少在后台运行的命令。 |
kill |
终止进程。 |
killall |
通过进程名终止进程。 |
pkill |
通过进程名终止进程。 |
crontab |
定时任务命令。 |
ps |
显示进程的快照。 |
pstree |
树形显示进程。 |
nice/renice |
调整程序运行的优先级。 |
nohup |
忽略挂起信号运行指定的命令。 |
pgrep |
查找匹配条件的进程。 |
runlevel |
查看系统当前运行级别。 |
init |
切换运行级别。 |
service |
启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。 |
转载自 http://oldboy.blog.51cto.com/2561410/1951107
1.操作系统状态监控
每天登陆系统查看系统运行的负荷如何,有无报错日志或报警日志。
2.操作系统故障排除
依据操作系统故障日志分析出现该报警或报错的原因,从而解决问题,保证操作系统的高可用性。
3.服务器状态确认
服务器上除了跑着操作系统,必然会安装一些应用程序或数据库,运维工程师每天需要查看linux系统上运行着的应用程序或数据库状态是否正常。
4.备份
运维工程师的看家本事,数据库备份和恢复,一般来说只要给数据库制定了备份策略它会自己备份,你只需要监控备份任务是否执行了就可以。
5.服务器调优
这个要求就比较高了,linux随着使用时间的增长,状态会有所下降,运维工程师有能力的可以对操作系统及数据库进行性能调优,保证系统处于一个最佳状态。
一般来说,运维工程师的工作以监控为主,出现问题的时候才会进行处理。
linux运维工作职责
运维人员做事需遵循:简单、易用、高效
(2)运维人员服务的3大宗旨:
1、企业数据安全保障。
2、7*24小时业务持续提供服务。
3、不断提升用户感受、体验。
(3)初中级运维的日常涉及工作:
1、评估产品需求及发展需求,设计网站架构。
2、选择IDC公司、云产品,CDN等产品。
3、采购服务器、安装系统、配置服务、服务器IDC上架。
4、调试网络、优化系统及服务。
5、上线代码、配合研发搭建环境、调试、测试代码。
6、监控硬件、软件及各种业务应用。
7、配置收集日志和,根据日志信息报警及优化系统及服务
8、解决日常问题,如硬件(服务器、交换机、硬件、网络)、软件(网络服务)、各类业务服务故障。
9、编写自动化脚本(Shell,Python),自动化部署服务。
(4)高级运维涉及的工作:
1、监控带宽、流量、并发、业务接口等关键资源及访问信息的变化趋势。
2、根据相应趋势变化不断优化网站架构。
3、设计各类解决方案,解决公司业务发展中的遇到的网站瓶颈。
4、编写各种自动化脚本(Shell,Python),自动化部署优化服务。
5、开发自动化部署和管理平台(CMDB),实现平台化运维。
5、开发运维管理平台、及运维工具产品,提升服务效率。
6、制定运维流程、规范、制度,并有序推进。
7、研究先进运维理念、模式,确保业务持续稳定、有序。
转载:https://www.cnblogs.com/nulige/p/6195867.html
运维工程师使用的运维平台和工具包括:
-
Web服务器:apache、tomcat、nginx、lighttpd
-
监控:nagios、ganglia、cacti、zabbix
-
自动部署:ansible、sshpt、salt
-
配置管理:puppet、cfengine
-
负载均衡:lvs、haproxy、nginx
-
传输工具:scribe、flume
-
备份工具:rsync、wget
-
数据库:mysql、oracle、sqlserver
-
分布式平台:hdfs、mapreduce、spark、storm、hive
-
分布式数据库:hbase、cassandra、redis、MongoDB
-
容器:lxc、docker
-
虚拟化:openstack、xen、kvm
-
安全:kerberos、selinux、acl、iptables
-
问题追查:netstat、top、tcpdump、last
这里给出一点小的建议: 大致需要学习下这四个部分:
-
自动化运维(Ansible,Puppet,Saltstack等)
-
Devops(Docker,K8s,Jenkins,Jira等),
-
云服务技术(虚拟化、OpenStack、AWS及阿里云各种产品服务架构等)
-
python
https://blog.51cto.com/12592106/2073504
快捷键:
退出快捷键:有登陆就会有退出,那么在登录Linux系统之后,有哪些快捷的退出命令呢。
1. exit:在命令行输入exit,系统自动退出。
2. Ctrl + D :在键盘输入Ctrl + D ,也能达到快速退出的目的。
3. 删除光标前的命令:在输入一个命令的时候,需要删除光标前的命令,我们可以在键盘输入Ctrl +U(向前删除,删除光标前的命令)。
4. 删除光标后的命令:在输入一个命令的时候,需要删除光标后的命令,我们可以在键盘输入Ctrl +K(向后删除,删除光标后的命令)。
5. 终段快捷键:Ctrl + C (终断,直接将进程kill掉了),下图分别为终段前后的界面显示。
6. 暂停快捷键:Ctrl + Z(进程还在,只是暂停运行,暂时休眠,fg之后可以恢复进程)
7. 清屏快捷键:在Linux命令窗口输入太多命令之后,为了方便,经常会用到清屏的命令 1. clear:在命令行输入clear命令之后,可以清除界面所有的输入和输出信息 2.Ctrl + L:在键盘输入Ctrl + L 也能达到clear命令相同的效果
8. 锁屏快捷键:用tail命令查看日志的时候,日志内容是动态变化的,此时想要定位某一时刻的日志信息,就可以使用Ctrl + S进行锁屏,此时敲击所有的命令,都没有反应。
9. 解锁快捷键:用Ctrl + S完成之后,如果还想继续其它操作,就需要进行解锁操作,快捷命令为Ctrl + Q。
整理收集一些Linux运维管理、系统管理的常用命令,太多了记不住,只能记录下来方便日后查看。也可以和大家分享。如果你有好的一句话命令也贴出来吧。本文持续更新中。
1、linux启动过程
开启电源 –> BIOS开机自检 –> 引导程序lilo或grub–> 内核的引导(kernel boot)–> 执行init(rc.sysinit、rc)–> mingetty(建立终端) –>Shell
2、网卡绑定多ip
# ifconfig eth0:1 192.168.1.99 netmask 255.255.255.0
3、设置DNS、网关
# echo “nameserver 202.16.53.68” >> /etc/resolv.conf
# route add default gw 192.168.1.1
4、弹出、收回光驱
# eject
# eject -t
5、用date查询昨天的日期
# date –date=yesterday
6、查询file1里面空行的所在行号
# grep ^$ file
7、查询file1以abc结尾的行
# grep abc$ file1
8、打印出file1文件第1到第三行
# sed -n ‘1,3p’ file1
# head -3 file1
9、清空文件
# true > 1.txt
# echo “” > 1.txt
# > 1.txt
# cat /dev/null > 1.txt
10、删除所有空目录
# find /data -type d -empty -exec rm -rf {} ;
11、linux下批量删除空文件(大小等于0的文件)的方法
# find /data -type f -size 0c -exec rm -rf {} ;
# find /data -type f -size 0c|xargs rm –f
12、删除五天前的文件
# find /data -mtime +5 -type f -exec rm -rf {} ;
13、删除两个文件重复的部份,打印其它
# cat 1.txt 3.txt |sort |uniq
14、攻取远程服务器主机名
# echo `ssh $IP cat /etc/sysconfig/network|awk -F = ‘/hostname/ {print $2}’`
15、实时监控网卡流量(安装iftop)
# /usr/local/iftop/sbin/iftop -i eth1 -n
16、查看系统版本
# lsb_release -a
17、强制踢出登陆用户
# pkill -kill -t pts/1
18、tar增理备份、还原
# tar -g king -zcvf kerry_full.tar.gz kerry
# tar -g king -zcvf kerry_diff_1.tar.gz kerry
# tar -g king -zcvf kerry_diff_2.tar.gz kerry
# tar -zxvf kerry_full.tar.gz
# tar -zxvf kerry_diff_1.tar.gz
# tar -zxvf kerry_diff_2.tar.gz
19、将本地80端口的请求转发到8080端口,当前主机外网IP为202.96.85.46
-A PREROUTING -d 202.96.85.46 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.9.10:8080
20、在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh
# crontab -e
0 6-12/2 * 11 * /usr/bin/httpd.sh
21、查看占用端口8080的进程
# netstat -tnlp | grep 8080
lsof -i:8080
22、在Shell环境下,如何查看远程Linux系统运行了多少时间?
# ssh user@被监控主机ip “uptime”
23、查看CPU使用情况的命令
每5秒刷新一次,最右侧有CPU的占用率的数据
# vmstat 5
top 然后按Shift+P,按照进程处理器占用率排序
# top
24、查看内存使用情况的命令
用free命令查看内存使用情况
# free -m
top 然后按Shift+M, 按照进程内存占用率排序
# top
25、查看磁盘i/o
用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次
# iostat -d -x /dev/sdc3 2
26、修复文件系统
# fsck –yt ext3 /
-t 指定文件系统
-y 对发现的问题自动回答yes
27、read命令5秒后自动退出
# read -t 5
28、grep -E -P 是什么意思
-E, –extended-regexp 采用扩展正规表达式。
-P,–perl-regexp 采用perl正规表达式
29、vi编辑器(涉及到修改,添加,查找)
插入(insert)模式
i 光标前插入
I 光标行首插入
a 光标后插入
A 光标行尾插入
o 光标所在行下插入一行,行首插入
O 光标所在行上插入一行,行首插入
G 移至最后一行行首
nG 移至第n行行首
n+ 下移n行,行首
n- 上移n行,行首
:/str/ 从当前往右移动到有str的地方
:?str? 从当前往左移动到有str的地方
:s/str1/str2/ 将找到的第一个str1替换为str2
:s/str2/str2/g 将当前行找到的所有str1替换为str2
:n1,n2s/str1/str2/g 将从n1行至n2行找到的所有的str1替换为str2
:1,.s/str1/str2/g 将从第1行至当前行的所有str1替换为str2
:.,$s/str1/str2/g 将从当前行至最后一行的所有str1替换为str2
30、linux服务器之间相互复制文件
copy 本地文件1.sh到远程192.168.9.10服务器的/data/目录下
# scp /etc/1.sh [email protected]:/data/
copy远程192.168.9.10服务器/data/2.sh文件到本地/data/目录
# scp [email protected]:/data/2.sh /data/
31、使用sed命令把test.txt文件的第23行的TEST换成TSET.
# sed -i ’23s/TEST/TSET/’ test.txt
# sed -i ’23 s/TEST/TSET/’ test.txt
32、使history命令能显示时间
# export HISTTIMEFORMAT=”%F %T ”
33、如何查看目标主机192.168.0.1开放那些端口
# nmap -ps 192.168.0.1
34、如何查看网络连接
# netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
35、如何查看当前系统使用了那些库文件
# ldconfig -v
36、如何查看网卡的驱动版本
# ethtool -i eth0
37、使用tcpdump来监视主机192.168.0.1的tcp的80端口
# tcpdump tcp port 80 host 192.168.0.1
38、 如何看其它用户的邮件列表
# mial -u king
39、对大文件进行切割
按每个文件1000行来分割
# split -l 1000 httperr8007.log httperr
按照每个文件5m来分割
# split -b 5m httperr8007.log httperr
40、合并文件
取出两个文件的并集(重复的行只保留一份)
# cat file1 file2 | sort | uniq
取出两个文件的交集(只留下同时存在于两个文件中的文件)
# cat file1 file2 | sort | uniq -d
删除交集,留下其他的行
# cat file1 file2 | sort | uniq –u
41、打印文本模式下运行的服务
# chkconfig –list|awk ‘$5~/on/{print $1,$5}’
42、删除0字节文件
# find -type f -size 0 -exec rm -rf {} ;
43、查看进程,按内存从大到小排列
# ps -e -o “%C : %p : %z : %a”|sort -k5 -nr
44、查看http的并发请求数及其TCP连接状态
# netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
45、获取IP地址
# ifconfig eth0|sed -n ‘2p’|awk ‘{print $2}’|cut -c 6-30
perl实现获取IP地址:
# ifconfig -a | perl -ne ‘if ( m/^s*inet (?:addr:)?([d.]+).*?cast/ ) { print qq($1n); exit 0; }’
46、获取内存大小
# free -m |grep “Mem” | awk ‘{print $2}’
47、查看CPU核心数
# cat /proc/cpuinfo |grep -c processor
48、查看磁盘使用情况
# df -h
49、查看有多少个活动的PHP-cgi进程
# netstat -anp | grep php-cgi | grep ^tcp | wc -l
50、查看硬件制造商
# dmidecode -s system-product-name
原文链接:http://www.linuxode.net/2017/114.html
https://www.sohu.com/a/220304711_100008608