当前位置:   article > 正文

linux基础学习笔记6_linux设置test1其注释为this is a test user创建用户test2,创建目录/

linux设置test1其注释为this is a test user创建用户test2,创建目录/t2,指定/

1,绝对路径与相对路径

  相对路径对比绝对路径来说更加方便,但是绝对路径的正确度更好

2.目录的相关操作

  .  代表此层目录

  ..  代表上一层目录

  -  代表前一个工作目录

  1. [root@zjwLinux ~]# cd /home/zjw/
  2. [root@zjwLinux zjw]# cd -
  3. /root
  4. [root@zjwLinux ~]# cd -
  5. /home/zjw

合理使用 - 可在工作目录间快速切换

  ~  代表目前使用者身份所在的家目录

  ~用户名  代表 用户名 这个使用者的家目录

  根目录 / 的 . 与 .. 是同一个目录

  1. 1 root@zjw-Lenovo-Legion-Y7000P-2020H:/# ls -al
  2. 2 总用量 84
  3. 3 drwxr-xr-x 20 root root 4096 611 01:17 .
  4. 4 drwxr-xr-x 20 root root 4096 611 01:17 ..

3.几个常用的处理目录命令

  cd  切换目录

  pwd  显示当前目录

  mkdir  建立一个新目录

  rmdir  删除一个空目录

  一般情况下 pwd -L 与 pwd 一样

  pwd -P 显示真正的物理路径,非连接文件路径

  如

  1. root@zjw-Lenovo-Legion-Y7000P-2020H:~# cd /lib
  2. root@zjw-Lenovo-Legion-Y7000P-2020H:/lib# pwd
  3. /lib
  4. root@zjw-Lenovo-Legion-Y7000P-2020H:/lib# ls -ld /lib
  5. lrwxrwxrwx 1 root root 7 611 01:16 /lib -> usr/lib
  6. root@zjw-Lenovo-Legion-Y7000P-2020H:/lib# pwd -P
  7. /usr/lib

 mkdir -p test1/test2  为递归创建,在 test1 中创建 test2

  mkdir -m 777 test1   在创建 test1 时直接设置权限777

  但是,当递归创建的同时设置权限时,仅有最里面的目录拥有设置的权限,其他外层目录都是默认权限

  1. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# mkdir -pm 777 test1/test2
  2. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -ld test1
  3. drwxr-xr-x 3 root root 4096 624 20:29 test1
  4. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -l ./test1
  5. 总用量 4
  6. drwxrwxrwx 2 root root 4096 624 20:29 test2

  仅仅只有 test2 拥有被设置的权限

  rmdir -p test1/test2  删除空目录test2与空目录test1(rmdir只能删除空目录)

4.文件与目录的查看:ls

  ls -F  显示出的*为可执行文件;/为目录;=为socket文件;|为FIFO文件

具体查看man手册

5.复制、删除、移动  cp、rm、mv

  cp -a  将所有属性都复制

  cp -d  若源文件是链接文件,则复制链接文件属性而非文件本身

  1. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -l /bin
  2. lrwxrwxrwx 1 root root 7 611 01:16 /bin -> usr/bin
  3. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -ld /usr/bin
  4. drwxr-xr-x 2 root root 36864 624 14:32 /usr/bin
  5. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# cp -d /bin ./zjwbin
  6. root@zjw-Lenovo-Legion-Y7000P-2020H:/tmp# ls -ld zjwbin
  7. lrwxrwxrwx 1 root root 7 625 20:00 zjwbin -> usr/bin    //会发现 zjwbin 文件属性与链接文件 /bin 的属性一模一样,而非 /usr/bin;但是若直接 cp 复制,则会将 /usr/bin 属性复制而非链接文件 /bin

 cp -r  递归复制

  cp -p  连同文件属性一起复制而非使用默认属性

  cp -f  若目标文件已存在且无法开启,则删除后再复制一次

  cp -i  若目标文件已存在,则在覆盖时会询问

  cp -l  硬连接

  cp -s  复制成为符号链接文件

  cp -u  目标文件比源文件旧才更新,或者目标文件不存在才复制

  默认情况下,目标文件的拥有者通常会是操作者本身而非源文件拥有者

  在复制时需要知道:是否需要完整的保留源文件信息;源文件是否为符号链接文件;源文件是否为特殊的文件;源文件是否为目录

  rm -f  强制,忽略不存在的文件,不会出现警告信息

  rm -i  在删除时会询问

  rm -r  递归删除

  mv -f  强制,若目标文件已存在,不会询问而直接覆盖

  mv -i  若目标文件已存在,则会询问

  mv -u  若目标文件比源文件旧,则更新

6.文件名与目录名的获取

  basename 获取文件名

  dirname 获取目录名

7.文件内容查看

  cat  从第一行开始显示文件内容  -a 相当于 -vET

                    -b 列出行号,空白行不标记

                    -E 将换行符 $ 显示

                    -n 列出行号,空白行也包含

                    -T 将 tab 键以^I显示出来

                    -v 列出一些看不出来的特殊字符

  tac  从最后一行开始显示

  nl显示的时候同时输出行号  -b 指定行号指定的方式  -b a 类似于 cat -n

                         -b t (默认)若有空行,空行不列出行号

              -n 列出行号的表示方法  -n ln 行号在屏幕的最左方显示

                          -n rn 行号在栏位的最右方显示,不加0

                          -n rz 行号在栏位的最右方显示,加0

              -w 行号栏位的占用字符数,即行号显示的位数

  more  一页一页显示文件内容

  less  与 more 类似,但是可以往前翻页(测试了一下,more 也可以向前翻页,区别是 less 可以使用 g 或 Home、G或End 到达第一行与最后一行)

  head 只看前面几行 -n number 显示 number 行,number 为负时,除了最后number行不显示,其余行都显示

  tail 只看后面几行 -n number 显示最后number行  +number 显示number行以后的数据  (-number好像没有什么意义)

          -f 持续刷新后面所接文件中的内容

  od -t 后面可以接各种类型的输出 a 默认字符输出(以二进制方式读取文件内容)

                        c ASCLL字符输出

                  d[size] 十进制输出,每个整数占用 size字节

                 f[size] 浮点数输出

                 o[size] 八进制输出

                          x[size] 十六进制输出

8.文件时间的认识及创建新文件

  修改时间(mtime):当文件的内容数据被修改时,就会更新时间

                                                ls 显示出来的时间默认为 mtime

  状态时间(ctime):当文件的状态改变时,如权限与属性,就会更新时间(通过操作可以发现只要更改了文件的任何一个属性如任何一个时间,ctime都会改变)

  读取时间(atime):当文件的内容数据被读取时,就会更新时间

  touch  创建新文件  -a 仅自定义atime

             -c 仅修改文件时间,若文件不存在则不创建新文件

             -d 后面可以接欲自定义的日期而不用目前的日期,等于 --date=

             -m 仅修改mtime

             -t 与 -d类似,日期格式为 YYYYDDMMhhmm

9.文件目录的默认权限与隐藏权限

  umask 查看默认权限 默认显示为所有权限需要减去的权限,如显示022则g-w o-w 

                        -S 以u= ,g=, o= 显示

  1. [zjw@zjwLinux ~]$ umask -S
  2. u=rwx,g=rx,o=rx

  建立文件的所有权限为-rw-rw-rw-  建立目录的所有权限为drwxrwxrwx

  文件的隐藏属性

  chattr  + 增加某一特殊参数,其他参数不动

      - 删除某一特殊参数,其他参数不动

      = 直接设置,且仅有设置的参数

      A 设置此参数后,存取次文件时,存取时间 atime 不会改变

      S 一般文件都是非同步写入磁盘,设置此参数后,修改会同步写入磁盘

      a 设置后,文件只能增加数据,不能修改或删除数据

      c 设置后,会自动将文件压缩,读取时自动解压缩,存储时先压缩再存储

      d 当dump程序被执行时,此文件不会被dump备份

      i 此文件不能被删除、改名、设置链接也无法写入或新增数据,即使是root也无法

      s 若文件被删除,则会完全被硬盘删除,无法恢复

      u 与s相反,可恢复

  lasttr  -a 显示隐藏文件

      -d 若接目录,则列出目录本身

      -R 递归显示

10.文件的特殊权限(先记着,了解一下,后面再会来看)

 4 SUID  Set UID,s出现在文件拥有者的x权限上,仅对二进制程序有效,无法用在目录及shell脚本上;执行者对于该程序具有x的可执行权限;仅在执行该程序中获得该程序拥有者的权限

[root@zjwLinux /]# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 51464 Jan 27 21:47 /usr/bin/passwd

passwd的拥有者为 root ,当用另外一个用户zjw执行此文件时,如用vim进入,如果没有s,则zjw无法修改内容,但是有了s后,zjw有了文件拥有者root的权限,即有了rwx

 2 SGID  Set GID,s出现在用户组的x权限上,对二进制程序有用;程序执行者须具备x权限且在执行过程中将会获得用户组权限

     设置在目录上后,用户对于此目录有r与x权限,即能够进入此目录且拥有用户组权限

 1 SBIT  Sticky Bit,只对目录有效如 /tmp ,每个文件拥有者只能更改自己的文件,无法删除其他人的文件

  SUID仅用在文件上,SBIT仅用在目录上    S与T代表空

  利用 file 查看文件类型

11.命令与文件的查找

  which  根据 PATH 环境变量所规范的路径查找执行文件的文件名

  type   通过PATH变量查找,并且type 会显示出原名而非别名

  

  由于find速度慢,影响硬盘性能,所以先用 whereis或 locate,真找不到采用find

  whereis  -l 列出whereis 查询的几个主要目录

        -b 只查找二进制文件

        -m 只搜索手册和信息

        -s 之查找源文件

        -u 查找不在上述三个项目中的其他文件

  locate(linux发行版ubuntu22.04LTS不自带此命令)  

     -i 忽略大小写

     -c 不输出文件名,仅计算找到的文件数量

     -l number 仅输出 number 行

     -S 输出locate 所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等

     -r 后面可接正则表达式的显示方式

    由于 locate 根据数据库来搜索,所以在数据库更新前无法查找新建立起来的文件,利用

   updatedb 来手动更新数据库

  find [PATH](mtime为例)

      -mtime n  n天之前(一天之内)被修改过的文件,如今天是28号,n为5,则查找的是22-23这24小时内变化的文件

      -mtime +n  列出在n天之前(不包含本身)被修改过内容的文件, n为5,则查找的是22号及往前变化的文件

      -mtime -n  列出在n天之内被修改过的文件, n为5,则查找的是23号直到今天的变化的文件

      -newer file  列出比file更新的文件

      -uid n  记录在/etc/passwd内的使用者账号UID

      -gid n  记录在/etc/group内的用户组的GID

      -user name

      -group name

      -nouser  查找文件的拥有者不在/etc/passwd中的文件

      -nogroup  文件用户组不在/etc/group中的文件

      -name filename  利用 * ?‘ “ 等符号查找包含 filename 的文件

      -size [+-]Size  查找比Size还要+大  -小 的文件 Size规格为 c:Bytes,k:1024Bytes

      -type TYPE  查找文件类型为TYPE(f:正规文件,b,c:设备文件,d:目录文件,l:链接文件,s:socket,p:FIFO文件

      -perm mode  查找文件权限为 mode 的文件

      -perm -mode  查找文件权限包括mode 的文件

      -perm /mode  查找任意包含 mode 子权限(瞎邹的,知道意思就行......)的文件

      -exec command  exec再接其他command,不支持别名

              如 find /usr/bin -perm /7000 -exec ls -l {} \;  -exec 到 \; 为find的开始与结束,\; 为转义 ;

      -print  将结果打印到屏幕,默认执行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/167473
推荐阅读
相关标签
  

闽ICP备14008679号