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:]]\+// 刪除所有行首的空格
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97664