Linux文件管理命令

时间:2021-02-25 05:16:28

所列出来的是操作名称以及最常用的一些参数,如果有其他想用的参数,可以使用man或者info等工具进行查询详细的全部操作参数(操作名  参数  文件)

ls    显示文件名(显示文件目录内容,类似于dos下的dir命令)

加参数:  -a   --all     显示所有文件,包括以.开头的隐藏文件

      -A  --almost-all     列出除 . 以及  ..  开始的任何文件

    --author -l        列出每个文件的作者

                -i   显示每个文件的inode号

    -l   使用较长格式列出信息(-o      -n   类似)

    -r   逆序排列 

    -R  递归显示子目录

    -S 根据文件大小排序     -t  根据修改时间排序     -X  按照扩展名进行排序

    -U 不排序,按照目录顺序列出项目       -v  在文本中进行自然排序

常用方法:    ls显示的文件中    蓝色表示目录 , 绿色的表示可执行文件,红色的表示压缩文件,浅蓝色表示链接文件,加粗的黑色表示符号链接,灰色表示其他用法文件,ls  -l  是最经常用的

ls -a -l  也是经常使用的

cat   显示文本文件内容(输出到标准输出)

加参数:  -A    --show-all   等价于-vET

      -e   等价于 -vE

      -E  在每行结束时显示$

      -n  --number   对输出的所有行编号

      -u  忽略     -t  等价于 -vT

      -help  显示帮助信息退出    -version  显示版本信息退出

合并文件:    cat  1 2 3  >  File1    把文件1 2 3 的文件内容加上行号之后,将内容附加到一个新文本文件File1    

             cat  f   -  g     先输出f文件的内容   然后输出标准输入的内容   最后输出g文件的内容

          cat  -b  文件名    对非空白进行编号       cat -n  文件名   对所有进行编号

rm   删除文件(删除指定文件)

加参数:  -f --force  强制删除,忽略不存在的文件,不提示确认

      -i  在删除前需要确认      -I  再删除超过3个文件或者递归删除前需要确认

      --ppreserve-root  不允删除(/)

      -r   -R  递归删除目录以及内容

      -v  详细显示进行的步骤  --help  显示帮助信息并退出  -version

常用方法: rm  -rf   text  强制删除  rm -ri   text   有提示的删除

less  分屏显示文件(less命令和more差不多,都是用来按页显示文件,不同之处在于less命令在显示文件时,用户既可以向前也可以向后翻页阅读。

加参数:  -c 从上到下刷新屏幕。并显示文件内容

      -f  强制打开文件 包括二进制文件现实的时候

      -i 搜索时忽略大小写   -I 一样

      -m 显示读取文件的百分比  -M 显示读取文件的百分比 行号以及总行数

      -N 在每行前输出行号  -s 连续多个空白行作为一个空白行显示

      -p   搜索       (less -p mac /etc/proc)  查看proc文件,并且在/etc/proc/目录下搜索mac

命令内部操作介绍:  b 向后翻一页  d向后翻半页  h显示帮助界面  q退出less命令  u向前滚动半页  y向前滚动半行

            space 滚动一行  enter   滚动一页

    向前搜索  /   向后搜索 ?                        向前移动一屏 Ctrl+F   后 Ctrl+B  向前移动半屏  Ctrl+D    后  Ctrl+U     向前移动一行 j    后  k          v进入编辑模式

cp  复制文件(文件或者目录的复制)

cp  源文件  目标文件

加参数:  -a   相当于-dpR命令一起使用    在复制过程中尽可能保证源文件的属性

      -b   给被覆盖掉的文件备份  (把1复制到一个文件里,文件已经有1,会把1覆盖掉同时生成1~文件)

      -f  删除已经存在的目标文件     -i  删除之前给出提示(覆盖)

      -r   -R  复制目录时包括目录下的所有子目录和文件

      -v  复制之前,输出每个文件的名字

常用方法:   cp  -i  1  mac     把1复制到文件mac                                          cp -a  my   you   把my目录下的文件复制到you 。源文件的属性和复制的完全一样

mv   更改文件名,移动文件(修改文件名和目录名)

可以将源文件重命名为目标文件,或者将源文件移动到目标文件

加参数:  -b   --backup        为每个已存在的目标文件创建备份

      -f  --force  覆盖前不询问     -i  --interactive    覆盖前询问

移动:  mv  1.sh   23.sh   把1.sh移到23.sh    其实就是更改文件名

grep  查找字符串(查找字符串,文本搜索工具)

常用方法:  查找文件file.sh中是否包含字符串“html”              grep   "html"   file.sh

检查  /etc/passwd  文件中是否有可疑用户  (检查UID是否有为0的用户)   grep   "0:0"  /etc/passwd 

通过管道过滤  ls -l  输出的内容,只显示以 a 开头的行    ls  -l   |  grep  '^a'

显示所有以d开头的文件中包含  text  的行    grep  'text'  d*

显示在aa  bb  cc  文件中匹配  text 的行     grep  'text'  aa  bb  cc

显示所有包含每个字符串至少有5连续小写字符的字符串的行  grep ' [a-z] '  aa

head  显示文件头部(显示文件内容的前多少行)

加参数:  -c --bytes  显示文件的前k和字节内容

      -n --lines  显示文件的前k行内容

常用方法:   显示 /etc/proc的前10行      head   -n  10  /etc/proc

tail  显示文件尾部(显示文件内容最后的多少行)

加参数:  -c --bytes   输出最后n字节

      -n 输出最后n行

      -f  --follow  文件增长时,输出后需添加的数据

常用方法:   显示 /etc/proc/  的最后5行内容

sort    按顺序显示文件内容(按顺序显示文件内容)

加参数   -f   忽略字母大小写

      -r  输出逆序结果

sort 命令是一个强大的数据管理工具  。对密码文件进行排序:  sort  /etc/passwd > /etc/passwd - new

                            mv  /etc/passwd - new  /etc/passwd

 不能将输出直接发送到输入文件,这样会破坏输入文件,所以发送到临时文件

sort - m 排序合并多个日志: sort - m - t " " -k 4 -o log_all log1 log2 log3

uniq  忽略文件中的重复行(把重复行删除)

加参数      -d  只输出重复的行

      -u  只显示唯一的行(不重复的行)

 

 uniq  - u happy  显示文件happy中的不重复的行

sort happy |uniq -dc   先使用sort对happy进行排序,然后对结果进行操作

sort happy | uniq-uniqhappy 删除文件并输出到一个新文件

diff 比较两个文件(找出俩文件的不同点)

diff 【选项】  源文件  目标文件 

-a  所有文件都当作文本来进行比较

-e,--ed  输出为一个有效的ed脚本

-i  忽略大小写

diffstat  diff结果的统计信息(读取diff输出结果,统计)

diffstat 【选项】【文件】

-n <文件名长度>  长度必须大于等于所有文件中最长的文件名

-p<文件名长度>  与-n相同,但这里文件名长度包括路径

diffstat 1.txt 2.txt

file  查看文件内容,信息(判断文件类型)

file 【选项】文件名

-b  不输出文件名

file命令可以知道文件究竟是二进制可执行文件还是shell脚本文件

file happy

echo 显示文本(显示文本内容)

-n   不输出行尾换行符

-e  允许转义字符

echo hello word      echo -e ‘hello\nword’    echo 'hello \\ word'

date  显示日期和时间(显示或者设置系统时间与日期)

date [选项] 显示时间用法

FORMAT  控制输出格式

date  +%d%t%n

script  记录linux会话信息(用来记录执行过的所有命令以及命令的输出)

script 【选项】 文件

-a  追加输出

-q  安静模式

apropos   搜索关键字(在whatis资料库中搜索特定字串)

apropos 【选项】 关键字

-d  输出调试信息

-v  输出详细警告信息

apropos search  不知道用什么命令的时候

locate  搜索文件(查找符合条件的文件)

locate  【选项】 相关字

-b  匹配唯一路径名称的基本文件名

locate -u ;  updateedb   建立数据库之后更新数据库

locate kde | grep bin    查找所有包含字符kde且在目录bin中的文件

rmdir  删除目录(删除一个或者多个目录)

rmdir 【选项】 目录

-p  删除以后如果上一层是空目录,全删了

-v  显示命令执行过程

mkdir -p  /sp/sd  创建目录

rmdir -p /sp/sd  删除目录

chattr  改变文件的属性(防止关键文件被修改)

chattr 【选项】 文件或者目录

-R   递归处理所有文件还有子目录

=    指定属性

u    删除一个文件的时候保留数据块,便于以后恢复

i   不允许修改这个文件

恢复  /root  目录,也就是子目录的所有文件    chattr -R +u /root

 chattr +i  /etc/fs    设定不允许修改文件fs

 cksum  文件的CRC检验  (打印每个文件的crc检验以及统计字节)

cksum 【文件】      cksum 【选项】

CRC(循环冗余检验码)

cksum 1.txt   使用crc检验文件

cmp  比较文件差异(比较文件)

cmp【选项】 【第一个文件】 【第二个文件】

-l  表示出所有不一样的地方

-s  不显示错误信息

函数返回值: 0 文件是相同的  1文件是不同的  >1发生错误

cmp  hello1.cpp  hello2.cpp

split   分割文件(分割文件)

dirname 显示文件出名字外的路径

find  查找文件或者目录

finds   通过列表用户或者ID查找文件系统

ln  链接文件或者目录

lndir  链接目录内容

lsattr   显示文件属性

od  输出文件内容

paste  合并文件的列 

stat  显示inode内容

tee 读取标准输入到标准输出可保存为文件

tmpwatch  删除临时文件(删除不必要的暂存文件,可以设置文件超期时间,单位以小时计算)

tmpwatch【选项】【超期时间】【目录】

-a  -all  删除任何类型的文件

-f  强制删除文件目录,效果类似 rm 命令的-f参数

-q  不显示命令执行过程

-v  详细显示命令执行过程

-test  只做测试,并不真正删除目录

删除 /tmp 目录下7天没有访问的文件       tmpwatch 7*24  /tmp

删除  /tmp  目录下100小时内没有使用的文件  tmpwatch  100  /tmp

touch  更新文件目录时间,创建新文件(修改文件时间信息)

touch 【选项】..【目录】

-a  改变文件的读取时间记录

-c  不建立任何文件 

-d  设定时间和日期

-m  改变文件的修改时间记录

-t  使用。。时间而不是目前的时间

touch myfile    将文件的时间记录改为现在的时间     ,  如果文件不存在,会新建一个文件

touch  -c  -t   01061803  myfile         将文件myfile  的时间记录改为1月6号18:03

touch   -d   “6:30pm  01/06/2005” file    将文件myfile  的时间记录改为公元2005年1月6号18:03

tree  以树状图显示目录内容(以资源管理器的树状图形式显示文件的结构)

tree 【选项】 【目录】

-a  显示所有文件和目录

-C   给文件和目录加上色彩,以便于区分各种类型

-d  显示目录名称而不是其内容

-f  在每个文件目录之前,显示完整的相对路径名称

-p  列出标识权限

umask   指定在建立文件时预设的权限掩码(指定权限掩码)

umask 【-p】【-s】【mode】

-s  以文字的方式表示权限掩码

-p  以数字的方式表示权限掩码

mode  权限掩码

对文件来说,最大是6,可以使用chmode设置成7,对于目录来说,最大是7

umask值 目录权限 文件权限
022 775 644
027 750 640
002 755 664
006 771 660
007 770 660

 

想改变umask值      umask  002        查看umask值  umask

使用umask设置安全权限  umask  117   umask  -S  u=rw    g=rw    o= ————  这是一种非常安全的状态

chmod  设置文件或者目录的访问权限(change file or director‘s mode。控制文件目录的访问权限)

两种用法,一种是包含字母和操作符的字符设定法,一种是包含数字的数字设定法

字符设定法  chmode 【ugoa】【+ | - | =】【rwxXstugo】 文件名 

第一部分决定权限的授予者,第二部分决定对权限进行什么操作,第三部分决定具体要授予的权限,3部分组成一个字符串也就是mode参数值

描素
授予者  
u 用户,及文件或目录的所有者
g 同组用户,与文件属主有相同组ID的所有用户
o 其他用户
a   所有用户,它是系统默认值
操作符号  
+ 在原有的权限中添加某个权限
-   在原有的权限中删除某个权限
= 赋予新给定的权限,并取消其他权限
权限位  
r 设置读权限
w 设置写权限
x 设置执行权限
X 只有某些执行,目标文件是目录才追加X属性
s 设置suid 和 sgid g+s 设置sgid u+s设置suid
t   保存程序的文本到交换设备上
u 与文件属主拥有一样的权限
g 与和文件属主同组的用户拥有一样的权限
o 与其他用户拥有一样的权限

chmod  【mode】 文件名

数字属性的用法

数字属性的用法为3个0-7之间的八进制数,其顺序是 u  g o  文件名,以空格分开要改变权限的文件列表,支持通配符,数字表示的权限含义:

0001  所有者的执行权限

0002  ---写权限

0004  ---读权限

0010  组的执行权限

0020  ----写权限

0040  ---读权限

0100  其他人的执行权限

0200  ---写权限

0400  --读权限

1000  粘贴位位置

2000  假如是可执行文件,则为组id位位置

4000  --------------------为用户id位位置

数  字 二进制数的表示 对应的权限表示 权限含义
0 000 ---
1 001 --x 可执行
2 010 -w-
3 011 -wx 写和执行
4 100 r--
5 101 r-x 读和执行
6 110 rw- 读和写
7 111 rwx 读,写,执行

chgrp  改变文件或目录所属的群组(change  group permissions)

chgrp与chown不同,chgrp允许普通用户改变文件所属组,只要该用户是这个组的一员

chgrp 【选项】...组文件

-c  只在更改时显示结果

-R  递归处理所有的文件以及子目录

chgrp   -R  sam  dir/   改变dir目录中的所有文件属组为sam

chown   改变文件的拥有者或者群组(change  ownership,用于更改与文件关联的所有者组)

chown  【选项】...所有者

-c  在更改时显示结果

-f  去除大部分的错误信息

-R  递归处理

-P  不显示任何符号链接

可以使用chowm命令,当把一个文件复制到另一个用户的目录下以后,让用户拥有使用该文件的权限

chown  -R  lwan.users   /mywork    将目录 /mywork以及旗下的所有文件和子目录改为lwan,所属组改为users

more  查看文件内容(和cat相比,more适合查看大文件,more一般用于显示超过一屏幕的文件)

more  【选项】文件

-f  统计逻辑行数而不是屏幕行数

-l  抑制换页(form feed)后的暂停

-p  清屏显示文本

-u  抑制下划线

-NUM  指定每屏显示的行数为num

+NUM  从文件第num行开始显示  

more命令显示完一页后,等待用户输入下个命令  ,可以用 h 来查看这些命令

-i  空格  如果指定 i ,显示下面 i 行,否则,显示下一整屏

-i   回车  如果指定 i ,显示下面 i 行,否则,显示下一行

=      显示当前行号

qQ  退出more

more  file    查看file文件

ls  -l  |  more    从ls命令查看输出

more  -s  file  一页一页显示file文档内容

more   +/lsj    /etc/passwd    查找 /etc/passwd文件中用户 lsj 所在行

md5sum   MD5函数值计算和检查(检验MD5检验码)

md5sum 【选项】【文件】

-b  以二进制方式读取

-c  从文件中读取md5的检验值并予以检查

 -t  纯文本方式读取

--quiet  不为检验成功的文件输出ok  

--status  不输出任何内容,使用退出状态号显示成功

-w  对不准确的检验和进行警告

--strict  验证成功时不输出任何信息

md5算法经常用来验证网络文件传输的完整性

md5sum file  >  file.md5    使用md5sum来产生指纹(报文摘要)

md5sum  *.iso  > iso.md5  把多个iso文件的摘要输出带iso.md5中

md5sum   -c  file.md5    验证报文摘要

awk  模式匹配语言(利用用户提供的命令来将一组文件和用户提供的正则表达式进行比较)

awk【options】 ‘ script ’ var=value file(s)

awk【options】 -f  ‘ script ’ var=value file(s)

 -f script or     从脚本文件中读取awk命令

awk脚本是由模式和操作组成的

awk命令的模式搜索比grep命令的使用更加常用,并且允许用户在输出文本行执行多个操作。

wc 输出文件中的行数、单词数、字节数(对每个文件输出行、单词、字节统计数)

wc【选项】【文件】

-c  输出字节统计数

-l  输出换行符统计数

-L  输出最长行的长度

-w  输出单词统计数

wc -w hello.c    输出hello.c中的单词数

comm  比较排序文件(逐行比较两个已排序的文件)

comm【选项】文件1  文件2

如果不附带选项,程序会生成3列输出,第一列包含文件1特有的行,第2列包含文件2特有的行,第3列包含文件3特有的行

-1  不输出文件1特有的行

-2  不输出文件2特有的行

-3  不输出文件三特有的行

join  将两个文件中指定栏位内容相同的行连接起来(找出两个文件中内容相同的行加以合并,在输出到标准输出)

join【选项】文件1 文件2

-a文件编号  根据指定文件编号输出不成对的行目

-e字符  将缺失的输入区块替换为指定字符

-o格式  按照指定格式输出

-v  禁止组合输出行

除非使用了-t字符串选项,否则前导空格分隔的与将被忽略

fmt  编排文本文件(从指定的文件里读取内容·,将其按照装指定格式重新编排后,输出到输出设备,瑞指定文件名为 - ,则会从输入设备读取数据)

fmt 【-宽度】【选项】【文件】  重新格式化文件中的每个段落并输出到标准输出

-c  保持前两行的缩进

-s  分割过长的行,但是不自动补足

fmt hello.c   重新排版文件

tr  转换字符(从标准输入设备读取数据,经过转译后输出到标准设备)

tr【选项】【set1】【set2】

-c   首先补足set1

set  是一组字符串

col  过滤控制字符(例如shell命令的  >  >>)

col【-bfpx】【-l nline】

-b  过滤掉所有的控制字符,包括RLF和HRLF

-f  过滤rlf字符,但允许hrlf显示出来

-x   以多个空格字符来表示挑个字符

man cat  | col -b  >  cat.man.txt   过滤掉cat手册页rlf和hrlf字符,然后重定向到cat.man.txt

colrm  删除指定的行(从输入设备读取数据,转而输出到标准输出设备)

colrm 【起始列【终止列】】

删除  l.c  文件的第二行  colrm  2 <  l.c

fold  限制文件列宽 (从指定文件里读取内容,将超过限定列宽的列加入增列字符后输出若不指定任何文件名称,而所给予的文件名为 - ,则fold 命令会从输入读取数据)

fold【选项】【文件】

-b  以字节为单位计算列宽

-s  以空格作为换列点

-w<每行列数>--width<每行列数>,使用指定的列宽代替默认的80

fold  -w  25   l.c     调整l.c   最多宽度为25个字符显示

iconv  转换给定文件的编码(转换编码)

iconv 【选项】【文件】

-f  原始文本编码

-t  输出编码

-l  列数所有已知的字符集

-c  输出中忽略无效的字符

-o  输出文件

-s  关闭警告

显示目前系统支持的字符集      iconv  -l  | more

dc   任意精度的计算器(dc命令提供了一种交互式桌面计算器)

dc【选项】【file...】

-e  计算表达式

-f  计算目录文件

c   清洁堆在

d  复制翟丁值

P  显示翟丁值

q  退出程序

expr  求表达式变量的值(expr命令读入表达式expression的参数,计算他得值,然后把结果写入到输出)

expr    表达式

expr    选项

expr   14 % 9              5    整数运算

expr  index   abcdef   fd       返回fd字符在abcdef中出现的第一个位置

expr   substr   ‘xx’   11  6      返回  xx  字符串从位置11开始的6个字符长的字符串

expr   length    this      计算this   字符串的长度

strings  显示文件中的可打印字符(显示每个指定文件中包含的所有4个以上可打印的字符,在之后跟一个不可打印的字符)

string 【选项】 file

-a  扫描整个文件

--print-file-name-f  在显示字符串之前县显示文件名

显示文件中大于等于4个字符的字符串  strings  l.sh

xargs从标准输入读入参数(参数用空格或者其他隔开,然后一次或多次执行命令。将参数列表转换成小块分段传给其他命令,避免参数列表过长的问题)

xarg  【选项】

-i  用 {} 代替传递的字符

-n【数字】  设置每次传递几行数据

-t  显示执行详情

-p  交互模式

xargs退出可能有几种状态

0    退出成功

123   如果任何一个被调用的命令command退出状态为1-125

126    如果不能执行命令command

127  命里没有被找到

1:    发生其他错误

find   .  - type  f   -print   |   xargs   file    查找系统中的每个普通文件,然后使用xargs测试他们属于哪个类文件

rm   ‘ find  / path   -type   f’                  ---------------                find   /path -type    f     print0  |  xargs  -0 rm   (find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部)

sum  计算文件的校验和,一级文件占用的块数

sum【选项】【文件】

为每个指定的文件输出校验和块数

-r  使用BSD算法,以1kb为一个快

-s  使用systemv加和算法,以51双字节为一个块

如果没有指定文件,或者文件  -  则从标准输入读取数据

sum  ls.b  ls.c       显示这两个文件的校验和,以及1024字节块数目。

setfacl  设定文件访问控制列表

setfacl 【-bkndrlp】{-m|-M|-x|-X} file

-m  更改文件的访问控制权限

-b  删除所有扩展的访问控制列表条目

setfacl  -m   u:zhangyu :rw -test  修改acl权限,添加一个用户权限

setfacl  -m g:zhangyu :r -w test  添加一个组

getfacl   获取文件访问控制列表

-a  仅显示文件访问控制列表

-d  仅显示默认的访问控制列表

-e  显示所有的访问控制列表

-E  显示无效权限

-R  递归显示子目录

-L  逻辑遍历

-t  使用制表符分隔显示

查看acl权限列表      getfacl   text

chacl  更改文件或者目录的访问控制列表

-b  表明两个acl需要改,前一个是文件的acl,后一个是默认的acl

-R  只删除文件的acl

-B  删除问IANHE目录默认的acl

-r  递归删除和修改目录的acl权限

-l  列出文件和目录的acl权限

chacl是用来更改文件或目录的访问控制列表的命令,比chmod更为强大,精细