• ps 查看进程信息

参数介绍:
待写...
 
# 更多的命令可以用 man ps 来查看。
使用示例:
# 显示当前进程信息
ps -ef
 
# 显示 ssh 进程( grep -v grep 表示排除关键词grep,因为使用 grep匹配ssh,也会把grep自己的进程匹配进去的)
ps -ef|grep -v grep|grep ssh
# 输出示例
UID        PID  PPID  C STIME TTY          TIME CMD #注意使用上面命令的话是不会显示表头这一行的,我只是为了更好理解加上的
root      1738     1  0 01/27   ?       00:08:56 /usr/sbin/sshd
# 待写...
表头解释:
UID :启动进程的用户
PID :进程标识符(进程 1代表init 是整个系统的父进程)
PPID :父进程标识符(进程 1代表init 是整个系统的父进程)
C :CPU占用率 %
STIME :启动进程的日期
TTY :终端号
TIME :进程运行时间(非休眠状态)
CMD :启动进程的命令(或进程名/进程程序所在目录)


  • kill 结束进程

# 当我们想要结束一个进程的时候,我们可以用 kill 命令
# PID是每个进程的一个唯一标识符,可以使用上面的 ps 命令来查看你要结束进程的PID。
 
# 假设我们要结束 Nginx的进程,那么这样做( grep -v grep 表示排除关键词grep,因为使用 grep匹配ssh,也会把grep自己的进程匹配进去的):
ps -ef|grep -v grep|grep "nginx"
 
# 输出示例
UID PID PPID C STIME TTY TIME CMD #注意使用上面命令的话是不会显示表头这一行的,我只是为了更好理解加上的
root 2356 1 0 04/03 ? 00:03:12 nginx
 
# 然后我们可以看到第二列的 PID 进程标识符,然后我们 kill 即可。
kill -9 2356
 
# 中断进程 -2 相当于 程序运行在前台,然后输入 Ctrl+C 的效果,但是进程有权利忽略,所以不一定能结束进程
kill -2 PID
# 强制结束进程 -9 ,注意:强制结束某个进程后,可能会造成进程数据丢失等问题!
kill -9 PID


  • free 查看内存使用信息

参数介绍:
-b :以 字节(bytes/B) 为单位显示
-k :以 KB 为单位显示
-m :以 MB 为单位显示
-g :以 GB 为单位显示
--tera :以 TB 为单位显示
-h :以 人类易读的方式输出
--si :以 1000为单位转换,而不是 1024(1MB=1*1024KB改成 1MB=1*1000KB)
-t :显示 内存总数 行
-s 时间 :每隔 X秒输出一次(重复输出监视内存,使用 Ctrl+C 终止)
-c 次数 :每隔 1秒输出 X次
 
# 更多的命令可以用 free --help 来查看。
使用示例:
# 显示当前系统内存(默认 free = free -k,单位为 KB)
free
 
# 输出示例
             total       used       free     shared    buffers     cached
Mem:        250872     237752      13120          0      34620      70520
-/+ buffers/cache:     132612     118260
Swap:       643064       1744     641320
 
# 以单位 B/KB/MB/GB/TG 显示当前系统内存
free -b / free -k / free -m / free -g / free --tera
 
# 以人类易读的方式 显示当前系统内存
free -h
 
# 输出示例
             total       used       free     shared    buffers     cached
Mem:          244M       232M        12M         0B        33M        68M
-/+ buffers/cache:       129M       115M
Swap:         627M       1.7M       626M
 
# 以 1000为单位转换并使用 MB为单位 显示当前系统内存(1MB=1*1024KB改成 1MB=1*1000KB)
free -m --si
 
# 每隔 3秒并使用 MB为单位 显示一次当前系统内存
free -ms 3
 
# 每隔 1秒并使用 MB为单位 显示 5次当前系统内存
free -mc 5
 
# 每隔 2秒并使用 MB为单位 总共显示 6次当前系统内存
free -m -c 6 -s 2
 
# 更多的命令可以用 free --help 来查看。
表头解释:
# 说明示例
             total       used       free     shared    buffers     cached
Mem:          244M       232M        12M         0B        33M        69M
-/+ buffers/cache:       129M       115M
Swap:         627M       1.7M       626M
# Mem 行,表示物理内存统计
total :系统 总物理内存
used :系统 已分配物理内存(但非全部都在使用,包含buffers好cached)
free :系统 未分配物理内存
shared :系统 共享内存,一般都是 0
buffers :系统 分配但未使用的 buffers数量
cached :系统 分配但未使用的 cached数量
 
# -/+ buffers/cache 行,表示物理内存的缓存统计
used :系统 实际使用的内存
# user= Mem行 used-buffers-cached(232-33-69=130,因单位转换问题 所以会有一点差距)
free :系统 实际可用的内存
# free= Mem行 free+buffers+cached(12+33+69=114,因单位转换问题 所以会有一点差距)
 
# 所以我们看系统的真实 使用/剩余内存 只需要看这一行即可!
 
# Swap 行,表示硬盘的交换分区(虚拟内存)统计
total :系统 总虚拟内存
used :系统 已分配虚拟内存
free :系统 未分配虚拟内存
 
# KVM虚拟化的VPS,可以用这个教程手动添加 SWAP虚拟内存:https://doub.io/linux-jc7/


  • date 查看/设置 系统时间

参数介绍:
 -d :以指定的时间格式 显示时间
 -f :显示 DATE FILE文件中的每行时间(我也不懂)
 -r :显示 文件/文件夹 最后修改时间
 -s :设置 系统时间
 -u :显示 UTC时间
 
# 时间格式
 
%% - 显示字符%
%a - 星期几的缩写(Sun..Sat)
%A - 星期几的完整名称(Sunday...Saturday)
%b - 月份的缩写(Jan..Dec)
%B - 月份的完整名称(January..December)
%c - 日期与时间。只输入date指令也会显示同样的结果
%C - 世纪(年份除100后去整) [00-99]
%d - 日期(以01-31来表示)。
%D - 日期(含年月日)。
%e - 一个月的第几天 ( 1..31)
%F - 日期,同%Y-%m-%d
%g - 年份(yy)
%G - 年份(yyyy)
%h - 同%b
%H - 小时(00..23)
%I - 小时(01..12)
%j - 一年的第几天(001..366)
%k - 小时( 0..23)
%l - 小时( 1..12)
%m - 月份(01..12)
%M - 分钟(00..59)
%n - 换行
%N - 纳秒(000000000..999999999)
%p - AM or PM
%P - am or pm
%r - 12小时制时间(hh:mm:ss [AP]M)
%R - 24小时制时间(hh:mm)
%s - 从00:00:00 1970-01-01 UTC开始的秒数
%S - 秒(00..60)
%t - 制表符
%T - 24小时制时间(hh:mm:ss)
%u - 一周的第几天(1..7); 1 表示星期一
%U - 一年的第几周,周日为每周的第一天(00..53)
%V - 一年的第几周,周一为每周的第一天 (01..53)
%w - 一周的第几天 (0..6); 0 代表周日
%W - 一年的第几周,周一为每周的第一天(00..53)
%x - 日期(mm/dd/yy)
%X - 时间(%H:%M:%S)
%y - 年份(00..99)
%Y - 年份 (1970…)
%z - RFC-2822 风格数字格式时区(-0500)
%Z - 时区(e.g., EDT), 无法确定时区则为空
 
# 更多的命令可以用 date --help 来查看。
使用示例:
# 显示 当前系统时间
date
# 输出:Wed Apr 5 12:38:44 CST 2017
 
# 显示当前系统的 UTC时间
date -u
# 输出:Wed Apr 5 04:30:06 UTC 2017

# 显示 log.txt 文件的最后修改时间
date -r log.txt

# 显示 当前日期的年份
date +%Y
# 输出:2017
 
# 显示 当前日期的月份
date +%m
# 输出:4
 
# 显示 各种格式类型的日期
date +%D
# 输出:04/05/17
 
date +%Y-%m-%d
# 输出:2017-04-05
 
date +%m/%d/%y
# 输出:04/05/17
 
date +%m/%d/%Y
# 输出:04/05/2017
 
# 显示 Unix时间戳
date +%s
# 输出:1491367399
 
# 显示一个完整的时间(年、月、日、小时、分钟、秒钟、周几 时区)
date "+%Y-%m-%d %H:%M:%S %u %Z"
# 输出:2017-04-05 12:12:15 3 CST
 
# 设置 系统时间(年、月、日)
date -s "2017-04-05"
 
# 设置 系统时间(小时、分钟、秒钟)
date -s "10:29:05"
 
# 设置 系统时间(年、月、日、小时、分钟、秒钟)
date -s "2017-04-05 10:29:05"
 
# 更多的命令可以用 date --help 来查看。
再教你们一个修改时区为上海(北京)时区的方法:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后再用 date 查看时间,就会发现时区变为 CST 了。


  • chmod 修改 文件/文件夹 权限

参数介绍:
-c :只输出被改变权限的文件信息
-f :当chmod不能改变文件模式时,不通知文件的用户
-R :可递归遍历子目录,把修改应到目录下所有文件和子目录
-v :无论修改是否成功,输出每个文件的信息
 
# 操作符号:
 
+ :添加某个权限。
- :取消某个权限。
= :赋予给定权限并取消其他所有权限(如果有的话)。
 
# 权限设置字母:
 
r :可读
w :可写
x :可执行
X :只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性
s :在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位
t :保存程序的文本到交换设备上
u :当前用户的权限
g :当前用户同组的权限
o :其他用户的权限
 
# 权限设定数字:
 
# 数字表示的属性含义:
0 :表示没有权限
1 :表示可执行权限
2 :表示可写权限
4 :表示可读权限
 
# 然后将其相加,所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
# 如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
 
# 更多的命令可以用 chmod --help 来查看。
使用示例:
# 当需要运行 可执行的脚本或者程序(比如 Go语言编写的软件)的时候,需要赋予执行权限
chmod +x ***.sh
 
# 赋予 log.txt 文件可读权限
chmod 444 log.txt
 
# 赋予 /ver/log 文件夹 可读、可写权限
chmod 666 log.txt
 
# 赋予 /home/www 文件夹 可读、可写、可执行权限
chmod 777 log.txt
 
# 赋予 /home/www 文件夹极其所有子目录和文件 可读、可写、可执行权限
chmod -R 777 log.txt
# 更多的命令可以用 chmod --help 来查看。


  • uname 获取操作系统信息

参数介绍:
-a:显示 全部信息
-m:显示 系统位数
-n:显示 主机名称
-r:显示 操作系统的发行编号
-s:显示 操作系统的名称
-v:显示 操作系统的版本
-p:输出 处理器类型 或"unknown"
-i:输出 硬件平台 或"unknown"
-o:输出 操作系统名称
 
# 更多的命令可以用 uname --help 来查看。
使用示例:
root@test:~# uname       #在使用 uname 的时候,相当于是使用 uname -s
Linux

root@test:~# uname -a
Linux dtest 2.6.32-042stab120.6 #1 SMP Thu Oct 27 16:59:03 MSK 2016 i686 GNU/Linux

root@test:~# uname -m       #输出一般是64位: x86_64 / 32位: i386 或分支 i686 
i686

root@test:~# uname -n
test

root@test:~# uname -r
2.6.32-042stab120.6

root@test:~# uname -s
Linux

root@test:~# uname -v
#1 SMP Thu Oct 27 16:59:03 MSK 2016

root@test:~# uname -p
unknown

root@test:~# uname -i
unknown

root@test:~# uname -o
GNU/Linux