Linux常用命令

Linux常用系统命令

1.w:查看当前系统整体上的负载(不细化)

[root@centos7 ~]# w
 12:45:45 up 10 min,  2 users,  load average: 0.06, 0.03, 0.04
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      二23   10:01   0.01s  0.01s -bash
root     pts/0    192.168.200.1    12:37    1.00s  0.01s  0.00s w

load average后面的3个数值:

分别表示1分钟、5分钟、15分钟系统的平均负载值,负责检测单位时间内CPU活动进程数

2.vmstat:监控系统的详细状态(分6部分)

vmstat 1 5:每隔一秒钟打印一次状态,共打印5次(常使用此形式查看)

[root@centos7 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1595260   2076 126884    0    0    56     3   37   96  0  0 100  0  0

1)procs显示进程相关信息

r:运行和等待cpu时间片的进程数,如是否大于服务器cpu的个数

b:等待资源的进程数,如等待I/O,内存等

2)memory内存相关信息

3)swap交换分区内存情况

si:由交换区写入到内存的数据量

so:由内存写入到交换区的数据量

4)io磁盘使用情况

bi :从块设备读取数据的量(读磁盘);
bo: 从块设备写入数据的量(写磁盘);

3.cat /proc/cpuinfo:查看cpu详细信息

cat /proc/cpuinfo | head -n20:查看前20行信息

cat /proc/cpuinfo | tail -n20:查看后20行信息

4.top:动态监控进程所占系统资源,每隔3秒变一次,特点是将最高的进程放在最前面显示

top -bn1:静态显示系统资源使用情况,一次性全部输出

5.free:查看内存使用情况

free -m :以M为单位显示 free -g :以G为单位显示

6.ps:查看系统进程

ps aux 或 ps -elf

常连接管道符使用:ps aux | grep -c 进程名/ID

7.netstat:查看网络状态

netstat -ntpl:查看哪些端口启动(常用)

netstat -an:查看网络连接状态,和不带参数使用效果一样,带a表示把隐藏的也显示出来

Linux网络相关命令

1.ifconfig / ip a:查看网卡信息

2.systemctl restart network / service network restart:重启网卡

3.ifdown 网卡名;ifup 网卡名:重启某一个网卡

4.给1个网卡设定多重IP:

[root@centos7 ~]# cd /etc/sysconfig/network-scripts/

[root@centos7 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:34

然后编辑 ifcfg-eth0:1 这个配置文件,内容如下,一定要注意 DEVICE 这里
要写成 “eth33:34”.
编辑好后,重启网卡,之后再ifconfig查看网卡ip信息。

5.hostname:显示主机名

hostname xxx:临时修改主机名

hostnamectl set-hostname xxx:永久修改主机名

6.setenforce 0:临时关闭selinux

getenforce:查看selinux状态

Linux-crontab任务计划

1.常用的参数有:
-u :指定某个用户,不加-u选项则为当前用户;
-e :制定计划任务;
-l :列出计划任务;
-r :删除计划任务。

2.crontab -e:创建任务计划
写入内容:01 10 05 06 3 echo “ok” > /root/cron.log
从左到右,依次为:分,时,日,月,周,命令行。而上面的例子的含义是:在 6月 5日(这一天必须是星期 3)的10点 01分执行命令 echo “ok” > /root/cron.log

3.crontab -l:查看已经设定的任务计划

4.crontab -r删除计划

Linux系统数据备份—rsync

1.yum install -y rsync 使用yum安装rsync工具

2.rsync(远程同步),类似于scp,但不会像scp一样会覆盖以前的数据

3.命令用法:和cp、scp用法一致

本地备份:rsync -av 文件名 路径

远程备份:rsync -av 文件名 (root@localhost)IP:路径

远程同步数据到本地:rsync [OPTION]… [USER@]HOST:SRC DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… SRC [USER@]HOST::DEST

4.常用参数解释:

-a 归档模式,表示以递归方式传输文件,并保持所有属性

-r 对子目录以递归模式处理,主要是针对目录来说的

-v 打印一些信息出来,比如速率,文件数量等

–delete 删除那些 DST 中 SRC 没有的文件
–exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)

Linux系统日志

1.日志——审计和监测,实时监测系统状态,检测并追踪侵入者

2./var/log/messages—核心系统日志文件,通常在做故障诊断时首看的文件

dmesg:显示系统的启动信息,针对硬件出问题可用此命令(如网卡、磁盘)

3.last:查看Linux历史信息

[root@centos ~]# last |head
root pts/0 49.78.212.159 Wed Mar 25 12:08 - 14:54 (02:46)

从左至右依次为账户名称、登录终端、登录客户端 ip、登录日期及时长

4./var/log/secure:查看linux登录信息,包含ssh登陆的 成功/失败 的信息

Linux命令xargs和exec的用法——重难点

主要使用xargs和exec工具结合其他命令来实现业务需求

1.xargs举例:

[root@centos ~]# echo “991122” > a.txt
[root@centos ~]# ls a.txt | xargs cat
991122

1)它的作用就是把管道符前面的输出作为 xargs 后面的命令的输入。它的好
处在于可以把本来多步才能完成的任务简单一步就能完成。

2)xargs常常和 find命令一起使用.比如,查找当前目录创建时间大于1天的文件,然后再删除, 示例代码如下:

[root@centos ~]# find . -mtime +1 |xargs rm   ——最常见

xargs后面的 rm 也可以加选项,当是目录时,就需要-r选项了。

3)现在有一个这样的需求,查找当前目录下所有.txt 的文件,然后把这些.txt 的文件变成.txt_bak。正常情况下,我们不得不写脚本去实现,但是使用xargs就一步,示例代码如下:

[root@centos ~]# touch a.txt b.txt c.txt d.txt e.txt
[root@centos ~]# ls
a.txt b.txt c.txt d.txt e.txt
[root@centos ~]# ls *.txt | xargs -n1 -i{} mv {} {}_bak
[root@Ventos ~]# ls
a.txt b.txt c.txt d.txt e.txt

xargs -n1 –i{} 类似 for 循环,-n1 意思是一个一个对象的去处理,-i{}把前面的对象使用{}取代

mv {} {}_bak 相当于 mv a.txt a.txt_bak

2.使用 find 命令时,经常使用一个选项就是这个-exec了,可以达到和 xargs同样的效果。比如,查找当前目录创建时间大于 1天的文件并删除,示例代码如下:

[root@centos ~]# find . -mtime +1 -exec rm -rf {} \;

这个命令中也是把**{}作为前面 find出来的文件的替代符,后面的\为;的脱意符**,不然 shell 会把分号作为该行命令的结尾。这个-exec有时候也挺实用的,它同样可以实现刚刚上面批量更改文件名的需求.

这个命令中也是把**{}作为前面 find出来的文件的替代符,后面的\为;的脱意符**,不然 shell 会把分号作为该行命令的结尾。这个-exec有时候也挺实用的,它同样可以实现刚刚上面批量更改文件名的需求.

3.screen 工具介绍
有时候,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。

1)使用 nohup,示例代码如下:

[root@VM_10_10_centos ~]# cat /usr/local/sbin/sleep.sh
#!/bin/bash
sleep 1000
[root@VM_10_10_centos ~]# nohup sh /usr/local/sbin/sleep.sh&
[1]19997

上列代码中直接加一个 ‘&’ 虽然丢到后台了,但是当退出该终端时很有可能这个脚本也会退出的,而在前面加上 nohup 就没有问题了,nohup的作用就是不挂断地运行命令。

  1. screen工具的使用
    screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。相当于一个连接会话克隆多个窗口。

1)打开一个会话,直接输入 screen 命令然后回车,进入 screen 会话窗口。
如果你没有 screen 命令,请用 yum install -y screen 安装,示例代码如下:

[root@VM_10_10_centos ~]# screen

2)screen -ls 查看已经打开的 screen 会话,示例代码如下:

[root@VM_10_10_centos ~]# screen -ls
There is a screen on:
20990.pts-0.Linux (Attached)
1 Socket in /var/run/screen/S-root.

3)Ctrl +a 再按 d退出该 screen 会话,只是退出,并没有结束。结束的话输入 Ctrl +d 或者输入 exit

4)退出后还想再次登录某个 screen 会话,使用 sreen -r [screen 编号],当只有一个 screen 会话时,后面的编号是可以省略的。当你有某个需要长时间运行的命令或者脚本时就打开一个 screen 会话,然后运行该任务。按 ctrl +a 再按 d 退出会话,不影响终端窗口上的任何操作。

[root@gongfang ~]# echo 123456 > a.txt
[root@gongfang ~]# cat !$
cat a.txt
123456

!centos7 zhantie命令 centos7基础命令_centos=a.txt