Linux :文件与目录管理

参考:https://www.runoob.com/linux/linux-file-content-manage.html

使用Linux的注意事项

  Linux严格区分大小类型

  Linux中所有文件内容以文件形式保存,包括硬件

    硬盘文件是/dev/sd[a-p]

    光盘文件是/dev/sr0等 

    

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

    Linux :文件与目录管理

 可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。

 

  Linux不靠扩展名区分文件

  Linux所有存储设备都必须挂载之后用户才能使用,包括硬盘、U盘和光盘

Linux各目录作用

Linux :文件与目录管理

 Linux :文件与目录管理

Linux :文件与目录管理

 ctrl+c终止操作

ctrl+l 清屏

 1、命令格式与目录处理命令ls

    命令个格式   命令  [-选项]  [参数]

        例:ls  -la  /etc

   说明: 1)个别命令使用不遵循此格式

       2)当有多个选项时  可以写在一起

      3) 简化选项与完整选项

        -a   等于  --all(显示所有文件 包括隐藏文件  在Linux中以 . 开头的文件就是隐藏文件)

    ls 

    功能:显示目录文件 

    位置:/bin/ls 

   ls  -l 显示文件的详细信息  l—long

   ls  -d 查看目录的详细

   ls  -h 以K M G 单位显示文件的大小

   ls  -i  查看文件i结点

  Linux :文件与目录管理

 ifconfig  查看当前的网卡信息

ifconfig  eth0 192.168.118.156  设置虚拟机的ip地址 

注意:此方式设置的ip地址在虚拟机关机后会失效

df  查看分区 类似Windows中打开我的电脑

2、目录处理命令 mkdir (make  directories)

  功能: 创建新目录  如:mkdir  /tmp/Mp3

    如果在中间加入-p  可以实现递归创建目录  如mkdir  -p  /tmp/music/Mp3

    

  命令所在路径 : /bin/mkdir

  执行权限: 所有用户

  

  cd命令(change directory)

    所在路径:shell 内置命令

    执行权限:所有用户

    语法 : cd  [目录]

    如: cd /tmp/music/mp3  切换到指定目录

      cd  ..  回到上一级目录

    pwd 命令(print working  directory)

    功能: 显示当前目录

    所在路径: /bin/pwd

    执行权限: 所有用户

    语法 : pwd

     rmdir命令 (reomve empty directories)

    功能: 删除目录

    所在路径: /bin/rmdir

    执行权限:所有用户

    如 : rmdir /tmp/Mp3

    

    cp命令(copy)

    功能:复制文件或目录

    所在路径: /bin/cp

    执行权限: 所有用户

    语法:cp  -rp [源文件或目录]  [目标目录]

         -r  复制目录

         -p 保留文件属性

    如: cp  -r  /tmp/Mp3  /tmp/Mp4  将指定目录/tmp/Mp3复制到/tmp/Mp4下 

         如果想将复制的目录Mp3 在目标目录中重命名 直接在目标目录后加名字即可 如  cp  -r  /tmp/Mp3  /tmp/Mp4/Mp5 

        cp -rp  /tmp/Mp1   /tmp/Mp2   /tmp/music 将Mp1和Mp2目录同时复制到 music目录下 并能够保持目录属性

  

  mv命令(move)    

   功能: 剪切文件 改名

   所在路径:/bin/mv

   执行权限: 所有用户

   语法: mv  [源文件或目录]  [目标目录]

     在当前目录下改名   mv  文件或目录名  新的名字

   rm命令(remove)

    功能: 删除文件

    所在路径: /bin/rm

    执行权限:所有用户

    语法: rm -rf  [文件或目录]

        删除文件 如  rm  /tmp/Mp1/yuan.long

·      -r 删除目录  

      -f 强制删除 (不会提示 直接删除) 如 rm -rf /tmp/music/Mp1

    touch文件处理命令

    功能: 创建空文件

    所在路径:/bin/touch

    执行权限: 所有用户

    语法: touch [文件名]

    如: touch /tmp/music.list

    cat文件处理命令

    功能:显示文件内容

    语法: cat [文件名]

        -n 显示行号  cat  -n  文件名

    路径: /bin/cat

    执行权限: 所有用户

    如: cat  /etc/issue

      cat  -n  /etc/services

    tac 命令

    功能: 反向显示文件内容

    执行权限: 所有用户

    所在路径: /uss/bin/tac

    语法:tac [文件名]

    如: tac /etc/issuc

    

    more 文件处理命令

    所在路径: /bin/more

    执行权限: 所有用户

    功能: 分页显示文件内容

    语法: more [文件名]

        (空格)或f   翻页

          Enter    换行

          q或Q    退出

     如  :  more    /etc/serivces

    less  文件处理命令

    所在路径 :/usr/bin/less

    执行权限: 所有用户

    语法 : less [文件名]

    功能: 分页显示文件内容(可按pageUp向上翻页  向上键 查看上一行) 

        如 less  /etc/service  同样可以使用空格键 和Enter键   但使用less 命令 后可以接着输入 /+关键字 进行搜索   然后按n(next)键继续向下搜索

    

    head  文件处理命令

     所在路径: /usr/bin/head

     执行权限: 所有用户

     语法: head [文件名]

        功能: 显示文件前几行

          -n  指定行数

      如 : head  -n  20  /etc/services  

          head   /etc/services   默认10行

    tail 文件处理命令

    所在路径:/usr/bin/tail

    执行权限:所有用户

    语法:tail [文件名]

    功能: 显示文件后几行

      -n 指定行数

      -f 动态显示文件末尾内容

    如 : tail -n 18 /etc/services

    ln命令(link)

    所在路径  /bin/ln

    执行权限 : 所有用户

    语法 : ln  -s  [源文件]  [目标文件]

         -s  创建软连接

    功能 : 生成连接文件

    如 : ln  -s  /etc/issue   /tmp/issue.soft   创建文件/etc/issue的软连接/tmp/issue.soft  

        ln  /etc/issue   /tmp/issue.hard   创建文件/etc/issue的硬链接/tmp/issue.hard

    

    软连接    以l开头   作用类似于Windows中的快捷方式  软连接的权限是源文件决定的  权限为三个rwx

    硬链接   类似拷贝  可以挺过i节点来区分软连接和硬链接文件   源文件和硬链接文件的i节点是一样的  在Linux中通过i节点来区分不同的文件  源文件和硬链接文件的i节点相同因此他们是引用同一个文件  这也是为什么会同步更新的原因

        特点 : 源文件和硬链接会同步更新  作用就更新是cp  -p +同步

           如果其中一个文件删除或丢失另外文件依然存在

           不能扩分区(软连接可以扩分区)

           不能针对目录使用(软连接可以)

    

更改文件属性

1、chgrp:更改文件属组

语法:

chgrp [-R] 属组名 文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:更改文件属主,也可以同时更改文件属组

语法:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

进入 /root 目录(~)将install.log的拥有者改为bin这个账号:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

将install.log的拥有者与群组改回为root:

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3、chmod:更改文件9个属性

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

 chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

符号类型改变文件权限

还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

  • (1)user
  • (2)group
  • (3)others

那么我们就可以使用 u, g, o 来代表三种身份的权限!

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

chmod u
g
o
a
+(加入)
-(除去)
=(设定)
r
w
x
文件或目录

如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1