学习笔记(16)

1.ps aux TIME 是分配的时间片的总和

  ps的状态

  S: interruptable sleeping 

  D: uninterruptable sleeping

  T: stopped

  Z: zombie

  +: 前台进程

  l: 多线程进程

  L: 内存分页并带锁

  N: 低优先级进程

  <: 高优先级进程

  s: session leader, 会话(子进程)发起者

  # ps xo pid,cmd,%cpu,tty x要在前,o后面要紧跟属性

  # ps xo pid,cmd,%cpu k %cpu  按照cpu来排序,k 选项指定哪列排序  属性加-倒序

  图形化界面的占用内存较高,生产建议以init 3 级别运行

  # ps L 显示支持的属性

  # euser,ruser     执行passwd命令两列不相同,因为passwd命令有特殊权限suid所以执行命令的用于要以命令所有者的身份来执行,所以euser应该是root,而ruser是执行该命令的用户

  # renice 调整优先级 renice -n -10 2612 

  # nice -n 5 sleep 100 直接为进程指定优先级(只有root用户可以指定进程优先级)

  # ps命令的属性psr可以查看到进程在哪颗cpu上运行

  # ps -C f1.sh -C f2.sh (-C f1.sh,f2.sh)shell脚本需要#!/bin/bash

  # ps -eo comm,etime,user |grep systemd 可以查看开机时间(etime为系统运行时间) grep搜索的内容要在ps的命令中出现

2.# pidof vim 只查看进程的id号,kill命令的时候可以使用  pidof httpd | xargs kill -9 注意要使用xargs 因为kill命令不接收标准输入

3.# uptime  load average 剩余多少个任务没有完成(1,5,10分钟内)

  [root@centos7 ~]#uptime

  11:03:39 up  1:35,  4 users,  load average: 0.00, 0.01, 0.05

  11:03:39 表示当前时间

  1::35 表示的是服务器的运行时间(从开机至现在)

  4 users: 表示当前用户开启的终端数(w 命令可查看)

  load average: 分别表示1分钟,5分钟,10分钟的负载情况即1、5、10分钟还剩多少任务没有完成,值越大表明负载越高(值大小一般不超过1)

  系统负载:指在特定时间间隔内运行队列中的平均进程数

  

  # top

  hi  硬中断(如敲击键盘鼠标似的为硬件中断)  si 软中断(程序的中断)

  id(idle)  空闲

  M:内存排序

  P:CPU排序(默认排序方式)

  d: 指定刷新的时间

  l:是否显示uptime行

  1:多CPU各自的显示状态信息(顺便可以查看cpu的个数,lscpu)

  k:杀掉进程

  W:保存状态至文件

4. pgrep -t terminal 指定显示某终端的进程,如:pgrep -t pts/0

   pgrep -l 显示进程名和pid

5.清空free 命令中的buffer 空间的文件:/proc/sys/vm/drop_caches  

  # echo 1 > /proc/sys/vm/drop_caches 清空free 显示的buffer

6.vmstat 1  3  1秒一执行 3秒退出

7.一次写入大于内存的大小的数据,可以查看到swap占用的情况

  # dd if=/dev/zero of=/data.file bs=2G count=3

8.pmap pid 查看进程内存的分配情况

9.kill -1 pid  重读配置文件(有时需要重新启动服务)

  交互程序cat bc 可以使用ctrl + \ 来终止程序

  kill 杀不掉mingetty,centos6的登录终端进程

  killall 默认也是15信号

10.如ping 127.0.0.1 可以通过ping 127.1 来简写

11.ctrl + z  stopped ,使用bg 作业号来运行

   kill -19 ping 可以让后台运行转变为后台休眠

   kill -18 ping 可以让后台由休眠转为后台运行

12.Ctrl +c  是2号信号 

13.作业在执行的时候依然可以输入命令来执行如 ping 127.0.0.1 &

14.jobs只能在本终端查看到后台的进程

15.使用&将进程放到后端执行,但依然是与终端有关的,可以通过ps aux 命令查看到,如果断网进程依旧关闭,为了避免此种情况可以使用screen ,断开后使用screen -r 恢复

16.并行执行

   脚本中执行:

   ping 127.1 &

   ping 127.2 &

   ping 127.3 &

   命令行中并行执行

   (ping 127.1 &);(ping 127.2 &);(ping 127.3 &)

   { ping 127.1 & ping 127.2 & ping 127.3 & }  注意两边的空格

17. 时间始终同步设置

    vi /etc/chrony.conf  始终保持同步,如果时间差别太大的话要使用ntpdate 172.20.0.1来立即同步

    server 172.20.0.1 iburst

    systemctl enable chronyd 

    systemctl start chronyd


    centos6: /etc/ntp.conf   centos7: /etc/chrony.conf  两版本的名字不同

    service ntpd start

    chkconfig ntpd on  

18.at 17:00    ctrl+d 结束

   at -l 查看作业

   at -c 1  查看指定作业的详细,内容来自 /var/spool/at 

   ls -l /var/spool/at/  at命令写入到该文件中

   at now + 15minutes

   at 计划任务中如果有标准输出是发送至邮件中的,为避免大量垃圾邮件可以重定向至/dev/null

   at now + 1minutes < at2.txt

   echo wall atjob | at now + 1 min

   at 支持标准输入,所以可以使用< 和 |

   /etc/at.{allow|deny},默认只有黑名单,可以手动创建白名单,白名单黑名单都有的用户白名单的优先级高

   白名单有的话,只有白名单的人才可以执行at,如果白名单里面没有,黑名单里面有的则没有权限,没有白名单,不在黑名单的人可以执行,白名单黑名单全没有的时候只有root可以执行at

   脚本中使用at计划任务

   at 18:00 <<EOF

   rm -rf /data/*

   EOF

   白名单黑名单只是禁止用户再去创建at计划任务,如果将原有人员添加至黑名单,计划任务还是可以执行

19.ctrl + D (Ctrl + \) 关闭交互程序

20.crond 计划任务和at 计划任务 如果有标准输出会输出至邮件

21.crond的配置文件/etc/crontab,需要指定执行的用户名,命令写入的疾患任务不需要加

   /var/log/cron 日志文件

   10 21 * * * centos /bin/echo "Howdy!" 输出会发送至邮件

   普通用户可以使用crontab 来创建,不能使用/etc/crontab来创建

   # crontab -e (/var/spool/cron/下面创建计划任务文件,但是不能使用vim直接编辑,该文件有特殊权限suid,不能直接修改)

   # crontab -e -u username

   # crontan -r -u wang 删除计划任务

22.df |grep '^/dev/sd*' | sed -r 's@.*[ ]+([0-9]{1,3})%.*@\1@' |sort -nr |head -1

23.循坏重启(centos7)

   在出现引导菜单时输入e键

   在linux 16开头行的末尾加rd.break后输入ctrl +x  

   启动之后使用mount 命令查看根分区挂载的目录,因为是只读方式挂载所以要使用mount -o remount,rw /sysroot/ 来以读写的方式重新挂载

   vim /sysroot/etc/crontab 编辑计划任务,删除循环重启行后保存,init 3 启动

   @reboot root reboot 循环重启


   centos 6 

   在出现引导菜单时输入a键

   最后加 空格 1 后 Enter 

   启动后修改循环重启计划任务文件vi /etc/crontab 


24.rpm -ql crontabs 

   run-parts  指定目录下面所有可执行脚本全部运行

25.cat /etc/crond.0hourly 系统定义的

   可以将计划任务写入到/etc/cron.*系统定义的目录中

   按要求将可以将自己的脚本放到指定的目录中来定时执行

26./etc/anacrontab     period in days 隔多长时间来执行

27.脚本中加sleep 20 每20秒中执行一次

   vim f1.sh

   cmd 0

   sleep 20

   cmd 20

   sleep 20

   cmd 40


   死循环

   vim f1.sh

   cmd

   sleep 20

   f1.sh

   usleep 1000000 微秒级别

28.Centos6 修改配置网卡前要关闭NetworkManager,否则重启network服务容易报错,#service NetworkManager stop chkconfi NetworkManager off

29.Centos7同步时间时多次不成功,后来发现是时区的问题,# timedatectl status 查看时区信息, #timedatectl set-timezone Asia/Shanghai

30.脚本中匹配数字的时候,可以使用正则表达是 if [[ $num =~ ^[0-9]{1,3}$ ]] ;then ... (补充: [[]] 内部使用的正则表达式扩展正则表达式)

31.[root@centos6 ~]# free 

             total       used       free     shared    buffers     cached

   Mem:       1004112     937232      66880       3728      26232     585796

   -/+ buffers/cache:     325204     678908

   Swap:      2047996          8    2047988


   325204 = 66880 - 26232 - 585796    

   678908 = 66880 + 26232 + 585796

32.算数运算

   # echo $((1+2))

   # echo $[1+2]

   # echo 1+2 |bc

33.man 5 crontab

   note: The day of a command’s execution can be specified by two fields — day of month, and day of week.  If both fields are restricted

   (ie, aren’t *), the command will be run when either field matches the current time.  For example,

   "30 4 1,15 * 5" would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.

34.vim 编辑器中使用的是标准的正则表达式

   :%s/^[[:space:]]\+//  删除所有行首的空格

猜你喜欢

转载自blog.51cto.com/9980200/2113058