第7天【find命令、if语句、磁盘管理、文件系统管理】

find命令详解(01)_recv

Find及文件特殊权限;

文件查找工具:

Find

Find [OPTON]…[查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径,默认为当前路径

查找条件:指定的查找标准,可以文件名,大小,权限等。

处理动作:对符合条件的文件做什么操作,默认为输出至屏幕;

查找条件:

根据文件名查找:

-name “文件名称” ;区分文件大小写

Find /etc –name “passwd”

Find /etc –name “passwd*”

Find /etc –name “*passwd*”

-iname “文件名称” :不区分字母大小写

根据属主、属组查找:

-user username :查找属主为指定用户的文件;

Find /home –user centos

-Group grpname:查找属组委指定组的文件;

Find /home –group centos

-uid userid:查找属主为指定的UID号的文件;

Id centos

Find /home –uid 501

-gid groupid:查找属主为指定的GID号的文件;

find /home –gid 501

-nouser:查找没有属主的文件;

-nogroup:查找没有属组的文件;

根据文件类型查找:

-type:

F:普通文件、d:目录文件、l:符号链接文件

S:套接字文件、b:块设备文件、c:字符设备文件

P:管道文件;

案列:find /tmp –type d –ls

组合条件:

与:-a

或:-o

非:-not,!

根据文件大小查找:

-size [+|-]

常用单位:K,M,G

Find /var –size 3k –ls

根据时间戳:

以”天“为单位:

-atime:find /etc –atime 3

-mtime:

-ctime:

以”分钟:为单位“

-amin:

-mmin:

-cmin:

根据权限查找:

-perm:find /etc –perm 600 –ls

处理动作:

-print:默认的处理动作,显示至屏幕

-ls:类似与对查找到的文件执行”ls –l“命令;

-delete:删除查找到的文件

特殊权限及if语句(02)_recv

SUID,SGID,Sticky;

(1)       权限:user,group other

(2):安全上下文:

前提:进程有属主和属组:文件有属主和属组

1:任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;

2:启动为进程之后,其进程是属主为发起者:进程的属组为发起者所属的组;

3:进程访问文件时的权限,取决于进程的发起者

a:进程的发起者,同文件的属主,则应用文件属主权限;

b:进程的发起者,属于文件的属组,则应用文件属组权限;

c:应用文件”其他“权限

(3):SUID:

1:任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;

2:启动为进程之后,其进程是属主为程序文件的属主:进程的属组为起者所属的组;

权限设定:

Chmod u+s FILE。。。

Chmod u-s FILE。。。

(4) SGID

默认情况下:用户创建文件时,其属组为此用户所属的基本组

一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组;

权限设定:

Chmod g+s DIR。。。

Chmod g-s DIR。。。

(5):Sticky

对于一个多人可写的目录,如果设置了sticky则每个用户仅能删除自己的文件;

权限设定:

Chmod o+t DIR

Chmod o-t DIR

Bash脚本编程:

过程是编程语言:

顺序执行:

选择执行:

If 判断条为真;那么then

条件为真的分支代码

Fi

If 判断语句;then

条件为真的分支代码

Else 条件为假的分支代码

结束fi

案列:单分支

vim adduser.sh

#!/bin/bash

If [$# -lt 1];then

Echo “at least one argument.”

Exit 1

Fi

多分枝:

vim adduser.sh

#!/bin/bash

If [$# -lt 1];then

Echo “at least one argument.”

Exit 1

Fi

If id $1 &> /dev/null; then

Echo”$1 exists.”

Else

Useradd $1

[$? –eq 0] && echo “$1” | passwd –stdin &1 >/dev/null

fi

循环执行:

Linux磁盘管理(03)_recv

硬盘接口类型:

并行:

IDE:133MB/s

SCSI:640MB/s

串口:

SATA:6Gbps

SAS:6Gbps

USB:450MB/s

IDE,SCSI,SATA,ASA,USB:/dev/sd

不同设备:a-z

/dev/sda,/dev/sdb…..

4个主分区

3主分区+1扩展(N个逻辑分区);

分区管理工具:fdisk,parted,sfdisk

Fdisk: 对于一块硬盘来讲,最多只能管理15分区

#fdisk –l  列出指定磁盘信息,

设备        boot(引导)      start(起始柱面)       end (结束柱面)        blocks(磁盘快量)  ID(分区标示) system(系统类型)

管理分区:

# Fdisk device

Fdisk /dev/sda

P:print,显示已有分区

n:创建分区

d:删除

w:write,保存退出

q:quit,放弃更新并退出

m:获取帮助

l:列出分区id;

82:交换分区

83:linux分区等

t:调整分区ID;

p:主分区

e:扩展分区

centos 6、7

#       cat /proc/partitions 查看内核是否已经识别新的分区;

如未识别,通知内核重新读取硬盘分区表:有一定的风险:

Partx –a /dev/sda

centos 5

partprobe [/dev/DEVICE]

linux文件系统管理(04)_recv

Linux文件系统:ext2,ext3,ext4,

Swap:交换分区

光盘:ISO9660

Windows:fat32,ntfs

Unix:FFS,UFS,JFS2

网络文件系统:NFS,CIFS

系统文件:GFS2,OCFS

分布式文件系统:ceph

创建文件系统:

查看文件系统支持的类型:

Cat /proc/filesystem

Lsmod      可以查看内核中已装载的模块;

格式化分区:

1:Mkfs [–t 文件系统类型 分区设备]

Mkfs –t ext4 /DEV/sdb1

Mkfs.ext4 /dev/sda5

Blkid /dev/sda5 块设备属性信息查看;

-L:设定卷标

其他:

Bklid:块设备属性信息;

Blkid [OPTION]…[DEVICE]

-U UUID:根据指定的UUID来查找对应的设备

-L LABEL:根据指定的LABEL来查找对应的设备;

Tune2fs:重新设定ext系列文件系统可调整参数的值

-l:查看指定文件系统超级块信息:super block

-L:修改卷标

-m:修预留给管理员的空间百分比

-j:将ext2升级为ext3

-O:文件系统属性启用或禁用

-o:调整文件系统的默认挂载选项

-U UUID:修改UUID号

Dumpe2fs:

-h:查看超级快信息;

Mkswap:创建交换分区

Msswap /dev/sdb5

文件系统检测:

手动文件检测:

Fsck:文件系统检测

Blkid /dev/sda5 查看

Fsck.ext2 /dev/sda5

上一篇:iOS开发UI篇—Button基础


下一篇:C# 页面向controller中跳转匹配方法的时候,当controller中有两个重载方法时候,不发生跳转