我们继续学习Linux
find
find命令用来在指定目录下查找文件,任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
find命令使用介绍:
命令格式:find [目录] [选项] [-print] [-exec -ok command] {} \
命令功能:用于在文件树种查找文件,并作出相应的处理
命令的常用参数选项说明:
-print [将查找到的文件输出到标准输出]
-exec command {} \; [将查到的文件执行command操作, {} 和 \; 之间有空格]
-ok [在操作前要询用户]
-name filename [查找名为filename的文件]
-perm [按执行权限来查找]
-user username [按文件的拥有者来查找]
-group groupname [按组来查找]
-mtime -n +n [按文件更改时间来查找文件,-n指n天以内,+n指n天以前]
-atime -n +n [按文件访问时间来查]
-ctime -n +n [按文件创建时间来查找文件,-n指n天以内,+n指n天以前]
-nogroup [查无有效属组的文件,即文件的属组在/etc/groups中不存在]
-nouser [查无有效属主的文件,即文件的属主在/etc/passwd中不存]
-newer f1 !f2 [查更改时间比f1新但比f2旧的文件]
-type b/d/c/p/l/f [查找块设备(b)、目录(d)、字符设备(c)、管道(p)、符号链接(l)、普通文件(f)]
-size n[c] [查长度为n块[或n字节]的文件]
-depth [查找递归的目录深度]
-fstype [查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到]
-mount [查文件时不跨越文件系统mount点]
-follow [如果遇到符号链接文件,就跟踪链接所指的文件]
-cpio [对匹配的文件使用cpio命令,将他们备份到磁带设备中]
-prune [忽略某个目录]
一般常用的几种用法和情景:
1.将目前目录及其子目录下所有延伸档名是.c的文件列出来
find . -name "*.c"
2.将目前目录其其下子目录中所有一般文件列出
find . -type f
3.将目前目录及其子目录下所有最近 20 天内更新过的文件列出
find . -ctime -20
4.查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问
find /var/log -type f -mtime +7 -ok rm {} ;
5.查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
find . -type f -perm 644 -exec ls -l {} ;
6.为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {} ;
pwd
Linux中用pwd命令来查看当前工作目录的完整路径。
简单得说,每当你在终端进行操作时,你都会有一个当前工作目录,现在就用pwd来列出当前的工作目录
pwd命令使用介绍:
命令格式:pwd [选项]
命令功能:查看当前工作目录的完整路径
命令的常用参数选项说明:
一般情况下不带任何参数
如果目录是链接时,pwd -P显示出实际路径,而非使用连接(link)路径。
一般常用的情景
1.列出当前的目录
[root@localhost ~]# cd /opt/soft/
[root@localhost soft]# pwd
/opt/soft
为什么要介绍这个命令,因为这个命令对于渗透的来说是个重要的命令,比如你发现了某个Linux服务器有个远程命令执行漏洞,你就可以通过给这个漏洞传一个pwd来查看当前这个漏洞脚本程序的工作目录
cat
cat命令用于连接文件并打印到标准输出设备上
cat命令使用介绍:
命令格式:cat [选项] [文件名]
命令功能:cat命令用于连接文件并打印到标准输出设备上
命令的常用参数选项说明:
-n --number [由1开始对所有输出的行数编号]
-b --number-nonblank [和-n相似,只不过对于空白行不编号]
-s --squeeze-blank [当遇到有连续两行以上的空白行,就代换为一行的空白行]
-E --show-ends [在每行结束处显示$]
-T --show-tabs [将 TAB 字符显示为^I]
-A, --show-all [等价于-vET]
常用的情景就是对于要查看的文件比较小,而且不希望对文件进行误更改的时候
1.把textfile1的文档内容加上行号后输入textfile2这个文档里。注意这里是>,这个符号的意思是覆盖源文件中的内容
cat -n textfile1 > textfile2
2.
把
textfile1
和
textfile2
的文档内容加上行号(空白行不加)之后将内容附加到
textfile3
文档里
这里注意和上面区分,这里是>>,两个,表明不覆盖原文件,而是在源文件的末尾增加
cat -b textfile1 textfile2 >> textfile3
3.清空/etc/test.txt文档内容
cat /dev/null > /etc/test.txt