Linux 命令学习笔记——文件与目录管理

常用的linux命令:

    绝对路径:路径的写法一定由根目录”/”写起,例如/usr/local/mysql 这就是绝对路径

    相对路径:路径的写法不是由根目录”/”写起,直接从当前目录开始。

                  pwd  打印出当前所在目录

            cd 进入到某一个目录

    mkdir 创建一个目录。mkdir make directory的缩写其语法为 mkdir [-mp] [目录名称,其中-m , –p 为其选项,-m:这个参数用来指定要创建目录的权限。-p参数:递归创建目录,即使上级目录不存在.

    rmdir 删除一个目录.rmdir rmove directory 缩写,选项-p 类似与mkdir命令,这个参数的作用是将上级目录一起删除

    rm 删除目录或者文件,-f 选项是强制的意思,如果不加这个选项,当删除一个不存在的文件时会报错-i 这个选项的作用是,当用户删除一个文件时会提示用户是否真的删除;-r 当删除目录时,加该选项,如果不加这个选项会报错。rm是可以删除不为空的目录的关于rm-rf两个选项最常用不管删除文件还是目录都可以但是方便的同时也要多注意,万一你的手太快后边跟了/那样就会把你的系统文件全部删除的,切记切记!(如果不小心删了,就赶紧跑路吧)。 

                  ls 查看某个目录或者某个文件,是list的简写。ls 后可以跟一个目录

                        -a  全部的档案都列出,包括隐藏的。linux文件系统中同样也有隐藏文件这些隐藏文件的文件名是以.开头的例如.test, /root/.123,                         /root/.ssh 等等,隐藏文件可以是目录也可以是普通文件

                        -l 详细列出文件的属性信息,包括大小创建日期所属主所属组等等。ll 这个命令等同于ls –l 。

                        -d 后边跟目录,如果不加这个选项则列出目录下的文件,加上后只列车目录本身

                  cp copy的简写,即拷贝格式为 cp [选项] [ 来源文件 ] [目的文件,例如我想把test1 拷贝成test2 ,这样即可 cp test1 test2

                        -d 这里涉及到一个连接的概念连接分为软连接和硬连接这里的软连接跟windows中的快捷方式类似如果不加这个-d 则拷贝软连接时会把软连接的目标文件拷贝过去,而加上后,其实只是拷贝了一个连接文件(即快捷方式)

                  -r 如果你要拷贝一个目录,必须要加-r选项,否则你是拷贝不了目录的

                        -i 如果遇到一个存在的文件,会问是否覆盖Redhat/CentOS系统中,我们使用的cp其实是cp –i。

                        -u 该选项仅当目标文件存在时才会生效,如果源文件比目标文件新才会拷贝,否则不做任何动作。

                mv 移动的意思,是move的简写格式为 mv [ 选项 ] [源文件] [目标文件],下面介绍几个常用的选项

                        -i cp-i 一样,当目标文件存在时会问用户是否要覆盖Redhat/CentOS系统中,我们使用的mv其实是mv –i

                        -u 和上边cp 命令的-u选项一个作用,当目标文件存在时才会生效,如果源文件比目标文件新才会移动,否则不做任何动作

                cat 查看一个文件的内容并显示在屏幕上;-n 查看文件时,把行号也显示到屏幕上;-A 显示所有东西出来,包括特殊字符。

    tac 其实是cat的反写,同样的功能也是反向打印文件的内容到屏幕上

                more 也是用来查看一个文件的内容当文件内容太多,一屏幕不能占下,而你用cat肯定是看不前面的内容的,那么使用more就可以解决这个问题了当看完一屏后按空格键继续看下一屏但看完所有内容后就会退出如果你想提前退出,只需按q键即可

                less 作用跟more一样,但比more好在可以上翻,下翻空格键同样可以翻页,而按”j”键可以向下移动(按一下就向下移动一行),按”k”键向上移动在使用moreless查看某个文件时,你可以按一下”/” 键,然后输入一个word回车,这样就可以查找这个word如果是多个该word可以按”n”键显示下一个另外你也可以不按”/”而是按”?”后边同样跟word来搜索这个word,唯一不同的是,”/”是在当前行向下搜索,而”?”是在当前行向上搜索

                head head后直接跟文件名,则显示文件的前十行如果加 –n 选项则显示文件前n

                tail head一样,后面直接跟文件名,则显示文件最后十行如果加-n 选项则显示文件最后n-f 动态显示文件的最后十行,如果文件是不断增加的,则用-f 选项

               文件的所属主以及所属组:ls –l 查看当前目录下的文件时,共显示了9列内容(用空格划分列)

    第1列,包含的东西有该文件类型和所属主所属组以及其他用户对该文件的权限第一列共10其中第一位用来描述该文件  

      的类型上例中,我们看到的类型有”d”, “-“ ,其实除了这两种外还有”l”, “b”, “c”,”s”

                d 表示该文件为目录;

                - 表示该文件为普通文件; 

                l 表示该文件为连接文件(linux file),上边提到的软连接即为该类型;

       表示该文件为块设备文件,比如磁盘分区

               c 表示该文件为串行端口设备,例如键盘鼠标

               s 表示该文件为套接字文件(socket),用于进程间通信

   后边的9位,每三个为一组均为rwx 三个参数的组合其中代表可读,w代表可写,x代表可执行前三位为所属主(user)的权限,

中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限下面拿一个具体的例子来述说一下

   一个文件的属性为-rwxr-xr-- ,它代表的意思是,该文件为普通文件,文件拥有者可读可写可执行,文件所属组对其可读不可写可执行,

其他用户对其只可读

   对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录例如一个目录的属性

 drwxr--r-- 其所属主为root,那么除了root外的其他用户是不能打开这个目录的

2列,表示为连接占用的节点(inode),若为目录时,通常与该目录地下还有多少目录有关系,关于连接(link)在以后章节详细介绍

3列,表示该文件的所属主

4列,表示该文件的所属组

5列,表示该文件的大小

67列和第8列为该文件的创建日期或者最近的修改日期,分别为月份日期以及时间

9列,文件名如果前面有一个则表示该文件为隐藏文件

    更改文件的权限

    更改所属组 chgrp   语法:chgrp [组名] [文件名]

    更改文件的所属主 chown  语法:chown [ -R ] 账户名 文件名 chown [ -R ] 账户名:组名 文件名

        这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改

                  改变用户对文件的读写执行权限 chmod

linux中为了方便更改这些权限,linux使用数字去代替rwx ,具体规则为r: 4 w:2 x:1 -:0 举个例子,-rwxrwx---用数字表示就是 770,具体是这样来的:

rwx = 4+2+1=7; rwx= 4+2+1=7; --- = 0+0+0=0

chmod 语法: chmod [-R] xyz 文件名 (这里的xyz,表示数字)

-R 选项作用同chown,级联更改

    

chattr 修改文件的特殊属性

语法: chattr [+-=][ASaci [文件或者目录名]

+-= :分别为增加减少设定

A:增加该属性后,文件或目录的atime将不可被修改;

S:增加该属性后,会将数据同步写入磁盘中;

a:增加该属性后,只能追加不能删除,非root用户不能设定该属性;

c:自动压缩该文件,读取时会自动解压;

i:增加后,使文件不能被删除重命名设定连接写入新增数据;

lsattr 列出文件/目录的特殊属性

语法: lsattr [-aR] [文件/目录名]

-a:类似与ls -a 选项,即连同隐藏文件一同列出;

-R:连同子目录的数据一同列出

which 用来查找可执行文件的绝对路径当查找的文件在PATH变量中并没有时,就会报错

whereis 通过预先生成的一个文件列表库去查找跟给出的文件名相关的文件

语法: whereis [-bmsu] [文件名称]

-b:只找binary 文件

-m:只找在说明文件manual路径下的文件

-s:只找source来源文件

-u:没有说明档的文件

find 这个搜索工具是笔者用的最多的一个,所以请你务必要熟悉它

语法: find [路径] [参数下面介绍几个笔者经常用的参数

-atime +n :访问或执行时间大于n天的文件

-ctime +n :写入更改inode属性(例如更改所有者权限或者连接)时间大于n天的文件

-mtime +n :写入时间大于n天的文件

        注意:

文件的 Access timeatime 是在读取文件或者执行文件时更改的文件的 Modified timemtime 是在写入文件时随文件内容的更改而更改的文件的 Create timectime 是在写入文件更改所有者权限或链接设置时随 Inode 的内容更改而更改的。 因此,更改文件的内容即会更改 mtime  ctime,但是文件的ctime 可能会在 mtime 未发生任何变化时更改,例如,更改了文件的权限,但是文件内容没有变化。 如何获得一个文件的atime mtime 以及ctime 

ls -l 命令可用来列出文件的 atime、ctime  mtime。

ls -lc filename         列出文件的 ctime

ls -lu filename         列出文件的 atime

ls -l filename          列出文件的 mtime    

atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息而这是加了 noatime 取消了不代表真实情況反正這三個 time stamp 都放在 inode  mtime, atime 修改inode 就一定會改既然 inode 改了 ctime 也就跟著要改了

    -name filename 直接查找该文件名的文件





阅读更多
个人分类: Linux
上一篇Linux 学习教程
下一篇Gradle快速构建Spring Boot项目
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭