Linux常用命令 之 文件和目录操作命令

pwd:显示当前所在位置

cd:切换目录    cd ~ 切换到当前用户家目录;cd .. 切换到上一级目录;cd - 切换到上一次所在的目录

tree:以树形结构显示目录下的内容    tree -a 显示所有文件;tree -L 2 指定显示层级;tree -d 只显示目录;tree -fi -f表示显示内容的完整路径,-i表示不显示树枝部分;tree -L 1 -F /boot/ | grep /$ 过滤以斜线结尾的所有内容;tree --noreport 表示不显示最后一行的统计信息;

mkdir:创建目录    mkdir -p /home/aaa/bbb 递归创建目录;mkdir -m 755 /home/test 设置新创建目录的默认权限;mkdir -pv /home/skf/{dir1_1,dir1_2}/{dir2_1,dir2_2} 同时创建多个多级目录,-v表示显示创建过程;

tree -fid --noreport /etc/ >> /home/skf/tree.txt; cd /tmp/; mkdir -p $(cat /home/skf/tree.txt)

touch:创建空文件或改变文件的时间戳属性    -a 更改最后访问时间;-m 更改最后修改时间;-r file 更改时间属性与file文件时间属性相同;touch stu{01..05} 同事创建多个文件;

ls:显示目录下的内容及相关属性信息    -l 以长格式显示;-a 显示所有文件;-t 根据修改时间排序;-r 依相反次序排序;-F 条目后添加文件类型指示符号;-i 显示inode节点信息;-h 以人类可读信息显示文件大小;-S 根据文件大小排序; -R递归出所有子目录;-X根据扩展名排列;-c 根据状态改变时间排序;-u 根据最后访问时间排序;ls -l --time-style=long-iso 以long-iso方式显示时间;ls -F | grep / 只显示目录,ls -F | grep -v / 不显示目录;

cp:复制文件或目录    -p 表示保留属性;-d 表示复制符号链接本身;-r 表示递归复制;-a 等同于-pdr;-i 表示覆盖文件时提示用户;\cp 表示覆盖文件时不提示用户;/bin/cp 当要覆盖文件时也不会提示用户;cp /etc/passwd{,.bak} 快速备份文件;

mv:移动或重命名文件    -f 表示直接覆盖;-i表示询问是否覆盖;-n表示不覆盖已经存在的文件;-t 表示同时移动多个文件,-t后接目录;-u 表示源文件更新,或目标文件不存在时进行移动;

rm:删除文件或目录    -f 表示强制删除;-r 表示递归删除;-i 表示删除前要确认;-I 表示超过三个或递归删除前要求确认;

rmdir:删除空目录    -p 表示递归删除目录;

ln:硬链接与软链接    -s 表示创建软链接,无参数表示创建硬链接;

readlink:查看符号链接文件的内容    -r 表示一直跟随符号链接,直到非符号链接的文件位置;

find:查看目录下的文件    -maxdepth levels 查找的最大目录级数;-mtime [-n|n|+n] 按照修改时间查找;-name 按照名称查找;-regex 接正则表达式;-size 按照文件大小查找;-type [b|c|d|l|f|s] 按照文件类型查找;-exec 对匹配的文件执行给出的shell命令;-perm 755 按照文件权限查找;! 表示取反,-a表示取交集,-o表示取并集;-newer file 查找比file更新的文件;

find /root/data -name "*.txt" | xargs -i mv {} /home/skf/dir

find /root/data -type f -name "*file.txt" | xargs rm -f

find /root/data -type f -name "*file.txt" -exec rm -f {} \;

sed -i 's#./hostlists.txt#../idctest_iplist#g' `find /root/data -name "*.sh"`

find /root/data -type f ! -name "file10" | xargs rm -f 

rsync -az --delete --exclude "file10" /null/ /root/data

find . -name "*edu*" -print0 | xargs -0 ls -lh

xargs:将标准输入转换成命令行参数    -n 指定每行最大参数量;-d 自定义分隔符;-i 以{}代替前面的结果;-I 指定一个符号代替前面的结果;-p 提示用户确认是否执行后面的命令;-0 用null代替空格作为分隔符,配合find命令的-print0选项的输出使用;

rename:重命名文件    rename from to file 将文件file名称中的from替换为to;

basename:显示文件名或目录名(去掉前面的路径和后面的拓展名)

dirname:显示文件或目录路径

chattr:改变文件的扩展属性    -R 递归更改目录属性;+ 增加参数;- 移除参数;= 更新为指定参数;a 只能向文件中添加数据,而不能删除;i 不允许文件被做任何修改;

lsattr:查看文件扩展属性    -R 递归查看目录的扩展属性;-a 显示所有文件的扩展属性;-d 显示目录的扩展属性;

file:显示文件的类型    -b 精简格式输出,不显示文件名;

md5sum:计算和校验文件的MD5    -c 从文件中读取MD5值,并进行校验;md5sum test.txt > md5.log; md5sum -c mg5.log

chown:改变文件或目录的用户和用户组    -R 递归修改目录的用户和用户组;chown -R skf:root /root/data;

chmod:改变文件或目录权限    -R 递归修改;

chgrp:更改文件用户组    -R 递归修改;

umask:显示或设置权限掩码    永久配置文件在/etc/bashrc或/etc/profile;

 

备注

1、修改PS1变量的值,永久修改在/etc/bashrc文件中(大约在36行)。["$PS1"="\\s-\\v\\\$"]&&PS1="[\u@\h \W]\\$"

2、修改LANG变量的值,LANG=en_US.UTF-8

3、stat命令可以查看文件的时间戳属性

4、facl文件访问控制列表

getfacl 查看文件的facl权限:  getfacl 文件名
setfacl 设置文件的acl:          setfacl   [选项]   权限  文件名
-m   设置或修改ACL权限;setfacl  -m  u:adm:rw-   skf.txt
-R    递归设置ACL权限(对目录及其子文件)
-x     删除指定用户的文件的ACL权限
-d    设置默认的ACL权限(仅用于目录,目录中新创建的文件会继承ACL权限)setfacl  -dm  u:adm:r-x  /test
-b    删除所有的ACL权限

5、3个S权限
SUID:临时借用命令的属主的身份做事;chmod  -v u+s  文件名
SGID:继承目录的组属性;chmod  -v g+s  文件名
SBIT:每个用户只能删除自己创建的文件;chmod  -v o+t  文件名

你可能感兴趣的:(linux常用命令)