Hacker基础之Linux篇:基础Linux命令四

  • A+
所属分类:Hacker基础之Linux

 我们继续学习Linux



1. egrep





egrep命令用于在文件内查找指定的字符串。

egrep执行效果与grep-E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。


Hacker基础之Linux篇:基础Linux命令四

egrep命令使用介绍:
命令格式:egrep [范本模式] [文件或目录]

命令功能:egrep命令用于在文件内查找指定的字符串

命令的常用参数选项说明:

-c   只输出匹配的行数

-i   不区分大小写

-h  查询多个文件时不显示文件名

-l   查询文件时只显示匹配字符所在的文件名

-n  显示匹配的行及其行号

-s  不显示不存在或不匹配文本的错误信息

-v  显示不匹配的所有行

-E  允许使用扩展模式匹配。例如:findfile文件中查询包含04的行

Hacker基础之Linux篇:基础Linux命令四




一般常用的几种用法和情景:



1




查找当前目录下所有文件中包含字符串linux的文件


egrep linux *


Hacker基础之Linux篇:基础Linux命令四


2. chmod


chmod命令用于改变linux系统文件或目录的访问权限,用它控制文件或目录的访问权限。


该命令有两种用法,一种是包含字母操作符表达式的文字设定法,另一种是包含数字的数字设定法,这里只介绍文字设定法。


文件或目录的访问权限分为执行三种。


以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。


执行权限表示允许将该文件作为一个程序执行。


文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。


用户也可根据需要把访问权限设置为需要的任何组合。

Hacker基础之Linux篇:基础Linux命令四

chmod命令使用介绍:
命令格式:chmod [options] mode files

命令功能:chmod命令用于改变linux系统文件或目录的访问权限

命令的常用参数选项说明:

-c   当发生改变时,报告处理信息
-f   错误信息不输出
-R  处理指定目录以及其子目录下的所有文件
-v  运行时显示详细处理信息


u   目录或者文件的当前的用户
g   目录或者文件的当前的群组
o   除了目录或者文件的当前用户或群组之外的用户或者群组
a   所有的用户及群组


r   读权限,用数字4表示
w  写权限,用数字2表示
x   执行权限,用数字1表示
-    删除权限,用数字0表示
s   特殊权限 


Hacker基础之Linux篇:基础Linux命令四



常用的方式:


1


比如我们搭建一个网站的时候,网站的安装脚本提示对某个文件没有可执行的权限,然后我们要给这个指定的文件所有用户组增加可执行的权限


chmod a+x database.php


2

或者后来我们发现是apache这个用户组没有可执行权限,为了安全考虑,其他用户组没必要具有可执行权限,我们可以这样操作


chmod ug+w,o-x database.php


这句话的意思是这样的


文件属主(u)增加执行权限

与文件属主同组用户(g)增加执行权限

其他用户(o)删除执行权限


3


或者我们有一天发现了某个文件夹内的文件都需要一个可写的权限,比如缓存目录,我们可以这样为整个目录增加权限


chmod -R u+w cache/


3. chown


chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID


组可以是组名或者组ID


文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。 


Hacker基础之Linux篇:基础Linux命令四

chown命令使用介绍:
命令格式:chown [options] mode files

命令功能:chown命令用于将指定文件的拥有者改为指定的用户或组

命令的常用参数选项说明:

-c   显示更改的部分的信息

-f   忽略错误信息

-h  修复符号链接

-R  处理指定目录以及其子目录下的所有文件

-v  显示详细的处理信息

-deference 作用于符号链接的指向,而不是链接文件本身

Hacker基础之Linux篇:基础Linux命令四


一般常用的情景如下


1

我们用root用户在服务器上创建了一个文件,但是这个文件是要给nginx来使用的,所以他的拥有者必须是nginx,因为root的权限太高了,nginx对这个文件的访问会被系统拒绝,我们这样做


chown nginx:nginx nginx.conf


2

然后我们开始搭建网站,发现网站的/var/www/html下的文件都是root的,但是这些文件打算给nginx来使用,作为网站的根目录,怎么办


chown -R nginx:nginx /var/www/html


3


或者我们只打算改变这个文件的组


chown :nginx index.html


Hacker基础之Linux篇:基础Linux命令四


3. ln


lnLinux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。


当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(Link)它就可以,不必重复的占用磁盘空间


上面这些话的意思就是,就像大家天天用的Windows一样,安装游戏的时候不是都提示你是否在桌面创建快捷方式,这个快捷方式,起始就是一个(Link),程序的真实位置并不在桌面上,但是你点击桌面的快捷方式就可以打开游戏


Hacker基础之Linux篇:基础Linux命令四

ln命令使用介绍:
命令格式:ln [option] [src] [dst]

命令功能:ln 命令用于为某一个文件在另外一个位置建立一个同步的链接

命令的常用参数选项说明:

-b   删除,覆盖以前建立的链接

-d   允许超级用户制作目录的硬链接

-f    强制执行

-i    交互模式,文件存在则提示用户是否覆盖

-n   把符号链接视为一般目录

-s   软链接(符号链接)

-v   显示详细的处理过程

Hacker基础之Linux篇:基础Linux命令四


常用的情景如下


1

比如我们自己写了一个脚本在/home/code/scp_key.sh上,但是我们想在bash中输入scp_key时候就执行这个脚本,我们可以把这个路径加入到PATH中去,或者这样


ln -s /home/code/scp_key.sh /usr/bin/scp_key


注意给脚本添加执行权限


我们把这个文件建立一个软连接在/usr/bin下面,这样我们每次在bash中 输入scp_key的时候,就可以执行那个脚本了,因为/usr/bin是在PATH中的,软链接的好处就是你如果要给scp_key.sh添加了一些功能,改完scp_key.sh之后,不用改变在/usr/bin的那个链接,就可以使用新功能了


但是缺点也是显而易见的,如果/home/code/scp_key.sh文件丢失,那么软连接也会失效


2

如果你确定了这个代码已经很完美了,不需要改了,那我们可以创建硬链接


ln /home/code/scp_key.sh /usr/bin/scp_key


源文件被删除后,并不会影响硬链接文件


如果你删除了硬链接文件,然后再重建一个一样名字的文件,这个文件还会默认变成硬链接文件,内容和你删除前保持一致


本文完


Hacker基础之Linux篇:基础Linux命令四
Hacker基础之Linux篇:基础Linux命令四




Hacker基础之Linux篇:基础Linux命令四



  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: