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

来源:互联网 发布:mac os系统特点 编辑:程序博客网 时间:2024/06/04 19:39

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 环境变量表示当前用户的主目录/lib64 位系统有 /lib64 文件夹,主要存放动态链接库。类似的目录有 /usr/lib、/usr/local/lib 等/lost+found存放一些系统意外崩溃或及其意外关机时产生的文件碎片/mnt用于存放挂在储存设备的挂载目录,如光驱等/proc存放操作系统运行时的信息,如进程信息、内核信息、网络信息等。此目录的内容存在于内存中,实际不占用磁盘空间,如 /proc/cpuinfo 存放 CPU 的相关信息/rootLinux 超级权限用户 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 类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息,如当前系统已经载入的模块信息等。此目录实际不占硬盘容量/mediaLinux 系统会自动识别一些设备,如 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.dlrwxrwxrwx. 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 pwdpwd 是 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]$ lswang# 使用相对路径(相对于当前目录)[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 ~]$ lstest  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 命令以树状图递归的形式显示各级目录,可以方便地看到目录结构。

    • 简述
    • 安装 tree 命令
    • 命令介绍
    • 命令选项
    • 使用范例

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

    [wang@localhost ~]$ treebash: 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.py4 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└── python4 directories, 1 file# 查看第二级目录和文件[wang@localhost doc]$ tree -L 2.├── c│   └── hello.c├── linux│   └── hello.sh├── php│   └── hello.php├── program└── python    └── hello.py4 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.py4 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└── python4 directories
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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






    阅读全文
    0 0