马哥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)
上一篇 2016-08-15 12:10
下一篇 2016-08-15 12:10

相关推荐

  • 多实例

    多实例

    Linux干货 2018-01-29
  • Linux基础之—用户和组管理

    导言:   我们在使用计算机资源时为了资源的合理规划和利用,同时为了实现更好的管理,需要在计算机里有一个使用资源的凭证,这个凭证就是用户,下面就来介绍Linux用户和组管理。 1.资源分派:     资源的分派可以分为三个步骤,分别是    (1)认证(Authertication)   &nbsp…

    Linux干货 2016-08-04
  • 重构-改善既有代码的设计:重构原则(二)

    1.什么是重构 重构(Refactoring):在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造,对代码内部的结构进行优化。 2.为何重构   1)改进软件设计(整理代码) 重构和设计是相辅相成的,它和设计彼此互补。有了重构,你仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解…

    Linux干货 2015-04-07
  • 初入Linux世界 —马哥教育网络班N22_第三周课程练习

    一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。           [root@Alien ~]# who |cut -d ' ' -f1|sort -u       root 二、取出最后登录到当前系统的用户的相关…

    Linux干货 2016-09-19
  • Linux运维学习历程-第二天-虚拟机的配置

    学习Linux我自己的感觉是可以按Linus的哲学思想来学习 比如一切皆文件,那我们首先可以记住一些重要的常见的路径和文件,并知道有什么作用,这样在初期学习时,我们要干什么时,知道在哪里找;   而命令我们可以每天记忆并练习一些,本身Linux的基本命令都是一下短小精悍的而且有些命令名本身就是英文单词,像date命令就是和系统时间有关的命令用来显示…

    Linux干货 2016-08-03
  • C语言的谜题

    这几天,本站推出了几篇关于C语言的很多文章如下所示: 语言的歧义 [酷壳链接] [CSDN链接] 谁说C语言很简单? [酷壳链接] [CSDN链接] 6个变态的C语言Hello World程序 [酷壳链接] [CSDN链接] 如何加密/弄乱C源代码 [酷壳链接] [CSDN链接] C语言的谜题 [酷壳链接] …

    Linux干货 2016-05-08