感谢支持
我们一直在努力

Linux基础知识总结

接触Linux约有半年的时间了,感到自己对Linux仍是一无所知,大多数时候只是在Ubuntu软件中心中翻翻有什么有意思的东西装上玩玩,有的地方觉得不方便就又只好切换回Windows。系统出问题的时候完全没辙,只能重装了事。因此找了几本相关的书,决定深入学习Linux。不定期整理一下学习笔记,发到Blog上来,方便自己查阅,也是对自己的督促。



1.用户与用户组

        Linux是多用户,多任务的操作系统,这意味着多人可以同时使用一台主机。考虑到每个用户的个人喜好与隐私,文件的所有者就显得尤为重要。将用户分为不同的组别当然是为了方便管理。因此用户与文件之间的关系就有三种:(1User:表示该用户是文件的所有者。(2Group:表示该用户和文件的所有者在同一用户组。(3Others:除了以上两种的其他用户。此外,Linux中还有一个特殊root账户,相当于Windows中的管理员账户,对所有文件具有所有权。


    由于只是自己一个人在自己的机器上使用,对这一部分就没有深入了解。重点在下面的文件权限。



2.文件权限


2.1 Linux文件属性

         在终端下执行”ls -l”查看当前目录的文件,l参数用于显示文件的属性,以下是一个例子及对应的属性说明:


—————————————————————————————————————————————


  -rw-rw-r–          1             jerry         jerry             100       6 月 28 11:40   hello.c


【用户权限】【连接数】【所有者】【用户组】【文件大小】【修改日期】【文件名】


—————————————————————————————————————————————


注:文件大小的单位是B


        开头的那一串”-rw-rw-r–“共有10个字符,第一个表示文件的类型,常见的有:[-]代表文件,[d]代表目录,[l]代表链接文件, [b]代表设备等。后面的九个分为三组,分别代表User,Group,Other这三类用的权限,[r]代表读权限,[w]代表写权限,[x]代表执行权限,[-]就代表没有权限。因此,上面这个例子代表文件的所有者jerry及同组的用户对该文件可读,可写。其他用户则只能读。所有的用户都没有执行权限。


2.2 文件权限的意义

        如上所述,用户对于文件有r(read),w(write),x(execute)这三种权限。在Linux中一切皆文件,因而有时候这是令人迷惑的,尤其是对目录来说。以下对目录的这三个权限再做具体的说明:


        r:表示用户可以查看该目录下的内容,即可以使用ls”命令


        w:表示用户可以修改该目录下的内容,包括增加,删除,重命名等


        x:表示用户可以进入该目录,即可以使用cd”命令


        而对于我们通常所说的的文件来说,r”和w”容易明白,而x”则令人费解,难道文本文件也可以执行吗?在这一点上,Linux和Windows有很大的区别。在Windows下,可执行文件通常都是以.exe”结尾的。而在Linux下,文件是否可执行与后缀名没有关系,而仅与是否具有x权限有关。不过无论是Linux还是Windows,可执行的只能是二进制文件。因此,虽然在Linux下文本文件加上x权限也可以执行,不过系统只认识二进制的机器语言,因此只可能报错而不会有任何效果。


        为了验证这一点可以做一个简单的实验,用gcc编译一个C语言文件,默认会得到一个a.out”文件,将其重命名为a.txt”,然后执行./a.txt”,将会发现程序依然能够执行。


2.3 文件权限的更改

        Linux下要更改文件的权限,可以用以下三个命令:


        改变所有者:chown      user      filename


        改变用户组:chgrp       group   filename


        改变权限:chmod,有以下两种用法:


       (1)数字法:


        三个权限对应的数字为r:4,w:2,x:1,三类用户的权限分别就是这三个数字的和,比如说上面的那个例子“ -rw-rw-r– ”化为数字即是:664,要给三个用户都加上执行权限的话,就用chmod 775 hello.c”


        (2)符号法:


        chmod        u/g/o/a       +/-/=          r/w/x        filename            


        以上u”表示user,“g”表示group,o”表示others,a”表示all


        “+”表示增加权限,-”表示去除权限,=”表示设置权限为


        “rwx”当然就是文件的三个权限,可以只写一个,也可以写多个


        依旧是上面的那个例子,给hello.c所有用户加上执行权限,那么命令就是chmod a+x hello.c”


        ps:以上命令可以加上-R”参数来进行递归变更


2.4 文件的默认权限:umask

        以上已经说明了关于文件权限的基本知识,那么当我们新建一个文件的时候,权限是怎样的呢?这就涉及到文件的默认权限:umask。在终端下输入umask,会得到一串数字,像在我的机器上是0002”,后三个数字即是文件的默认权限,不过要注意的是,这是文件默认不具有的权限。亦即002”代表others不具有w权限。还需要注意的是对于文件和目录这里仍是不同的。文件默认不具有x权限,即最大权限为-rw-rw-rw-”,而目录访问需要x权限,因此默认最大权限为-rwxrwxrwx”。所以在我的机器上umask为002”,分别创建一个文件和一个目录后,结果如下:


        drwxrwxr-x.            2         jerry     jerry          4096          8月 31 11:30               new


        -rw-rw-r–.               1         jerry     jerry             6             8月 31 11:29              new.txt


        若要设置umask,直接在后面加上设置的数字即可,比如umask 022” 


        ps:umask加上-S(大写)参数可以直接显示文件权限,不过不区分文件与目录,如我的机子上就显示u=rwx,g=rwx,o=rx”,仍需留意文件默认没有x权限。

Linux下支持的压缩命令非常多,常见的压缩文件的拓展名有*.gz*.bz2*.tar.gz*.tar.bz2等。压缩解压是很常用的功能,但命令参数都稍有点复杂,因此对常用的几个用法做一个简单的总结。



1.gzip

      gzip的全称是是GNUzip是一个非常优秀文件压缩程序。除了*.gz文件外,gzip还可以用来解压*.zip*.Z等格式的压缩文件。而且*.gz文件也可以用winrar解压,用起来非常方便。下面是一些常用的gzip参数:




gzip-option filename



-c将压缩的结果显示到屏幕上,原文件不变,可以通过数据流重定向将结果写到文件中去。



-d解压缩



– f强制覆盖旧文件



-l列出压缩包内储存的原始文件的信息,解压后的名字、压缩率等。注意加上-l后即便有-d参数也不会解压缩



-r递归压缩目录下的所有文件



-t测试压缩文件的完整性



-v显示压缩比率



-1~9压缩等级,数字越大,压得越小,速度越慢,默认等级为6




gunzip-option filename



解压缩命令,相当于gzip-d。所能使用的参数和gzip相同,当然少了-d,也不能设等级。




zcat-filename



查看压缩文件的内容




2.bzip2

        bzip2是一个基于Burrows-Wheeler变换的无损压缩软件,它的压缩比率比gzip更高,不过相应的速度也会更慢一点。bzip2的用法和gzip基本相同,上面提到的参数基本都可以沿用(除了没有-r,没有-l,大写的-L表示License)。下面是bzip2多出的一些常用参数:




bzip2-option filename



-k保留原有文件



s使用较少的内存




bunzip2-option filename



解压缩命令,相当于bzip2-d




bzcat-filename



查看压缩文件的内容




bzip2recover



从损坏的*.bzip2文件中恢复数据




3.tar

        上面提到的命令都只能针对单个文件进行压缩。虽然可以加上-r参数来压缩目录,但只是对目录下的各个文件单独压缩,最终仍是目录。要想把一个文件夹压缩成一个压缩包。那么就要使用tar命令。tar的作用是将多个文件或目录进行打包。tar命令很多,下面是一些常用的。





tar -option filename



– c创建新的打包文件



– d将文件和tar包里的文件进行diff



– t查看打包文件内含有哪些文件



– x解打包或解压缩



– j使用bzip2进行压缩/解压



– z使用gzip进行压缩/解压



– r将新的文件添加到tar包中去



– A将已有的tar包添加到另一个tar包中去



– k不覆盖系统上已有的文件



– v显示正在处理的文件名



– p保留文件原有的权限与属性



– f接要被处理的文件名



-C解压的时候指定目录



–exclude=filename打包的时候不包含filename



通常的使用可以总结为以下几种模式:



查询: tar -j(z)tvffilname



压缩: tar -j(z)cvf 新建的文件名要压缩的文件名



解压: tar -j(z)xvf 要解压的文件名-C解压的目录





ps:以上要注意tar不会自动生成文件的后缀名,所以新建的文件名需要自己加上后缀方便识别。还有


-f参数一定要放在最后和文件名相连,也可以单独独立出来防止出错。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux基础知识总结
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏