Linux学习笔记01

Stella981
• 阅读 639

一、LINUX文件类型

-:普通文件:

  • 纯文本文件(ascll) 配置文件
  • 二进制文件(binary file):命令
  • 数据格式文件(date):/var/log/wtmp

d:目录文件

l:链接文件

设备文件(/dev):

  • b:block块设备
  • c:character 字符集设备:一次性读取,按顺序读取

s:socket套接字文件:用在网络上的数据连接IP:PORT

p:管道文件:特殊的文件类型,解决多个应用程序同时访问一个文件造成的错误问题

file:查看Linux中的文件类型

语法:file [options] filename

Linux文件名限制:

  1. 单个文件或者目录不能超过255字符
  2. 文件名当中不能包含一些特殊字符

文件查找命令: which locate find

  which:查找命令字所在的位置

  locate:模糊匹配(只要包含关键字的文件都查找出来)

             不是实时的,基于数据库查找, updatedb升级locate数据库

             查找速度特别快

  find:查看文件或目录的工具

          特点:  实时查找

                      精确查找

                      遍历整个指定目录中的文件,速度很慢

                      支持多种查找条件(属主,属组,权限,文件名等)

        语法: find [find_path] [条件] [处理动作]

                   find_path:如果不写,默认在当前工作目录查找

                   条件:如果不写,会查找出该路径下所有的文件

                   处理动作:默认打印到屏幕上 print

        条件:(匹配标准)

           -name file_name:根据文件名进行查找,区分大小写

                    查找条件通配符:

                       *:通配任意个数的任意字符   # find /etc/ -name "pass*"  # find /etc/ -name "*pass"

                        ?:通配单个的任意字符       # find /etc/ -name "passw*"

           -iname file_name:根据文件名进行查找,不区分大小写

           -regex PATTERN:根据正则表达式的模式进行查找

           -user:通过属主进行查找

           -group:通过属组进程查找

           -uid UID:通过UID号进行查找

           -gid GID:通过GID号进行查找

           -nouser:查找没有属主的文件

           -nogroup:查找没有属组的文件

           -type:根据文件类型进行查找

                 -b:块设备

                 -c:字符设备

                 -d:目录

                 -f:文件

                 -p:命名管道

                 -s:套接字文件

                 -l:链接文件

           -size [+ | -] num [k|m|g]

                 -size 5k:精确匹配

                 +:大于

                 -:小于

        根据时间戳进行查找: # stat file_name  //查看文件的时间戳

            [+ | -] 也起作用

            -atime:时间单位为天,access时间

            -mtime:时间单位为天,modify时间

            -ctime:时间单位为天,change时间

            -mmin:时间单位为分钟,modify时间

            -amin:时间单位为分钟,access时间

            -cmin:时间单位为分钟,change时间

        根据权限查找:

         -perm MODE:

               MODE:num(如644),精确匹配

               /MODE:/num任意一位匹配

               -MODE:-num文件权限能够完全包含此MODE时才能匹配

       条件组合:

             -a:同时满足多个条件,比如查找属主是tom并且权限为644的文件

             -o:满足一个条件即可,比如查找属主是tom或者权限为644的文件

             -not:不满足条件的被查找出来

       出来动作:

         -print:默认动作,默认查找结果打印到屏幕

         -ls:默认以类似于ls -l的形式显示结果的信息

         -ok COMMAND {} \;执行动作时提示用户是否执行,必须以\;结尾,{}代表文件名占位符

         -exec COMMAND {} \;执行动作时不提示用户直接执行,必须以\;结尾,{}代表文件名占位符

1、查找/var目录下属主为root并且属组为mail的所有文件;

find /var -user root -a -group mail

2、查找/usr目录下不属于root,bin,或student的文件;

find /usr -not -user root -a -not -user bin -a -not -user student

find /usr -not \( -user root -o -user bin -o -user student \)

3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;

find /etc -mtime -7 -not \ ( -user root -o -user student \)

find /etc -mtime -7 -not -user root -a -not -user student

4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;

find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;

5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;

find /etc -size +1M >> /tmp/etc.largefiles

6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;

find /etc -not -perm /222 -ls    

二、权限:是用户对于系统资源及数据等操作的能力

三类用户权限:

属主:owner

属组:group

其他:other

-rw-r--r--:10位

第一位:文件类型

第2-4位:文件属主权限

第5-7位:文件属组权限

第8-10位:其他用户的权限

文件:

r(read):读权限,可以查看文件的内容,使用cat more等命令

w(write):写权限,可以修改文件的内容及删除文件

x(execute):执行权限,可执行文件或脚本

目录:

r:读权限,可以查看目录中的列表,执行ls命令

w:写权限,可以向目录中新建文件或目录等

x:执行权限,可以执行cd命令

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

改变所有者(chown)和用户组(chgrp)命令

chown xiaoming abc:改变abc的所有者为xiaoming

chgrp root abc:改变abc所属的组为root

chown root ./abc:改变abc这个目录的所有者是root

chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

umask:反掩码(在/etc/login.defs中定义)

rwx:7

文件默认:rw-rw-rw-:666 644=rw-r--r--新建文件时,权限掩码(666)减去反掩码(022)就是新建文件的权限(644)

目录默认:rwxrwxrwx:777 755=rwxr-xr-x,新建目录时,权限掩码(777)减去反掩码(022)就是新建目录的权限(755)

Linux隐藏权限:

lsattr:查看文件或目录的隐藏权限

chattr:修改文件的隐藏权限,/   /dev    /tmp    /var    /etc  目录不受chattr保护

语法:

chattr +-= [options] file_name

a:只能向文件中追加数据,不能删除

i:任何用户不能删除文件

A:不同步访问时间

+:添加相应权限

-:删除相应权限

=:设定相应权限

/etc/passwd /etc/shadow /etc/group

tom:/etc/passwd /etc/shadow /etc/group添加信息,新建宿主目录(修改宿主目录的归属)

echo "tom:x:1001:1001::/home/tom:/bin/bash" >> /etc/passwd

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这