目录
查找文件命令
pwd 显示当前所在的工作目录(Print working directory)
cd 切换命令(change directory)
ls 查看目录下的文件(list)
tree 查看目录下的子目录(查看目录结构)
find 按照指定条件查找文件所对应的位置
locate 快速搜索文件对应的位置
whereis 快速搜索命令文件对应的位置
which 查找某个命令本身对应的位置
查看文件命令
cat 查看内容较少的纯文本文件(concatenate)
more 查看内容较多的纯文本文件
head 用于查看文件的前N行
tail 查看文件的后N行或刷新文件的最新内容
wc 对文件做统计工作(word counts)
stat 查看文件的存储细节和时间等信息(status)
grep 按照行做文件的信息提取
cut 按照列做文件的信息提取
diff 用来对文件做比较(different)
编辑文件命令
tr 替换文本内容中的字符(transform)
uniq 去除文本中连续的重复行(unique)
sort 对文本内容进行排序(默认按照首字母排序)
touch 创建空白文件,设置文件时间
mkdir 创建空白目录(make directory)
cp 复制文件或者目录命令
mv 剪切或重命名文件和目录命令(剪切后会把原始文件删除)
rm 删除文件或目录命令
dd 复制某个文件的某一部分内容,也可以转化文件
file 查询文件类型(不要通过颜色区分)
tar 打包和压缩命令
Linux系统中的一切都是文件
所以Linux中的什么都可以更改,包括内核(kernel)
硬盘都会映射为硬盘文件保存在/dev文件中
系统的运行状态都会被保存在/proc文件中
Linux中文件不通过后缀来进行区分,通过文件类型来进行区分
Linux的文件可以不加后缀,加后缀只是为了方便区分
Linux是按照权限区分文件类型的
查找文件命令
命令有内置命令与外部命令
exit、history属于内置命令
top、reboot、ls等都属于内部命令
查找命令的位置一般用于查找外部命令对应的位置
pwd 显示当前所在的工作目录(Print working directory)
cd 切换命令(change directory)
cd /etc/pm 切换到/etc/pm目录(绝对路径)
cd pm 切换到此目录下的pm目录(相对路径)
cd ~ 返回用户的家目录(家目录,保存用户数据的目录)
cd .. 返回到上一级目录
cd - 返回到上一次所在的目录
ls 查看目录下的文件(list)
ls -a 查看当前目录下所有的文件(包含.隐藏文件)
ls -l 通过长格式显示文件(显示文件的权限、所有者、大小等信息)
ls -ld 目录名称 通过长格式显示此目录的信息
ls -l 文件名 通过长格式显示此文件的信息
tree 查看目录下的子目录(查看目录结构)
tree 查看当前目录结构
tree 目录 查看此目录结构
find 按照指定条件查找文件所对应的位置
可以使用正则表达式作为条件搜索对应文件
find /etc -name fstab 在/etc目录搜索文件名为fstab的文件
find / -user admin 全盘搜索归于admin用户的文件
find / -name fstab -exec cp -rf {} . \; 将搜索结果复制到当前目录下
-exec 把find命令搜索到的结果交由紧随其后的命令做进一步处理
-perm 匹配权限
-group 匹配所有组
-size 匹配文件的大小(+100kb为超过100kb的文件,-为小于100kb的照片)
find搜索有点慢
locate 快速搜索文件对应的位置
在库文件中搜索(库文件通过updatedb命令生成,第一次使用locate命令时需要执行updatedb生成索引数据库) 库文件名称:/var/lib/mlocate/mlocate.db
locate fstab 快速搜索fstab文件
find搜索是需要严格匹配fstab,locate搜索是只要有关键词fstab就匹配
whereis 快速搜索命令文件对应的位置
也是基于updatedb命令所生成的索引库文件进行搜索,相比于licate更快
与locate不同的是,whereis能快速找到命令本身以及命令所对应的资料(命令手册等)的位置
whereis top 查找topt命令对应的命令本身的位置以及命令所对应资料的位置
which 查找某个命令本身对应的位置
不太关心是否有帮助文档
which top 查找top命令对应的命令本身的位置
查看文件命令
cat 查看内容较少的纯文本文件(concatenate)
cat 文件名 查看文件
-n 显示行号
more 查看内容较多的纯文本文件
more 文件名 查看文件(使用空格或者回车向下翻页)
head 用于查看文件的前N行
head -n 10 文件名 查看文件的前10行
tail 查看文件的后N行或刷新文件的最新内容
tail -n 10 文件名 查看文件的后10行
tail -f /var/log/messages 持续刷新日志文件并显示出来
wc 对文件做统计工作(word counts)
统计文本文件的行数、字数、字节数等
-l只显示行数
-w 显示单词数
-c 显示字节数
wc- l /etc/passwd 显示文件的行数--显示当前系统中有多少个用户(passwd有多少行就有多少个用户)
stat 查看文件的存储细节和时间等信息(status)
stat Music/ 查看目录Music的时间信息
access: 最后一次查看文件内容的时间(访问时间)
change:最后一次修改文件属性的时间(更换时间)
modify:最后一次修改文件内容的时间(修改时间)
ls -l 查看文件显示出来的时间指的是最后修改的时间
修改文件内容后,为什么c和m的时间有时候会一起更改?
因为修改文件内容后,不仅文件内容改变了,文件的大小也可能会改变
grep 按照行做文件的信息提取
grep 关键词 文件名 显示出所有带关键词的行
-n 显示行数
-v 反向选择(列出没有关键字的行)
-i 忽略大小写
cut 按照列做文件的信息提取
cut -d : -f 1 /etc/passwd 以:为间隔符,显示第一列的信息,提取/etc/passwd文件中用户的名字分别是什么
-d 间隔符
-f 第几列的信息
diff 用来对文件做比较(different)
diff --brief 文件1 文件2 比较文件a和b是否相同
diff -c 文件1 文件2 将不同的信息显示出来(哪行前有符号就表示不同)
编辑文件命令
tr 替换文本内容中的字符(transform)
tr命令没有能力去读取一个文件,所以我们可以使用cat命令结合管道符将文本内容传递给tr命令进行操作
cat 文件名 | tr [a-z] [A-Z] 将文件中的小写字符都替换为大写字符
|将前面字符的输出结果当作后面字符的输入
执行此命令之后文件的内容不会改变,因为没有执行写入的操作
uniq 去除文本中连续的重复行(unique)
uniq 文件名
只会去除相邻的重复行,不相邻的重复行不会去除
可以先进行排序,然后去重
执行此命令之后文件的内容不会改变,因为没有执行写入的操作
sort 对文本内容进行排序(默认按照首字母排序)
sort -t : -k 3 -n 文件 文件以:作为分割符分为多段,通过第三段的内容按照数值型排序
sort 文件名 | uniq 对文件排序并去重
-n 按照数值型排序
-u 去除重复行(uniq是去除连续的相同行,sort -u是只要有相同的行就会去除)
-t 指定间隔符
-k 设置字段范围
执行此命令之后文件的内容不会改变,因为没有执行写入的操作
touch 创建空白文件,设置文件时间
创建一般文件、文本文件、配置文件(无法修改文件的更改时间)
-a 修改 读取时间 atime
-m 修改 修改时间 mtime
-d 同时修改atime和mtime时间
touch 文件名 创建文件
touch -m "2021-2-15 10:11" 文件名 修改文件名的修改时间
mkdir 创建空白目录(make directory)
mkdir 目录1 创建目录1
如果创建的目录有依赖关系(递归关系)的目录 需要使用-p操作
mkdir -p 目录1/目录2/目录3 创建目录1/目录2/目录3,如果有就不会创建
cp 复制文件或者目录命令
cp 原始文件 复制后的文件名称
cp -r 原始目录 复制后的目录名称
-r 复制目录
-i 若目标文件存在则寻味是否覆盖
-p 保留原始文件的属性
-d 若对象为“链接文件”,则保留该“链接文件”的属性
-a 相当于-pdr
mv 剪切或重命名文件和目录命令(剪切后会把原始文件删除)
mv 原始文件 剪切后的文件
rm 删除文件或目录命令
rm 文件 删除文件
rm -r 目录 删除目录
rm -rf / 全盘删除-删除所有文件(误用)
-f 强制删除
-v显示删除过程
当删除某个文件后,其实硬盘还是有这个文件的数据的,可以找专业公司或者软件进行全盘搜索
因为每个文件都是由属性块(inode)和数据块(block)两部分组成的,删除文件时只是删除了文件的属性块,会保留数据块;等下一次写入信息的时候才会陆续把原先的数据块信息做替换,所以我们才有机会做数据的恢复,不过Linux数据删除后一般是无法恢复的,并且Linux没有回收站
dd 复制某个文件的某一部分内容,也可以转化文件
dd if= 要复制的文件 of=复制后的文件 count 1 bs=30 按照指定大小30字节复制文件
if 输入的文件名称(input file)
of 输出的文件名称(output file)
bs 设置块的大小(30表示30个字节,50M表示50M)
count 设置要复制的块的个数
每个磁盘的第一个扇区的512字节都非常的重要,所以我们可以通过dd将磁盘的分区表(512字节)做备份
也可以测试磁盘性能(读写速度)
dd if=/dev/zero of=a bs=1G
/dev/zero 白洞文件-聚宝盆(可以从中提取出来无穷多的数据)
/dec/null 黑洞文件-垃圾箱(一切信息往里面写入时就消除掉了)
file 查询文件类型(不要通过颜色区分)
file 文件名
tar 打包和压缩命令
tar czvf 压缩包.tar.gz 目录/文件 将目录/文件压缩为压缩包.tar.gz
-c 创建压缩文件
-z 使用Gzip压缩或解压(压缩格式为.tar.gz)
-v 显示过程
-f 目标文件名
-j 使用bzip2压缩或解压(压缩格式为.tar.bz2)
tar xzvf 压缩包.tar.gz -C 目录1 解压压缩包到目录1
-x 解开压缩文件
-C 解压到指定目录
在RHEL8中,不用带解压格式,系统会根据文件自动识别