先放综合思维两张图看看,有个大概了解,下面的文字部分是对命令的具体解释,可以进行参照,都是个人纯手K,不喜勿喷。
-
LS命令的使用
-S 将文件按从大到小进行排序
-a 显示所有文件,也包含隐藏文件
-R 递归,显示文件内所有文件夹下层的内容
-t 按文件修改时间进行排序
-r 按文件修改时间倒序显示
-l 将文件分行显示
-ld 显示文件的目录和符号链接信息
-X 按文件名后缀进行排序
-U 按目录存放顺序进行显示
-h 增加文件大小用单位来显示
-d 不进入目录显示文件,避免显示过多文件
-i 显示文件的节点编号
-ls+通配符的作用
ls f*.txt --显示所有f开头,txt属性的文件,同时包括 f.txt 本身,并且可以匹配零个或多个字符
ls .* --显示点开头的所有文件
ls * --显示不是已点开头的所有文件
ls f?.txt --显示所有f开头,txt属性的文件,但是不包括 f.txt 本身,并且只匹配单个字符
ls ~-/f.txt --显示前一个目录的文件
touch /data/f{a..z}.txt touch /data/f{A..Z} --分别创建f开头。去分大小写的52个文件,创建区分大小写
ls /data/f[a-z].txt --显示a-z,txt属性的所有文件,也包括大写字母
/data/f[A-Z].txt --同理,不管你写的是大写还是小写都会将大小写显示出来
/data/f[A-z].txt --显示到小写z结束,大写Z不显示
ls /data/f[:lower:].txt --显示所有的小写字母文件
ls /data/f[:upper:].txt --显示所有的大写字母文件
ls /data/f[:alpha:].txt --显示任意大小写字母
ls /data/f[:alnum:].txt --显示所有的任意数字或字母
ls /data/f[:digit:].txt --显示任意数字文件,相当于0-9的任意数字
ls /data/f[wang].txt --显示不连续的f开头,agnw四个按字母表排序的文件
ls /data/f[^wang].txt --显示除了这四个字母外的其他所有文件
-
CP 命令拷贝文件的各种用法
-i 覆盖前加确认,不加-i 默认则是直接覆盖 -a 保留文件或者文件夹的所有属性,原封不动不做修改的拷贝,也能用于备份 -r R 用于复制文件目录,递归复制 -v 拷贝的时候显示所有的拷贝过程 -f 使用普通用户登录用户文件夹,对root文件进行操作时候的强制操作 -u 复制的时候目标文件夹里的文件如果motify时间的没有我新的话更新文件,有我新的话就复制,一般用于更新文件 -b 在对文件进行复制时,如果要覆盖同名文件则先对目标进行备份再进行覆盖,但是只有一次备份 --banckup=numbered 同上,多次覆盖会显示数字标识,对覆盖备份文件进行保留
-
mv 命令 --move 移动文件和更改名称
-i 覆盖前加确认,不加-i 默认则是直接覆盖 -f 使用普通用户登录用户文件夹,对root文件进行操作时候的强制操作 -b 在对文件进行移动覆盖时,如果要覆盖同名文件则先对目标进行备份再进行覆盖,但是只有一次备份 -批量修改文件名:rename txt txt.bak f* /data/
-
rm 命令 --remov 删除文件的各种用法
-r 递归删除
-f 强制删除
rm -rf --no-preserve-root 删除系统不要根目录了
很多时候可以找到命令的出发点,命令是存在路径中的,分为外部命令和内部命令,能够通过路径把命令本身删除 which rm、如果碰到文件名称和选项相同有以下三种写法: -- 绝对路径 文件名前加./ 删除文件的正确步骤:1、cat /dev/null > /boot/hejm 如果存在的文件清零,有各种情况会导致直接Rm不会直接释放文件空间 2、rm -f /boot/hejm 删除文件,同时删除节点编号 删除文件快的原因是因为rm删除文件只是在系统中把元数据和节点表删除了,数据本身还存在硬盘中,只要不是新创建的文件将数据覆盖了有恢复的可能,文件系统本身并不能完全将数据清空 shred -zvn5 --重复刷新磁盘覆盖文件
-
tree 显示文件目录树
-d 只显示目录y
-
mkdir 创建文件夹
-p 创建父目录 -v 显示详情
-
rmdir 删除文件夹
-p 删除空的父目录,目录有文件停止删除 -v 显示详情
-
cat --文本查看,直接cat 输入什么显示什么
–cat /dev/null > /boot/hejm-A --显示所有控制符 -s --将连续的空行进行压缩成一行 -E --显示行结束符$ -n --对显示出的每一行进行编号
-
more --文本太长逐步显示查看方式
-
less --分页显示
-
head --获取文本的前几行
-1 2 3 。。。。
-c 看前几个字节 -
tail --显示文本的后几行
-n 1 2 3 。。。。
-f 跟踪文件的变化
-c 看后几个字节 -
cut --抽取文本信息显示,必须是文本,过滤出来的内容不起作用
cut -d: -f 1,3-4 /etc/passwd
-d 选择用什么内容作为列的分割
-f 用列作为分割 单词等等可以作为第几列,配合tail head 做文本抽取 -
paste --合并两个文件同行号的列到同一行
-
wc --文本数据统计
47 122 1259 anaconda-ks.cfg
行数 字数 字节数-l 统计行数 -w 统计单词数量 -c 统计字节总数 -L 显示文件中最长行的长度
-
sort --将文本进行整理后进行排序
-r 执行反方向(由上至下)整理 -R 随机排序 seq 100 | sort -R | head -n1 -n 执行按数字大小排序 -f 选项忽略(fold)字符串中的字符大小 -u 重复的行进行忽略
-
grep – 也带匹配到相应内容进行自动打印功能 --一般为grep -in
-- 过滤文本内容 -v 显示不包括内容的文本,取反 -i 忽略大小写 -o 仅显示匹配到的字符串,过滤什么,显示什么 -m 匹配多少次之后停止 -c 统计匹配的行数 -n 对过滤处理的内容添加行号 -e 包括什么或者什么 grep -in -e ROOT -e bash -e nologin -v /etc/passwd -f 用文件的内容来对另外一个文件的内容进行过滤,或者匹配出两个文件相同的内容 grep -f anaconda-ks.cfg /etc/passwd grep -f abc.sh abc.txt -w 要求显示的内容必须是完整的单词 -B# 显示前多少行 -A# 显示后多少行 -C# 匹配前后多少行
-
find --实时查找,查询所有文件
-inum 根据节点编号查找 -name 根据文件名称进行查找 -samefile name 查找相同inode好的文件 -links n 链接数为n的文件 -regex “1” 已1匹配整个文件路径,而非文件名称 -nouser 查找没有用户的家目录文件 find /home -nouser -ls -not 或者 ! 查找的文件取反 -o 排查法查找文件 find /home -not \( -user acc -o -user hejm \) -size 3k 按文件大小进行查找 find /etc/ -size 2048k -ls find / -size +10M | xargs ls -lthi --xargs 将输出的内容转换成另外一个命令的输出 -atime +3 按文件修改时间进行查找,实例为1分钟之内的文件 -fls 找打文件后将文件列表输出到一个文件里 find /backup/ -name "*.tar.gz" -fls filelist.txt -perm 600 按文件权限进行匹配 -delete 查找到相应文件后直接删除 --慎用 -exec 查找到文件后进行授权 find /etc -name "*.conf" -exec chmod +x {} \; -type b -a 并且 -o 或者 -not 取反 find /etc -type f -perm 755 -name ".conf" -exec chmod 700 {} \; --批量修改文件权限 find /etc \( -path "/etc/sasl2/" -o -path "/etc/fuse.conf" \) -a -prune -o -name "*.conf" --排除法找文件 find -perm 600 --按权限进行查找 find -perm /666 --或、并且模糊查找,三个权限中的一个满足即可 find -perm 645 -ls -delete --找到文件即删除 find -name "*.sh" -ls -exec chmod +x {} \; --批量授权 find /tmp -name "*.sh" -exec mv /usr {} \; --批量移动文件
-
sed -n 关闭自动打印,和p结合使用,用于筛选内容
-$ 显示最后一行 sed "/root/a\superman" /etc/passwd1 -r 使用扩展正则表达式 i [\]text 在行前面插入文本 sed "/root/i\superman" /etc/passwd1 sed -i "s#^SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config --替换内容 a 对打印出来的内容 “行后” 追加内容 p 打印当前模式空间内容,不加-n 则全部显示 c [\]text 替换行为单行或多行文本 -i.bak -在修改时同时进行备份 sed "/root/c\superman" /etc/passwd1 在选定的文本内容后面追加内容。&代表/root/ sed -n "s/root/\/&superman/p" /etc/passwd1 前面追加 sed -n "s/root/\/superman&/p" /etc/passwd1 \ 添加内容时让空格生效加前面\ \n 添加多行,用\n换行 r /path/file 读取指定文件的文本至模式空间中匹配到的行后 = 为模式空间中的行打印行号 ! 模式空间中匹配行取反处理 w 选出指定的一些文本内容输出到一个新的文件 sed '/^alias/w 123.log' .bashrc /// 文本替代 sed -n '/root/s@root@&er@gp' /etc/passwd
-
hexdump --二进制文件查看
-C 用十六进制显示ASCII编码表 -c 一个字节用字符来显示 -b 一个字节按八进制来显示 /dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。 /dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
码字不易,转载请标注出处,谢谢配合~