第一次考试总结

第一大题

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 --只读
w 2 --写
x 1 --执行
- 0 --无权限

------------------------

7 rwx
6 rw-
5 r-x
4 r--
3 -wx
2 -w-
1 --x
0 ---

[[email protected] 桌面]# 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:创建多个目录

[[email protected] 桌面]# mkdir qaz wsx edc
[[email protected] 桌面]# ls
edc qa qaz wsx

[[email protected] 桌面]# mkdir {1,2,3}
[[email protected] 桌面]# 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

[[email protected] tmp]# chown .kiki xx -- 改变所属组(chgrp kiki xx)

[[email protected] tmp]# chown kiki. xx ---改变所有属性 (chown kiki:kki xx)

5>linux查看文件的命令

1.列出文件清单命令:lsls命令能够列出当前目录下的所有内容。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",而且会打印一个警告。这种行为是为了帮助转换旧脚本和习惯。
它是脆弱的,即将更改,因此不应依赖。 

[[email protected] ~]# 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命令。通常使用数据流重定向,将处理结果输出为文件;

[[email protected] ~]# top
[[email protected] ~]# top -d 1
[[email protected] ~]# top -d 1 -p 10126					    查看指定进程的动态信息
[[email protected] ~]# top -d 1 -u apache				    查看指定用户的进程
[[email protected] ~]# top -d 1 -b -n 2 > top.txt 	    将2次top信息写入到文件

7>useradduseradd --新建用户

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/shadowuser1001$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  设置用户密码的过期时间	-g	gid	-G	GROUP 	-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 kiki01uid=2022(kiki01) gid=0(root) groups=0(root),10006(kiki02) context=root:system_r:unconfined_t:SystemLow-SystemHigh

usermod	--修改一个已经存在的用户,跟useradd的参数是一样的。usermod -c "你不是程序用户"  test04usermod -s /sbin/nologin  test04usermod -L <username>	锁定用户usermod -U <username>   解锁用户useradd   -l   修改用户名字

第二大题1>通配符2>vim

1>通配符通配符:*	--匹配一个或者任意多个字符,也就是*代表所有?	--匹配一个字符$	--引用变量ls /etc/*.conf[[email protected] ~]# ls /etc/?confecho $PATH

2>vim三种模式           命令模式     iIaAoO|ESC /       \:|ESC        输入模式        末行模式

1.命令模式():	          yy	    3yy    shift+6	  shift+4		   p/P  复制一行	3行 光标行首 光标行尾 行后粘貼/行前粘貼	    dd	3dd            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:忽略空格 

[[email protected] Desktop]# cat file1
a
b
c
3
e

[[email protected] Desktop]# cat file2
a
b
c
d
e
8
[[email protected] Desktop]# diff file1 file2
4c4
< 3
---
> d
6c6
<
---
> 8
[[email protected] Desktop]# diff file2 file1
4c4
< d
---
> 3
6c6
< 8
---
>
[[email protected] Desktop]# diff -c file2 file1
*** file2	2017-04-21 17:25:58.448733455 +0800
--- file1	2017-04-21 17:24:46.026733277 +0800
***************
*** 1,6 ****
  a
  b
  c
! d
  e
! 8
--- 1,6 ----
  a
  b
  c
! 3
  e
!
[[email protected] Desktop]# diff -u file2 file1
--- file2	2017-04-21 17:25:58.448733455 +0800
+++ file1	2017-04-21 17:24:46.026733277 +0800
@@ -1,6 +1,6 @@
 a
 b
 c
-d
+3
 e
-8
+
[[email protected] Desktop]# diff -u file1 file2
--- file1	2017-04-21 17:24:46.026733277 +0800
+++ file2	2017-04-21 17:25:58.448733455 +0800
@@ -1,6 +1,6 @@
 a
 b
 c
-3
+d
 e
-
+8
[[email protected] 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
-print
-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 file1setfacl -m g:admin:rwx file2setfacl -x u:harry file1setfacl -x g:admin file1setfacl -b file2setfacl -x m:: file1

-R -d说明:-R和-d一起使用,该目录本身和该目录下的普通文件不会继承acl策略;该目录下新创建的文件和目录以及老的目录会继承acl策略。

4>重定向标准输入(stdin): 文件描述符 0标准输出(stdout):	文件描述符 1标准错误(stderr):	文件描述符 2

重定向:将结果重定向到某个文件里

> 和 1>:标准输出重定向2>:标准错误重定向>>:追加<:标准输入&>:标准输出和标准错误重定向

5>特殊权限setuid/setgid/sticky u g osetuid(4/s)	--冒险位,临时拥有拥有者的权限#chmod 4755 /usr/bin/vim#chmod u+s /usr/bin/vim[[email protected] tmp]# ll -d /usr/bin/vim-rwxr-xr-x 1 root root 2729356 2009-06-12 /usr/bin/vim[[email protected] 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


 
时间: 2024-10-11 13:39:51

第一次考试总结的相关文章

高项第一次考试顺利通过后的感想

2016上半年的高项考试成绩下来了,53,56,46,一次性顺利通过,在这里跟大家分享一下我的准备过程,希望对备考的同志们有所帮助. 大部分报考高项的同志们应该平时工作都不轻松,我也是这样,所以如何高效的抓住复习的重点是十分重要的,在这次考试的准备过程当中,薛大龙老师的考前复习班对考试通过起到了至关重要的作用. 我是从春节之后开始准备项目管理师的考试的,当时买了教材之后,就开始看书,看了一个多月之后试着做了做真题,感觉之前完全没抓到复习的重点,效率太低,因此觉得还是得跟个培训班系统学习一下,于是

『2020第一次考试总结及规划』

多校联合测试 一场常规省选难度的模拟赛,三题的标签分别是"结论题","多项式","费用流". 第一题看似是数位题,但是卡空间,并且删除操作难以用\(\mathrm{Trie}\)等数据结构维护,让人匪夷所思. 正解是一个结论,值域区间最大的\(\mathrm{and}\)和必然诞生在前\(p\)大的数当中,\(p\)与值域的一个\(\log\)同阶.证明可以考虑反证法,分成\(\mathrm{ans}\)最高位以上的位和最高位以下的位两部分考虑即

第一次考试的感受

2019-4-13,2019-4-14去苏州考试了,真是的没吃好没睡好,自己给自己的压力也是很大,第一次体验自考考试,还是有很多感触的,第一科考的是历史,我历史花的时间是最多的,幸运是选择题分值占得比重多,这次过的可能性很大,大题我背了很多,但是就考到2个,还是挺失望的,真是是运气很重要,如果考到我背的肯定对答如流啊,还好我选择题做的题库比较多,感觉就错了一个,所以通过的可能性还是相当的大.第二个是考的马克思,其实算是裸考了,因为时间太紧迫,我对马克思也不来电,做试卷的时候直接晕菜,啥也不会,就

20165329 第一次考试课下补做

第一次测试总结 带包的代码编译运行 失败分析 暑假没有好好预习,对打包编译运行的命令不熟悉 打包编译javac -d . xxx.java,打包运行java 包名.xxx 运行的截图 代码链接 https://gitee.com/BESTI-IS-JAVA-2018/20165329-HeJiaWei/tree/master/20165329/scr 原文地址:https://www.cnblogs.com/hjwzzj/p/8531250.html

第一次考试试题

# Python基础数据类型考试题# 考试时间:两个半小时 满分100分(80分以上包含80分及格)# 一,基础题.# 1,简述变量命名规范(3分)# 答:变量名是由数字.字母.下划线任意组合,变量名要具有描述性,不能是Python关键字,不能是数字开头,不能是中文.# 2,字节和位的关系.(2分)# 答:8个字节等于一位# 3,'太白'使用utf-8编码时,占的位数和字节数,是多少?使用gbk编码时,占的位数# 和字节数,是多少.(2分)# 答:utf-8 6字节 48位# gbk 4字节 3

20165311 第一次考试课下补做

第一个测试: 第二个测试: 第三个测试: 知识点: 第一个测试 源代码名称随着public类名称的改变而改变 第二个测试 打包文件时,需要先在总目录中输入javac -d bin *.java,再输入java -cp .:bin packagename.*,在bin目录中的字节码运行出结果即可 第三个测试 源文件的名称与public类名称相同 运行时应运行主类所在的文件名称 Java语言中区分大小写 写java命令不能携带扩展名和目录 测试未完成原因:虚拟机一开始没有安装jdk 课下发现可以用g

【2019.8.14】2019QB学堂DP图论班第一次考试 Problem C

Problem C Problem Description Tarzan 非常烦数轴因为数轴上的题总是难度非常大.不过他非常喜欢线段,因为有关线 段的题总是不难,讽刺的是在一个数轴上有 n 个线段,Tarzan 希望自己喜欢的东西和讨厌的 东西不在一起,所以他要把这些线段分多次带走,每一次带走一组,最多能带走 k 次.其实 就是要把这些线段分成至多 k 组,每次带走一组,问题远没有那么简单,tarzan 还希望每次 选择的线段组都很有相似性,我们定义一组线段的相似性是组内线段交集的长度,我们现在

考试了...

今天迎来了培训以来的第一次考试 320不算高 讲评后认识到一个很严重的问题 读题要认真,不能放过任何一个细节 前人有很多血淋淋的例子 一定要吸取教训 一个小小的点 也可能会让你失去很多的分数 甚至影响你的未来 另外 循环...还是不太会用啊啊啊啊啊 继续磨合磨合~~~~

蓝懿教育 考试

昨天进行了第一次考试,10道题目,主要是了解下自己这段时间的学习情况和有哪些不足, 很多代码都太不熟悉了,理解也不够深,还是敲得太少,以后要多理解思考,多敲代码. 题目: 在TableViewController里面显示出10行 每一行显示,第1题  第2题 第3题 第4题…点击每一行分别进入对应题目的页面 1.界面中添加一个文本输入框 和一个Label 还有一个按钮 文本框中只能输入数字  而且限制用户不能输入8,点击按钮的时候把文本框中的内容显示到label中. 2.界面中添加一个Scrol