Linux基础知识全面入门

zhyjc6于2019-09-17发布 约11365字·约25分钟 本文总阅读量

1. 何为Linux

Linux是由芬兰 Linus Torvalds设计开发的一种用C语言写成的开源的电脑操作系统内核,属于类Unix操作系统。

1.1 内核版本号

Linux内核使用三种不同的版本编号方式,分别对应着三个时期:

1.2 内核组成

  1. 进程管理(process management)
  2. 定时器(timer)
  3. 中断管理(interrupt management)
  4. 内存管理(memory management)
  5. 模块管理(module management)
  6. 虚拟文件系统接口(VFS layer)
  7. 文件系统(file system)
  8. 设备驱动程序(device driver)
  9. 进程间通信(inter-process communication)
  10. 网络管理(network management)
  11. 系统启动(system init)等操作系统功能的实现

Linux把除了它本身(Linux操作系统内核以外的一切事物都看作是在“虚拟文件系统”中的文件了。无论是键盘,鼠标,数据,程序,CPU,内存,网卡……无论是硬件、软件、数据还是内存中的东西,我们都可以在虚拟文件系统中的相应子目录对他们进行访问和操作,操作统一。

而实现这些管理的幕后就是Linux操作系统内核本身:启动Linux系统的时候,首先电脑把操作系统内核加载到内存中,内核本身提供了文件管理,设备管理,内存管理,CPU进程调度管理,网络管理等功能,等内核运行起来之后,就在内存中建立起相应的“虚拟文件系统”,最后就是内核利用它提供的那些功能,来管理虚拟文件系统中的硬件软件等各种资源了。

2. Linux发行版本

芬兰人林纳斯·托瓦兹(Linus Torvalds)开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。

Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。不同发行版之间的技术差异主要在于软件包管理器、软件版本和文件位置。一旦你掌握了这些差异,便可以相对轻易地从一个发行版过渡到另一个发行版。

Linux 的发行版本可以大体分为两类:

  • 商业公司维护的发行版本,以著名的 Red Hat 为代表;
  • 社区组织维护的发行版本,以 Debian 为代表。

发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统。已经有超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。下面是几款常用的 Linux 发行版本:

2.1 Red Hat Linux

Red Hat(红帽公司)创建于 1993 年,是目前世界上资深的 Linux 厂商,也是最获认可的 Linux 品牌。

Red Hat 公司的产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)。

Red Hat 是在我国国内使用人群最多的 Linux 版本,资料丰富,如果你有什么不明白的地方,则容易找到人来请教,而且大多数 Linux 教程是以 Red Hat 为例来讲解的。

2.2 Ubuntu Linux

Ubuntu 基于知名的 Debian Linux 发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的 Linux 发行版本,而且 Ubuntu 的所有发行版本都免费提供。

Ubuntu 的创始人 Mark Shuttleworth 是非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999 年以 5.75 亿美元被收购,由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth 于 2002 年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了 8 天的时光。之后,Mark Shuttleworth 创立了 Ubuntu 社区,2005 年 7 月 1 日建立了 Ubuntu 基金会,并为该基金会投资 1000 万美元。他说,太空的所见正是他创立 Ubuntu 的精神之所在。如今,他最热衷的事情就是到处为自由开源的 Ubuntu 进行宣传演讲。

2.3 SuSE Linux

SuSE Linux 以 Slackware Linux 为基础,原来是德国的 SuSE Linux AG 公司发布的 Linux 版本,1994 年发行了第一版,早期只有商业版本,2004 年被 Novell 公司收购后,成立了 OpenSUSE 社区,推出了自己的社区版本 OpenSUSE。

SuSE Linux 在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了 Red Hat Linux 的很多特质。

SuSE Linux 可以非常方便地实现与 Windows 的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。

2.4 Gentoo Linux

Gentoo 最初由 Daniel Robbins(FreeBSD 的开发者之一)创建,首个稳定版本发布于 2002 年。Gentoo 是所有 Linux 发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。

不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。自从 Gentoo 1.0 面世后,它就像一场风暴,给 Linux 世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入 Gentoo Linux 的怀抱。

有人这样评价 Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性(基于源代码的发行版)。尽管安装时可以选择预先编译好的软件包,但是大部分使用 Gentoo 的用户都选择自己手动编译。这也是为什么 Gentoo 适合比较有 Linux 使用经验的老手使用。

2.5 其它Linux发行版

版本名称 网 址 特 点 软件包管理器
Debian Linux www.debian.org 开放的开发模式,且易于进行软件包升级 apt
Fedora Core www.redhat.com 拥有数量庞人的用户,优秀的社区技术支持. 并且有许多创新 up2date(rpm),yum (rpm)
CentOS www.centos.org CentOS 是一种对 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于 Linux 是开发源代码的操作系统,并不排斥样基于源代码的再分发,CentOS 就是将商业的 Linux 操作系统 RHEL 进行源代码再编译后分发,并在 RHEL 的基础上修正了不少已知的漏洞 rpm
Mandriva www.mandriva.com 操作界面友好,使用图形配置工具,有庞大的社区进行技术支持,支持 NTFS 分区的大小变更 rpm
KNOPPIX www.knoppix.com 可以直接在 CD 上运行,具有优秀的硬件检测和适配能力,可作为系统的急救盘使用 apt

2.6 如何选择

Linux 的发行版本众多,在此不逐一介绍,下面给选择 Linux 发行版本犯愁的朋友一点建议:

  1. 如果你需要的是一个服务器系统,而且已经厌烦了各种 Linux 的配置,只是想要一个比较稳定的服务器系统,那么建议你选择 CentOS 或 RHEL
  2. 如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大价钱购买商业软件,不想自己定制,也不想在系统上浪费太多时间,则可以选择 Ubuntu
  3. 如果你想深入摸索一下 Linux 各个方面的知识,而且还想非常灵活地定制自己的 Linux 系统,那就选择 Gentoo 吧,尽情享受 Gentoo 带来的自由快感
  4. 如果你对系统稳定性要求很高,则可以考虑 FreeBSD
  5. 如果你需要使用数据库高级服务和电子邮件网络应用,则可以选择 SuSE

3. 类Unix家族图谱

4. 进入Linux新世界

4.1 安装Linux

首先要获取Linux镜像文件(.iso)。安装Linux大概有两种方式

  1. 根据官网的安装文档
  2. 网上找对应的Linux版本的安装博客

4.2 Linux的文件系统

/

根目录。包含了几乎所的文件目录。相当于中央系统。进入的最简单方法是:cd /

/bin

bin是Binary的缩写,这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的普通命令,包括大部分基础的Unix命令。例如:cp,ls,cat。

/boot

这里存放的是启动LINUX时使用的一些核心文件,包括一些连接文件以及镜像文件。

如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。

/dev

dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。例如:/dev/hda代表第一个物理IDE硬盘。

目录 描述
/dev/hd[a-t] IDE设备
/dev/sd[a-z] SCSI设备
/dev/fd[0-7] 标准软驱
/dev/md[0-31] 软raid设备
/dev/loop[0-7] 本地回环设备
/dev/ram[0-15] 内存
/dev/null 无限数据接收设备,相当于黑洞
/dev/zero 无限零资源
/dev/tty[0-63] 虚拟终端
/dev/ttyS[0-3] 串口
/dev/lp[0-3] 并口
/dev/console 控制台
/dev/fb[0-31] framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9]
/dev/random 随机数设备
/dev/urandom 随机数设备

/etc

这个目录用来存放所有的系统管理所需要的配置文件和子目录。

一般来说一个程序启动,如果需要读取一些配置文件的话,它会首先读取当前用户家目录的配置文件,如果存在就使用;如果不存在它就到/etc下读取全局的配置文件进而启动程序。

目录 描述
/etc/rc,/etc/rc.d,/etc/rc*.d 启动、或改变运行级时运行的scripts或scripts的目录.
/etc/hosts 本地域名解析文件
/etc/sysconfig/network IP、掩码、网关、主机名配置
/etc/resolv.conf DNS服务器配置
/etc/fstab 开机自动挂载系统,所有分区开机都会自动挂载
/etc/inittab 设定系统启动时Init进程将把系统设置成什么样的runlevel及加载相关的启动文件配置
/etc/exports 设置NFS系统用的配置文件路径
/etc/init.d 这个目录来存放系统启动脚本
/etc/profile, /etc/csh.login, /etc/csh.cshrc 全局系统环境配置变量
/etc/issue 认证前的输出信息,默认输出版本内核信息
/etc/motd 设置认证后的输出信息,
/etc/mtab 当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df 命令
/etc/group 类似/etc/passwd ,但说明的不是用户而是组.
/etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.
/etc/shadow 在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读.这使破译口令更困难.
/etc/sudoers 可以sudo命令的配置文件
/etc/syslog.conf 系统日志参数配置
/etc/login.defs 设置用户帐号限制的文件
/etc/securetty 确认安全终端,即哪个终端允许root登录.一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权.
/etc/printcap 类似/etc/termcap ,但针对打印机.语法不同.
/etc/shells 列出可信任的shell.chsh 命令允许用户在本文件指定范围内改变登录shell.提供一台机器FTP服务的服务进程ftpd 检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录.
/etc/xinetd.d 如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录,比如Slackware,有些老的版本也没有。在Redhat Fedora中比较新的版本中存在。
/etc/opt/ /opt/的配置文件
/etc/X11/ X_Window系统(版本11)的配置文件
/etc/sgml/ SGML的配置文件
/etc/xml/ XML的配置文件
/etc/skel/ 默认创建用户时,把该目录拷贝到家目录下

/home

用户的主目录。比如说有个用户叫wang,那他的主目录就是/home/wang。

/lib

这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的dll文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found

这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media

linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/opt

可选的附加应用程序,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/mnt

这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

在远古时期,这个目录的用途与/media相同啦。 只是有了/media之后,这个目录就用来暂时挂载用了。

一般来说,我们最好在/mnt目录下面多建立几个子目录,挂载的时候挂载到这些子目录上面,因为通常我们可能不仅仅是挂载一个设备吧?

/proc

这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

该目录下文件只能看不能改(包括root)

目录 描述
/proc/meminfo 查看内存信息
/proc/loadavg 还记得 top 以及 uptime 吧?没错!上头的三个平均数值就是记录在此!
/proc/uptime 就是用 uptime 的时候,会出现的资讯啦!
/proc/cpuinfo 关于处理器的信息,如类型、厂家、型号和性能等。
/proc/cmdline 加载 kernel 时所下达的相关参数!查阅此文件,可了解系统是如何启动的!
/proc/filesystems 目前系统已经加载的文件系统罗!
/proc/interrupts 目前系统上面的 IRQ 分配状态。
/proc/ioports 目前系统上面各个装置所配置的 I/O 位址。
/proc/kcore 这个就是内存的大小啦!好大对吧!但是不要读他啦!
/proc/modules 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序啦!
/proc/mounts 系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据啦!
/proc/swaps 到底系统挂加载的内存在哪里?呵呵!使用掉的 partition 就记录在此啦!
/proc/partitions 使用 fdisk -l 会出现目前所有的 partition 吧?在这个文件当中也有纪录喔!
/proc/pci 在 PCI 汇流排上面,每个装置的详细情况!可用 lspci 来查阅!
/proc/version 核心的版本,就是用 uname -a 显示的内容啦!
/proc/bus/* 一些汇流排的装置,还有 U盘的装置也记录在此喔!

/root

系统管理员(root)的家目录。

/sbin

s就是Super User的意思,也就是说这里存放的是一些系统管理员使用的系统管理程序。如shutdown,reboot,用于启动系统,修复系统。

/srv

srv就是service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。

常见的服务例如WWW, FTP等等。

/sys

录类似/proc目录,里面是设备和系统的信息。这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

/tmp

这个目录包含系统和用户创建的临时文件。所有用户对该目录都有读和写的权限,不过可能对别人的文件没有权限。重要数据请不要存放在/tmp目录中,因为很多系统会在启动时清空/tmp目录,甚至是经常性地清理这个目录里的旧文件。

/var

变量文件夹,var表示变量。这个目录下可以找到内容可能增长的文件。包括 - 系统日志文件(/var/log)、包和数据库文件(/var/lib)、电子邮件(/var/mail)、打印队列(/var/spool)、锁文件(/var/lock)、多次重新启动需要的临时文件(/var/tmp)等(你可能会注意到这里有一个子目录/var/tmp,和/tmp不同的是,系统不会在启动时 清空它。)

目录 描述
/var/log/message 日志信息,按周自动轮询
/var/spool/cron/root 定时器配置文件目录,默认按用户命名
/var/log/secure 记录登陆系统存取信息的文件,不管认证成功还是认证失败都会记录
/var/log/wtmp 记录登陆者信息的文件,last,who,w命令信息来源于此
/var/spool/clientmqueue/ 当邮件服务未开启时,所有应发给系统管理员的邮件都将堆放在此
/var/spool/mail/ 邮件目录
/var/tmp 比/tmp 允许的大或需要存在较长时间的临时文件. (虽然系统管理员可能不允许/var/tmp 有很旧的文件.)
/var/lib 系统正常运行时要改变的文件.
/var/local /usr/local 中安装的程序的可变数据(即系统管理员安装的程序).注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock .
/var/lock 锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.
/var/log/ 各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息. /var/log 里的文件经常不确定地增长,应该定期清除.
/var/run 保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户的信息.
/var/cache/ 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。

/usr

这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。

注意:usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录

/usr/X11R6

存放X-Windows的目录

/usr/bin

存放着许多用户自己安装的应用程序

/usr/sbin

存放一些用户安装的系统管理的必备命令。例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

/usr/doc

这就是LINUX文档的大本营

/usr/include

存放着LINUX下开发和编译应用程序需要的头文件

/usr/lib

存放一些常用的动态链接共享库和静态档案库

/usr/local

安装本地程序的一般默认路径

例如,一个可执行文件被安装,安装实质就是复制到了/usr/local/bin下面;所需要依赖的库文件(如果有)被安装到了/usr/local/lib目录下;相应的头文件(如果有)被安装到了/usr/local/include中。也就是说,如果择了这个默认路径作为软件的安装路径,被安装的软件的所有文件都限制在这个目录中,其中的子目录就相应于根目录的子目录。

/usr/man

是帮助文档目录

/usr/src

LINUX开放的源代码,就存在这个目录

4.3 Linux命令分类

4.3.1 系统信息

uname -a      # 显示Linux系统信息 
uname -r      # 显示内核发布版本信息 
uptime        # 显示系统已经运行的时间和系统负载 
hostname      # 显示系统主机名 
last reboot   # 显示系统重启历史 
date          # 显示当前日期和时间 
cal           # 显示本月日历 
w             # 显示谁当前正登录这台主机 
whoami        # 显示你的登录名

4.3.2 硬件信息

dmesg                   # 监测硬件和启动消息 
cat /proc/cpuinfo       # CPU信息 
cat /proc/meminfo       # 硬件内存信息 
free -m                 # 已使用的和可用内存,-m表示单位为M 
lspci -tv               # 显示PCI设备信息 
lsusb -tv               # 显示USB设备信息 
hdparm -l /dev/sda      # 显示sda硬盘信息 
hdparm -tT /dev/sda     # 对sda硬盘进行读取速度测试 
hdparm -s /dev/sda      # 测试sda硬盘上不可读的块

4.3.3 统计

top                       # 显示并不断更新最耗CPU的进程 
mpstat 1                  # 显示CPU统计信息 
vmstat 2                  # 显示虚拟内存统计信息 
iostat 2                  # 显示IO统计信息(2s采样间隔) 
tcpdump -i eth1           # 捕获eth1网络接口上的所有数据包 
tcpdump -i eth0 'port 80' # 监控80端口的网络流量 
lsof                      # 列出所有活跃进程打开的文件 
lsof -u testuser          # 列出所有testuser用户打开的文件

4.3.4 用户

id                        # 当前用户唯一标识信息 
who                       # 类似w 
adduser will              # 添加用户 
useradd -c "Will Jiang" -g admin -m will 
userdel will

4.3.5 文件操作

ls -al          # 列出所有文件和文件夹信息 
pwd             # 显示当前所在路径 
mkdir dirname   # 创建目录 
rm filename 
rm -r dirname 
rm -f filename 
rm -rf dirname 
cp file1 file2 
cp -r dir1 dir2 
mv file1 file2   # 如果file2是一个目录,则移动file1到file2目录;否则重命名文件 
ln -s /path/to/filename link-name # 建立软链接 
touch file       # 创建文件 
cat > filename 
more file 
head file        # 显示文件开头10行内容 
tail file        # 显示文件末尾10行内容 
gpg -c file      # 加密文件,文件以gpg为后缀 
gpg file.gpg     # 解密文件

4.3.6 进程

ps               # 显示所有进程 
ps aux | grep tomcat 
pmap pid         # 进程内存消耗信息 
top 
kill pid 
killall procname # 杀死所有名为procname的进程 
bg               # 列出已停止的或后台进程

4.3.7 文件权限

注意:4-read,2-write,1-execute 
chmod 777 file-or-dir-name 
chmod 755 file-or-dir-name 
chown owner-user file                   # 更改文件所有者 
chown owner-user:owner-group file       # 更改文件所有者和所有者所在组 
chown owner-user:owner-group directory

4.3.8 网络

ifconfig -a      # 列出所有网络端口和IP地址
ifconfig eth0    # 列出指定以太网端口对应的IP地址和详细信息
ethtool eth0     # 查看以太网状态
ping host
whois domain     # 获取指定域名的信息
dig domain       # 获取指定域名的DNS信息
dig -x host      # 根据主机地址反向查找
host goole.com   # 根据域名查找DNS IP地址
wget file        # 下载文件
netstat -tupl    # 列出系统的活跃连接

4.3.9 压缩/归档

tar cf home.tar  home         # 创建home.tar包含home/目录
tar xf file.tar               # 解压缩file.tar
tar czf file.tar.gz files     # 创建tar格式文件并用gzip格式压缩成.tar.gz格式
tar xzf file.tar.gz           # 解压缩gzip文件
tar cjf file.tar.bz2  files   # 创建tar格式文件并用bzip2压缩算法压缩
gzip file                     # 压缩文件为gzip格式

4.3.10 安装软件

rpm -l pkgname.rpm   # 安装rpm包
rpm -e pkgname       # 删除rmp包
从源码安装
./configure
make
make install

4.3.11 搜索

grep pattern files
grep -r pattern dir             # 在目录中递归搜索匹配指定模式的文本内容
locate file                     # 搜索文件的所有实例
find /home/tom -name 'index*'   # 搜索所有以index开头的文件
find /home -size +10000k        # 在/home目录下搜索所有大小超过10000K的文件

4.3.12 SSH和Telnet

ssh user@host
ssh -p port user@host
telnet host

4.3.13 文件传输

# scp
scp file.txt server2:/tmp                 # 安全拷贝file.txt到远程主机的/tmp目录下
scp noodle@server2:/www/*.html /www/tmp   # 拷贝远程主机的/www/目录下的所有HTML文件到本地的/www/tmp目录
scp -r noodle@server2:/www /www/tmp       # 递归拷贝远程主机/www目录下的所有文件和文件夹到本地/www/tmp目录

# rsync
rsync -a /home/apps /backup/              # 源目录和目标目录同步
rsync -avz /home/apps noodle@192.168.10.1:/backup   # 本地目录和远程主机目录同步,启用压缩

4.3.14 磁盘使用率

df -h    # 查看磁盘可用空间
du -ah   # 以人类可读形式显示磁盘使用情况
du -sh   # 以人类可读形式显示当前目录下磁盘使用情况

4.3.15 目录

cd ..   # 跳到上一层目录
cd /test
cd      # 回到$HOME目录