马哥linux课堂笔记

0805课堂笔记

基本权限

读,写,执行

 

对于文件的读权限,能否查看文件内容.(文件内容需不需要看,如果是文本就需要看,如果是二进制就不需要看)

对于文件的写权限,能否修改文件内容,不能修改文件名,不能删除文件.(如果需要修改文件内容和文件名,必须在其父目录增加写权限和执行权限)

对于文件的执行权限,能否运行他.

 

对于目录的读权限,能否查看目录中的文件列表,如果只有读权限,也只能看到文件列表的名称,如果没有执行权限,将只能查看文件列表,而不能查看其内容,所以必须要配合执行权限

大写X权限如果作用在目录上,加上-R选项,将会递归在该目录下的所有文件,这时候X就会判断父目录下的所有文件或目录,如果是目录就会带x权限,如果是文件将会判断其是否有X权限,如果有则会加,没有则无X权限.(大X权限只能使用模式法,不能使用数字法)

 

数字法读写执行权限对应数字

读read 4

写write 2

执行executo 1

 

指定文件的所属组所有者

更改所有者

chown

(chown同样可以修改所属组.如:chown :g1 file 偶然

dir 这种写法就可以修改所属组为g1)

更改所属组

chgrp

 

修改权限命令

chmod

 

新建文件的权限由umask决定

root的umask 022

user:002

越大的umask值权限越小.

 

文件的默认权限

file default = 666-umask

奇数+1

如果是奇数将会屏蔽不掉x权限,而umask的作用就是为了屏蔽掉x权限.

目录的默认权限

dir default = 777-umask

 

umask的定义可以在家目录下的.bash_profile或.bashrc中

全局定义在/etc/bashrc或/etc/profile

 

chattr

+i 不能更改或删除

+a 只能增加

+A Access访问时间锁定

 

lsattr

查看文件附加权限

 

特殊权限

suid 工作在二进制文件,必须是文件,不能是目录(因为如果工作在目录将没有意义),普通用户运行这个文件将会继承文件所有者的身份,所以所有者身份必须带有x权限.

sgid 可以作用与文件或者目录,作用在文件上跟suid差不多,但是继承的是文件所属组的权限,作用在目录上的话,

sticky可以作用与目录上,其作用就是只有root和普通用户才能删除目录中所有者是自己的文件.

(文件拥有Suid,Sgid,Skicky位时,必须拥有X权限,如果没有,将会显示大写的SST,因为如果没有那么suid和sgid,skicy将没有意义)

 

文件权限的应用顺序

所有者,自定义的ACL记录(自定义用户,自定义组),group(定义了ACL之后组就是mask),other

 

访问控制列表(ACL)

getfacl file|directory  查看文件或目录的ACL权限

setfacl –m u:wang:rwx file | directory 增加文件用户wangACL权限

setfacl –Rm g:sales:rwX directory 递归ACL权限给sales组到这个目录

setacl –M file.acl file|directory 通过文本模式增加ACL权限给文件或目录

setfacl –m g:salegroup:rw file:directory 增加文件或目录salegroup组的ACL权限

setfacl –m d:u:wang:rx directory 增加某个目录下新建文件默认的ACL权限是rx

setfacl –x u:wang file |directory 根据指定ACL权限来删除

setfacl –X file.acl directory 通过文本模式删除acl权限

setfacl –b file|directory 清空所有acl权限和记录

 

 

文本处理工具

 

抽取文本内容:less和cat

more:分页查看文件

more [OPTIONS…]FILE…

-d 显示翻页及退出提示

 

less:一页一页地查看文件或STDIN输出

查看时有用的命令包括

/文本 搜索 文本

n/N 跳到下一个 or 上一个匹配

less 命令是man命令使用的分页器

 

文件查看命令:cat,tac,rev

-E 显示行结束符$

-n 对显示的每一行进行编号

-A 显示所有控制符 是-vET的组合

-b 非空行编号

-s 压缩的连续的空行成一行

-T 查看Tap符号^I

-v 查看windows下的回车^M

tac 按行来倒置显示

rev 按行来反向显示每一个字符

如: cat f1

1234

abcd

tac f1

abcd

1234

rev f1

4321

dcba

 

hexdump  查看文件十六进制编码

 

文件截取:head和tail

head 查看文件内容前几行

head –n 3 查看内容前3行

tail –n 3 查看内容后3行

不带选项的默认查看前10行或后10行

tail –f 跟踪显示文件新追加的内容,常用日志监控(缺点无法在进行其他的工作)

在后面增加&可以在后台执行

tail –n 0 var/message &

fg将后台执行的命令放到前台来关闭他

-c 显示最后几个字节

 

按列抽取:cut

cut [OPTION…] [FILE…]

-d DELIMITER:指明分隔符,默认tab

-f FILEDS:

#:第#个字段

#,#[,#]:离散的多个字段,例如1,3,6

#-#: 连续的多个字段,例如1-6

-c 按字符切割

–output-delimiter=STRING知道你跟输出分隔符

 

显示文件或STDIN数据的指定列

cut –d: -f1 /etc/passwd

取passwd文件中以:分隔符取第一列内容

cat /etc/passwd | cut –d: -f7

取passwd文件中以:分隔符第七列内容

cut –c2-5 /usr/share/dict/words

取words 文件中 字符2-5列的内容

 

paste 合并两个文件同行号的列到一行

paste [OPTION]… [FILE]…

-d 分隔符:指定分隔符,默认用TAB

paste f1 f2

-s: 所有行合成一行显示

paste –s f1 f2

马哥linux课堂笔记

 

文本数据的统计工具

wc(word count)

-m 统计字符

 

整理文本:sort

把整理过的文本显示在STDOUT,不改变原始文件

sort [options] files

常用选项

-r 执行反方向(由上至下)整理

-n 执行按数字大小整理

-f 选项忽略(fold)字符串中的字符大小写

-u 选项(独特,unique)删除输出中的重复行

-t c 选项使用c作为字段界定符

-k X 选项按照使用c字符分隔的X列来整理能够使用多次

 

uniq命令:从输入中删除重复的前后相接的行

uniq [OPTIONS]… [FILE]…

-c 显示每行重复出现的次数

-d 仅显示重复过的行

-u 仅显示不曾重复的行

常和sort命令一起配合使用:

sort userlist.txt | uniq –c

 

 

比较文件:diff和patch

 

diff 命令的输出被保存在一种叫做”补丁”的文件中

使用-u 选项来输出”同意的(unifed)”diff格式文件,最适用于补丁文件

 

patch 命令复制在其他文件中进行的改变(要谨慎使用!)

适用-b 选项来自动备份改变了的文件

 

diff –u foo.conf-broken foo.conf-works > foo.patch

patch –b foo.conf-broken foo.patch

 

按关键字抽取:grep

linux上文本处理三剑客:grep,sed,awk

 

grep:文本过滤(pattern)工具;

gred,egrep,[fgrep(不支持正则表达式搜索)]

 

正则表达式

REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义.而表示控制或通配的功能

程序支持:grep,vim,less,nginx等

分两类:

基本正则表达式: BRE

扩展正则表达式:ERE

grep –E,egrep

正则表达式引擎:

采用不同算法,检查处理正则表达式的软件模块

PCRE(Perl Compatible Regular Expressions)

元字符分类:字符匹配,匹配字数,位置锚定,分组

man 7 regex

 

grep的工具名Global search Regular expression and Printout the line (全局搜索正则表达式并且打印出相印的行)

作用:文本搜索工具,根据用户指定的”模式”对目标文本逐行进行匹配检查:打印匹配到的行;

模式:由正则表达式字符及文本字符所编的过滤条件

grep [OPTIONS] PATTERN[FILE…]

grep rot /etc/passwd

grep “$USER”/etc/passwd

grep ‘$USER’/etc/passwd

grep `whoami` /etc/passwd

 

-v 显示不能够被patern匹配到的行

-I 忽略字符大小写

-n 显示匹配到的行号

-c 统计匹配的行数

-o 仅显示匹配到的字符串

-q 静默模式,不输出任何信息

grep –q root /etc/passwd

找到找不到都不显示,配合echo $? 使用,如果显示0说明找到,如果显示为1说明没找到

马哥linux课堂笔记

 

-A #:after,后#行

-B #:before,前#行

-C #:context,前后各#行

-e 实现多个选项间的逻辑or关系

grep –e `cat` -e `dog` file

-w整行匹配整个单词

-E 使用ERE

 

字符匹配:

. :匹配任意单个字符

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外额任意单个字符

[:digit:][:lower:][:upper:][:alpha:][:alnum:][:punct:][:space:]

 

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数

*: 匹配前面的字符一次,包括0次

贪婪模式:尽可能长的匹配

.*:任意长度的任意字符

\?:匹配其前面的字符0或1次

\+:匹配其前面的字符至少1次

\{n\}:匹配前面的字符n次

\{m,n\}:匹配前面的字符至少m次,至多n次

\{,\n}:匹配前面的字符至多n次

\{n,\}:匹配前面的字符至少n次

 

sed:stream editor,文本编辑工具

awk: linux上的实现gawk,文本报告生成器

 

 

 

原创文章,作者:Kartik,如若转载,请注明出处:http://www.178linux.com/31865

(0)
KartikKartik
上一篇 2016-08-15 12:10
下一篇 2016-08-15 12:10

相关推荐

  • httpd2.4 应用

    练习:  (1)基于主机名实现三个虚拟主机     (2) 每虚拟主机使用独立的访问日志和错误日志 (3) 第三个虚拟主机的/admin要进行用户访问认证  (4) 在第二个虚拟主机上提供/status; (5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径; (6) 尝试使用混合类型…

    Linux干货 2016-10-09
  • 关于大型网站技术演进的思考(十五)–网站静态化处理—前后端分离—中(7)

    原文出处: 夏天的森林    上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌声会更多,我想很多资深前端工程师看到这样的技术方案可能会有种说不出来的矛盾心情,当我的工作逐渐走向越来越专业化的前端开发后,我就时常被这套前后端分离方案所困惑,最近我终于明白了这个困惑的本源在哪里…

    Linux干货 2015-03-11
  • MySQL/MariaDB数据库基于SSL实现主从复制

    前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证,为了解决这一问题,我们需要一种安全的方式进行传送,即基于SSL加密进行数据传输。 部署配置 实验拓扑 实验环境 系统环境:CentOS6.6 数据库版本:mari…

    Linux干货 2015-06-21
  • 导读谷歌三大核心技术之一 GoogleFileSystem(一)

    GoogleFileSystem设计构想 为满足Google数据处理的需求,Google工程师设计并实现了GoogleFileSystem(GFS)。GFS与传统分布式文件系统类似,也需要满足高性能、可伸缩性、可靠性以及可用性。与传统分布式文件系统思路不不同的是: GFS认为组件失效是常态而非意外,GFS由大量廉价设备组成 文件数量异常巨大 绝大部分文件修改…

    Linux干货 2017-05-07
  • 6个用于大数据分析的最好工具

    大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。  在大数据和大数据分析,他们对企业的影…

    Linux干货 2015-04-04
  • 二进制安装mysql(mariadb)

    实验环境: ~]# lsb_release -a Distributor ID: CentOSDescription: CentOS Linux release 7.4.1708 (Core)Release: 7.4.1708Codename: Core 去官方下载mariadb: https://downloads.mariadb.org/ 本人将自己的文…

    2018-01-22