Linux(基础)标准教程(1)-常用目录处理命令

Linux 目录结构

Linux 的目录结构类似于树形结构,如下所示:

这里写图片描述

要认识 Linux 的目录结构,首先要认识目录结构最顶层的“/”,任何目录、文件和设备等都在此目录下。Linux 的文路径与 Windows 不同,Linux 的文件路径类似于“/home/wang”,Linux 没有 Windows中“盘符”的概念。

常见的主要目录:

目录 说明
/ 根目录。文件的最顶端,/etc、/bin、/dev、/lib、/sbin 应该和根目录放置在一个分区中,而类似/usr/local 可以单独位于另一个分区
/bin 存放系统所需要的重要命令,比如文件或目录操作的命令 ls、cp、mkdir 等。另外 /usr/bin 下也存放了一些系统命令,这些命令对应的文件都是可执行的,普通用户可以使用大部分命令
/boot 存放 Linux 启动时内核及引导系统程序所需要的核心文件,内核文件和 grub 系统引导管理器都位于此目录
/dev 存放 Linux 系统下的设备文件,如光驱、磁盘等。访问该目录下某个文件相当于访问某个硬件设备,常用的是挂载光驱
/etc 一般存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,如 /etc/fstab 存放系统分区信息
/home 系统默认的用户主目录。如果添加用户时不指定用户的主目录,默认在 /home 下创建与用户名同名的文件夹。代码中可以用 HOME 环境变量表示当前用户的主目录
/lib 64 位系统有 /lib64 文件夹,主要存放动态链接库。类似的目录有 /usr/lib、/usr/local/lib 等
/lost+found 存放一些系统意外崩溃或及其意外关机时产生的文件碎片
/mnt 用于存放挂在储存设备的挂载目录,如光驱等
/proc 存放操作系统运行时的信息,如进程信息、内核信息、网络信息等。此目录的内容存在于内存中,实际不占用磁盘空间,如 /proc/cpuinfo 存放 CPU 的相关信息
/root Linux 超级权限用户 root 的主目录
/sbin 存放一些系统管理的命令,一般只能由超级权限用户 root 执行。大多数命令普通用户一般无权执行,类似 /sbin/ifconfig,普通用户使用绝对路径也可执行,用于查看当前系统的网络配置。类似的目录有 /usr/sbin、/usr/local/sbin
/tmp 临时文件目录,任何人都可以访问。系统软件或用户运行程序(如 MySQL)时产生的临时文件存放到这里。此目录数据需要定时清除。重要数据不可放置在此目录下,此目录空间不宜过小
/usr 应用程序存放目录,如命令、帮助文件等。安装 Linux 软件包时默认安装到 /usr/local 目录下。比如 /usr/share/fonts 存放系统字体,/usr/share/bin 存放帮助文档,/usr/include 存放软件的头文件等。/usr/local 目录建议单独分区并设置较大的磁盘空间
/var 此目录的内容经常是变动的,如 /var/log 用于存放系统日志、/var/lib 用于存放系统库文件等
/sys 目录与 /proc 类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息,如当前系统已经载入的模块信息等。此目录实际不占硬盘容量
/media Linux 系统会自动识别一些设备,如 U 盘、光驱等,当识别后,Linux 会把识别的设备挂载到这个目录下
/srv 该目录存放一些服务启动之后需要提取的数据

注意:各个发行版由不同的公司开发,所以各个发行版之间的目录可能会有所不同。Linux 各个发行版本之间目录的差距比较小,不同的地方主要是提供的图形界面及操作习惯等。

Linux 中的命令很多,但一般在使用的时候会遵守一定的格式。为了便于使用命令,我们对命令格式进行详细说明。

命令的一般格式:

command [options] [arguments]

  • command 
    命令:即命令名称。

  • options 
    命令选项:用于调整命令的功能。命令不同,选项的个数和内容会有所不同;要实现的命令功能不同,选项的个数和内容也会有所不同。

  • arguments 
    命令参数:是命令处理的对象,通常情况可以是文件名、目录、或用户名。

  • 命令、命令选项、命令参数之间用空格隔开。例如:
[wang@localhost ~]$ ls -a /
   
   
  • 1
  • 1
  • 当有多个命令选项时,可以进行合并。例如,可以将 ls -a / 和 ls -l / 合并为:
[wang@localhost ~]$ ls -al /
   
   
  • 1
  • 1
  • 短格式与长格式

也被称作简化选项与完整选项。短格式的命令选项是单个英文字母,选项前用 - 符号,字母可以是大/小写;长格式的命令选项使用英文单词表示,选项前用 -- 符号。例如:

[wang@localhost ~]$ ls -a /
[wang@localhost ~]$ ls --all /
   
   

    (1)pwd 命令

    目录是 Linux 的基本组成部分,目录管理包括目录的复制、删除、修改等操操作。

    在 linux 层次结构中,想要知道当前所处的目录,可以用 pwd 命令,该命令输出当前工作目录的完整名称。环境变量 OLDPWD 表示前一次的工作目录,环境变量 PWD 表示当前的工作目录。

    • 命令名称 
      pwd

    • 命令全称 
      Print Working Directory

    • 基本语法 
      pwd [选项]…

    • 功能描述 
      打印当前工作目录的完整文件名

    pwd 命令比较简单,默认情况下,不需要带任何参数,执行该命令显示当前路径。如果当前路径有软连接,显示链接路径而非实际路径,使用选项 P 可以显示当前路径的实际路径。

    选项 说明
    -L(--logical 逻辑路径) 使用环境变量中的 PWD,即使其中包含符号链接
    -P(--physical 物理路径) 避免所有符号链接
    --help 显示此帮助信息并退出
    --version 显示版本信息并退出

    1.查看默认工作目录的完整路径

    [wang@localhost ~]$ pwd
    /home/wang
       
       
    • 1
    • 2
    • 1
    • 2

    2.查看指定文件夹

    [wang@localhost ~]$ cd /usr/bin/
    [wang@localhost bin]$ pwd
    /usr/bin
       
       
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    3.如果目录是个符号链接,pwd 显示链接(link)路径;pwd -P 显示实际路径。

    [wang@localhost ~]$ ls -l /etc/init.d
    lrwxrwxrwx. 1 root root 11 830 12:09 /etc/init.d -> rc.d/init.d
    [wang@localhost ~]$ cd /etc/init.d/
    [wang@localhost init.d]$ pwd
    /etc/init.d
    [wang@localhost init.d]$ pwd -P
    /etc/rc.d/init.d
    [wang@localhost init.d]$ pwd -L
    /etc/init.d
       
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4.查看上一次的工作目录与当前的工作目录

    [wang@localhost ~]$ pwd
    /home/wang
    [wang@localhost ~]$ echo $OLDPWD
    
    [wang@localhost ~]$ echo $PWD
    /home/wang
    [wang@localhost ~]$ cd /etc/init.d
    [wang@localhost init.d]$ pwd
    /etc/init.d
    [wang@localhost init.d]$ echo $OLDPWD
    /home/wang
    [wang@localhost init.d]$ echo $PWD
    /etc/init.d
       
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    5.当前目录被删除后,pwd 命令仍可显示该目录

    [wang@localhost ~]$ mkdir test
    [wang@localhost ~]$ cd test/
    [wang@localhost test]$ pwd
    /home/wang/test
    [wang@localhost test]$ rm -rf ../test/
    [wang@localhost test]$ pwd
    /home/wang/test
    [wang@localhost test]$ /usr/bin/pwd
    /usr/bin/pwd: 在匹配的inode ".." 上找不到目录入口
       
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    6.查看所有含有可执行 pwd 的路径

    [wang@localhost ~]$ type -a pwd
    pwd 是 shell 内嵌
    pwd 是 /usr/bin/pwd
       
       
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    7.查看帮助信息

    [wang@localhost ~]$ /usr/bin/pwd --help
    用法:/usr/bin/pwd [选项]...
    输出当前工作目录的完整名称。
    
      -L, --logical     使用环境变量中的PWD,即使其中包含符号链接
      -P, --physical    避免所有符号链接
          --help        显示此帮助信息并退出
          --version     显示版本信息并退出
    
    注意:您的shell 内含自己的pwd 程序版本,它会覆盖这里所提及的相应
    版本。请查阅您的shell 文档获知它所支持的选项。
    
    GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
    请向<http://translationproject.org/team/zh_CN.html> 报告pwd 的翻译错误
    要获取完整文档,请运行:info coreutils 'pwd invocation'
       
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (2)cd 命令

    cd 命令用于切换工作目录为指定的目录,参数可以为相对路径或者绝对路径。如果不带任何参数,则切换至用户的主目录,cd 为最常用的命令,与 DOS 下的 cd 命令类似。

    • 命令名称 
      cd

    • 命令全称 
      Change Directory

    • 基本语法 
      cd [dir]

    • 功能描述 
      切换当前目录至 dir

    1.使用绝对路径(以 / 开始),切换至指定目录

    [wang@localhost ~]$ pwd
    /home/wang
    [wang@localhost ~]$ cd /
    [wang@localhost /]$ pwd
    /
    [wang@localhost /]$ cd /home/
    [wang@localhost home]$ pwd
    /home
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.使用相对路径,切换至指定目录

    [wang@localhost home]$ pwd
    /home
    [wang@localhost home]$ ls
    wang
    # 使用相对路径(相对于当前目录)
    [wang@localhost home]$ cd wang/
    [wang@localhost ~]$ pwd
    /home/wang
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.切换至当前目录的上一级目录(用 .. 表示)

    [wang@localhost ~]$ pwd
    /home/wang
    [wang@localhost ~]$ cd ../
    [wang@localhost home]$ pwd
    /home
    [wang@localhost home]$ cd ../
    [wang@localhost /]$ pwd
    /
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    后退至上上一级目录(用 ../../ 表示)

    [wang@localhost ~]$ pwd
    /home/wang
    [wang@localhost ~]$ cd ../../
    [wang@localhost /]$ pwd
    /
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    从 /home/wang/test 目录切换至 /home/wang/title

    [wang@localhost ~]$ cd test/
    [wang@localhost test]$ pwd
    /home/wang/test
    # ../ 为上级目录,即:/home/wang
    [wang@localhost test]$ cd ../title/
    [wang@localhost title]$ pwd
    /home/wang/title
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4.切换工作目录到当前工作目录(木有什么意义!!!主要介绍 . 表示当前目录)

    [wang@localhost ~]$ pwd
    /home/wang
    [wang@localhost ~]$ cd ./
    [wang@localhost ~]$ pwd
    /home/wang
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    5.使用 cd 或 cd ~ 进入当前用户主目录

    [wang@localhost /]$ pwd
    /
    [wang@localhost /]$ cd
    [wang@localhost ~]$ pwd
    /home/wang
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    6.回到上次的目录(用 - 表示)

    [wang@localhost /]$ pwd
    /
    [wang@localhost /]$ cd -
    /home/wang
    [wang@localhost ~]$ pwd
    /home/wang
    [wang@localhost ~]$ cd -
    /
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    7.切换至带有空格的目录

    [wang@localhost ~]$ cd test\ space/
    [wang@localhost test space]$ pwd
    /home/wang/test space
        
        
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    或者(用单引号 ' 和双引号 " 均可)

    [wang@localhost ~]$ cd 'test space'/
    [wang@localhost test space]$ pwd
    /home/wang/test space
        
        
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    8.从当前目录切换到以 t 开头的目录(忘了目录的名字,但又不想用 TAB 键)

    [wang@localhost ~]$ ls
    test  title
    [wang@localhost ~]$ cd t*
    [wang@localhost test]$ pwd
    /home/wang/test
        
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:如果只有一个目录以 t 开头,将会移动到该目录;如果有很多目录以 t 开头,将会移动到第一个以 t 开头的目录(按照字典里字母的顺序)。

    (3)tree 命令

    使用 tree 命令以树状图递归的形式显示各级目录,可以方便地看到目录结构。

    大部分 Linux 中默认没有安装 tree 命令,

    [wang@localhost ~]$ tree
    bash: tree: 未找到命令...
         
         
    • 1
    • 2
    • 1
    • 2

    切换至 root,进行安装:

    [root@localhost ~]# yum install tree
         
         
    • 1
    • 1
    • 命令名称 
      tree

    • 基本语法 
      tree [-acdfghilnpqrstuvxACDFQNSUX] [-H baseHREF] [-T title ] [-L level [-R]] 
      [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes] 
      [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset] 
      [--filelimit[=]#] [--si] [--timefmt[=]<f>] [<directory list>]

    • 功能描述 
      以树状图递归的形式显示各级目录

    选项 说明
    -a 显示所有文件和目录
    -C 为文件和目录清单加上色彩,便于区分各种类型
    -d 显示目录名称而非内容
    -D 列出文件或目录的更改时间
    -f 在每个文件或目录之前,显示完整的相对路径名称
    -F 在执行文件、目录、Socket、符号连接、管道名称前,分别加上“*”、“/”、“=”、“@”、“|”符号
    -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
    -i 不以阶梯状列出文件或目录名称
    -I 不显示符合范本样式的文件或目录名称
    -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
    -n 不为文件和目录清单加上色彩
    -s 列出文件或目录大小
    -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
    -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外


    1.不带选项运行 tree

    [wang@localhost doc]$ tree
    .     #当前目录结构
    ├── c
    │   └── hello.c
    ├── linux
    │   └── hello.sh
    ├── php
    │   └── hello.php
    ├── program
    └── python
        └── hello.py
    
    4 directories, 5 files
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.查看不同级别子目录

    使用 tree -L n 命令,n 为数字,表示查看当前第 n 级的目录和文件。

    # 查看第一级目录和文件
    [wang@localhost doc]$ tree -L 1
    .
    ├── c
    ├── linux
    ├── php
    ├── program
    └── python
    
    4 directories, 1 file
    # 查看第二级目录和文件
    [wang@localhost doc]$ tree -L 2
    .
    ├── c
    │   └── hello.c
    ├── linux
    │   └── hello.sh
    ├── php
    │   └── hello.php
    ├── program
    └── python
        └── hello.py
    
    4 directories, 5 files
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    3.显示完整的相对路径名称

    [wang@localhost doc]$ tree -f
    .
    ├── ./c
    │   └── ./c/hello.c
    ├── ./linux
    │   └── ./linux/hello.sh
    ├── ./php
    │   └── ./php/hello.php
    ├── ./program
    └── ./python
        └── ./python/hello.py
    
    4 directories, 5 files
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.只显示目录

    [wang@localhost doc]$ tree -d
    .
    ├── c
    ├── linux
    ├── php
    └── python
    
    4 directories
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5.为文件和目录清单加上色彩,便于区分各种类型。






    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值