Linux学习笔记(2)

搜索查找类

find命令:

find指令  将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端
find [搜索范围] [选项]
       -name <查询方式>   按照指定的文件名查找模式查找文件
       -user <用户名>		查找属于指定用户名所有文件
       -size <文件大小>   按照指定的文件大小查找文件

按文件名,根据名称查找/home目录下的hello.txt文件
       find /home -name hello.txt
按拥有者,查找/opt目录下,用户名称为root的文件
       find /opt -user root
查找整个linux系统下大于20M的文件(+n 大于    -n 小于    n 等于)
       find / -size +20M
查询根目录下,所有后缀为.txt的文件
       find / -name *.txt

locate命令

locate指令:可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须顶起更新locate时刻。

locate 搜索文件:
              由于locate指令基于数据库进行查询,所以第一次运行前。必须
              使用updatedb指令创建locate数据库

              使用locate指令快速定位hello.txt文件所在目录
              updatedb
              locate hello.txt

grep & 管道符号 |

grep过滤查找
管道符 "|" ,表示将前一个命令的处理结果,输出传递给后面的命令处理。

grep [选项] 查找内容 源文件
       -n		显示匹配行及行号
       -i		忽略字母大小写
例 : 请在hello.txt文件中,查找 "yes" 所在行,并且显示行号
      cat hello.txt | grep -ni yes
      cat hello.txt  将hello.txt的内容浏览出来
       | 是将cat浏览出来的内容交给后面的命令处理
      grep yes  是将 | 交过来的内容进行过滤查找

压缩和解压缩类

gzip & gunzip 命令##

gzip用于压缩
gunzip用于解压
gzip 文件 :压缩文件,只能将文件压缩为 *.gz 文件
gunzip 文件.gz:解压缩文件命令

zip & unzip命令

zip用于压缩
unzip用于解压
   打包发布
        zip [选项] xxx.zip 将要压缩的内容	#压缩文件和目录的命令
              -r  递归压缩,即压缩目录
        unzip [选项] xxx.zip				#解压缩文件
                -d <目录>   指定解压后文件的存放目

tar命令

打包指令  最后打包后的文件是.tar.gz的文件
   tar [选择] xxx.tar.gz 打包的内容	#打包目录,压缩后的文件格式是.tar.gz
         -c :产生.tar打包文件
         -v :显示详细信息
         -f	:指定压缩后的文件名
         -z	:打包同时压缩
         -x	:解包.tar文件
 例:
    1、压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
             tar -zcvf /home/a.tar.gz /home/a1.txt /home/a2.txt
    2、将/home的文件夹压缩成myhome.tar.gz
             tar -zcvf myhome.tar.gz /home/
    3、将a.tar.gz解压到当前目录下
             tar -zxvf a.tar.gz
    4、将myhome.tar.gz解压到/opt目录下(指定的目录必须是存在的)
             tar -zxvf myhome.tar.gz -C /opt/

组管理和权限管理(重点

1.在Linux中的每个用户必须属于一个组,不能独立于组外。

2.在linux中每个文件有所有者、所在组、其他组的概念。

文件:
一般为文件的创建者,谁创建了这个文件,就自然的成为这个文件的所有者。

1.所有者,2.所在组,3.其他组

查看文件的所有者

ls -ahl: 查看所有者
       实例:创建一个组police,
         -----root用户下
         groupadd police
         useradd -g police root

         ------root用户  创建zj.txt
         touch zj.txt
         ls -ahl查看所有者
 -rw-r--r--   1 root(这里就是zj.txt文件的所有者:root) root    0 5月  17 13:27 zj.txt

useradd命令:创建用户

useradd[选项] 登录名
     -u, --uid UID:指定UID;

      cat /etc/passwd |grep 用户名 查询信息

     -g, --gid GROUP:指定基本ID,此组得事先存在;
     -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个人组之间用逗号分割;
     -c, --comment COMMENT:指明注释信息;
     -d, --home-dir HOME_DIR:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境变量配置文件;
     -s, --shellSHELL:指定用户的默认shell,可用的所有shell列表储存在/etc/shells文件中;
     -r, --system:创建一个系统账户
     ** 注意:创建用户时的诸多默认设定配置文件为/etc/login.defs **

      usermod -D :显示创建用户的默认配置
      usermod -D 选项:修改默认选项的值
              修改的结果保存于/etc/default/useradd文件中

usermod命令: 修改用户属性

     -u, --uid UID:修改用户的ID为此处指定的新UID;
     -g, --gid GROUP:修改用户所属的基本组;
     -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组,原来的附加组会被覆盖;
     -c, --comment COMMENT:修改注释信息;
     -d, --home-dir HOME_DIR:修改用户的家目录,用户原有的文件不会被转移至新的位置
     -m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
     -s, --shellSHELL:修改用户默认shell,
     -r, --system:创建一个系统账户

     -L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”
     -U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”。

usermod -g 组名 用户名:改变该用户所在的组
usermod -d 目录名 用户名 :改变该用户登录的初始目录

     例:创建一个bandit,将ml这个用户从原来所在的police组,修改到bandit组。
           groupadd bandit
           usermod -g bandit ml
           uid=4005(ml) gid=5004(bandit) 组=5004(bandit)

userdel命令:删除用户

     userdel[选项] 登录
     -r, --remove 删除用户时一并删除其家目录;

passwd命令:

     passwd:修改用户自己的密码
     passwd USERNAME:修改指定用户的密码,但仅root有此权限;

        -l, -u:锁定和解锁用户
        -d:“清除用户密码串
        -e DATE:过期期限,日期
        -i DATE:非活动期限
        -n DATE:密码的最短使用期限
        -x DATE:密码的最长使用期限;
        -w DATE:警告期限

     --stdin:
         enho “passwd(密码) | passswd --stdin USERNAME(用户名)

gpasswd命令:

组密码文件:/etc/group

   gpasswd [选项] group
       -a USERNAME:向组中添加用户
       -d USERNAME:从组中移除用户
       
   newgrp [-] [group]
       -:会模拟用户重新登录以实现重新初始化其工作环境;

chage命令:更改用户密码过期信息

   chage [选项] 登录名

        -d, --lastday        最近日期        将最近一次密码设置时间设为“最近日期”
        -E, --expiredate     过期日期     将帐户过期时间设为“过期日期”
        -h, --help                       显示此帮助信息并推出
        -I, --inactive INACITVE          过期 INACTIVE 天数后,设定密码为失效状态
        -l, --list           显示帐户年龄信息
        -m, --mindays        最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
        -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
        -R, --root CHROOT_DIR         chroot 到的目录
        -W, --warndays 警告天数       将过期警告天数设为“警告天数”`

  #cat /etc/shadow    //
  test:!!:18077:5:8:8:3:18012:
  第一个字段为:用户名;
  第二个字段为:加密的密码 
  第三个字段为:密码最后一次修改的时间       (chage -d)
  第四个字段为:密码最小修改间隔时间         (chage -m)
  第五个字段为:密码的有效期                (chage -M)
  第六个字段为:密码需要变更前的警告天数       (chage -W)
  第七个字段为:密码过期后的宽限天数           (chage -I)
  第八个字段为:账号失效时间                 (chage -E)
  第九个字段为:保留

id命令:显示真实和有效的 UID 和 GID

 id [OPTION]... [USERNAME] 
     -g或--group  显示用户的基本ID。
     -G或--groups  显示用户所属的所有组的ID
     -n或--name  显示用户,所属群组或附加群组的名称。而非ID
     -r或--real  显示实际ID。
     -u或--user  显示用户有效ID。
     -help  显示帮助。
     -version  显示版本信息

su命令:switch user

    登录式切换:会通过读取目标用户的配置文件来重新初始化
         su - USERNAME
         su -l USERNAME
    非登录式切换:不会读取目标用户的配置文件进行初始化
         su USERNAME
 注意:管理员可无密码切换至其他任何用户
      -c, --commmand=COMMAND:仅以指定用户的身份运行此处指定的命令:

 其他几个命令:chsh,chfn,finger,whoami,pwck,

回顾grpckgroupadd,groupmod,groupdel,useradd,usermod,userdel,id,su,passwd,gpasswd,chage,chsh,chfn,finger,whoami,pwck,grpck

权限管理

进程安全上下文:
      进程对文件的访问权限应用模型:
          进程的属主(进程的发起者)与文件的属主是否相同,如果相同,则应用属主权限
          否则,则检查进程的属主是否属于文件的属组:如果是,则应用属组权限
          否则,就只能应用other的权限
权限
    r:readable,读
    w,writeable,写
    x,excuteable,执行

    文件:
        r:可获取文件的数据
        w,可修改文件的数据
        x,可将此文件运行为进程

    目录:
        r:可使用ls命令获取其下的所有文件列表
        w:可修改此目录下的文件列表:即创建或删除文件
        x:可cd至此目录中,且可使用ls -l来获取所有

    mode:rwxrwxrwx
    ownership:user,group
权限组合机制:
    --- 000 0
    --x 001 1
    -w- 010 2
    -wx 011 3
    r-- 100 4
    r-x 101 5
    rw- 110 6
    rwx 111 7
规则 
r=4   #二进制 100
w=2   #二进制 010
x=1	  #二进制 001
rwx=4+2+1=7 

    练习:rw-rw-r--, rwxrwxr-x, rwxr-x---, rw------, rwxr-xr-x,
           664  640  600  775  750  755
      -rw------- (600) – 只有属主有读写权限。
      -rw-r–r-- (644) – 只有属主有读写权限;而属组用户和其他用户只有读权限。
      -rwx------ (700) – 只有属主有读、写、执行权限。
      -rwxr-xr-x (755) – 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
      -rwx–x–x (711) – 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
      -rw-rw-rw- (666) – 所有用户都有文件读、写权限。这种做法不可取。
      -rwxrwxrwx (777) – 所有用户都有读、写、执行权限。更不可取的做法。

  例:-  rw-  r--  r--  1 tom  root  0  Jun 20 00:02  zj.txt
      1  2    3    4   5  6    7    8       9          10
1  文件的类型
[-:普通文件]
[d:目录]
[l:软链接]
[c:字符设备(键盘,鼠标)]
[b:快文件,硬盘]

2  表示文件/目录所有者权限
3   文件/目录所在组的用户的权限
4   文件/目录其它组的用户的权限
        -----[r:可读]
        -----[w:可写]
        -----[x:]
        -----[-:没有权限]
5  如果是文件,表示硬链接的数
   如果是目录,表示目录的子目录的个数

6  文件/目录所在用户
7  文件/用户所在组
8  文件的大小,单位:字节,,,如果是目录,显示4096
9  文件/目录最后的修改时间
10 文件/目录名

权限管理命令:

chmod [options]...mode file...
chmod [options]... OCTAL -MODE FILE...
chmod [options]... --reference=RFILE FILE...

 三类用户:
        u:属主
        g:属组
        o:其他
        a:所有

 (1)chmod [options]...mode file...
        MODE表示法:
             赋权表示法:直接操作一类用户的所有权限为rwx
                  u=
                  g=
                  o=
                  a=

             授权表示法:直接操作一类用户的一个权限位r,w,x;
                  u+ ,u-
                  g+ ,g-
                  o+ ,o-
                  a+ ,a-

 (2)chmod [options]... OCTAL -MODE FILE...(00:30:26)(参考性修改 )
 (3)chmod [options]... --reference = RFILE FILE...
 
 [选项]
       -R ,----reference:递归修改

  注意:注意:用户仅能修改属主为自己的那些文件权限;

chmod u=rwx,g=rx,o=x 文件目录名:表示给所有者读、写、执行权限 ,给所有组读和执行权限,给其他人执行权限
chmod o+w 文件目录名:表示给其他人添加写的权限
chmod a-x 文件目录名:表示给所有人去除执行的权限

例
 1、给abc文件的所有者读写执行的权限,给所有组读执行权限,给其他组读执行权限
         chmod u=rwx,g=rx,o=rx abc
 2、给abc文件的所有者除去执行的权限,增加所有组写的权限
         chmod u-x,g+w abc
 3、给abc文件的所有用户添加读的权限
        chmod a+r abc

从属关系管理命令: chown,chgrp##

chown命令: - 修改文件所有者和组别

          chown [options] user [:group] file...
          chown [options] --reference=RFILE FILE...
          
          选项:
              -R :递归修改 
 案例:使用root创建一个文件zj.txt,然后将其修改成zzl
   ------使用root用户  创建zj.txt
   touch /home/zj.txt
   查看所有者  zj.txt是属于root的
   ls -ahl
       未修改:-rw-r--r--   1 root root    0 5月  17 13:27 zj.txt
       修改后:-rw-r--r--   1 zzl  root    0 5月  17 13:37 zj.txt
注意:文件所有者所在的组,不一定是文件所在组。

例
 1、请将/home/abc.txt文件的所有者修改成tom
       chown tom abc.txt
 2、请将/home/kkk目录下所有的文件和目录的所有者都修改成tom
       chown -R tom kkk/

chgrp命令: chgrp - 改变文件的组所有权

           chgrp [OPTION] GROUP FILE...
           chgrp [OPTION]... --REFERENCE = RFILE FILE...
  例:使用root用户创建文件orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到police组。
                  touch /home/zj.txt
                  ls -ahl
                  chgrp police /home/zj.txt
                  ls -ahl
                 示例:
                    未修改:-rw-r--r--   1 zzl     root         0 5月  17 15:47 zj.txt

                    修改后:-rw-r--r--   1 zzl     police       0 5月  17 13:37 zj.txt

        注意:仅管理员可修改文件属主和属组:

 思考:用户对某个目录有写权限,但对此目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?
 模拟:

umask:文件的权限反向掩码,遮罩码:

       文件:
           666-umask
       目录:
           777-umask

 注意:之所以文件用666去减去,表示文件默认认为不能拥有执行权限:如果减得的结果中有执行权限,则需要将其加1
          umask:023
          666-023=644
          777-023=754

 umsak命令:
          umask:查看当前umaske
          umask MASK: 设置umask

 注意:此类设定仅对当前shell进程有效:

install命令 复制文件并设置属性##

   单源复制:
          install [options] [-T] SOURCE DEST
   多源复制:
          install [options] SOURCE...DIRECTORY
          install [options] [-t,DIRECTORY SOURCE...
    创建目录:
          install [options]... -d DERECTORY...

 常用选项:
        -m,--mode=mode:设定目标文件权限,默认为755
        -o,--owner=owner:设定目标文件属主
        -g,--group=group:设定目标文件属主:

mktemp命令:创建临时文件或临时目录

   mktemp [-q] [-u] template
          常用选项:
                 -d:创建临时目录
    注意:mktemp会将创建临时文件名直接返回,因此,可直接通过命令引用保存起来:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赵的小记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值