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

我们继续学习Linux

egrep

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

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

egrep命令使用介绍:
命令格式:egrep [范本模式] [文件或目录]
命令功能:egrep命令用于在文件内查找指定的字符串
命令的常用参数选项说明:
-c   只输出匹配的行数
-i   不区分大小写
-h  查询多个文件时不显示文件名
-l   查询文件时只显示匹配字符所在的文件名
-n  显示匹配的行及其行号
-s  不显示不存在或不匹配文本的错误信息
-v  显示不匹配的所有行
-E  允许使用扩展模式匹配。例如:findfile文件中查询包含04的行

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

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

egrep linux *

chmod命令

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

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

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

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

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

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

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

chmod命令使用介绍:
命令格式:chmod [options] mode files
命令功能:chmod命令用于改变linux系统文件或目录的访问权限
命令的常用参数选项说明:
-c   当发生改变时,报告处理信息
-f   错误信息不输出
-R  处理指定目录以及其子目录下的所有文件
-v  运行时显示详细处理信息

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

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

常用的方式:

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

chmod a+x database.php

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

chmod ug+w,o-x database.php

这句话的意思是这样的


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

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

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


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

chmod -R u+w cache/

chown

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


组可以是组名或者组ID


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

chown命令使用介绍:
命令格式:chown [options] mode files
命令功能:chown命令用于将指定文件的拥有者改为指定的用户或组
命令的常用参数选项说明:
-c   显示更改的部分的信息
-f   忽略错误信息
-h  修复符号链接
-R  处理指定目录以及其子目录下的所有文件
-v  显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身

一般常用的情景如下

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

chown nginx:nginx nginx.conf

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

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

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

chown :nginx index.html

In

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


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


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

ln命令使用介绍:
命令格式:ln [option] [src] [dst]
命令功能:ln 命令用于为某一个文件在另外一个位置建立一个同步的链接
命令的常用参数选项说明:
-b   删除,覆盖以前建立的链接
-d   允许超级用户制作目录的硬链接
-f    强制执行
-i    交互模式,文件存在则提示用户是否覆盖
-n   把符号链接视为一般目录
-s   软链接(符号链接)
-v   显示详细的处理过程

常用的情景如下

a.比如我们自己写了一个脚本在/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文件丢失,那么软连接也会失效

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

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

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


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


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值