07.进程管理+作业控制+文件查找与压缩+文件压缩与打包+tar打包解包+NFS

时间:2022-08-20 14:32:28
进程管理
    程序放在磁盘上叫文件,把它复制到内存,并在cpu运行,就叫进程,
进程多少也反映当前运行程序的多少 进程在系统中会为每个进程生成一个进程号,在所有的进程中有一个特殊进程即init进程,
它是所有进程的祖先,进程号是1。这个进程是不能中止的。
进程与 /proc 目录关系密切
    /proc 是一个实时的、常驻内存的虚拟文件系统。它反映的是当前内核运行的状态有时还能通过设置 /proc 中某些文件的状态来临时修改系统设置的目的
例:echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all        -----禁ping
 
进程状态
    r    运行状态
    s    睡眠状态
    d    不可中断的睡眠状态
    t    暂停或跟踪状态
    z    僵尸进程(退出了,但资源还未释放掉)
常用进程管理的命令
1、ps  查看进程状态
ps -ef
ps aux
    s   它有子进程
    l   多线程
    +   位于后台进程组
    <   高优先级
    N  低优先级
          
2、pstree 查看进程
3、top    实时查看进程
实时查看时:
按 P 根据cpu使用率排序
按 M 根据内存使用情况排序 k 杀进程
q 退出
u 显示指定用户的进程
shift + >
shift + < 翻页看
4、kill  杀进程
kill -  进程号
5、killall  以服务名或进程名的方式杀进程
有时同一个服务或程序会生成很多的进程,通过进程号来杀,会比较麻烦,这时可以用killall
例:killall httpd
6、pkill    以服务名或进程名的方式杀进程 (和killall 类似,但不要全名)
例:killall http  --杀不掉,因为killall 要全名的
pkill http    --就可以杀了

进程优先级

7、nice  以指定的优先级去运行一个程序
       格式:nice  [-n num] command
  num:
  -20~19   值越低优先级越高,默认为0
     例: nice -n -20 /usr/bin/vmware
 
8、renice 修改一个正在运行的程序优先级
格式; renice [num] PID
例:
    修改x0vncserver 的优先级
 
         renice -20 17237
 
作业控制:
9、 &   后台运行符
10、jobs 查看后台运行的命令
11、bg  启动后台停止的进程
格式:bg 后台程序编号
如: bg %1
12、杀后台进程
kill %1

13、将前台程序放到后台运行

如: cp /soft/rhel62.iso /    --之后按ctrl +z ,程序就到后台

14、 fg 将后程序调到前台运行

fg %1  

15、 ctll + z 将前台程序放到后台(会停止运行)

文件查找与压缩
文件查找:
which   显示可执行命令的路径(告诉你命令在哪)
例:which cp which fdisk

能不能找到取决于两个方面:

1)有没有这个命令(文件)
2)PATH 变量
which 不会在磁盘上搜有没有这个文件,它只在 PATH 变量指定的路径中去搜索,如果没指定那个目录,即便有也找不到
 
whereis
    同 which 类似,locate 查找速度非常快,因为从系统数据库中找,没在磁盘上搜索,但是会存在一个问题,如果系统数据库未更新,那即便文件存在,也找不到
 
解决办法是更新系统数据库
locate qq
touch aaa.txt
locate aaa.txt   --这里找不到aaa.txt 了
updatedb
locate aaa.txt   --更新数据库后就找到了
 
 
find   文件查找
   格式: find 路径 [选项]
          
-name 按文件名找
-type 按类型找
b   块设备
c 字符设备
d  目录
l 链接
f 普通文件
-uid      按用户id找
-user     按用户名找
-gid      按组id 找
-group     按组名找
-size     按大小找
+nK|M|G   
-nK|M|G
-mtime   按修改时间找(单位:天)
+n     大于n 天(n天以前)
-n     小于n 天(n天以内)
-mmin amin cmin 按修改时间、访问时间、修改时间找(单位:分钟)
mtime   文件修改时间(侧重于内容,mtime 的修改会引起ctime、atime的修改)
atime  文件访问时间(如查看)
ctime   文件修改时间(侧重于属性修改,如权限,名字等)
查看文件 stat
-nouser    查找无效属主的文件
-group     查找无效组

-exec     对查找的结果执行命令,查找结果作为命令输入参数

格式:find .... -exec command {} \;

-ok            与 -exec 作用类似,但是执行命令时,有确认信息

xargs           也可以做类似的事情,不过xargs 就要使用管道了,将查询结果传给xargs (注意的是xargs 不是find 的选项)

用法: command1 | xargs -I {} command2 {}

-I 用一个符号来替代前一个命令传过来的每个具体结果

command2 {}  对前面传过来的结果执行命令  
例:找 fdisk           find / -name fdisk

例:只找aaa的目录        find / -type d -name aaa

例:找tom 创建的所有文件     find / -user tom

例:找1G以上的文件       find / -size +1G

例:找无效属主的文件,并将这些文件删除    find / -nouser -exec rm {} \;

例:删除tom创建的文件             find / -user tom -type f -ok rm {} \;

例:用xargs 的方式把 tom 创建的普通文件,复制到 /test

格式:command1 | xargs -I {} command2 {}

find / -user tom -type f | xargs -I {} cp {} /test

 
文件压缩与打包
windows 下常见的压缩格式:   .zip   .rar
linux  下常见的缩格式:       .gz    .bz2    .tar.gz   .tar.bz2
 
gzip
压缩:gzip etc.tar
解压:gzip -d etc.tar.gz
 
bzip2
压缩:bzip etc.tar
解压:bzip -d etc.tar.bz2

.zip  文件拷到linux来解压方法:

unzip 压缩文件名

.rar  文件拷到linux来解压方法:

要装rar的linux 版,rar 命令行的使用
rar 压缩:rar a etc.tar.rar etc.tar
rar 解压:rar e etc.tar.rar
         
tar  打包/解包
格式: tar [option] [文件目录列表]
option:
-c 打包
-x 解包
-v 显示打包解包过程
-f 指定打包解包文件
-j 用bzip2 来进行压缩与解压
-z 用gzip 来进行压缩与解压
-C 指定解压路径
-t 查看包内容
 
例:把 /etc 打包成一个文件
tar -cvf etc.tar /etc
 
例:把 etc.tar.bz2 解包
tar -xvjf etc.tar.bz2
 
例:查看包的内容
tar -tvf etc.tar.bz2
 
 
NFS (Network File System) 网络文件系统的简称,最早由sun公司开发,主要用于类unix间的文件共享。

服务器软件安装:

yum install nfs*

涉及的服务:

nfs
rpcbind
 
配置文件:
/etc/exports

配置格式: 共享的目录  能访问客户端(访问参数) 能访问客户端2(访问参数2)

 
能访问的客户端:
172.16.1.116         单一IP
172.16.1.*           IP段
172.16.1.0/24         IP段
www.uplooking.com      主机名
*.uplooking.com        域名

*              所有机器

 
访问参数:
ro 只读
rw 读写
sync 实时同步数据到磁盘
async  异步
 
anonuid=xxx   指定匿名帐号的uid
anongid=xxx   指定匿名帐号的gid
secure       限制客户端只能从小于1024的端口连接到nfs 服务器
insecure      可以从大于1024端口连接到nfs 服务器
 
NFS端口:
111 rpcbind (原来portmap)端口,另外还有一些随机端口,由rpcbind 来映射
 
exportfs  手工维护共享目录
 
    格式: exportfs [option] [dir_name]
    option:
-v 显示共享
-a 共享 /etc/exports 定义的目录(启用共享)
-u 停止共享
-r   重新读取配置文件(相当于重新加载配置文件)
相当于  service nfs reload
 
例:通过exportfs 共享 /test 目录
exportfs *:/test
 
 
例: 配一个nfs 服务器,让客户端只读访问
 
服务器端:
vim /etc/exports
/share *(ro)
 
service nfs restart
 
mkdir /share
cp  ...... /share
 
 
客户端:
1) 查看服务器共享了哪些资源
  showmount -e ip

如:showmount -e 172.16.1.116

2) 挂载服务器的共享到本地目录
   mount ip:共享目录  本地挂载点
       如:mount 172.16.1.116:/soft /mnt
3) 访问了
  把服务器的共享目录挂载到本地后,访问挂载点就是访问服务器的共享目录了
  cd /mnt
   ls
 
服务管理
启动服务
service 服务名 start 
 
停止服务
service 服务名 stop
   
重启服务
service 服务名 restart
   
查看服务状态
service 服务名 status
 
如何让服务自动启动:
1)   vim /etc/rc.d/rc.local
把启动服务的命令写进去(不常用)
2)  chkconfig --level 2345 服务名 on
检查:chkconfig --list | grep 服务名
2345 是运行级别
例: chkconfig --level 2345 nfs on
   chkconfig --list | grep nfs