在没有GUI的Linux中,需要经常使用终端对文件及目录进行管理,包括增删改查等操作,下面来具体介绍一些重要的部分。
cd [~,-,.,..,路径]
。【~】表示家目录;【-】表示返回之前访问的目录,相当于Windows中的返回;【.】表示当前目录,【..】表示上一级目录;也可以使用一个合法的路径,如/var
。pwd
。显示当前所在目录的具体路径。mkdir [-m,-p] 目录
.【-m】表示为新建的目录添加权限,此时umask无效;【-p】表示递归建立目录,当所给目录名为一个含有多个不存在的路径时需要使用。ls [-a,-d,-l,--time={atime,ctime}]
。【-a】表示列出全部文件;【-d】表示仅列出目录本身;【-l】表示列出详细信息;【–time】表示列出访问时间(atime)还是状态变化时间(ctime)。cp [-a,-i,-r] 原路径 目标路径
。【-a】表示复制所有属性;【-i】表示如果文件已存在时询问;【-r】表示递归复制,用于包含多重目录的结构。rm [-f,-i-,-r] 文件或目录
。【-f】表示强制删除;【-i】表示询问;【-r】表示递归删除。mv [-f,-i] 源 目标
。【-f】表示强制;【-i】表示询问。basename 路径
。取得最后的文件名。dirname 路径
。取得最后的路径名。cat [-A,-n] 文档
。【-A】表示列出特殊字符;【-n】表示列出行号。less 文档
。【空格/pagedown】向下翻页;【pageup】向上翻页;【/字串】向下搜索;【?字串】向上搜索;【n】继续搜索;【N】反向继续搜索;【q】退出。head [-n number]
。显示前n行,默认n=10。tail [-n number]
。显示后n行,默认n=10。od 文档
。以二进制方式读取。touch [-a,-d,-m,-t] 文件
。【-a】表示修改访问时间;【-d –date={日期或时间}】,修改成指定的日期或时间。chattr [+-=] [a,i]
,【+】表示添加,【-】表示去除,【=】表示设置;【a】表示文件只能增加;【i】表示文件不能被删除改名。lsattr [-a,-d,-R]
。【-a】表示显示所有隐藏属性;【-d】表示列出目录本身的属性;【-R】表示连同子目录的属性也一起列出。file 文件
。显示文件类型。which 文件名
。可以用来寻找可执行文件的路径。whereis 文件名
。可以用来搜寻特定的文件。locate 关键字
。用来寻找包含关键字的文件。updatedb
。更新locate
所使用的数据库。find [PATH][option][action]
。
与时间有关的选项:【-atime,-ctime,-mtime】。后面跟时间,具体的关系如图
与使用者或群组有关的选项:【-uid,-gid,-user,-group,-nouser,-nogroup】。分别跟用户ID,用户组ID,用户名和用户组名,最后两个表示不存在的用户或用户组。
与文件权限及名称有关的参数:【-name,-size,-type,-perm】。后面分别跟文件名,文件的最大/最小值,文件类型和文件具有的权限。
额外地操作:例如find / -perm +7000 -exec ls -l {} \;
,其中【{}】表示【find / -perm +7000】得到的结果,反斜杠用于转义,相当于对得到的结果执行ls -l
。
怎么样,看完上面这么多指令,是不是要懵逼了,其实很多指令只列举了常用的选项,更多选项参考man手册就好了,下面再介绍一个文件的特殊权限。
- SUID。权限值为4,仅对文件有效,当执行者执行时,会临时获得该文件所有者所具有的权限。
- SGID。权限值为2,对文件和目录都有效,当执行者执行时,会临时获得该文件所属用户组所具有的权限。
- SBIT。权限值为1,仅对目录有效,当用户在该目录下创建文件时,只有自己和root可以删除该文件。