linux 文件管理操作入门
mkdir -p /root/kali/bp/shell 一路创建文件夹直到生成文件夹shell,中间没有kali文件夹的话也会自动创建生成
tar解压缩
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar(生成文件) /etc(源文件) <==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
tar -zxvf /tmp/etc.tar.gz /dirpath 解压etc.tar.gz到根目录下的dirpath文件夹中
除/dirpath下的test外,其余全部打包: tar -zxvf /tmp/etc.tar.gz /dirpath --exclude=/dirpath/test
tar -jxvf /tmp/etc.tar.bz2 解压etc.tar.bz到当前文件
tar -ztvf /tmp/etc.tar.gz 查看gz文件里面的内容
注意: -c 增加 -x解压 -t查看 不能同时在一个命令中 如 tar -cxf filename是错误的
Linux挂载windows共享文件
首先在Windows的某个盘下建立一个APP文件夹,右键APP文件夹点击属性,再选择共享标签,然后点击共享按钮,点击那个下拉框,选择其中一个用户,最好是有密码的,然后确认共享,至此Windows端工作已完成。现在进入linux虚拟机
首先 mkdir /mnt/APP(用来挂载Windows的共享文件夹)
接着 mount.cifs //你的ip/APP /mnt/APP -o -user=你的账户,-pass=你的密码 //如果提示没有找到mount.cifs,则使用yum install cifs* -y(-y是指确认安装,则安装过程中无需再输入y确认安装)。如果提示错误码-13,或者未授权,很可能是因为你用户名或者密码有错。如果确认没错但是还提示有错,可能就是因为编码问题,在mount.cifs命令的最后面加上,iocharset=cp936然后回车
现在 如果你已经在Windows共享文件夹创建有内容,那么在linux 中ls /mnt/APP应该就有内容了
统计当前文件夹有多少文件
ls -l|grep '^-'|wc -l (^-是指以-开头,即文件类型为普通文件,而不是文件夹)
wc命令统计行数字数: wc -l/-w/-c filename 统计行数/字符数/字节数
stat查看文件具体信息:stat filename
cut命令提取文本: 例子 cut -d: -f1 /etc/passwd 以:为分隔符取第一列
diff比较多个文件是否相同:例子 diff -c/--brief a.txt b.txt前者输出不同之处,后者只输出比较结果
touch命令:touch -a/-m/-d updatetime filename 设置访问时间,修改时间,同时修改以上两者
通配符:ls -l /dv/sd? 指sd+一个字符,ls -l /dev/sd*指sd+零个或多个字符
存取时间/无法对文件进行修改,如果是文件夹则只能修改子文件,无法新建或删除。除去该权限只需把加号变成减号,查看隐藏权限使用lsattr filename)
文件访问控制列表setfacl:例子 setfacl -Rm u:bp:rwx /root 授予bp用户读写执行/root的权限,-R 指对文件目录递归m是指普通文件,查看文件访问控制列表规则 getfacl filename
字符串替换:cat a.txt |tr [a-z] [A-Z]将a.txt的内容转换成大写输出到屏幕上文件隐藏权限chattr:charttr +a/+A/+b/+i finename (只允许追加不允许删除或覆盖/禁止修改晚间最后访问时间/禁止修改文件或目录
find的基本使用
find path -option [ -print ] [-exec/-ok command] {} \; (注意 -exec与-ok差不多,只是-ok会在执行时询问确认,还有就是{}和\;之间有一个空格)
示例:
find /etc -name filename
-perm(权限) 777
-mtime/-atime/-ctime +n/-n根据修改/访问/创建时间来访问,+n代表n天前,-n指n天内
-nouser -nogroup
-type d/b/c/p/l/f 文件类型
-newer f1 !f2 -newer f1第一个值比f1文件新但是比f2旧,第二个指比f1文件新的
-depth n 向下搜索n层
示例
find /etc -name "passwd*" -exec grep "bp" {} \;查询是否有叫做bp的用户