您的位置:首页 > 运维架构 > Linux

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

2018-06-14 09:26 211 查看

常用的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”键向上移动。在使用more和less查看某个文件时,你可以按一下”/” 键,然后输入一个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),上边提到的软连接即为该类型;

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

               c 表示该文件为串行端口设备,例如键盘、鼠标。               s 表示该文件为套接字文件(socket),用于进程间通信。   后边的9位,每三个为一组。均为rwx 三个参数的组合。其中r 代表可读,w代表可写,x代表可执行。前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。下面拿一个具体的例子来述说一下。   一个文件的属性为-rwxr-xr-- ,它代表的意思是,该文件为普通文件,文件拥有者可读可写可执行,文件所属组对其可读不可写可执行,其他用户对其只可读。   对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录。例如一个目录的属性为 drwxr--r-- 其所属主为root,那么除了root外的其他用户是不能打开这个目录的。

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

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

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

第5列,表示该文件的大小。

第6列、第7列和第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 time,atime 是在读取文件或者执行文件时更改的。文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 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 直接查找该文件名的文件





阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: