第二周blog 作业
-
1
目录管理命令:mkdir、rmdir
mkdir命令
mkdir - make directories mkdir [OPTION]... DIRECTORY... -P:子目录创建完,再创建父目录,递归创建 -m=MODE:设置文件权限 -v:显示创建过程 example: # mkdir /tmp/sadan 在/tmp目录下创建sadan目录 # mkdir -Pv /tmp/a/b/c/d 在/tmp目录下逐步创建d、c、b、a目录并显示过程
rmdir命令
rmdir - remove empty directories(删除空目录) rmdir [OPTION]... DIRECTORY... -P:递归删除 -v:显示执行过程 example: # rmdir /tmp/sadan 删除/tmp下的sadan目录 # rmdir -P /tmp/a/b/c/d 删除/tmp下a、b、c、d目录并显示过程 注:rmdir只能删除空目录,目录中有文件时,无法进行删除。
文件管理命令:cp、mv、rm
cp命令
cp - copy files and directories 复制文件或目录 cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 当目地为目录: 将文件复制到目录文件下 当目地为文件: 1 文件不能为目录 2 只能是单个文件 文件复制到文件时,既是覆盖操作(内容改变,文件名不变) -P:复制链接文件时,不复制链接文件的源文件 --preserve:指定复制的属性(默认为mode,ownership,timestamps) -a:用于归档 -L:复制链接文件时,直接复制其源文件,但名称为链接文件名 -r,R:递归复制 -i:交互式 example: # cp /etc/passwd /tmp 将passwd文件复制到/tmp目录 # cp -r /etc/ /tmp 将/etc目录复制到/tmp目录中 # cp -P /dev/cdrom /tmp 复制链接文件 # cp -L /dev/cdrom /tmp 复制链接文件的目标文件 # cp /etc/passwd /tmp/sadan cp: overwrite `/tmp/sadan'? y 覆盖文件
mv命令
mv - move (rename) files 移动或重命名文件 mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... -i:交互式 -f:强制 当mv对文件使用没有移动其位置时,为修改名称操作。 example: # mv /etc/fstab /etc/fstab_mv 修改/etc目录下fstab文件名为fstab_mv # mv /etc/fstab /tmp 将/etc/fstab文件移动到/tmp目录下
rm命令
rm - remove files or directories 删除文件或目录 rm [OPTION]... FILE... -r:递归操作 -f:强制 -i:交互式 example: # rm -i /etc/fstab rm: remove regular file `/etc/fstab'? 交互式删除/etc/fstab文件,输入y或n执行操作 # rm -f /etc/fstab 强势删除/etc/fstab文件且不提示 # rm -rf /etc 直接删除/etc目录以及子文件
文件查看命令:cat、tac、head、tail、more、less
cat命令
cat - concatenate files and print on the standard output 连接文件并输出到标准输出 cat [OPTION]... [FILE]... -n:显示行号 -E:用$显示换行符号 example: # cat -n /etc/fstab /etc/hosts 同时将两文件显示到终端并显示行号 # cat -E /etc/hosts 将/etc/hosts文件内容输出到终端并用$来显示换行符号
tac命令
tac - concatenate and print files in reverse 相反输出文件内容 tac [OPTION]... [FILE]... example: # tac /etc/hosts 显示相反输出的内容
head命令
head - output the first part of files 输出文件最开始的部分 head [OPTION]... [FILE]... -n #:显示多少行(默认10) example: # head /etc/passwd 显示passwd文件前10行信息 # head -n 5 /etc/passwd 显示passwd文件前5行信息
tail命令
tail - output the last part of files 输出文件最后的部分 tail [OPTION]... [FILE]... -n #:显示多少行(默认10) -f:跟随文件更新 example: # tail /etc/passwd 显示passwd文件最后10行 # tail -n 5 /etc/passwd 显示passwd文件最后5行 # tail -f /etc/passwd //tty1 # echo "archlinux" >> /etc/passwd //tty2 两个不同终端执行命令,一直查看tty1终端的界面,发现终端多了一行archlinux。
more命令
more - file perusal filter for crt viewing 逐页阅读文件(无法回看) more [options] file... example: # more /etc/passwd 查看passwd文件
less命令
less - opposite of more more的对立-(与more相似是分页浏览,但是允许回看) less [options] file... example: # less /etc/passwd 查看passwd文件
-
2
bash的命令执行状态保存在$?中,使用echo $? 就能够显示上一条命令的状态返回值。
状态返回值范围:
0:成功
1-255:失败bash的命令行展开 ~:自动到用户家目录 {}:花括号中的所有元素依次展开 example: # touch /tmp/{a,b}_{c,d} 其结果为 a_c,a_d,b_c,b_d
-
3
(1) mkdir /tmp/{a,b}_{c,d}
(2) mkdir -P /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}} -
4
元数据包含:权限,属主属组,时间戳,文件大小,文件类型等文件属性
使用stat命令查看
如:
# stat /etc/passwd
修改文件时间戳使用touch命令 touch [options] file -a:仅修改访问文件的时间 -m:仅修改修改文件的时间 -t STAMP:指定时间代替当前时间([[CC]YY]MMDDhhmm[.ss]) example: # touch -a -t 201612080038.38 /etc/passwd Access: 2016-12-08 00:38:38.000000000 +0800 修改其访问时间为指定时间 # touch -m -t 201612080038.38 /etc/passwd Modify: 2016-12-08 00:38:38.000000000 +0800 修改其修改时间为指定时间
-
5
定义别名的命令是alias
alias-Define or display aliases 定义或显示别名 alias [-p] [name[=value] ... ] example: # alias [-p] 显示所有定义的别名 # alias rr='rm -rf' 将rm -rf 命令执行定义为rr 命令引用: ``: `date +"%y-%m-%d"` $ : $(date +"%y-%m-%d") example: # mkdir /tmp/sadan-$(date +"%y-%m-%d") # ls sadan-16-12-01
-
6
ls -d /var/l*[0-9][^0-9]
-
7
ls -d /etc/[0-9]*[^0-9] -
8
ls -d /etc/[^[:alpha:]][[:alpha:]]* -
9
mkdir /tmp/tfile-$(date +”%Y-%m-%d-%H-%M-%S”) -
10
cp -r /etc/p*[^0-9] /tmp/mytest1 -
11
cp -r /etc/*.d /tmp/mytest2 -
12
cp -r /etc/[lmn]*.conf /tmp/mytest3
find详解
-
find命令用来做什么?
-
find命令作用机制
-
find命令的优缺点
-
find命令的使用
find命令用来做什么?
首先查看man文档中find命令的介绍,search for files in a directory hierarchy,在目录层级中查找文件。 由其意可知道该命令用来查找文件。
find命令作用机制
那么find命令是如何查找文件的呢? find命令使用的是遍历查询(逐个查找)的方法,在各个层级遍历,最终找到目标文件。
find命令的优缺点
find命令有许多的条件限定,然后也是遍历当前文件系统所查询,因此有以下各优缺点: 优: 1 查找精确 2 实时查找 缺: 1 消耗资源,查询所需时间稍久
### find命令的使用
格式: find [path...] [options] [tests] [actions] path:查找路径;默认为当前目录 options:选项,find的各类选项 tests:匹配文本条件 actions:查找之后find对查询到的结果的执行动作 options: -maxdepth levels:查找的路径最大层级深度 -mindepth levels:查找的路径最小层级深度 example: 查看/etc下的一级子文件 # find /etc -maxdepth 1 tests: 文件名 -iname pattern:忽略大小写 -name pattern:根据文件名查找 此处的pattern是globbing匹配的标准 example: 查询以s或S开头的文件 # find /etc -iname s* -regex pattern:基于正则表达式模式查找文件,匹配的是整个路径,而不是文件名 example: 根据匹配条件匹配路径 # find /etc -regex '.*ts' 权限 权限分三类:u、g、o -perm [-|/]mode mode:精确查询,完全符合mode的文件 (如:222,匹配到的必须是222) /mode: 三类权限中一类中达到mode标准即可 (如:222,匹配到的可以是121、112、211、222等) -mode: 三类权限全部要达到标准 (如:222,匹配到的权限可以是222、333、444等等) example: 查找/var目录下,所有用户都是只读权限的文件 # find /var -perm 222 查找/var目录下,至少有一类用户有读权限的文件 # find /var -perm -222 查找/var目录下,所有用户有读权限的文件 # find /var -perm /222 文件类型 -type #: b:block,块设备文件 c:character,字符设备文件 d:directory,目录 p:pipe,管道 f:regular file,文件 l:symbolic link,符号链接 s:socket,套接字文件 example: 查找/dev目录下的字符设备 # find /dev -type c 文件属主属组: -uid n:查找属主为指定uid的文件 -gid n:查找属组为指定gid的文件 -nouser:查找没有属主的文件 -nogroup:查找没有属组的文件 -user username:查找指定属主名的文件 -group groupname:查找指定属组名的文件 example: 查找/etc目录下uid为100的用户所拥有的文件 # find /etc -uid 100 查找/etc目录下没有属主的文件 # find /etc -nouser 查找/etc目录下属主名为sadan的文件 # find /etc -user sadan 以下参数代表意义: +n:大于n -n:小于n n:等于n 时间戳: 按天查询: -atime [+|-]n -mtime [+|-]n -ctime [+|-]n 按分钟查询: -amin [+|-]n -mmin [+|-]n -cmin [+|-]n example: 查找/var目录下,三天前访问过的文件 # find /var -atime +3 查找/var目录下,五天内修改过的文件 # find /var -mtime -3 查找/var目录下, 昨天这个时间移动过的文件 # find /var -ctime 1 查找/var目录下,一分钟以前访问过的文件 # find /var -amin +1 文件大小: -size [+|-]n[cwbkMG] example: 查找/etc目录下大于7k的文件 # find /etc -size +7k 查找/etc目录下小于10M的文件 find /etc -size -10M 查找/etc目录下等于15b的文件 find /etc -size 15b actions: -delete:删除查找到文件 -ls:相当ls -l命令,显示文件长格式信息 -fls file:将查找文件显示长格式并保存到指定文件中 -ok COMMAND {} \; 需要用户进行确定之后再执行指定操作 -exec COMMAND {} \; 直接执行指定操作 其{}代表的是前面匹配到的内容 条件关系: ! | -not : ! expr2; 非 -o: expr1 -a expr2; 或 -a: expr1 -a expr2; 与 ()需要加\ 如:\(\) example: 查找/etc下,前天到今天为止访问过的大小为4k的文件,并删除 find /etc -atime -2 -a -size 4k -delete 查找/var目录下属主为root,且属组为mail的所有文件,并显示长格式信息 find /var -user root -a -group mail -ls 查找/var目录下属主不为root,且属组不为mail的所有文件,并将查找到的文件保存到/tmp目录中 find /var !\(-user root -o -group mail\) -fls /tmp 查找/etc目录下大于1M且类型为普通文件,并让交互式删除 find /etc -size +1M -a -type f -ok rm -rf {} \; 查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限,将查询到的文件改名为*.new find /etc/init.d -perm -111 -a -perm 002 -exec mv {} {}.new \;
原创文章,作者:N25_sadan,如若转载,请注明出处:http://www.178linux.com/63319
评论列表(1条)
赞,写的非常详细~继续加油~