第一大题
1.文件权限
2.mkdir命令
3.tar命令
4.chmod命令
5.Linux查看文件的命令
6.ps命令
7.useradd命令
1>文件权限:
user | group | other
4 2 1| 4 2 1 | 4 2 1
r w x| r w x | r w x
rwx-
r 4 --只读
w2--写
x1--执行
-0--无权限
------------------------
7 rwx
6 rw-
5 r-x
4 r--
3 -wx
2 -w-
1 --x
0 ---
[root@exam 桌面]# ll -d qa
drwxr-xr-x. 2 root root 4096 8月 9 14:28 qa
d--文件夹(LINUX中的七种文件类型:
d 目录文件。
l 符号链接
s 套接字文件。
b 块设备文件,二进制文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或更准确地说,不属于以上几种类型的文件)
rwx --拥有者的权限
r-x ---属组(主组)的权限
r-x --除了拥有者/属组以外用户的权限(其它用户)
root ---拥有者
root--属组
---------------------------------------------
2>mkdir
在Linux系统中,mkdir命令用来创建一个目录或一个级联目录。
1. 命令格式
mkdir [选项] 目录名
2. 命令选项
-m=mode 为目录指定访问权限,与chmod类似。
-p 如果目录已经存在,则不会有错误提示。若父目录不存在,将会创建父目录。该选项常用于创建级联目录。
-v 为每个目录显示提示信息。
demo1:创建多个目录
[root@exam 桌面]# mkdir qaz wsx edc
[root@exam 桌面]# ls
edc qa qaz wsx
或
[root@exam 桌面]# mkdir {1,2,3}
[root@exam 桌面]# ls
1 2 3 edc qa qaz wsx
拓展:rmdir 该命令用用来删除空目录,如果目录非空,则会出现错误。可以使用rm删除目录中的文件后,使用rmdir删除目录。也可以使用rm -rf替代rmdir命令。
3>tar
tar 打包压缩多个文件,不会改变文件的属性与权限
用法:
tar option 打包压缩后的文件 需要打包压缩的文件
选项:
-c 创建tar包
-f 指定包名
-v 显示详细信息
-z 使用gzip工具压缩
-j 使用bzip2工具压缩
-J 使用xz工具压缩
-t 查看tar包内容
-x 解压tar包
-C 指定解压路径
-r 追加文件到tar包
说明:
参数前面的“-”可有可无
4>chmod
与之有关的两个命令:chown/chgrp
chown --修改文件的拥有者/属组/其它用户的权限
chown [-R]<username>.<group> /<path>/filename
chown<username>:<group> /<path>/filename
chown<username> /<path>/filename>
chown:<group> /<path>/filename
chown -R alex:alex alex/
chonw alex.alex alex/
chgrp 更改文件或者目录的工作组所有权
chgrp -R groupname filename
chgrp kk alex
drwxr-xr-x 2 root kk 4096 Apr 14 06:09 alex
[root@desktop7 tmp]# chown .kiki xx -- 改变所属组(chgrp kiki xx)
[root@desktop7 tmp]# chown kiki. xx ---改变所有属性 (chown kiki:kki xx)
5>linux查看文件的命令
1.列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名]
进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a
2、cat命令
功能:在标准输出上显示文件。
语法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 > file2
3、more命令
功能:在终端屏幕按屏显示文本文件。
语法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既
可以向前又可以向后翻阅文件。
5、head命令
功能:显示指定文件的前若干行。缺省设置为显示10行
语法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:显示指定文件的末尾若干行。缺省设置为显示10行
语法:tail [+ / - num ] [参数] 文件
+num 从第num行以后开始显示。- num 从距文件尾num行处开始显示。
例子: tail example.c
tail -4 example.c
6>ps
进程的状态:
R 运行
S 可中断睡眠 Sleep
D不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程 【看不见】
静态查看进程——ps:
ps:用来查看进程信息,功能强大,用法也比较复杂,最常用用的参数有:ps aux ,ps -ef ,ps -ely
选项说明如下:
a:显示现行终端机下的所有进程,包括其他用户的进程;
u:显示进程拥有者、状态、资源占用等的详细信息(注意有“-”和无“-”的区别)。
x:显示没有控制终端的进程。通常与 a 这个参数一起使用,可列出较完整信息。
-e:显示所有进程。
-f:完整输出显示进程之间的父子关系
-l:较长、较详细的将该 PID 的的信息列出;
注:ps -aux 不同于 ps aux
意思是:
请注意"ps -aux"不同于"ps aux"。POSIX和UNIX的标准要求"ps -aux"打印用户名为"x"的用户的所有进程,以及打印所有将由-a选项选择的过程。
如果用户名为"x"不存在,ps的将会解释为"ps aux",而且会打印一个警告。这种行为是为了帮助转换旧脚本和习惯。
它是脆弱的,即将更改,因此不应依赖。
[root@vm1 ~]# ps aux|head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19356 1432 ? Ss 19:41 0:03 /sbin/init
USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ:占用虚拟内存
RSS: 占用实际内存 驻留内存
TTY: 进程运行的终端
STAT:进程状态 man ps (/STATE)
R 运行
S 可中断睡眠 Sleep
D不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R++表示是前台的进程组
Sl以线程的方式运行
START:进程的启动时间
TIME:进程占用CPU的总时间
COMMAND: 进程文件,进程名
拓展:top
动态查看进程——top
在top的执行过程中,还可以使用以下的按键命令:
h|?帮助
M按内存的使用排序
P按CPU使用排序
N以PID的大小排序
R对排序进行反转
f自定义显示字段
1显示当前系统的cpu的逻辑数量
T:按该进程使用的CPU时间累积排序
k:给某个PID一个信号(signal),默认值是信号15
r:重新安排一个进程的优先级别
s:改变两次刷新之间的时间。默认是5秒
q:退出程序。
<向前
>向后
z彩色
W 保存top环境设置
top命令常用的选项:
-d:后面可以接秒数,指定每两次屏幕信息刷新之间的时间间隔;
-p:指定某个进程来进行监控;
-b -n:以批处理方式执行top命令。通常使用数据流重定向,将处理结果输出为文件;
[root@vm1 ~]# top
[root@vm1 ~]# top -d 1
[root@vm1 ~]# top -d 1 -p 10126 查看指定进程的动态信息
[root@vm1 ~]# top -d 1 -u apache 查看指定用户的进程
[root@vm1 ~]# top -d 1 -b -n 2 > top.txt 将2次top信息写入到文件
7>useradd
useradd --新建用户
useradd username
useradd [-c|-d|-g|-G|-s|-u|-m|-M]
-c 新建用户时添加注解
-d 指定用户的家目录
-g 指定用户的主组
-G 辅助组
-s 指定用户的shell
-u 指定用户ID
-m 新建用户时要创建家目录
-M 新建用户时不创建家目
-r 指定定程序用户
useradd -u 10005 test05 -d /dev/null -M -c "这是一个程序用户5" -g kkk -G root,bin -s /sbin/nologin
# cat /etc/passwd
用户配置文件:
/etc/passwd--存放用户信息
man 5 passwd
/etc/shadow--存放密码,账号的时间设置
man 5 shadow
/etc/group--组信息
/etc/gshadow--组密码
/etc/login.defs--创建用户时使用的模板
/etc/skel/*--用户配置文件模板
user1001:X:110:120:这是一个手工创建的用户:/home/user1001:/bin/bash
用户名 :密码:uid:gid:注释:家目录:shell
#vim /etc/shadow
user1001$1$SefNk95S$OY4g7fMVcRNvcxLJWwW.91:14940:0:99999:7:0:14950:
每一行9个字段,以冒号分隔,
1)user1001 --> 用户名
2)$1$SefNk95S$OY4g7fMVcRNvcxLJWwW.91 --> md5 加密密码
3)14940 --> 从 1970-01-01 计算经过天数 (2010-11-27)
4)用户最后修改密码限期 0 --> 密码最小修改限期, 假如 3 --> 14943 <- 从现在开始到 2010-11-30 才允许修改密码
5)99999 --> 密码修改最大限期 假如15 --> 每 15 天必须改密码一次
\--修改 15 后 --> 14940 + 15 = 14955 = 2010-12-12 前必须修改密码
6)7 --> 密码过期前 7 天开始警告
7)0 --> 当密码过期后,拒绝用户登录 (3) 过期后三天内还允许修改密码,过了三天拒绝登录
8)14500 ---> ( 1970-01-01 ) 过了 14950 天 (2011-03-01) <- 从开始用户帐号锁定
9)保留标志,目前没有意义
拓展:usermod/userdel
usermod
-d 修改用户家目录
-e 设置用户密码的过期时间
-ggid
-GGROUP
-l 新的用户登录名 # usermod -l keke test01
-L用户锁定
-s /bin/bash ....
-u uid
-U 解锁
userdel--删除一个用户
userdel <username>
userdel -r <username>--删除用户时把家目录一起删除
usermod -g <group1> -G <group2,group3> <username>
userdel -r ----删除用户的家目录,邮件池
# usermod -g root -G kiki02 kiki01
#id kiki01
uid=2022(kiki01) gid=0(root) groups=0(root),10006(kiki02) context=root:system_r:unconfined_t:SystemLow-SystemHigh
usermod--修改一个已经存在的用户,跟useradd的参数是一样的。
usermod -c "你不是程序用户" test04
usermod -s /sbin/nologin test04
usermod -L <username>锁定用户
usermod -U <username> 解锁用户
useradd -l 修改用户名字
第二大题
1>通配符
2>vim
1>通配符
通配符:
*--匹配一个或者任意多个字符,也就是*代表所有
?--匹配一个字符
$--引用变量
ls /etc/*.conf
[root@instructor ~]# ls /etc/?conf
echo $PATH
2>vim
三种模式
命令模式
iIaAoO|ESC / \:|ESC
输入模式 末行模式
1.命令模式():
yy 3yy shift+6 shift+4 p/P
复制一行3行 光标行首 光标行尾 行后粘貼/行前粘貼
dd3dd HOME END
u(undo)--撤消
yw 选定光标所在行复制
行内快跳:home/end 或 shift+^ shift+$
行间快跳:gg:跳到第一行 G:跳到最后一行
10gg:跳到10行
删除,复制,粘贴
x向后删除一个字符 = delete
X往前删除一个字符 =
--dd直接删除光标所在行ndd (n代表数字,删除n行)
--yy复制光标所在行nyy(n代表数字,复制n行)
--p粘贴
--u回退上一次操作 按一次u只能回退一次
移动相关:
--ctrl+b 向上翻页 = page up
--ctrl+f 向下翻页 = page down
ctrl+d 向下移动半页
ctrl+u 向上移动半页
--G移动到页末 =shift +g
--gg移动到页头
--0移动到行头 = home
--$移动到行末 = end
n(代表数字)+回车 向下移动N行
h 左<--
l 右-->
k 上
j 下
2.模式行模式:
命令模式-(:)->末行模式
查找:/关键字,向下匹配按n,向上匹配按N
?关键字,反向查找
:set number [set nu] --设置编码 (set nonumber)
# vim /etc/vimrc
set number--在一个空白的地方加上(不要加到代码段里去了),以后使用vim打开任意文件,都会自动显示行号
:w--保存
:wq--保存退出
:wq!-- 强制保存退出
:q!--不保存退出
:e!-可以撤消所有的修改至打开文件的
:w /tmp/a.txt--另存为 强制保存 w! /tmp/a.txt
:1,10w /tmp/b.txt--1到10行另存为
:r /etc/passwd--从另一个文件中read入
:%s/root/ROOT--在整个文件中搜索每一行的第一个this替换that
:%s/root/ROOT/g--在整个文件中搜索每一行this替换that
:%s/this/that/gc
:%s#/sbin/nologin#/xbin/login#g
10,20s#/bin/bash#/sbin/nologin#
--在整个文件中搜索每一行this替换that,每一个都需要确认
3.输入模式:
命令模式-(iIaAoO)->输入模式
i--在当前光标处进入输入模式
I--在行首进入输入模式
a--在当前光标的后一个位进入输入模式
A--在当前行末进入输入模式
o--在当前光标的下一行插入空行并进入输入模式
O--在当前光标的上一行插入空行并进入输入模式
r--替换光标所在的字符
R--从光标处向后一直替换
总结:打开文件-->命令模式-(iIaAoO)-->输入模式(输入用户自定义内容)-(ESC)->命令模式-(:)->末行模式-(:wq)-》保存退出
vim -o /tmp/a.txt /tmp/b.txt ...
vim -O /tmp/a.txt /tmp/b.txt ... 切换ctrl+ww
--当两个终端同时打开的话,会产生一个.swap文件
如:你打开/tmp/passwd文件,会产生/tmp/.passwd.swap
解决方法是:直接删除掉它就可以了
rm /tmp/.passwd.swp
第三大题
1.文件链接
2.kill
1>文件链接
链接命令:ln 生成链接文件
ln [源文件] [目标目录] :
- 创建硬链接
- -s:创建软链接
硬链接特征:(ln )
1.拥有相同的i节点和存储block快,可以看做是同一个文件
2.可通过i节点识别
3.不能跨分区
4.不能针对目录使用,仅对文件有效
软链接特征:(ln -s)
1.类似windows的快捷方式
2.软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
3.修改任意一个文件,另一个都会改变
4.删除源文件,则软链接无法使用
5.软链接的文件权限都为rwxrwxrwx(文件权限以原文件为准)
注意事项:
若要创建软链接,则创建的源文件必须使用绝对路径,否则在使用软链接时会报错
软链接和硬链接区别:
若将源文件删除,硬链接依旧有效,而软链接会无效,即找不到源文件
ln 源文件 目标文件
ln -sf /etc/passwd /passwd ###-s 软连接 -f 强制建立连接
-s 是代号(symbolic)的意思。
ln -sf /data/u01 /u01
2>kill
1.命令格式:
kill[参数][进程号]
2.命令功能:
发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
3.命令参数:
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
注意:
1、kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。例如:
kill -2 123
它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。但是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。
2、kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。
3、可以向多个进程发信号或终止它们。
4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。
5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。
第四大题
1.小工具的使用
2.文件查找命令
1>小工具的使用:
管道(|):连接多个命令的工具,进程之间通讯的一种方式
命令1 | 命令2 | 命令3....
grep工具:行过滤
用法:grep 选项 关键字 文件
OPTIONS:
-i: 不区分大小写
-v: 查找不包含指定内容的行,反向选择
-w: 按单词搜索
-c: 统计匹配到的次数[行数]
-n: 显示行号
-r: 逐层遍历目录查找
-A: 显示匹配行及前面多少行
-B: 显示匹配行及后面多少行
-C: 显示匹配行前后多少行
--color=auto :可以将找到的关键词部分加上颜色的显示
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e: 使用正则搜索 grep -e xxx =egrep xxx
-o:
^key:以什么开头
key$:以什么结尾
每次过滤都显示颜色:
vim ~/.bashrc
alias grep='grep --color=auto'
source ~/.bashrc
cut工具:截取某一个字符,列过滤
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
# cut -d: -f1,3,6 passwd|head
# cut -d: -f1 passwd|head
# cut -c10,15 passwd |head
# cut -c10-15 passwd |head
# cut -c10- passwd |head
注意:
cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以。
-b和-c选项,-n表示从第一个字节到第n个字节,而n-表示从第n个字节到行尾
sort工具: 排序,将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
-u :去除重复行
-r :降序排列,默认是升序
-o :将排序结果输出到文件中
-n :以数字排序,默认是按字符排序
-t :分隔符
-k :第N列
-b :忽略前导空格。
-R :随机排序,每次运行的结果均不同。
uniq 去除连续重复行,不连续不去除
-i: 忽略大小写
-c: 统计重复行次数
-d:只显示重复行
tee:从标准输入读取并写入标准输出和文件
tee 双向覆盖重定向<屏幕输出|文本输入>
tee -a 双向追加重定向<屏幕输出|文本输入>
paste 合并文件行
-d:自定义间隔符,默认是tab
-s:串行处理,非并行
tr 替换 接收输入流文件
tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。
使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
a-z 任意小写
A-Z 任意大写
0-9 任意数字
[:alnum:] all letters and digits//所有字母和数字
[:alpha:] all letters//所有字母
[:blank:] all horizontal whitespace//所有水平空白
[:cntrl:] all control characters//所有控制字符
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
[:digit:] all digits//所有数字
[:graph:] all printable characters, not including space//所有可打印的字符,不包含空格
[:lower:] all lower case letters//所有小写字母
[:print:] all printable characters, including space//所有可打印的字符,包含空格
[:punct:] all punctuation characters//所有的标点符号
[:space:] all horizontal or vertical whitespace//所有水平或垂直的空格
[:upper:] all upper case letters//所有大写字母
[:xdigit:] all hexadecimal digits//所有十六进制数字
[=CHAR=] all characters which are equivalent to CHAR//所有字符
diff 比较文件的差异
1、正常格式(normal diff)
2、上下文格式(context diff) -c参数
3、合并格式(unified diff) -u参数
-i:忽略大小写
-B:忽略空行
-b:忽略空格
[root@node1 Desktop]# cat file1
a
b
c
3
e
[root@node1 Desktop]# cat file2
a
b
c
d
e
8
[root@node1 Desktop]# diff file1 file2
4c4
< 3
---
> d
6c6
<
---
> 8
[root@node1 Desktop]# diff file2 file1
4c4
< d
---
> 3
6c6
< 8
---
>
[root@node1 Desktop]# diff -c file2 file1
*** file22017-04-21 17:25:58.448733455 +0800
--- file12017-04-21 17:24:46.026733277 +0800
***************
*** 1,6 ****
a
b
c
! d
e
! 8
--- 1,6 ----
a
b
c
! 3
e
!
[root@node1 Desktop]# diff -u file2 file1
--- file22017-04-21 17:25:58.448733455 +0800
+++ file12017-04-21 17:24:46.026733277 +0800
@@ -1,6 +1,6 @@
a
b
c
-d
+3
e
-8
+
[root@node1 Desktop]# diff -u file1 file2
--- file12017-04-21 17:24:46.026733277 +0800
+++ file22017-04-21 17:25:58.448733455 +0800
@@ -1,6 +1,6 @@
a
b
c
-3
+d
e
-
+8
[root@node1 Desktop]#
wc工具: 统计行 字符 单词数
-l:打印行数
-c:打印字节数
-m:打印字符数
-w:打印单词数
-L:打印最长行的长度
扩展:
(一)“字节”的定义
字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。
(二)“字符”的定义
字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。
(三)“字节”与“字符”
不同编码里,字符和字节的对应关系不同:
①ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
②UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
③Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。
符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
④UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。
⑤UTF-32编码中,世界上任何字符的存储都需要4个字节。
du和df工具:
du:统计目录或文件大小
-h:以人性化的方式查看 KB、MB、GB
-s:显示总和
df:查看文件系统的使用情况
-h:以人性化的方式查看 KB、MB、GB
-H:使用1000位进制单位,而不是1024
-T:显示文件系统类型
-i:列出inode信息
2>文件查找命令
文件查找命令:
命令文件
# which ls //从PATH环境变量 (echo $PATH)
# whereis vim
任意文件
A. locate (查询的数据库: /var/lib/mlocate/mlocate.db)
/etc/cron.daily/mlocate.cron
速度快,缺点:忽略临时目录/tmp /var/tmp
需要手动更新数据库:updatedb
B、find 精确查找,磁盘搜索, io读写,cpu开销大
命令格式:
find path option key 默认会将查找的结果输出到屏幕
find path option key [ -exec 或者 -ok shell command {} \;] 将找出来的文件执行某个shell命令
命令功能:
用于在文件树种查找文件,并作出相应的处理
path:查找范围 / /etc ...
命令选项:
-name 按照文件名查找文件
-iname 按照文件名忽略大小写查找
-perm 按照文件权限来查找文件
-size 按照文件大小来查找 +size -size size
-type 按照文件类型来查找 f d b c l s p
-user |-nouser 属主|没有uid
-group |-nogroup 属组|没有gid
-mtime +n 按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n 按文件访问时间来查
-ctime n 按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-regex 正则表达式
.* 任意多个字符
[0-9] 任意一个数字
# find /etc -regex '.*ifcfg-eth[0-9]'
动作:
-ls
-delete
-exec command 执行参数后面的shell命令,不提示直接执行
-ok command 执行参数后面的shell命令,询问式
引申:
|:管道 将上一条命令所执行的结果(标准输出)作为下一个命令的输入
命令1 |命令2 |命令3...
xargs命令:将上一条命令所执行的结果作为下一个命令的参数
# echo --help|cat
# echo --help|xargs cat
# find /var/log -name *.log |ls -l
# find /var/log -name *.log |xargs ls -l
参数:
-t 表示先打印命令,然后再执行。
-i 将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替。
统一重命名
# find test/ -name file*|xargs -ti mv {} {}.bak
第五、六大题
1.yumg工具安装rpm包
2.磁盘划分
3.acl策略
4.重定向
5,特殊权限
1>配置yum思路:
1》需要有一个仓库(有很多软件包,并且存放了软件包的依赖关系)
2》 告诉yum工具去哪个仓库里找相应的软件包
2>磁盘划分
1》需要有一块硬盘
2》使用划分工具对硬盘进行分区(fdisk)
3》格式化分区
4》挂载使用
3>acl策略
ACL访问控制策略:
setfacl 命令设置acl策略
-m:修改acl策略
-R:递归修改,针对目录,目录下的老文件会有acl策略,新建的文件没有
-d:递归修改,默认acl策略,针对目录 目录下的老文件不会有acl策略,新建的文件有acl策略
-x:删除某个用户或某个组的acl策略
-b:删除所有acl策略
mask:定义除了拥有者和其他人以外的最大权限
getfacl 命令查看文件的acl策略
demo:
setfacl -m u:harry:rw file1
setfacl -m g:admin:rwx file2
setfacl -x u:harry file1
setfacl -x g:admin file1
setfacl -b file2
setfacl -x m:: file1
-R -d
说明:
-R和-d一起使用,该目录本身和该目录下的普通文件不会继承acl策略;该目录下新创建的文件和目录以及老的目录会继承acl策略。
4>重定向
标准输入(stdin): 文件描述符 0
标准输出(stdout):文件描述符 1
标准错误(stderr):文件描述符 2
重定向:将结果重定向到某个文件里
> 和 1>:标准输出重定向
2>:标准错误重定向
>>:追加
<:标准输入
&>:标准输出和标准错误重定向
5>特殊权限
setuid/setgid/sticky u g o
setuid(4/s)--冒险位,临时拥有拥有者的权限
#chmod 4755 /usr/bin/vim
#chmod u+s /usr/bin/vim
[root@instructor tmp]# ll -d /usr/bin/vim
-rwxr-xr-x 1 root root 2729356 2009-06-12 /usr/bin/vim
[root@instructor tmp]# ll -d /usr/bin/vim
-rwsr-xr-x 1 root root 2729356 2009-06-12 /usr/bin/vim
setgid(2/s) --强制位,针对目录来操作,可以让新生成目录继承父目录的属组权限
(小s是一开就有执行权限。而大S是一开始没有执行权限)
# chmod 2755 /test
# chmod g+s /test
sticky--粘滞位,在公共目录中,用户只能管理(删除)自己的文件(拥有者)
# chmod 1755 /test1
# chmod o+t /tse