用户管理----用户信息与密码的配置文件 mysql
用户组权限实例 linux
先直接抛一个需求出来吧!先步骤完成了,后面再分析。web
受权用户 chongshi 和 bugmaster 对目录/cnblogs有写权限面试
建立目录
[root@localhost hzh]# mkdir /cnblogs 建立目录
[root@bogon hzh]# ls -ld /cnblogs 查看目录
drwxr-xr-x 2 root root 4096 5月 10 23:20 /cnblogssql
添加两个用户并设置密码
[root@bogon hzh]# useradd chongshi 建立用户
[root@bogon hzh]# passwd chongshi 设置密码
Changing password for user chongshi.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.shell
[root@bogon hzh]# useradd bugmaster
[root@bogon hzh]# passwd bugmaster
Changing password for user bugmaster.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.apache
添加一个组vim
[root@bogon hzh]# groupadd testing 建立组
[root@bogon hzh]# grep testing /etc/group 查看组信息
testing:x:506:windows
将用户添加到组中api
[root@bogon hzh]# usermod -G testing chongshi 用户chongshi添加到组testing
[root@bogon hzh]# gpasswd -a bugmaster testing 用户bugmaster添加到组testing
Adding user bugmaster to group testing
注意:上面两种方式不一样,但做用是同样的,都是将用户添加到组中。
[root@bogon hzh]# grep testing /etc/group 查看组中成员
testing:x:506:chongshi,bugmaster
咱们知道,组有什么样的权限,组中成员也有什么样的权限。
设置cnblogs目录的所属组为testing
[root@bogon hzh]# chgrp testing /cnblogs 将/cnblogs目录的所属组改成testing
[root@bogon hzh]# ls -ld /cnblogs 查看目录所属组
drwxr-xr-x 2 root testing 4096 5月 10 23:20 /cnblogs
对组加写权限
[root@bogon hzh]# chmod g+w /cnblogs 对组加写权限
[root@bogon hzh]# ls -ld /cnblogs 查看组对目录的权限
drwxrwxr-x 2 root testing 4096 5月 10 23:20 /cnblogs
如今用户chongshi和bugmaster已经对/cnbogs已经有写权限
[root@bogon hzh]# su -- chongshi 切换用户
[chongshi@bogon hzh]$ touch /cnblogs/abc 建立文件,(能够成功在目录下建立文件,说明对本目录具备写权限)
用户经常使用操做命令
添加一个用户
添加用户稍微复杂一些,咱们先来看一下,添加用户都有那些选项
root@fnngj-virtual-machine:/# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
参数详解:
-u:UID
-g:缺省所属用户组GID
-G:指定所属多个组
-d:宿目录
-s:命令解释器Shell
-c:描述信息
-e:指定用户失效时间
例子:
root@fnngj-virtual-machine:/# useradd -u 1888 -g webadmin -G sys,root -s /bin/bash -c "market lisi" -e 2012-12-12 jack
添加用户到组
usermod -G [组名] [用户名]
root@fnngj-virtual-machine:/# usermod -G webadmin tom
root@fnngj-virtual-machine:/# grep webadmin /etc/group
webadmin:x:1001:tom
修改用户名
usermod -l [新用户名] [旧用户名]
修改用户与添加用户时的内容基本相同,但多了一个修改用户的选项。
root@fnngj-virtual-machine:/# usermod -l tom jack 把jack改成tom
删除用户
userdel -r [用户名]
-r:删除用户组
手工删除:
使用find命令查找属于某个用户或用户组的文件
find选项 -user、-uid、-group、-gid、
一、对须要保留的文件进行移动和备份
二、对不须要的文件进行删除
三、清除用户文件中的相关表项
四、清除用户宿主目录
[root@bogon /]# find /home -user fnngj
/home/fnngj
/home/fnngj/.bashrc
/home/fnngj/.bash_profile
/home/fnngj/.gtkrc
/home/fnngj/.bash_history
/home/fnngj/.bash_logout
能够对查找出来的用户信息判断须要干掉哪些。
用户信息查看命令
pwck 检测/etc/passwd文件
检测用户的设置文件是否正常。直接输入命令,后面不用带参数
vipw 编辑/etc/passwd文件
这个命令与vi最大的区别就是编辑的时候锁定文件。若是多人对passwd文件
都有编辑权限,那么多人同时编辑就会形成混乱。使用vipw编辑passwd文件时,别
人就没法打开passwd文件。
id 查看用户ID和组信息,直接输入命令,后面不用带参数
[root@bogon fnngj]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6
(disk),10(wheel) context=root:system_r:unconfined_t
finger 查看当前用户的登陆信息
finger [用户名] 查看某个用户的详细信息。
[root@bogon fnngj]# finger
Login Name Tty Idle Login Time Office Office Phone
root root pts/1 May 13 14:57 (192.168.203.1)
[root@bogon fnngj]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 日 5月 13 14:57 (CST) on pts/1 from 192.168.203.1
New mail received 日 5月 6 11:00 2012 (CST)
Unread since 三 2月 22 20:40 2012 (CST)
No Plan.
su [用户名] 切换用户(su- 环境变量切换)
su - [用户名] 切换的时候也会把环境的时候也会切换环境变量
[root@bogon /]# su fnngj
[fnngj@bogon /]$ echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin
[fnngj@bogon /]$ su root
Password:
[root@bogon /]# su - fnngj
[fnngj@bogon ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin
passwd -S [用户名] 查看用户密码状态
[root@bogon fnngj]# passwd -S fnngj
Password set, MD5 crypt.
who、w 查看当前登陆用户信息
[fnngj@bogon ~]$ who
root pts/1 May 13 14:57 (192.168.203.1)
[fnngj@bogon ~]$ w
15:11:29 up 54 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.203.1 14:57 0.00s 0.84s 0.01s w
用户禁用与恢复
禁用和恢复用户
当一个用户在操做的时候常常有违规操做或近期一段时间不用,咱们能够对这
个用户进行锁定。就像你的游戏帐号发生异常被禁用同样。
-----------------------------------
禁用
#usermod -L username
#passwd -l username
恢复
#usermod -U username
#passwd -u username
------------------------------------
[root@bogon /]# passwd -l fnngj 禁用fnngj用户
Locking password for user fnngj.
passwd: Success
[root@bogon /]# passwd -S fnngj
Password locked. 提示被禁用
[root@bogon /]# passwd -u fnngj 密码解锁
Unlocking password for user fnngj.
passwd: Success.
[root@bogon /]# passwd -S fnngj
Password set, MD5 crypt.
禁用原理:
[root@bogon /]# grep fnngj /etc/shadow
fnngj:$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::
[root@bogon /]# passwd -l fnngj
Locking password for user fnngj.
passwd: Success
[root@bogon /]# grep fnngj /etc/shadow
fnngj:!!$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::
看到上面的操做,相信你已经明白了,当我禁用你的密码后,密码在shadwo文件中依然存在,只是前面多了两个叹号(!!),这样你确定登陆不了了,由于验证端改变了密码。固然,解锁以后,密码前面的两个叹号会去掉。
其实,咱们知道了原理之后,彻底能够不用经过命令,经过vi编辑文件,同样能够禁用用户。
用户组经常使用操做命令
先看一下组配置文件里都存放了哪些内容
[root@bogon /]# more /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
.................
dialout:x:20:fnngj
dialout 组名 用户登陆时所在的组
x 组密码 通常不用
20 GID 组标识号
fnngj 组内用户列表 属于该组的全部用户列表
添加用户组
groupadd [用户组名]
root@fnngj-virtual-machine:/# groupadd webadmin 添加一个组webadmin
root@fnngj-virtual-machine:/# grep webadmin /etc/group 查看组信息
webadmin:x:1001:
咱们在添加组的时候也能够指定好组的id
root@fnngj-virtual-machine:/# groupadd -g 8888 webadmin
root@fnngj-virtual-machine:/# grep webadmin /etc/group
webadmin:x:8888:
删除用户组:
groupdel [用户组名]
[root@bogon /]# groupdel webadmin 删除组webadmin
修改用户组信息
groupmod -n [新组名] [旧组名]
[root@bogon /]# groupmod -n apache webadmin 修改组名webadmin为apache
用户组信息查看命令
groups 查看用户隶属于哪些用户组
[root@bogon /]# groups fnngj
fnngj : fnngj
newgrp 切换用户组
[root@bogon /]# newgrp fnngj 不是组成员,知道组密码(若是有密码)同样可
以切换。
grpck 用户组配置文件检测
chgrp 修改文件所属组
vigr 编辑/etc/group文件(锁定文件)
与vipw用法同样,在编辑group文件时,禁止其余人编辑。防止多人写操做,形成写混乱。
用户组管理命令
gpasswd命令
这个事全部linux都有的一个命令。先看一下都有哪些参数。
root@fnngj-virtual-machine:/# gpasswd
Usage: gpasswd [option] GROUP
Options:
-a, --add USER add USER to GROUP
-d, --delete USER remove USER from GROUP
-h, --help display this help message and exit
-r, --remove-password remove the GROUP's password
-R, --restrict restrict access to GROUP to its members
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
上面的参数信息虽然事英文的,不解释了,相信你懂的。
用法很是简单:
root@fnngj-virtual-machine:/# gpasswd -a tom webadmin 添加用户到组
root@fnngj-virtual-machine:/# gpasswd -d tom webadmin 把用户从组中删除
root@fnngj-virtual-machine:/# gpasswd webadmin 给用户组设置密码
root@fnngj-virtual-machine:/# gpasswd -A tom webadmin 将tom提高为组管理员
root@fnngj-virtual-machine:/# gpasswd -r webadmin 删除组密码
root@fnngj-virtual-machine:/# gpasswd -R webadmin 禁止其余用户切换到该组
目录:(内容较多,加个目录)
|-进程管理
进程经常使用命令
|- w查看当前系统信息
|- ps进程查看命令
|- kill终止进程
|- 一个存放内存中的特殊目录/proc
|- 进程的优先级
|- 进程的挂起与恢复
|- 经过top命令查看进程
计划任务
|- 计划任务的重要性
|- 一次性计划at和batch
|- 周期性计划crontab
进程管理的概念
进程和程序区别
1.程序是静态概念,自己做为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有必定的生命期,是动态产生和消亡的。
2.程序和进程无一一对应关系。一个程序能够由多个时程公用;另外一一方面,一个进程在活动中有可顺序地执行若干个程序
父子进程的关系
1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程
2.在linux系统中,使用系统调用fork建立进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
3.父进程终止子进程天然终止。
前台进程和后台进程
前台进程
在shell提示处理打入命令后,建立一个子进程,运行命令,Shell等待命令退出,而后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成以前不能执行别一个命令
很简单,咱们在执行这个查找命令时,没法进行其它操做,这个查找就属于前台进程
后台进程
在Shell提示处打入命令,若后随一个&,Shell建立子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。“后台进程必须是非交互式的”
再来看这个命令就变成了后台进程,咱们用一样的条件进行查找,把查找记过放到hzh/test/init.find这个文件中。不影响咱们前台其它的操做。
进程的状态
学过操做系统原理的同窗应该能够看得懂,不懂再去翻翻书,不知道你有没有想起当时教这门课的老师呢?呵呵
经常使用进程命令
w 查看当前系统信息
w命令,我在以前的章节用曾用过,当时是查看当前用户信息,固然也能够查看到系统相关的信息。
做用:查看当前系统活动摘要。
[root@bogon cron]# w
14:48:39 up 2:46, 1 user, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.203.1 12:27 0.00s 0.17s 0.02s w
w显示信息的含义:
JCPU: 以终端代号来区分,该终端全部相关的进程的进程执行时,所消耗的CPU时间会显示在这里
PCPU: cpu执行程序消耗的时间
WHAT: 用户下在执行的操做
load average :分别显示系统在过去一、五、15分钟内的平均负载程度。
FROM: 显示用户从何处登陆系统,“:0”的显示表明该用户时人X Windows下,打开文本模式窗口登陆的
IDLE: 用户闲置的时间,这是一个计时器,一旦用户执行任何操做,该计时器便会被重置
查看个别用户信息:w [用户名]
[root@localhost ~]# w root
23:32:01 up 52 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.203.1 22:53 0.00s 0.10s 0.01s w root
ps进程查看命令
ps应该是查看进程用得最广泛的命令,我在以前的面试中都被屡次问到过。由于linux不是面试个人重点,因此,我后来特地去查了一下。ps我之前的理解就是photoshop的缩写。哈哈!由于之前本专门跑去学过平面设计。吼吼,扯远了!
进程查看命令:ps
经常使用选项:
-a:显示全部用户的进程
-u:显示用户名和启动时间
-x:显示 没有控制终端的进程
-e:显示全部进程,包括没有控制终端的进程
-l:长格式显示
-w:宽行显示,可使用多个w进行加宽显示
应用实例:
ps 查看隶属本身的进程
root@fnngj-virtual-machine:~# ps
PID TTY TIME CMD
1370 pts/0 00:00:00 bash
3185 pts/0 00:00:00 ps
root@root:~# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 5941 5801 4 80 0 - 1882 wait pts/2 00:00:00 bash
4 R 0 6000 5941 0 80 0 - 1121 - pts/2 00:00:00 ps
看一下上面的选项都指的什么。。
PID : 进程号
PPLD: 父进程的进程号
TTY : 进程启动的终端
STAT : 进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T中止)
NI : 进程优先级
TIME: 进程自从启动之后启用CPU的总时间
COMMAND/CMD:进程的命令名
USER: 用户名
%CPU: 占用CPU时间和总时间的百分比
%MEM: 占用内存与系统内存总量的百分比
实列:
ps -u or -l 查看隶属于本身进程详细信息
root@root:~# ps -u or -l
ps -le or -aux 查看全部用户执行的进程的详细信息
root@root:~# ps le or -aux
ps -aux --sort pid 可按进程执行的时间、PID、UID等对进程进行排序
root@root:~# ps -aux --sort pid
ps -uU fnngj 查看某个用记启动的进程
root@root:~# ps -uU fnngj
ps -le | grep init 查看指定进程信息
root@root:~# ps -le | grep init
kill终止进程
在winddow下面,咱们要结束一个进程,最简单的方式就是关闭这个程序,相应的进程也会随之结束,遇到不能关闭的状况。会打开任务管理器结果掉。那么在linux下若是作呢?咱们可使用kill命令来终止进程。
为何要杀死进程?
* 该进程点用了过多的CPU时间
* 该进程缩住了一个终端,使其余前台进程没法运行
* 运行时间过长,但没有预期效果
* 产生了过多到屏幕或磁盘文件的输出
* 没法正常退出
kill用法:
关闭进程:kill [进程号]
root@root:~# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX- 12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
咱们看到每一个编号对应一个含义,如 9) SIGKILL ;9标注的是SIGKILL ,那么咱们可用9来终止进程。
关闭进程:
kill -s 9 [进程号] (强行关闭)
kill -9 [进程号] (强行关闭)
上面的两种形式均可以强行关闭进程。
重启进程:
有时候咱们须要把进程从新启动一下,能够下面的命令完成。
kill -1 [进程号] (重启进程)
root@root:~# kill -1 3567 重启PID为3567的进程
关闭图形程序:
关闭图形程序: xkill
当你在终端下输入这个命令时,你的鼠标会变成一个小叉子,你只去点你想要关闭的窗口就能够关闭了
其它:
结束全部进程: killall
查找服务进程号: pgrep [服务名称]
关闭进程: pkill [进程名称]
一个存放内存中的特殊目录/proc
这个目录比较特殊,他并不在咱们磁盘上,而在咱们的内存当中;当前系统运行的全部进程都动态的存放在这个目录中。
root@root:~# ls /proc
1 14 15 187 287 820 dma net
10 1401 1524 19 3 827 driver pagetypeinfo
1037 1403 1525 1906 32 830 execdomains partitions
1043 1413 1527 1919 34 832 fb sched_debug
1047 1414 1531 2 35 834 filesystems schedstat
11 1415 1536 20 36 840 fs scsi
1172 1418 1544 2024 454 842 interrupts self
12 1423 1555 2025 459 843 iomem slabinfo
.....................
上面每一个编号就是以咱们当前进程PID所命令的目录名。
固然,当前目录下也存放了一些咱们系统的信息
查看咱们当前cpu的信息
root@root:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU T4500 @ 2.30GHz
stepping : 10
cpu MHz : 2294.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov
pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc up arch_perfmon
pebs
bts xtopology tsc_reliable aperfmperf pni ssse3 hypervisor dts
bogomips : 4588.00
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
查看内存信息
root@root:~# cat /proc/meminfo
MemTotal: 508344 kB
MemFree: 10668 kB
Buffers: 10700 kB
Cached: 96056 kB
SwapCached: 34124 kB
Active: 231384 kB
Inactive: 231576 kB
Active(anon): 178524 kB
Inactive(anon): 178316 kB
Active(file): 52860 kB
Inactive(file): 53260 kB
........................
查看当前分区的信息
root@root:~# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 20446208 sda1
8 2 1 sda2
8 5 522240 sda5
进程的优先级
咱们学过操做系统原理的同窗都知道,咱们系统在执行程序时有会前后顺序的,但为何咱们的电脑能够边听音乐,边聊QQ,边上网,甚至还能够同时挂几个游戏。由于咱们CPU运行超快。他能够把每一个程序的进程排好队,这个执行一下,那个执行一下。因此,咱们会以为各类程序是并行运行的。
固然,进程也会分个快慢缓急的,因此要对进程分个优先级。同窗们在食堂排队打饭,总理来了,这优先级多高啊。同窗们纷纷让开,先给总理打。
* 优先级取值范围为(-20,19)
linux给咱们提供的优先级的范围为-20到19,咱们启动一个进程时,默认的优先级为0 ,-20的优先级为最大,或者说最高。固然,咱们在设置的时候能够写-30,但系统默认为-20。
nice命令
指定程序的运行优先级
格式:nice -n command
例如:nice --5 command
renice 命令
改变一个正在运行的进程的优先级
格式: renice n pid
例如:renice -5 777
例子:
[root@bogon cron]# ps -le
[root@bogon cron]# renice -20 [PID]
nohup命令能够在用户退出时继续执行某一进程
通常的命令在用户退登陆后就中止执行了,nohup命令可使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认存储到文件nohup.out中
格式:
nohup program &
例子:
[root@bogon cron]# nohup find / -name init* > /hzh/test/find.init.20120520 &
若是咱们没指定/hzh/test/find.init.20120520这个保存位置的话,系统默认会把查询的结果放到nohup.out的文件中。咱们通常不会去使用默认方式保存。
进程的挂起与恢复
当咱们执行一条命令时,发现太慢或输出内容太多,最经常使用到的作法就是终止(ctrl+c),那么挂起呢?通俗一点就是暂停呗!^_^!!
进程停止(挂起)和终止
挂起(ctrl+z)
终止(ctrl+c)
[root@bogon ~]# find / -name init* > /hzh/test/find.init.20120520
[1]+ Stopped find / -name init* >/hzh/test/find.init.20120520
被暂停的进程会提示咱们Stopped
小知识:系统中有两种运行的进程,咱们在前台是看不到的。一种是后台执行的命令,一种就是被暂停的。那咱们经过什么方式查看被暂停和后台执行的进程呢?
查看被挂起的进程(jobs)
进程的恢复:
恢复到前台继续运行(fg)
恢复到后台继续运行(bg)
[root@bogon ~]# jobs 经过jobs命令能够查看后被暂停的进程
[1]+ Stopped find / -name init* >/hzh/test/find.init.20120520
[root@bogon ~]# fg fg会将暂停的进程恢复到前台继续执行。
find / -name init* >/hzh/test/find.init.20120520
[root@bogon ~]# bg bg会将暂停的进程恢复到后台继续执行
[1]+ find / -name init* >/hzh/test/find.init.20120520 &
经过top命令查看进程
top命令与前面介绍的ps命令类似,已经介绍了ps,为何还要top?top有它本身的优势呢。它比ps显示的信息更详细。并且是动态的噢,信息是在不断变化的噢!
[root@bogon ~]# top
top - 12:45:16 up 43 min, 1 user, load average: 0.00, 0.04, 0.06
Tasks: 57 total, 1 running, 56 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.3% sy, 0.0% ni, 99.3% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1034536k total, 232864k used, 801672k free, 60188k buffers
Swap: 1052248k total, 0k used, 1052248k free, 118692k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6848 root 15 0 28948 8444 2524 S 0.3 0.8 0:05.44 X
7181 root 16 0 7036 2436 1968 S 0.3 0.2 0:00.26 sshd
7244 root 16 0 1964 976 772 R 0.3 0.1 0:00.45 top
1 root 16 0 3116 544 464 S 0.0 0.1 0:00.97 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root 5 -10 0 0 0 S 0.0 0.0 0:00.03 events/0
5 root 5 -10 0 0 0 S 0.0 0.0 0:00.01 khelper
6 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kthread
7 root 15 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
88 root 5 -10 0 0 0 S 0.0 0.0 0:00.01 kblockd/0
89 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khubd
106 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
107 root 15 0 0 0 0 S 0.0 0.0 0:00.18 pdflush
108 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
109 root 6 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0
255 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kseriod
经常使用选项:
d : 指定刷新的时间间隔
c : 显示整个命令而不只仅显示命令名
在命令运行的时候按键盘d,会出现以下提示要求你输入刷新的间隔时间
Change delay from 3.0 to: 10(秒)
经常使用命令:
u : 查看指定用户的进程
k : 终止执行中的进程
h or ? 得到帮助
r: 从新设定进程优先级
s: 改变刷新的时间间隔
W: 将当前设置写入~/.toprc文件中
这里不细讲了,感兴趣的能够用 man top 命令查看top的详细帮助。
为何要计划任务
为何要设置计划任务
咱们在系统的管理中,不少时候不是及时的去操做,好比对某一网站数据的备份,备份的过程须要占用大量的系统资源,凌晨三四点的时候系统访问用户最少,系统最空闲。但咱们的系统的系统管理员总不能老那个时间爬起来操做吧。若是在家远程操做的话,老婆不肯意了。哈哈!
计划任务的命令
计划命令分一次性计划和周期性计划。好比我要在今年10月1结婚,这是一次性的计划。不能每一年的10月1结婚吧,真有女女愿意结,咱经济上也吃不消呀。睡觉就是周期性的计划。好比,我给本身规定天天晚上的11点半睡觉。那么到时间我就上床睡觉。
at 安排做业在某一时刻执行一次
batch 安排做业在系统负载不重时执行一次
cron 安排周期性运行的做业
一次性计划at和batch
at命令指定时间的方式
绝对计时方法:
midnight noon teatime
hh:mm [today]
hh:mm tomorrow
hh:mm 星期
hh:mm MM/DD/YY
相对计时方法:
now+n minutes
mow+n hours
now+n days
用法:
指定在今天下午17:30执行某命令(假设如今时间是下午14:30,2012年1月11日)
命令格式:
at 5:30pm
at 17:30
at 17:20 today
at now+3 hours
at now+180 minutes
at 17:30 12.1.11
at 17:30 1.11.12
好!现格式知道了,玩个实例吧!
[root@bogon ~]# at now+5 minutes
at>
咱们定的时间是5分钟以后,如今能够在at下面输入各类任务,保存!5分钟以后执行;不过,咱们须要注意,在用命令时最好写命令的绝对路径,为了安全。
[root@bogon ~]# at now+5 minutes
at> /usr/bin/wall < /etc/motd 作一个广播,把etc/motd 文件广播出去
at> 能够继续写其它的计划
at> <EOT>
job 2 at 2012-05-20 13:43 ctrl+d保存计划并退出
是否还担忧咱们的计划是否启动,经过下面两个命令查看at进程是否正常启动
[root@bogon test]# at -l
3 2012-05-20 13:57 a root
[root@bogon test]# atq
3 2012-05-20 13:57 a root
若是真的没有启动的话,能够经过手工方式从新启动一下
[root@bogon ~]# /etc/rc.d/init.d/atd start
删除at计划任务
[root@bogon test]# at -d
查看at计划任务
[root@bogon test]# ls /var/spool/at/
batch命令
做用:
安排一个或多个命令在系统负载较轻进运行一次(通常状况下负载较轻指平均负载降到0.8如下)
使用方法同at
周期性计划命令crontab
做用:用于生成cron进程所须要的crontab文件
crontab的命令格式
crontab {-l|-r|-e}
-l 显示当前的crontab
-r 删除当前的crontab
-e 使用编辑器编辑当前crontab文件
好多人都以为周期计划任务设置起来比较麻烦,其实咱们只要掌握规律就很好设置。
crontab -e
规则: 把知道的具体的时间添上,不知道的都添加上*
分钟 小时 天 月 星期 命令/脚本
假如,咱们天天早上4点要作一下操做,如下面方式表示:
分钟 小时 天 月 星期 命令/脚本
* 4 * * * [具体的操做]
假如,咱们每周一和三下午的6点要作一下操做,如下面方式表示:
分钟 小时 天 月 星期 命令/脚本
* 18 * * 1,3 [具体的操做]
案例:在上学的时候都有上机课,周一到周五,下午5点30上课结果。咱们须要在5点30发一个通知,5点45自动关机。设定计划任务须要分两步完成,第一步提醒,第二步关机
分钟 小时 天 月 星期 命令/脚本
30 17 * * 1-5 /usr/bin/wall < /hzh/test/guanji.wall
45 17 * * 1-5 /usr/bin/shudown -h now
操做方法:
[root@bogon test]# crontab -e 回车会进入一个vi文本中
根据我上面介绍格式编写内容,而后保存退出
crontab: installing new crontab 表示建立计划成功
经过下面方式进行查看计划:[root@bogon test]# cd /var/spool/cron[root@bogon cron]# lsroot[root@bogon cron]# cat root30 17 * * 1-5 /usr/bin/shudown -h now